diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/404.html b/404.html new file mode 100644 index 000000000..42698fa6d --- /dev/null +++ b/404.html @@ -0,0 +1,22 @@ + + + + + + 404 | Coalesce + + + + + + + + + + + +
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
+ + + + \ No newline at end of file diff --git a/assets/app.DIaApuPK.js b/assets/app.DIaApuPK.js new file mode 100644 index 000000000..237f97f38 --- /dev/null +++ b/assets/app.DIaApuPK.js @@ -0,0 +1 @@ +import{U as o,ah as p,ai as u,aj as l,ak as c,al as f,am as d,an as m,ao as h,ap as A,aq as g,X as P,d as _,u as v,k as y,y as R,ar as w,as as C,at as E,aa as T}from"./chunks/framework.Be4oCqIX.js";import{R as b}from"./chunks/theme.DYGu54-B.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(b),S=_({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{R(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&w(),C(),E(),s.setup&&s.setup(),()=>T(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=L(),a=j();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return h(S)}function L(){let e=o,a;return A(t=>{let n=g(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=P(()=>import(n),[])),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{D as createApp}; diff --git a/assets/chunks/VPAlgoliaSearchBox.3Nm3rgYi.js b/assets/chunks/VPAlgoliaSearchBox.3Nm3rgYi.js new file mode 100644 index 000000000..57e93d90e --- /dev/null +++ b/assets/chunks/VPAlgoliaSearchBox.3Nm3rgYi.js @@ -0,0 +1,17 @@ +import{d as mo,au as po,L as vo,k as ho,x as yo,R as go,o as bo,c as _o}from"./framework.Be4oCqIX.js";import{u as Oo}from"./theme.DYGu54-B.js";/*! @docsearch/js 3.6.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */function lr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function I(t){for(var e=1;e=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function se(t,e){return function(r){if(Array.isArray(r))return r}(t)||function(r,n){var o=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(o!=null){var i,a,c=[],u=!0,s=!1;try{for(o=o.call(r);!(u=(i=o.next()).done)&&(c.push(i.value),!n||c.length!==n);u=!0);}catch(l){s=!0,a=l}finally{try{u||o.return==null||o.return()}finally{if(s)throw a}}return c}}(t,e)||_n(t,e)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function ft(t){return function(e){if(Array.isArray(e))return qt(e)}(t)||function(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}(t)||_n(t)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function _n(t,e){if(t){if(typeof t=="string")return qt(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set"?Array.from(t):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?qt(t,e):void 0}}function qt(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r3)for(r=[r],i=3;i0?Ie(v.type,v.props,v.key,null,v.__v):v)!=null){if(v.__=r,v.__b=r.__b+1,(p=b[l])===null||p&&v.key==p.key&&v.type===p.type)b[l]=void 0;else for(m=0;m<_;m++){if((p=b[m])&&v.key==p.key&&v.type===p.type){b[m]=void 0;break}p=null}Yt(t,v,p=p||mt,o,i,a,c,u,s),d=v.__e,(m=v.ref)&&p.ref!=m&&(y||(y=[]),p.ref&&y.push(p.ref,null,v),y.push(m,v.__c||d,v)),d!=null?(h==null&&(h=d),typeof v.type=="function"&&v.__k!=null&&v.__k===p.__k?v.__d=u=Pn(v,u,t):u=In(t,v,p,b,d,u),s||r.type!=="option"?typeof r.type=="function"&&(r.__d=u):t.value=""):u&&p.__e==u&&u.parentNode!=t&&(u=Ke(p))}for(r.__e=h,l=_;l--;)b[l]!=null&&(typeof r.type=="function"&&b[l].__e!=null&&b[l].__e==r.__d&&(r.__d=Ke(n,l+1)),An(b[l],b[l]));if(y)for(l=0;l3)for(r=[r],i=3;i=r.__.length&&r.__.push({}),r.__[t]}function Gt(t){return pe=1,xn(Nn,t)}function xn(t,e,r){var n=Je(de++,2);return n.t=t,n.__c||(n.__=[r?r(e):Nn(void 0,e),function(o){var i=n.t(n.__[0],o);n.__[0]!==i&&(n.__=[i,n.__[1]],n.__c.setState({}))}],n.__c=L),n.__}function Xt(t,e){var r=Je(de++,3);!w.__s&&er(r.__H,e)&&(r.__=t,r.__H=e,L.__H.__h.push(r))}function _r(t,e){var r=Je(de++,4);!w.__s&&er(r.__H,e)&&(r.__=t,r.__H=e,L.__h.push(r))}function Pt(t,e){var r=Je(de++,7);return er(r.__H,e)&&(r.__=t(),r.__H=e,r.__h=t),r.__}function ko(){Ht.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(ut),t.__H.__h.forEach(Ut),t.__H.__h=[]}catch(e){t.__H.__h=[],w.__e(e,t.__v)}}),Ht=[]}w.__b=function(t){L=null,dr&&dr(t)},w.__r=function(t){hr&&hr(t),de=0;var e=(L=t.__c).__H;e&&(e.__h.forEach(ut),e.__h.forEach(Ut),e.__h=[])},w.diffed=function(t){yr&&yr(t);var e=t.__c;e&&e.__H&&e.__H.__h.length&&(Ht.push(e)!==1&&vr===w.requestAnimationFrame||((vr=w.requestAnimationFrame)||function(r){var n,o=function(){clearTimeout(i),Or&&cancelAnimationFrame(n),setTimeout(r)},i=setTimeout(o,100);Or&&(n=requestAnimationFrame(o))})(ko)),L=void 0},w.__c=function(t,e){e.some(function(r){try{r.__h.forEach(ut),r.__h=r.__h.filter(function(n){return!n.__||Ut(n)})}catch(n){e.some(function(o){o.__h&&(o.__h=[])}),e=[],w.__e(n,r.__v)}}),gr&&gr(t,e)},w.unmount=function(t){br&&br(t);var e=t.__c;if(e&&e.__H)try{e.__H.__.forEach(ut)}catch(r){w.__e(r,e.__v)}};var Or=typeof requestAnimationFrame=="function";function ut(t){var e=L;typeof t.__c=="function"&&t.__c(),L=e}function Ut(t){var e=L;t.__c=t.__(),L=e}function er(t,e){return!t||t.length!==e.length||e.some(function(r,n){return r!==t[n]})}function Nn(t,e){return typeof e=="function"?e(t):e}function Tn(t,e){for(var r in e)t[r]=e[r];return t}function Ft(t,e){for(var r in t)if(r!=="__source"&&!(r in e))return!0;for(var n in e)if(n!=="__source"&&t[n]!==e[n])return!0;return!1}function Bt(t){this.props=t}(Bt.prototype=new W).isPureReactComponent=!0,Bt.prototype.shouldComponentUpdate=function(t,e){return Ft(this.props,t)||Ft(this.state,e)};var Sr=w.__b;w.__b=function(t){t.type&&t.type.__f&&t.ref&&(t.props.ref=t.ref,t.ref=null),Sr&&Sr(t)};var Do=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911,wr=function(t,e){return t==null?null:$($(t).map(e))},Ao={map:wr,forEach:wr,count:function(t){return t?$(t).length:0},only:function(t){var e=$(t);if(e.length!==1)throw"Children.only";return e[0]},toArray:$},Co=w.__e;function ct(){this.__u=0,this.t=null,this.__b=null}function Rn(t){var e=t.__.__c;return e&&e.__e&&e.__e(t)}function je(){this.u=null,this.o=null}w.__e=function(t,e,r){if(t.then){for(var n,o=e;o=o.__;)if((n=o.__c)&&n.__c)return e.__e==null&&(e.__e=r.__e,e.__k=r.__k),n.__c(t,e)}Co(t,e,r)},(ct.prototype=new W).__c=function(t,e){var r=e.__c,n=this;n.t==null&&(n.t=[]),n.t.push(r);var o=Rn(n.__v),i=!1,a=function(){i||(i=!0,r.componentWillUnmount=r.__c,o?o(c):c())};r.__c=r.componentWillUnmount,r.componentWillUnmount=function(){a(),r.__c&&r.__c()};var c=function(){if(!--n.__u){if(n.state.__e){var s=n.state.__e;n.__v.__k[0]=function m(p,v,d){return p&&(p.__v=null,p.__k=p.__k&&p.__k.map(function(h){return m(h,v,d)}),p.__c&&p.__c.__P===v&&(p.__e&&d.insertBefore(p.__e,p.__d),p.__c.__e=!0,p.__c.__P=d)),p}(s,s.__c.__P,s.__c.__O)}var l;for(n.setState({__e:n.__b=null});l=n.t.pop();)l.forceUpdate()}},u=e.__h===!0;n.__u++||u||n.setState({__e:n.__b=n.__v.__k[0]}),t.then(a,a)},ct.prototype.componentWillUnmount=function(){this.t=[]},ct.prototype.render=function(t,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=function i(a,c,u){return a&&(a.__c&&a.__c.__H&&(a.__c.__H.__.forEach(function(s){typeof s.__c=="function"&&s.__c()}),a.__c.__H=null),(a=Tn({},a)).__c!=null&&(a.__c.__P===u&&(a.__c.__P=c),a.__c=null),a.__k=a.__k&&a.__k.map(function(s){return i(s,c,u)})),a}(this.__b,r,n.__O=n.__P)}this.__b=null}var o=e.__e&&K(X,null,t.fallback);return o&&(o.__h=null),[K(X,null,e.__e?null:t.children),o]};var jr=function(t,e,r){if(++r[1]===r[0]&&t.o.delete(e),t.props.revealOrder&&(t.props.revealOrder[0]!=="t"||!t.o.size))for(r=t.u;r;){for(;r.length>3;)r.pop()();if(r[1]>>1,1),e.i.removeChild(n)}}),We(K(xo,{context:e.context},t.__v),e.l)):e.l&&e.componentWillUnmount()}function Ln(t,e){return K(No,{__v:t,i:e})}(je.prototype=new W).__e=function(t){var e=this,r=Rn(e.__v),n=e.o.get(t);return n[0]++,function(o){var i=function(){e.props.revealOrder?(n.push(o),jr(e,t,n)):o()};r?r(i):i()}},je.prototype.render=function(t){this.u=null,this.o=new Map;var e=$(t.children);t.revealOrder&&t.revealOrder[0]==="b"&&e.reverse();for(var r=e.length;r--;)this.o.set(e[r],this.u=[1,0,this.u]);return t.children},je.prototype.componentDidUpdate=je.prototype.componentDidMount=function(){var t=this;this.o.forEach(function(e,r){jr(t,r,e)})};var qn=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,To=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Ro=function(t){return(typeof Symbol<"u"&&Ve(Symbol())=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(t)};function Mn(t,e,r){return e.__k==null&&(e.textContent=""),We(t,e),typeof r=="function"&&r(),t?t.__c:null}W.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(W.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}})});var Er=w.event;function Lo(){}function qo(){return this.cancelBubble}function Mo(){return this.defaultPrevented}w.event=function(t){return Er&&(t=Er(t)),t.persist=Lo,t.isPropagationStopped=qo,t.isDefaultPrevented=Mo,t.nativeEvent=t};var Hn,Pr={configurable:!0,get:function(){return this.class}},Ir=w.vnode;w.vnode=function(t){var e=t.type,r=t.props,n=r;if(typeof e=="string"){for(var o in n={},r){var i=r[o];o==="value"&&"defaultValue"in r&&i==null||(o==="defaultValue"&&"value"in r&&r.value==null?o="value":o==="download"&&i===!0?i="":/ondoubleclick/i.test(o)?o="ondblclick":/^onchange(textarea|input)/i.test(o+e)&&!Ro(r.type)?o="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(o)?o=o.toLowerCase():To.test(o)?o=o.replace(/[A-Z0-9]/,"-$&").toLowerCase():i===null&&(i=void 0),n[o]=i)}e=="select"&&n.multiple&&Array.isArray(n.value)&&(n.value=$(r.children).forEach(function(a){a.props.selected=n.value.indexOf(a.props.value)!=-1})),e=="select"&&n.defaultValue!=null&&(n.value=$(r.children).forEach(function(a){a.props.selected=n.multiple?n.defaultValue.indexOf(a.props.value)!=-1:n.defaultValue==a.props.value})),t.props=n}e&&r.class!=r.className&&(Pr.enumerable="className"in r,r.className!=null&&(n.class=r.className),Object.defineProperty(n,"className",Pr)),t.$$typeof=qn,Ir&&Ir(t)};var kr=w.__r;w.__r=function(t){kr&&kr(t),Hn=t.__c};var Ho={ReactCurrentDispatcher:{current:{readContext:function(t){return Hn.__n[t.__c].props.value}}}};(typeof performance>"u"?"undefined":Ve(performance))=="object"&&typeof performance.now=="function"&&performance.now.bind(performance);function Dr(t){return!!t&&t.$$typeof===qn}var f={useState:Gt,useReducer:xn,useEffect:Xt,useLayoutEffect:_r,useRef:function(t){return pe=5,Pt(function(){return{current:t}},[])},useImperativeHandle:function(t,e,r){pe=6,_r(function(){typeof t=="function"?t(e()):t&&(t.current=e())},r==null?r:r.concat(t))},useMemo:Pt,useCallback:function(t,e){return pe=8,Pt(function(){return t},e)},useContext:function(t){var e=L.context[t.__c],r=Je(de++,9);return r.__c=t,e?(r.__==null&&(r.__=!0,e.sub(L)),e.props.value):t.__},useDebugValue:function(t,e){w.useDebugValue&&w.useDebugValue(e?e(t):t)},version:"16.8.0",Children:Ao,render:Mn,hydrate:function(t,e,r){return Cn(t,e),typeof r=="function"&&r(),t?t.__c:null},unmountComponentAtNode:function(t){return!!t.__k&&(We(null,t),!0)},createPortal:Ln,createElement:K,createContext:function(t,e){var r={__c:e="__cC"+Sn++,__:t,Consumer:function(n,o){return n.children(o)},Provider:function(n){var o,i;return this.getChildContext||(o=[],(i={})[e]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(a){this.props.value!==a.value&&o.some(Mt)},this.sub=function(a){o.push(a);var c=a.componentWillUnmount;a.componentWillUnmount=function(){o.splice(o.indexOf(a),1),c&&c.call(a)}}),n.children}};return r.Provider.__=r.Consumer.contextType=r},createFactory:function(t){return K.bind(null,t)},cloneElement:function(t){return Dr(t)?Io.apply(null,arguments):t},createRef:function(){return{current:null}},Fragment:X,isValidElement:Dr,findDOMNode:function(t){return t&&(t.base||t.nodeType===1&&t)||null},Component:W,PureComponent:Bt,memo:function(t,e){function r(o){var i=this.props.ref,a=i==o.ref;return!a&&i&&(i.call?i(null):i.current=null),e?!e(this.props,o)||!a:Ft(this.props,o)}function n(o){return this.shouldComponentUpdate=r,K(t,o)}return n.displayName="Memo("+(t.displayName||t.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n},forwardRef:function(t){function e(r,n){var o=Tn({},r);return delete o.ref,t(o,(n=r.ref||n)&&(Ve(n)!="object"||"current"in n)?n:null)}return e.$$typeof=Do,e.render=e,e.prototype.isReactComponent=e.__f=!0,e.displayName="ForwardRef("+(t.displayName||t.name)+")",e},unstable_batchedUpdates:function(t,e){return t(e)},StrictMode:X,Suspense:ct,SuspenseList:je,lazy:function(t){var e,r,n;function o(i){if(e||(e=t()).then(function(a){r=a.default||a},function(a){n=a}),n)throw n;if(!r)throw e;return K(r,i)}return o.displayName="Lazy",o.__f=!0,o},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Ho};function Uo(){return f.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},f.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function Un(){return f.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20","aria-hidden":"true"},f.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var Fo=["translations"];function Vt(){return Vt=Object.assign||function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}var Vo=f.forwardRef(function(t,e){var r=t.translations,n=r===void 0?{}:r,o=Bo(t,Fo),i=n.buttonText,a=i===void 0?"Search":i,c=n.buttonAriaLabel,u=c===void 0?"Search":c,s=Fn(Gt(null),2),l=s[0],m=s[1];return Xt(function(){typeof navigator<"u"&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?m("⌘"):m("Ctrl"))},[]),f.createElement("button",Vt({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:e}),f.createElement("span",{className:"DocSearch-Button-Container"},f.createElement(Un,null),f.createElement("span",{className:"DocSearch-Button-Placeholder"},a)),f.createElement("span",{className:"DocSearch-Button-Keys"},l!==null&&f.createElement(f.Fragment,null,f.createElement(Cr,{reactsToKey:l==="Ctrl"?"Ctrl":"Meta"},l==="Ctrl"?f.createElement(Uo,null):l),f.createElement(Cr,{reactsToKey:"k"},"K"))))});function Cr(t){var e=t.reactsToKey,r=t.children,n=Fn(Gt(!1),2),o=n[0],i=n[1];return Xt(function(){if(e)return window.addEventListener("keydown",a),window.addEventListener("keyup",c),function(){window.removeEventListener("keydown",a),window.removeEventListener("keyup",c)};function a(u){u.key===e&&i(!0)}function c(u){u.key!==e&&u.key!=="Meta"||i(!1)}},[e]),f.createElement("kbd",{className:o?"DocSearch-Button-Key DocSearch-Button-Key--pressed":"DocSearch-Button-Key"},r)}function Bn(t,e){var r=void 0;return function(){for(var n=arguments.length,o=new Array(n),i=0;it.length)&&(e=t.length);for(var r=0,n=new Array(e);rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function Rr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function ve(t){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:20,r=[],n=0;n=3||r===2&&n>=4||r===1&&n>=10);function i(a,c,u){if(o&&u!==void 0){var s=u[0].__autocomplete_algoliaCredentials,l={"X-Algolia-Application-Id":s.appId,"X-Algolia-API-Key":s.apiKey};t.apply(void 0,[a].concat(Ge(c),[{headers:l}]))}else t.apply(void 0,[a].concat(Ge(c)))}return{init:function(a,c){t("init",{appId:a,apiKey:c})},setUserToken:function(a){t("setUserToken",a)},clickedObjectIDsAfterSearch:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&i("clickedObjectIDsAfterSearch",Xe(c),c[0].items)},clickedObjectIDs:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&i("clickedObjectIDs",Xe(c),c[0].items)},clickedFilters:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&t.apply(void 0,["clickedFilters"].concat(c))},convertedObjectIDsAfterSearch:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&i("convertedObjectIDsAfterSearch",Xe(c),c[0].items)},convertedObjectIDs:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&i("convertedObjectIDs",Xe(c),c[0].items)},convertedFilters:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&t.apply(void 0,["convertedFilters"].concat(c))},viewedObjectIDs:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&c.reduce(function(s,l){var m=l.items,p=Kn(l,$o);return[].concat(Ge(s),Ge(Zo(ve(ve({},p),{},{objectIDs:(m==null?void 0:m.map(function(v){return v.objectID}))||p.objectIDs})).map(function(v){return{items:m,payload:v}})))},[]).forEach(function(s){var l=s.items;return i("viewedObjectIDs",[s.payload],l)})},viewedFilters:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&t.apply(void 0,["viewedFilters"].concat(c))}}}function Go(t){var e=t.items.reduce(function(r,n){var o;return r[n.__autocomplete_indexName]=((o=r[n.__autocomplete_indexName])!==null&&o!==void 0?o:[]).concat(n),r},{});return Object.keys(e).map(function(r){return{index:r,items:e[r],algoliaSource:["autocomplete"]}})}function kt(t){return t.objectID&&t.__autocomplete_indexName&&t.__autocomplete_queryID}function De(t){return De=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},De(t)}function ie(t){return function(e){if(Array.isArray(e))return Dt(e)}(t)||function(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}(t)||function(e,r){if(e){if(typeof e=="string")return Dt(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Dt(e,r)}}(t)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Dt(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0&&ti({onItemsChange:n,items:p,insights:c,state:m}))}},0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(l){var m=l.setContext,p=l.onSelect,v=l.onActive;a("addAlgoliaAgent","insights-plugin"),m({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:c}}),p(function(d){var h=d.item,y=d.state,b=d.event;kt(h)&&o({state:y,event:b,insights:c,item:h,insightsEvents:[G({eventName:"Item Selected"},Nr({item:h,items:u.current}))]})}),v(function(d){var h=d.item,y=d.state,b=d.event;kt(h)&&i({state:y,event:b,insights:c,item:h,insightsEvents:[G({eventName:"Item Active"},Nr({item:h,items:u.current}))]})})},onStateChange:function(l){var m=l.state;s({state:m})},__autocomplete_pluginOptions:t}}function lt(t,e){var r=e;return{then:function(n,o){return lt(t.then(et(n,r,t),et(o,r,t)),r)},catch:function(n){return lt(t.catch(et(n,r,t)),r)},finally:function(n){return n&&r.onCancelList.push(n),lt(t.finally(et(n&&function(){return r.onCancelList=[],n()},r,t)),r)},cancel:function(){r.isCanceled=!0;var n=r.onCancelList;r.onCancelList=[],n.forEach(function(o){o()})},isCanceled:function(){return r.isCanceled===!0}}}function qr(t){return lt(t,{isCanceled:!1,onCancelList:[]})}function et(t,e,r){return t?function(n){return e.isCanceled?n:t(n)}:r}function Mr(t,e,r,n){if(!r)return null;if(t<0&&(e===null||n!==null&&e===0))return r+t;var o=(e===null?-1:e)+t;return o<=-1||o>=r?n===null?null:0:o}function Hr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function Ur(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r0},reshape:function(i){return i.sources}},t),{},{id:(r=t.id)!==null&&r!==void 0?r:"autocomplete-".concat(Ko++),plugins:o,initialState:ae({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},t.initialState),onStateChange:function(i){var a;(a=t.onStateChange)===null||a===void 0||a.call(t,i),o.forEach(function(c){var u;return(u=c.onStateChange)===null||u===void 0?void 0:u.call(c,i)})},onSubmit:function(i){var a;(a=t.onSubmit)===null||a===void 0||a.call(t,i),o.forEach(function(c){var u;return(u=c.onSubmit)===null||u===void 0?void 0:u.call(c,i)})},onReset:function(i){var a;(a=t.onReset)===null||a===void 0||a.call(t,i),o.forEach(function(c){var u;return(u=c.onReset)===null||u===void 0?void 0:u.call(c,i)})},getSources:function(i){return Promise.all([].concat(ci(o.map(function(a){return a.getSources})),[t.getSources]).filter(Boolean).map(function(a){return function(c,u){var s=[];return Promise.resolve(c(u)).then(function(l){return Promise.all(l.filter(function(m){return!!m}).map(function(m){if(m.sourceId,s.includes(m.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(m.sourceId)," is not unique."));s.push(m.sourceId);var p={getItemInputValue:function(d){return d.state.query},getItemUrl:function(){},onSelect:function(d){(0,d.setIsOpen)(!1)},onActive:vt,onResolve:vt};Object.keys(p).forEach(function(d){p[d].__default=!0});var v=Ur(Ur({},p),m);return Promise.resolve(v)}))})}(a,i)})).then(function(a){return ze(a)}).then(function(a){return a.map(function(c){return ae(ae({},c),{},{onSelect:function(u){c.onSelect(u),e.forEach(function(s){var l;return(l=s.onSelect)===null||l===void 0?void 0:l.call(s,u)})},onActive:function(u){c.onActive(u),e.forEach(function(s){var l;return(l=s.onActive)===null||l===void 0?void 0:l.call(s,u)})},onResolve:function(u){c.onResolve(u),e.forEach(function(s){var l;return(l=s.onResolve)===null||l===void 0?void 0:l.call(s,u)})}})})})},navigator:ae({navigate:function(i){var a=i.itemUrl;n.location.assign(a)},navigateNewTab:function(i){var a=i.itemUrl,c=n.open(a,"_blank","noopener");c==null||c.focus()},navigateNewWindow:function(i){var a=i.itemUrl;n.open(a,"_blank","noopener")}},t.navigator)})}function Te(t){return Te=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Te(t)}function Kr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function rt(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}var Jr,xt,ot,we=null,$r=(Jr=-1,xt=-1,ot=void 0,function(t){var e=++Jr;return Promise.resolve(t).then(function(r){return ot&&e=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function Me(t){return Me=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Me(t)}var Oi=["props","refresh","store"],Si=["inputElement","formElement","panelElement"],wi=["inputElement"],ji=["inputElement","maxLength"],Ei=["sourceIndex"],Pi=["sourceIndex"],Ii=["item","source","sourceIndex"];function Zr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function R(t){for(var e=1;e=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function Di(t){var e=t.props,r=t.refresh,n=t.store,o=re(t,Oi),i=function(a,c){return c!==void 0?"".concat(a,"-").concat(c):a};return{getEnvironmentProps:function(a){var c=a.inputElement,u=a.formElement,s=a.panelElement;function l(m){!n.getState().isOpen&&n.pendingRequests.isEmpty()||m.target===c||[u,s].some(function(p){return v=p,d=m.target,v===d||v.contains(d);var v,d})===!1&&(n.dispatch("blur",null),e.debug||n.pendingRequests.cancelAll())}return R({onTouchStart:l,onMouseDown:l,onTouchMove:function(m){n.getState().isOpen!==!1&&c===e.environment.document.activeElement&&m.target!==c&&c.blur()}},re(a,Si))},getRootProps:function(a){return R({role:"combobox","aria-expanded":n.getState().isOpen,"aria-haspopup":"listbox","aria-owns":n.getState().isOpen?"".concat(e.id,"-list"):void 0,"aria-labelledby":"".concat(e.id,"-label")},a)},getFormProps:function(a){return a.inputElement,R({action:"",noValidate:!0,role:"search",onSubmit:function(c){var u;c.preventDefault(),e.onSubmit(R({event:c,refresh:r,state:n.getState()},o)),n.dispatch("submit",null),(u=a.inputElement)===null||u===void 0||u.blur()},onReset:function(c){var u;c.preventDefault(),e.onReset(R({event:c,refresh:r,state:n.getState()},o)),n.dispatch("reset",null),(u=a.inputElement)===null||u===void 0||u.focus()}},re(a,wi))},getLabelProps:function(a){var c=a||{},u=c.sourceIndex,s=re(c,Ei);return R({htmlFor:"".concat(i(e.id,u),"-input"),id:"".concat(i(e.id,u),"-label")},s)},getInputProps:function(a){var c;function u(y){(e.openOnFocus||n.getState().query)&&le(R({event:y,props:e,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch("focus",null)}var s=a||{},l=(s.inputElement,s.maxLength),m=l===void 0?512:l,p=re(s,ji),v=fe(n.getState()),d=function(y){return!!(y&&y.match(oi))}(((c=e.environment.navigator)===null||c===void 0?void 0:c.userAgent)||""),h=v!=null&&v.itemUrl&&!d?"go":"search";return R({"aria-autocomplete":"both","aria-activedescendant":n.getState().isOpen&&n.getState().activeItemId!==null?"".concat(e.id,"-item-").concat(n.getState().activeItemId):void 0,"aria-controls":n.getState().isOpen?"".concat(e.id,"-list"):void 0,"aria-labelledby":"".concat(e.id,"-label"),value:n.getState().completion||n.getState().query,id:"".concat(e.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:h,spellCheck:"false",autoFocus:e.autoFocus,placeholder:e.placeholder,maxLength:m,type:"search",onChange:function(y){le(R({event:y,props:e,query:y.currentTarget.value.slice(0,m),refresh:r,store:n},o))},onKeyDown:function(y){(function(b){var _=b.event,S=b.props,O=b.refresh,g=b.store,P=_i(b,gi);if(_.key==="ArrowUp"||_.key==="ArrowDown"){var C=function(){var M=S.environment.document.getElementById("".concat(S.id,"-item-").concat(g.getState().activeItemId));M&&(M.scrollIntoViewIfNeeded?M.scrollIntoViewIfNeeded(!1):M.scrollIntoView(!1))},q=function(){var M=fe(g.getState());if(g.getState().activeItemId!==null&&M){var Ot=M.item,St=M.itemInputValue,$e=M.itemUrl,B=M.source;B.onActive(te({event:_,item:Ot,itemInputValue:St,itemUrl:$e,refresh:O,source:B,state:g.getState()},P))}};_.preventDefault(),g.getState().isOpen===!1&&(S.openOnFocus||g.getState().query)?le(te({event:_,props:S,query:g.getState().query,refresh:O,store:g},P)).then(function(){g.dispatch(_.key,{nextActiveItemId:S.defaultActiveItemId}),q(),setTimeout(C,0)}):(g.dispatch(_.key,{}),q(),C())}else if(_.key==="Escape")_.preventDefault(),g.dispatch(_.key,null),g.pendingRequests.cancelAll();else if(_.key==="Tab")g.dispatch("blur",null),g.pendingRequests.cancelAll();else if(_.key==="Enter"){if(g.getState().activeItemId===null||g.getState().collections.every(function(M){return M.items.length===0}))return void(S.debug||g.pendingRequests.cancelAll());_.preventDefault();var x=fe(g.getState()),D=x.item,N=x.itemInputValue,U=x.itemUrl,F=x.source;if(_.metaKey||_.ctrlKey)U!==void 0&&(F.onSelect(te({event:_,item:D,itemInputValue:N,itemUrl:U,refresh:O,source:F,state:g.getState()},P)),S.navigator.navigateNewTab({itemUrl:U,item:D,state:g.getState()}));else if(_.shiftKey)U!==void 0&&(F.onSelect(te({event:_,item:D,itemInputValue:N,itemUrl:U,refresh:O,source:F,state:g.getState()},P)),S.navigator.navigateNewWindow({itemUrl:U,item:D,state:g.getState()}));else if(!_.altKey){if(U!==void 0)return F.onSelect(te({event:_,item:D,itemInputValue:N,itemUrl:U,refresh:O,source:F,state:g.getState()},P)),void S.navigator.navigate({itemUrl:U,item:D,state:g.getState()});le(te({event:_,nextState:{isOpen:!1},props:S,query:N,refresh:O,store:g},P)).then(function(){F.onSelect(te({event:_,item:D,itemInputValue:N,itemUrl:U,refresh:O,source:F,state:g.getState()},P))})}}})(R({event:y,props:e,refresh:r,store:n},o))},onFocus:u,onBlur:vt,onClick:function(y){a.inputElement!==e.environment.document.activeElement||n.getState().isOpen||u(y)}},p)},getPanelProps:function(a){return R({onMouseDown:function(c){c.preventDefault()},onMouseLeave:function(){n.dispatch("mouseleave",null)}},a)},getListProps:function(a){var c=a||{},u=c.sourceIndex,s=re(c,Pi);return R({role:"listbox","aria-labelledby":"".concat(i(e.id,u),"-label"),id:"".concat(i(e.id,u),"-list")},s)},getItemProps:function(a){var c=a.item,u=a.source,s=a.sourceIndex,l=re(a,Ii);return R({id:"".concat(i(e.id,s),"-item-").concat(c.__autocomplete_id),role:"option","aria-selected":n.getState().activeItemId===c.__autocomplete_id,onMouseMove:function(m){if(c.__autocomplete_id!==n.getState().activeItemId){n.dispatch("mousemove",c.__autocomplete_id);var p=fe(n.getState());if(n.getState().activeItemId!==null&&p){var v=p.item,d=p.itemInputValue,h=p.itemUrl,y=p.source;y.onActive(R({event:m,item:v,itemInputValue:d,itemUrl:h,refresh:r,source:y,state:n.getState()},o))}}},onMouseDown:function(m){m.preventDefault()},onClick:function(m){var p=u.getItemInputValue({item:c,state:n.getState()}),v=u.getItemUrl({item:c,state:n.getState()});(v?Promise.resolve():le(R({event:m,nextState:{isOpen:!1},props:e,query:p,refresh:r,store:n},o))).then(function(){u.onSelect(R({event:m,item:c,itemInputValue:p,itemUrl:v,refresh:r,source:u,state:n.getState()},o))})}},l)}}}function He(t){return He=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},He(t)}function Yr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function Ai(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function Gi(t){var e=t.translations,r=e===void 0?{}:e,n=Yi(t,Qi),o=r.noResultsText,i=o===void 0?"No results for":o,a=r.suggestedQueryText,c=a===void 0?"Try searching for":a,u=r.reportMissingResultsText,s=u===void 0?"Believe this query should return results?":u,l=r.reportMissingResultsLinkText,m=l===void 0?"Let us know.":l,p=n.state.context.searchSuggestions;return f.createElement("div",{className:"DocSearch-NoResults"},f.createElement("div",{className:"DocSearch-Screen-Icon"},f.createElement(Ji,null)),f.createElement("p",{className:"DocSearch-Title"},i,' "',f.createElement("strong",null,n.state.query),'"'),p&&p.length>0&&f.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},f.createElement("p",{className:"DocSearch-Help"},c,":"),f.createElement("ul",null,p.slice(0,3).reduce(function(v,d){return[].concat(Zi(v),[f.createElement("li",{key:d},f.createElement("button",{className:"DocSearch-Prefill",key:d,type:"button",onClick:function(){n.setQuery(d.toLowerCase()+" "),n.refresh(),n.inputRef.current.focus()}},d))])},[]))),n.getMissingResultsUrl&&f.createElement("p",{className:"DocSearch-Help"},"".concat(s," "),f.createElement("a",{href:n.getMissingResultsUrl({query:n.state.query}),target:"_blank",rel:"noopener noreferrer"},m)))}var Xi=["hit","attribute","tagName"];function rn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function nn(t){for(var e=1;e=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function on(t,e){return e.split(".").reduce(function(r,n){return r!=null&&r[n]?r[n]:null},t)}function ce(t){var e=t.hit,r=t.attribute,n=t.tagName;return K(n===void 0?"span":n,nn(nn({},ta(t,Xi)),{},{dangerouslySetInnerHTML:{__html:on(e,"_snippetResult.".concat(r,".value"))||on(e,r)}}))}function an(t,e){return function(r){if(Array.isArray(r))return r}(t)||function(r,n){var o=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(o!=null){var i,a,c=[],u=!0,s=!1;try{for(o=o.call(r);!(u=(i=o.next()).done)&&(c.push(i.value),!n||c.length!==n);u=!0);}catch(l){s=!0,a=l}finally{try{u||o.return==null||o.return()}finally{if(s)throw a}}return c}}(t,e)||function(r,n){if(r){if(typeof r=="string")return un(r,n);var o=Object.prototype.toString.call(r).slice(8,-1);if(o==="Object"&&r.constructor&&(o=r.constructor.name),o==="Map"||o==="Set")return Array.from(r);if(o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return un(r,n)}}(t,e)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function un(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r|<\/mark>)/g,oa=RegExp($n.source);function Qn(t){var e,r,n=t;if(!n.__docsearch_parent&&!t._highlightResult)return t.hierarchy.lvl0;var o=((n.__docsearch_parent?(e=n.__docsearch_parent)===null||e===void 0||(e=e._highlightResult)===null||e===void 0||(e=e.hierarchy)===null||e===void 0?void 0:e.lvl0:(r=t._highlightResult)===null||r===void 0||(r=r.hierarchy)===null||r===void 0?void 0:r.lvl0)||{}).value;return o&&oa.test(o)?o.replace($n,""):o}function Jt(){return Jt=Object.assign||function(t){for(var e=1;e=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function ca(t){var e=t.translations,r=e===void 0?{}:e,n=ua(t,aa),o=r.recentSearchesTitle,i=o===void 0?"Recent":o,a=r.noRecentSearchesText,c=a===void 0?"No recent searches":a,u=r.saveRecentSearchButtonTitle,s=u===void 0?"Save this search":u,l=r.removeRecentSearchButtonTitle,m=l===void 0?"Remove this search from history":l,p=r.favoriteSearchesTitle,v=p===void 0?"Favorite":p,d=r.removeFavoriteSearchButtonTitle,h=d===void 0?"Remove this search from favorites":d;return n.state.status==="idle"&&n.hasCollections===!1?n.disableUserPersonalization?null:f.createElement("div",{className:"DocSearch-StartScreen"},f.createElement("p",{className:"DocSearch-Help"},c)):n.hasCollections===!1?null:f.createElement("div",{className:"DocSearch-Dropdown-Container"},f.createElement(zt,ht({},n,{title:i,collection:n.state.collections[0],renderIcon:function(){return f.createElement("div",{className:"DocSearch-Hit-icon"},f.createElement(Ui,null))},renderAction:function(y){var b=y.item,_=y.runFavoriteTransition,S=y.runDeleteTransition;return f.createElement(f.Fragment,null,f.createElement("div",{className:"DocSearch-Hit-action"},f.createElement("button",{className:"DocSearch-Hit-action-button",title:s,type:"submit",onClick:function(O){O.preventDefault(),O.stopPropagation(),_(function(){n.favoriteSearches.add(b),n.recentSearches.remove(b),n.refresh()})}},f.createElement(tn,null))),f.createElement("div",{className:"DocSearch-Hit-action"},f.createElement("button",{className:"DocSearch-Hit-action-button",title:m,type:"submit",onClick:function(O){O.preventDefault(),O.stopPropagation(),S(function(){n.recentSearches.remove(b),n.refresh()})}},f.createElement(Wt,null))))}})),f.createElement(zt,ht({},n,{title:v,collection:n.state.collections[1],renderIcon:function(){return f.createElement("div",{className:"DocSearch-Hit-icon"},f.createElement(tn,null))},renderAction:function(y){var b=y.item,_=y.runDeleteTransition;return f.createElement("div",{className:"DocSearch-Hit-action"},f.createElement("button",{className:"DocSearch-Hit-action-button",title:h,type:"submit",onClick:function(S){S.preventDefault(),S.stopPropagation(),_(function(){n.favoriteSearches.remove(b),n.refresh()})}},f.createElement(Wt,null)))}})))}var la=["translations"];function yt(){return yt=Object.assign||function(t){for(var e=1;e=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}var fa=f.memo(function(t){var e=t.translations,r=e===void 0?{}:e,n=sa(t,la);if(n.state.status==="error")return f.createElement($i,{translations:r==null?void 0:r.errorScreen});var o=n.state.collections.some(function(i){return i.items.length>0});return n.state.query?o===!1?f.createElement(Gi,yt({},n,{translations:r==null?void 0:r.noResultsScreen})):f.createElement(ia,n):f.createElement(ca,yt({},n,{hasCollections:o,translations:r==null?void 0:r.startScreen}))},function(t,e){return e.state.status==="loading"||e.state.status==="stalled"}),ma=["translations"];function gt(){return gt=Object.assign||function(t){for(var e=1;e=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function va(t){var e=t.translations,r=e===void 0?{}:e,n=pa(t,ma),o=r.resetButtonTitle,i=o===void 0?"Clear the query":o,a=r.resetButtonAriaLabel,c=a===void 0?"Clear the query":a,u=r.cancelButtonText,s=u===void 0?"Cancel":u,l=r.cancelButtonAriaLabel,m=l===void 0?"Cancel":l,p=r.searchInputLabel,v=p===void 0?"Search":p,d=n.getFormProps({inputElement:n.inputRef.current}).onReset;return f.useEffect(function(){n.autoFocus&&n.inputRef.current&&n.inputRef.current.focus()},[n.autoFocus,n.inputRef]),f.useEffect(function(){n.isFromSelection&&n.inputRef.current&&n.inputRef.current.select()},[n.isFromSelection,n.inputRef]),f.createElement(f.Fragment,null,f.createElement("form",{className:"DocSearch-Form",onSubmit:function(h){h.preventDefault()},onReset:d},f.createElement("label",gt({className:"DocSearch-MagnifierLabel"},n.getLabelProps()),f.createElement(Un,null),f.createElement("span",{className:"DocSearch-VisuallyHiddenForAccessibility"},v)),f.createElement("div",{className:"DocSearch-LoadingIndicator"},f.createElement(Hi,null)),f.createElement("input",gt({className:"DocSearch-Input",ref:n.inputRef},n.getInputProps({inputElement:n.inputRef.current,autoFocus:n.autoFocus,maxLength:64}))),f.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":c,hidden:!n.state.query},f.createElement(Wt,null))),f.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":m,onClick:n.onClose},s))}var da=["_highlightResult","_snippetResult"];function ha(t,e){if(t==null)return{};var r,n,o=function(a,c){if(a==null)return{};var u,s,l={},m=Object.keys(a);for(s=0;s=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function ya(t){return function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch{return!1}}()===!1?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(e){return window.localStorage.setItem(t,JSON.stringify(e))},getItem:function(){var e=window.localStorage.getItem(t);return e?JSON.parse(e):[]}}}function sn(t){var e=t.key,r=t.limit,n=r===void 0?5:r,o=ya(e),i=o.getItem().slice(0,n);return{add:function(a){var c=a,u=(c._highlightResult,c._snippetResult,ha(c,da)),s=i.findIndex(function(l){return l.objectID===u.objectID});s>-1&&i.splice(s,1),i.unshift(u),i=i.slice(0,n),o.setItem(i)},remove:function(a){i=i.filter(function(c){return c.objectID!==a.objectID}),o.setItem(i)},getAll:function(){return i}}}var ga=["facetName","facetQuery"];function ba(t){var e,r="algoliasearch-client-js-".concat(t.key),n=function(){return e===void 0&&(e=t.localStorage||window.localStorage),e},o=function(){return JSON.parse(n().getItem(r)||"{}")},i=function(c){n().setItem(r,JSON.stringify(c))},a=function(){var c=t.timeToLive?1e3*t.timeToLive:null,u=o(),s=Object.fromEntries(Object.entries(u).filter(function(m){return se(m,2)[1].timestamp!==void 0}));if(i(s),c){var l=Object.fromEntries(Object.entries(s).filter(function(m){var p=se(m,2)[1],v=new Date().getTime();return!(p.timestamp+c2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then(function(){a();var l=JSON.stringify(c);return o()[l]}).then(function(l){return Promise.all([l?l.value:u(),l!==void 0])}).then(function(l){var m=se(l,2),p=m[0],v=m[1];return Promise.all([p,v||s.miss(p)])}).then(function(l){return se(l,1)[0]})},set:function(c,u){return Promise.resolve().then(function(){var s=o();return s[JSON.stringify(c)]={timestamp:new Date().getTime(),value:u},n().setItem(r,JSON.stringify(s)),u})},delete:function(c){return Promise.resolve().then(function(){var u=o();delete u[JSON.stringify(c)],n().setItem(r,JSON.stringify(u))})},clear:function(){return Promise.resolve().then(function(){n().removeItem(r)})}}}function Ee(t){var e=ft(t.caches),r=e.shift();return r===void 0?{get:function(n,o){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return o().then(function(a){return Promise.all([a,i.miss(a)])}).then(function(a){return se(a,1)[0]})},set:function(n,o){return Promise.resolve(o)},delete:function(n){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(n,o){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(n,o,i).catch(function(){return Ee({caches:e}).get(n,o,i)})},set:function(n,o){return r.set(n,o).catch(function(){return Ee({caches:e}).set(n,o)})},delete:function(n){return r.delete(n).catch(function(){return Ee({caches:e}).delete(n)})},clear:function(){return r.clear().catch(function(){return Ee({caches:e}).clear()})}}}function Tt(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{serializable:!0},e={};return{get:function(r,n){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}},i=JSON.stringify(r);if(i in e)return Promise.resolve(t.serializable?JSON.parse(e[i]):e[i]);var a=n(),c=o&&o.miss||function(){return Promise.resolve()};return a.then(function(u){return c(u)}).then(function(){return a})},set:function(r,n){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear:function(){return e={},Promise.resolve()}}}function _a(t){for(var e=t.length-1;e>0;e--){var r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function Zn(t,e){return e&&Object.keys(e).forEach(function(r){t[r]=e[r](t)}),t}function bt(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n0?n:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var me={Read:1,Write:2,Any:3},Yn=1,Oa=2,Gn=3;function Xn(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Yn;return I(I({},t),{},{status:e,lastUpdate:Date.now()})}function eo(t){return typeof t=="string"?{protocol:"https",url:t,accept:me.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||me.Any}}var $t="GET",_t="POST";function Sa(t,e){return Promise.all(e.map(function(r){return t.get(r,function(){return Promise.resolve(Xn(r))})})).then(function(r){var n=r.filter(function(a){return function(c){return c.status===Yn||Date.now()-c.lastUpdate>12e4}(a)}),o=r.filter(function(a){return function(c){return c.status===Gn&&Date.now()-c.lastUpdate<=12e4}(a)}),i=[].concat(ft(n),ft(o));return{getTimeout:function(a,c){return(o.length===0&&a===0?1:o.length+3+a)*c},statelessHosts:i.length>0?i.map(function(a){return eo(a)}):e}})}function mn(t,e,r,n){var o=[],i=function(p,v){if(!(p.method===$t||p.data===void 0&&v.data===void 0)){var d=Array.isArray(p.data)?p.data:I(I({},p.data),v.data);return JSON.stringify(d)}}(r,n),a=function(p,v){var d=I(I({},p.headers),v.headers),h={};return Object.keys(d).forEach(function(y){var b=d[y];h[y.toLowerCase()]=b}),h}(t,n),c=r.method,u=r.method!==$t?{}:I(I({},r.data),n.data),s=I(I(I({"x-algolia-agent":t.userAgent.value},t.queryParameters),u),n.queryParameters),l=0,m=function p(v,d){var h=v.pop();if(h===void 0)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:pn(o)};var y={data:i,headers:a,method:c,url:ja(h,r.path,s),connectTimeout:d(l,t.timeouts.connect),responseTimeout:d(l,n.timeout)},b=function(S){var O={request:y,response:S,host:h,triesLeft:v.length};return o.push(O),O},_={onSuccess:function(S){return function(O){try{return JSON.parse(O.content)}catch(g){throw function(P,C){return{name:"DeserializationError",message:P,response:C}}(g.message,O)}}(S)},onRetry:function(S){var O=b(S);return S.isTimedOut&&l++,Promise.all([t.logger.info("Retryable failure",ro(O)),t.hostsCache.set(h,Xn(h,S.isTimedOut?Gn:Oa))]).then(function(){return p(v,d)})},onFail:function(S){throw b(S),function(O,g){var P=O.content,C=O.status,q=P;try{q=JSON.parse(P).message}catch{}return function(x,D,N){return{name:"ApiError",message:x,status:D,transporterStackTrace:N}}(q,C,g)}(S,pn(o))}};return t.requester.send(y).then(function(S){return function(O,g){return function(P){var C=P.status;return P.isTimedOut||function(q){var x=q.isTimedOut,D=q.status;return!x&&~~D==0}(P)||~~(C/100)!=2&&~~(C/100)!=4}(O)?g.onRetry(O):~~(O.status/100)==2?g.onSuccess(O):g.onFail(O)}(S,_)})};return Sa(t.hostsCache,e).then(function(p){return m(ft(p.statelessHosts).reverse(),p.getTimeout)})}function wa(t){var e={value:"Algolia for JavaScript (".concat(t,")"),add:function(r){var n="; ".concat(r.segment).concat(r.version!==void 0?" (".concat(r.version,")"):"");return e.value.indexOf(n)===-1&&(e.value="".concat(e.value).concat(n)),e}};return e}function ja(t,e,r){var n=to(r),o="".concat(t.protocol,"://").concat(t.url,"/").concat(e.charAt(0)==="/"?e.substr(1):e);return n.length&&(o+="?".concat(n)),o}function to(t){return Object.keys(t).map(function(e){return bt("%s=%s",e,(r=t[e],Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]"?JSON.stringify(t[e]):t[e]));var r}).join("&")}function pn(t){return t.map(function(e){return ro(e)})}function ro(t){var e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return I(I({},t),{},{request:I(I({},t.request),{},{headers:I(I({},t.request.headers),e)})})}var Ea=function(t){var e=t.appId,r=function(i,a,c){var u={"x-algolia-api-key":c,"x-algolia-application-id":a};return{headers:function(){return i===st.WithinHeaders?u:{}},queryParameters:function(){return i===st.WithinQueryParameters?u:{}}}}(t.authMode!==void 0?t.authMode:st.WithinHeaders,e,t.apiKey),n=function(i){var a=i.hostsCache,c=i.logger,u=i.requester,s=i.requestsCache,l=i.responsesCache,m=i.timeouts,p=i.userAgent,v=i.hosts,d=i.queryParameters,h={hostsCache:a,logger:c,requester:u,requestsCache:s,responsesCache:l,timeouts:m,userAgent:p,headers:i.headers,queryParameters:d,hosts:v.map(function(y){return eo(y)}),read:function(y,b){var _=fn(b,h.timeouts.read),S=function(){return mn(h,h.hosts.filter(function(g){return(g.accept&me.Read)!=0}),y,_)};if((_.cacheable!==void 0?_.cacheable:y.cacheable)!==!0)return S();var O={request:y,mappedRequestOptions:_,transporter:{queryParameters:h.queryParameters,headers:h.headers}};return h.responsesCache.get(O,function(){return h.requestsCache.get(O,function(){return h.requestsCache.set(O,S()).then(function(g){return Promise.all([h.requestsCache.delete(O),g])},function(g){return Promise.all([h.requestsCache.delete(O),Promise.reject(g)])}).then(function(g){var P=se(g,2);return P[0],P[1]})})},{miss:function(g){return h.responsesCache.set(O,g)}})},write:function(y,b){return mn(h,h.hosts.filter(function(_){return(_.accept&me.Write)!=0}),y,fn(b,h.timeouts.write))}};return h}(I(I({hosts:[{url:"".concat(e,"-dsn.algolia.net"),accept:me.Read},{url:"".concat(e,".algolia.net"),accept:me.Write}].concat(_a([{url:"".concat(e,"-1.algolianet.com")},{url:"".concat(e,"-2.algolianet.com")},{url:"".concat(e,"-3.algolianet.com")}]))},t),{},{headers:I(I(I({},r.headers()),{"content-type":"application/x-www-form-urlencoded"}),t.headers),queryParameters:I(I({},r.queryParameters()),t.queryParameters)})),o={transporter:n,appId:e,addAlgoliaAgent:function(i,a){n.userAgent.add({segment:i,version:a})},clearCache:function(){return Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(function(){})}};return Zn(o,t.methods)},Pa=function(t){return function(e,r){return e.method===$t?t.transporter.read(e,r):t.transporter.write(e,r)}},no=function(t){return function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n={transporter:t.transporter,appId:t.appId,indexName:e};return Zn(n,r.methods)}},vn=function(t){return function(e,r){var n=e.map(function(o){return I(I({},o),{},{params:to(o.params||{})})});return t.transporter.read({method:_t,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)}},dn=function(t){return function(e,r){return Promise.all(e.map(function(n){var o=n.params,i=o.facetName,a=o.facetQuery,c=wo(o,ga);return no(t)(n.indexName,{methods:{searchForFacetValues:oo}}).searchForFacetValues(i,a,I(I({},r),c))}))}},Ia=function(t){return function(e,r,n){return t.transporter.read({method:_t,path:bt("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},n)}},ka=function(t){return function(e,r){return t.transporter.read({method:_t,path:bt("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r)}},oo=function(t){return function(e,r,n){return t.transporter.read({method:_t,path:bt("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},n)}},Da=1,Aa=2,Ca=3;function io(t,e,r){var n,o={appId:t,apiKey:e,timeouts:{connect:1,read:2,write:30},requester:{send:function(i){return new Promise(function(a){var c=new XMLHttpRequest;c.open(i.method,i.url,!0),Object.keys(i.headers).forEach(function(m){return c.setRequestHeader(m,i.headers[m])});var u,s=function(m,p){return setTimeout(function(){c.abort(),a({status:0,content:p,isTimedOut:!0})},1e3*m)},l=s(i.connectTimeout,"Connection timeout");c.onreadystatechange=function(){c.readyState>c.OPENED&&u===void 0&&(clearTimeout(l),u=s(i.responseTimeout,"Socket timeout"))},c.onerror=function(){c.status===0&&(clearTimeout(l),clearTimeout(u),a({content:c.responseText||"Network request failed",status:c.status,isTimedOut:!1}))},c.onload=function(){clearTimeout(l),clearTimeout(u),a({content:c.responseText,status:c.status,isTimedOut:!1})},c.send(i.data)})}},logger:(n=Ca,{debug:function(i,a){return Da>=n&&console.debug(i,a),Promise.resolve()},info:function(i,a){return Aa>=n&&console.info(i,a),Promise.resolve()},error:function(i,a){return console.error(i,a),Promise.resolve()}}),responsesCache:Tt(),requestsCache:Tt({serializable:!1}),hostsCache:Ee({caches:[ba({key:"".concat("4.19.1","-").concat(t)}),Tt()]}),userAgent:wa("4.19.1").add({segment:"Browser",version:"lite"}),authMode:st.WithinQueryParameters};return Ea(I(I(I({},o),r),{},{methods:{search:vn,searchForFacetValues:dn,multipleQueries:vn,multipleSearchForFacetValues:dn,customRequest:Pa,initIndex:function(i){return function(a){return no(i)(a,{methods:{search:ka,searchForFacetValues:oo,findAnswers:Ia}})}}}}))}io.version="4.19.1";var xa=["footer","searchBox"];function Be(){return Be=Object.assign||function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function La(t){var e=t.appId,r=t.apiKey,n=t.indexName,o=t.placeholder,i=o===void 0?"Search docs":o,a=t.searchParameters,c=t.maxResultsPerGroup,u=t.onClose,s=u===void 0?na:u,l=t.transformItems,m=l===void 0?ln:l,p=t.hitComponent,v=p===void 0?Mi:p,d=t.resultsFooterComponent,h=d===void 0?function(){return null}:d,y=t.navigator,b=t.initialScrollY,_=b===void 0?0:b,S=t.transformSearchClient,O=S===void 0?ln:S,g=t.disableUserPersonalization,P=g!==void 0&&g,C=t.initialQuery,q=C===void 0?"":C,x=t.translations,D=x===void 0?{}:x,N=t.getMissingResultsUrl,U=t.insights,F=U!==void 0&&U,M=D.footer,Ot=D.searchBox,St=Ra(D,xa),$e=Ta(f.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),B=$e[0],ao=$e[1],tr=f.useRef(null),wt=f.useRef(null),rr=f.useRef(null),Qe=f.useRef(null),he=f.useRef(null),Q=f.useRef(10),nr=f.useRef(typeof window<"u"?window.getSelection().toString().slice(0,64):"").current,ee=f.useRef(q||nr).current,or=function(j,k,T){return f.useMemo(function(){var H=io(j,k);return H.addAlgoliaAgent("docsearch","3.6.0"),/docsearch.js \(.*\)/.test(H.transporter.userAgent.value)===!1&&H.addAlgoliaAgent("docsearch-react","3.6.0"),T(H)},[j,k,T])}(e,r,O),oe=f.useRef(sn({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(n),limit:10})).current,ye=f.useRef(sn({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(n),limit:oe.getAll().length===0?7:4})).current,ge=f.useCallback(function(j){if(!P){var k=j.type==="content"?j.__docsearch_parent:j;k&&oe.getAll().findIndex(function(T){return T.objectID===k.objectID})===-1&&ye.add(k)}},[oe,ye,P]),uo=f.useCallback(function(j){if(B.context.algoliaInsightsPlugin&&j.__autocomplete_id){var k=j,T={eventName:"Item Selected",index:k.__autocomplete_indexName,items:[k],positions:[j.__autocomplete_id],queryID:k.__autocomplete_queryID};B.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(T)}},[B.context.algoliaInsightsPlugin]),be=f.useMemo(function(){return Ri({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:ee,context:{searchSuggestions:[]}},insights:F,navigator:y,onStateChange:function(j){ao(j.state)},getSources:function(j){var k=j.query,T=j.state,H=j.setContext,Z=j.setStatus;if(!k)return P?[]:[{sourceId:"recentSearches",onSelect:function(A){var V=A.item,_e=A.event;ge(V),at(_e)||s()},getItemUrl:function(A){return A.item.url},getItems:function(){return ye.getAll()}},{sourceId:"favoriteSearches",onSelect:function(A){var V=A.item,_e=A.event;ge(V),at(_e)||s()},getItemUrl:function(A){return A.item.url},getItems:function(){return oe.getAll()}}];var Y=!!F;return or.search([{query:k,indexName:n,params:Rt({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(Q.current),"hierarchy.lvl2:".concat(Q.current),"hierarchy.lvl3:".concat(Q.current),"hierarchy.lvl4:".concat(Q.current),"hierarchy.lvl5:".concat(Q.current),"hierarchy.lvl6:".concat(Q.current),"content:".concat(Q.current)],snippetEllipsisText:"…",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:Y},a)}]).catch(function(A){throw A.name==="RetryError"&&Z("error"),A}).then(function(A){var V=A.results[0],_e=V.hits,so=V.nbHits,jt=cn(_e,function(Et){return Qn(Et)},c);T.context.searchSuggestions.length0&&(ir(),he.current&&he.current.focus())},[ee,ir]),f.useEffect(function(){function j(){if(wt.current){var k=.01*window.innerHeight;wt.current.style.setProperty("--docsearch-vh","".concat(k,"px"))}}return j(),window.addEventListener("resize",j),function(){window.removeEventListener("resize",j)}},[]),f.createElement("div",Be({ref:tr},lo({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container",B.status==="stalled"&&"DocSearch-Container--Stalled",B.status==="error"&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(j){j.target===j.currentTarget&&s()}}),f.createElement("div",{className:"DocSearch-Modal",ref:wt},f.createElement("header",{className:"DocSearch-SearchBar",ref:rr},f.createElement(va,Be({},be,{state:B,autoFocus:ee.length===0,inputRef:he,isFromSelection:!!ee&&ee===nr,translations:Ot,onClose:s}))),f.createElement("div",{className:"DocSearch-Dropdown",ref:Qe},f.createElement(fa,Be({},be,{indexName:n,state:B,hitComponent:v,resultsFooterComponent:h,disableUserPersonalization:P,recentSearches:ye,favoriteSearches:oe,inputRef:he,translations:St,getMissingResultsUrl:N,onItemClick:function(j,k){uo(j),ge(j),at(k)||s()}}))),f.createElement("footer",{className:"DocSearch-Footer"},f.createElement(qi,{translations:M}))))}function Qt(){return Qt=Object.assign||function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&arguments[1]!==void 0?arguments[1]:window;return typeof e=="string"?r.document.querySelector(e):e}(t.container,t.environment))}const Ha={id:"docsearch"},Ba=mo({__name:"VPAlgoliaSearchBox",props:{algolia:{}},setup(t){const e=t,r=po(),n=vo(),{site:o,localeIndex:i,lang:a}=Oo();ho(c),yo(i,c);async function c(){var v,d;await go();const l={...e.algolia,...(v=e.algolia.locales)==null?void 0:v[i.value]},m=((d=l.searchParameters)==null?void 0:d.facetFilters)??[],p=[...(Array.isArray(m)?m:[m]).filter(h=>!h.startsWith("lang:")),`lang:${a.value}`];u({...l,searchParameters:{...l.searchParameters,facetFilters:p}})}function u(l){const m=Object.assign({},l,{container:"#docsearch",navigator:{navigate({itemUrl:p}){const{pathname:v}=new URL(window.location.origin+p);n.path===v?window.location.assign(window.location.origin+p):r.go(p)}},transformItems(p){return p.map(v=>Object.assign({},v,{url:s(v.url)}))},hitComponent({hit:p,children:v}){return{__v:null,type:"a",ref:void 0,constructor:void 0,key:void 0,props:{href:p.url,children:v}}}});Ma(m)}function s(l){const{pathname:m,hash:p}=new URL(l,location.origin);return m.replace(/\.html$/,o.value.cleanUrls?"":".html")+p}return(l,m)=>(bo(),_o("div",Ha))}});export{Ba as default}; diff --git a/assets/chunks/abap.DXFkqnOI.js b/assets/chunks/abap.DXFkqnOI.js new file mode 100644 index 000000000..687c4ad26 --- /dev/null +++ b/assets/chunks/abap.DXFkqnOI.js @@ -0,0 +1,816 @@ +const n=Object.freeze({displayName:"ABAP",fileTypes:["abap","ABAP"],foldingStartMarker:"/\\*\\*|\\{\\s*$",foldingStopMarker:"\\*\\*/|^\\s*\\}",name:"abap",patterns:[{captures:{1:{name:"punctuation.definition.comment.abap"}},match:"^\\*.*\\n?",name:"comment.line.full.abap"},{captures:{1:{name:"punctuation.definition.comment.abap"}},match:'".*\\n?',name:"comment.line.partial.abap"},{match:"(?|=>))([a-z_\\/][a-z_0-9\\/]*)(?=\\s+(?:=|\\+=|-=|\\*=|\\/=|&&=|&=)\\s+)",name:"variable.other.abap"},{match:"\\b[0-9]+(\\b|\\.|,)",name:"constant.numeric.abap"},{match:"(?ix)(^|\\s+)((PUBLIC|PRIVATE|PROTECTED)\\sSECTION)(?=\\s+|:|\\.)",name:"storage.modifier.class.abap"},{begin:"(?]*)+(?=\\s+|\\.)"},{begin:"(?=[A-Za-z_][A-Za-z0-9_]*)",end:"(?![A-Za-z0-9_])",patterns:[{include:"#generic_names"}]}]},{begin:"(?ix)^\\s*(INTERFACE)\\s([a-z_\\/][a-z_0-9\\/]*)",beginCaptures:{1:{name:"storage.type.block.abap"},2:{name:"entity.name.type.abap"}},end:"\\s*\\.\\s*\\n?",patterns:[{match:"(?ix)(?<=^|\\s)(DEFERRED|PUBLIC)(?=\\s+|\\.)",name:"storage.modifier.method.abap"}]},{begin:"(?ix)^\\s*(FORM)\\s([a-z_\\/][a-z_0-9\\/\\-\\?]*)",beginCaptures:{1:{name:"storage.type.block.abap"},2:{name:"entity.name.type.abap"}},end:"\\s*\\.\\s*\\n?",patterns:[{match:"(?ix)(?<=^|\\s)(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\\s+|\\.)",name:"storage.modifier.form.abap"},{include:"#abaptypes"},{include:"#keywords_followed_by_braces"}]},{match:"(?i)(endclass|endmethod|endform|endinterface)",name:"storage.type.block.end.abap"},{match:"(?i)(<[A-Za-z_][A-Za-z0-9_]*>)",name:"variable.other.field.symbol.abap"},{include:"#keywords"},{include:"#abap_constants"},{include:"#reserved_names"},{include:"#operators"},{include:"#builtin_functions"},{include:"#abaptypes"},{include:"#system_fields"},{include:"#sql_functions"},{include:"#sql_types"}],repository:{abap_constants:{match:`(?ix)(?<=\\s)(initial|null|space|abap_true|abap_false|abap_undefined|table_line| +%_final|%_hints|%_predefined|col_background|col_group|col_heading|col_key|col_negative|col_normal|col_positive|col_total| +adabas|as400|db2|db6|hdb|oracle|sybase|mssqlnt|pos_low|pos_high)(?=\\s|\\.|,)`,name:"constant.language.abap"},abaptypes:{patterns:[{match:"(?ix)\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|c|n|i|p|f|d|t|x)(?=\\s|\\.|,)",name:"support.type.abap"},{match:"(?ix)\\s(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=\\s|\\.|,)",name:"keyword.control.simple.abap"}]},arithmetic_operator:{match:"(?i)(?<=\\s)(\\+|\\-|\\*|\\*\\*|\\/|%|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\s)",name:"keyword.control.simple.abap"},builtin_functions:{match:"(?ix)(?<=\\s)(abs|sign|ceil|floor|trunc|frac|acos|asin|atan|cos|sin|tan|cosh|sinh|tanh|exp|log|log10|sqrt|strlen|xstrlen|charlen|lines|numofchar|dbmaxlen|round|rescale|nmax|nmin|cmax|cmin|boolc|boolx|xsdbool|contains|contains_any_of|contains_any_not_of|matches|line_exists|ipow|char_off|count|count_any_of|count_any_not_of|distance|condense|concat_lines_of|escape|find|find_end|find_any_of|find_any_not_of|insert|match|repeat|replace|reverse|segment|shift_left|shift_right|substring|substring_after|substring_from|substring_before|substring_to|to_upper|to_lower|to_mixed|from_mixed|translate|bit-set|line_index)(?=\\()",name:"entity.name.function.builtin.abap"},comparison_operator:{match:"(?i)(?<=\\s)(<|>|<\\=|>\\=|\\=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|o|z|m)(?=\\s)",name:"keyword.control.simple.abap"},control_keywords:{match:`(?ix)(^|\\s)( +at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif| +endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=\\s|\\.|:)`,name:"keyword.control.flow.abap"},generic_names:{match:"[A-Za-z_][A-Za-z0-9_]*"},keywords:{patterns:[{include:"#main_keywords"},{include:"#text_symbols"},{include:"#control_keywords"},{include:"#keywords_followed_by_braces"}]},keywords_followed_by_braces:{captures:{1:{name:"keyword.control.simple.abap"},2:{name:"variable.other.abap"}},match:"(?ix)\\b(data|value|field-symbol|final|reference|resumable)\\((?)\\)"},logical_operator:{match:"(?i)(?<=\\s)(not|or|and)(?=\\s)",name:"keyword.control.simple.abap"},main_keywords:{match:`(?ix)(?<=^|\\s)( +abap-source| +abstract| +accept| +accepting| +access| +according| +action| +activation| +actual| +add| +add-corresponding| +adjacent| +alias| +aliases| +align| +all| +allocate| +alpha| +amdp| +analysis| +analyzer| +append| +appending| +application| +archive| +area| +arithmetic| +as| +ascending| +assert| +assign| +assigned| +assigning| +association| +asynchronous| +at| +attributes| +authority| +authority-check| +authorization| +auto| +back| +background| +backward| +badi| +base| +before| +begin| +behavior| +between| +binary| +bit| +blank| +blanks| +block| +blocks| +bound| +boundaries| +bounds| +boxed| +break| +break-point| +buffer| +by| +bypassing| +byte| +byte-order| +call| +calling| +cast| +casting| +cds| +center| +centered| +change| +changing| +channels| +char-to-hex| +character| +check| +checkbox| +cid| +circular| +class| +class-data| +class-events| +class-method| +class-methods| +class-pool| +cleanup| +clear| +client| +clients| +clock| +clone| +close| +cnt| +code| +collect| +color| +column| +comment| +comments| +commit| +common| +communication| +comparing| +component| +components| +compression| +compute| +concatenate| +cond| +condense| +condition| +connection| +constant| +constants| +context| +contexts| +control| +controls| +conv| +conversion| +convert| +copy| +corresponding| +count| +country| +cover| +create| +currency| +current| +cursor| +customer-function| +data| +database| +datainfo| +dataset| +date| +daylight| +ddl| +deallocate| +decimals| +declarations| +deep| +default| +deferred| +define| +delete| +deleting| +demand| +descending| +describe| +destination| +detail| +determine| +dialog| +did| +directory| +discarding| +display| +display-mode| +distance| +distinct| +divide| +divide-corresponding| +dummy| +duplicate| +duplicates| +duration| +during| +dynpro| +edit| +editor-call| +empty| +enabled| +enabling| +encoding| +end| +end-enhancement-section| +end-of-definition| +end-of-page| +end-of-selection| +end-test-injection| +end-test-seam| +endenhancement| +endexec| +endfunction| +endian| +ending| +endmodule| +endprovide| +endselect| +endwith| +engineering| +enhancement| +enhancement-point| +enhancement-section| +enhancements| +entities| +entity| +entries| +entry| +enum| +environment| +equiv| +errors| +escape| +escaping| +event| +events| +exact| +except| +exception| +exception-table| +exceptions| +excluding| +exec| +execute| +exists| +exit| +exit-command| +expanding| +explicit| +exponent| +export| +exporting| +extended| +extension| +extract| +fail| +failed| +features| +fetch| +field| +field-groups| +field-symbols| +fields| +file| +fill| +filter| +filters| +final| +find| +first| +first-line| +fixed-point| +flush| +following| +for| +format| +forward| +found| +frame| +frames| +free| +from| +full| +function| +function-pool| +generate| +get| +giving| +graph| +group| +groups| +handle| +handler| +hashed| +having| +header| +headers| +heading| +help-id| +help-request| +hide| +hint| +hold| +hotspot| +icon| +id| +identification| +identifier| +ignore| +ignoring| +immediately| +implemented| +implicit| +import| +importing| +in| +inactive| +incl| +include| +includes| +increment| +index| +index-line| +indicators| +infotypes| +inheriting| +init| +initial| +initialization| +inner| +input| +insert| +instance| +instances| +intensified| +interface| +interface-pool| +interfaces| +internal| +intervals| +into| +inverse| +inverted-date| +is| +iso| +job| +join| +keep| +keeping| +kernel| +key| +keys| +keywords| +kind| +language| +last| +late| +layout| +leading| +leave| +left| +left-justified| +leftplus| +leftspace| +legacy| +length| +let| +level| +levels| +like| +line| +line-count| +line-selection| +line-size| +linefeed| +lines| +link| +list| +list-processing| +listbox| +load| +load-of-program| +local| +locale| +lock| +locks| +log-point| +logical| +lower| +mapped| +mapping| +margin| +mark| +mask| +match| +matchcode| +maximum| +members| +memory| +mesh| +message| +message-id| +messages| +messaging| +method| +methods| +mode| +modif| +modifier| +modify| +module| +move| +move-corresponding| +multiply| +multiply-corresponding| +name| +nametab| +native| +nested| +nesting| +new| +new-line| +new-page| +new-section| +next| +no| +no-display| +no-extension| +no-gap| +no-gaps| +no-grouping| +no-heading| +no-scrolling| +no-sign| +no-title| +no-zero| +nodes| +non-unicode| +non-unique| +number| +object| +objects| +objmgr| +obligatory| +occurence| +occurences| +occurrence| +occurrences| +occurs| +of| +offset| +on| +only| +open| +optional| +option| +options| +order| +others| +out| +outer| +output| +output-length| +overflow| +overlay| +pack| +package| +pad| +padding| +page| +parameter| +parameter-table| +parameters| +part| +partially| +pcre| +perform| +performing| +permissions| +pf-status| +places| +pool| +position| +pragmas| +preceeding| +precompiled| +preferred| +preserving| +primary| +print| +print-control| +private| +privileged| +procedure| +program| +property| +protected| +provide| +push| +pushbutton| +put| +query| +queue-only| +queueonly| +quickinfo| +radiobutton| +raising| +range| +ranges| +read| +read-only| +receive| +received| +receiving| +redefinition| +reduce| +ref| +reference| +refresh| +regex| +reject| +renaming| +replace| +replacement| +replacing| +report| +reported| +request| +requested| +required| +reserve| +reset| +resolution| +respecting| +response| +restore| +result| +results| +resumable| +resume| +retry| +return| +returning| +right| +right-justified| +rightplus| +rightspace| +rollback| +rows| +rp-provide-from-last| +run| +sap| +sap-spool| +save| +saving| +scale_preserving| +scale_preserving_scientific| +scan| +scientific| +scientific_with_leading_zero| +screen| +scroll| +scroll-boundary| +scrolling| +search| +seconds| +section| +select| +select-options| +selection| +selection-screen| +selection-set| +selection-sets| +selection-table| +selections| +send| +separate| +separated| +session| +set| +shared| +shift| +shortdump| +shortdump-id| +sign| +sign_as_postfix| +simple| +simulation| +single| +size| +skip| +skipping| +smart| +some| +sort| +sortable| +sorted| +source| +specified| +split| +spool| +spots| +sql| +stable| +stamp| +standard| +start-of-selection| +starting| +state| +statement| +statements| +static| +statics| +statusinfo| +step| +step-loop| +stop| +structure| +structures| +style| +subkey| +submatches| +submit| +subroutine| +subscreen| +substring| +subtract| +subtract-corresponding| +suffix| +sum| +summary| +supplied| +supply| +suppress| +switch| +symbol| +syntax-check| +syntax-trace| +system-call| +system-exceptions| +tab| +tabbed| +table| +tables| +tableview| +tabstrip| +target| +task| +tasks| +test| +test-injection| +test-seam| +testing| +text| +textpool| +then| +throw| +time| +times| +timestamp| +timezone| +title| +titlebar| +to| +tokens| +top-lines| +top-of-page| +trace-file| +trace-table| +trailing| +transaction| +transfer| +transformation| +translate| +transporting| +trmac| +truncate| +truncation| +type| +type-pool| +type-pools| +types| +uline| +unassign| +unbounded| +under| +unicode| +union| +unique| +unit| +unix| +unpack| +until| +unwind| +up| +update| +upper| +user| +user-command| +using| +utf-8| +uuid| +valid| +validate| +value| +value-request| +values| +vary| +varying| +version| +via| +visible| +wait| +when| +where| +width| +window| +windows| +with| +with-heading| +with-title| +without| +word| +work| +workspace| +write| +xml| +xsd| +yes| +zero| +zone +)(?=\\s|\\.|:|,)`,name:"keyword.control.simple.abap"},operators:{patterns:[{include:"#other_operator"},{include:"#arithmetic_operator"},{include:"#comparison_operator"},{include:"#logical_operator"}]},other_operator:{match:"(?<=\\s)(&&|&|\\?=|\\+=|-=|\\/=|\\*=|&&=|&=)(?=\\s)",name:"keyword.control.simple.abap"},reserved_names:{match:"(?ix)(?<=\\s)(me|super)(?=\\s|\\.|,|->)",name:"constant.language.abap"},sql_functions:{match:`(?ix)(?<=\\s)( +abap_system_timezone| +abap_user_timezone| +abs| +add_days| +add_months| +allow_precision_loss| +as_geo_json| +avg| +bintohex| +cast| +ceil| +coalesce| +concat_with_space| +concat| +corr_spearman| +corr| +count| +currency_conversion| +datn_add_days| +datn_add_months| +datn_days_between| +dats_add_days| +dats_add_months| +dats_days_between| +dats_from_datn| +dats_is_valid| +dats_tims_to_tstmp| +dats_to_datn| +dayname| +days_between| +dense_rank| +division| +div| +extract_day| +extract_hour| +extract_minute| +extract_month| +extract_second| +extract_year| +first_value| +floor| +grouping| +hextobin| +initcap| +instr| +is_valid| +lag| +last_value| +lead| +left| +length| +like_regexpr| +locate_regexpr_after| +locate_regexpr| +locate| +lower| +lpad| +ltrim| +max| +median| +min| +mod| +monthname| +ntile| +occurrences_regexpr| +over| +product| +rank| +replace_regexpr| +replace| +rigth| +round| +row_number| +rpad| +rtrim| +stddev| +string_agg| +substring_regexpr| +substring| +sum| +tims_from_timn| +tims_is_valid| +tims_to_timn| +to_blob| +to_clob| +tstmp_add_seconds| +tstmp_current_utctimestamp| +tstmp_is_valid| +tstmp_seconds_between| +tstmp_to_dats| +tstmp_to_dst| +tstmp_to_tims| +tstmpl_from_utcl| +tstmpl_to_utcl| +unit_conversion| +upper| +utcl_add_seconds| +utcl_current| +utcl_seconds_between| +uuid| +var| +weekday +)(?=\\()`,name:"entity.name.function.sql.abap"},sql_types:{match:"(?ix)(?<=\\s)(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=\\s|\\(|\\))",name:"entity.name.type.sql.abap"},system_fields:{captures:{1:{name:"variable.language.abap"},2:{name:"variable.language.abap"}},match:"(?ix)\\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=\\.|\\s)"},text_symbols:{captures:{1:{name:"keyword.control.simple.abap"},2:{name:"constant.numeric.abap"}},match:"(?ix)(?<=^|\\s)(text)-([A-Z0-9]{1,3})(?=\\s|\\.|:|,)"}},scopeName:"source.abap"});var e=[n];export{e as default}; diff --git a/assets/chunks/actionscript-3.D6NljDpC.js b/assets/chunks/actionscript-3.D6NljDpC.js new file mode 100644 index 000000000..0402f4234 --- /dev/null +++ b/assets/chunks/actionscript-3.D6NljDpC.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"ActionScript",fileTypes:["as"],name:"actionscript-3",patterns:[{include:"#comments"},{include:"#package"},{include:"#class"},{include:"#interface"},{include:"#namespace_declaration"},{include:"#import"},{include:"#mxml"},{include:"#strings"},{include:"#regexp"},{include:"#variable_declaration"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#other_operators"},{include:"#arithmetic_operators"},{include:"#logical_operators"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#control_keywords"},{include:"#other_keywords"},{include:"#use_namespace"},{include:"#functions"}],repository:{arithmetic_operators:{match:"(\\+|\\-|/|%|(?|\\^|!|\\?)",name:"keyword.operator.actionscript.3"},metadata:{begin:"\\[\\s*\\b(\\w+)\\b",beginCaptures:{1:{name:"keyword.other.actionscript.3"}},end:"\\]",name:"meta.metadata_info.actionscript.3",patterns:[{include:"#metadata_info"}]},metadata_info:{begin:"\\(",end:"\\)",patterns:[{include:"#strings"},{captures:{1:{name:"variable.parameter.actionscript.3"},2:{name:"keyword.operator.actionscript.3"}},match:"(\\w+)\\s*(=)"}]},method:{begin:"(?x) (^|\\s+) ((\\w+)\\s+)? ((\\w+)\\s+)? ((\\w+)\\s+)? ((\\w+)\\s+)? (?=\\bfunction\\b)",beginCaptures:{3:{name:"storage.modifier.actionscript.3"},5:{name:"storage.modifier.actionscript.3"},7:{name:"storage.modifier.actionscript.3"},8:{name:"storage.modifier.actionscript.3"}},end:"(?<=(;|\\}))",name:"meta.method.actionscript.3",patterns:[{include:"#functions"},{include:"#code_block"}]},mxml:{begin:"",name:"meta.cdata.actionscript.3",patterns:[{include:"#comments"},{include:"#import"},{include:"#metadata"},{include:"#class"},{include:"#namespace_declaration"},{include:"#use_namespace"},{include:"#class_declaration"},{include:"#method"},{include:"#comments"},{include:"#strings"},{include:"#regexp"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#other_keywords"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#other_operators"},{include:"#arithmetic_operators"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#variable_declaration"}]},namespace_declaration:{captures:{2:{name:"storage.modifier.actionscript.3"},3:{name:"storage.modifier.actionscript.3"}},match:"(?x) ((\\w+)\\s+)? (namespace) \\s+ (?:[A-Za-z0-9_\\$]+)",name:"meta.namespace_declaration.actionscript.3"},numbers:{match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b",name:"constant.numeric.actionscript.3"},object_literal:{begin:"\\{",end:"\\}",name:"meta.object_literal.actionscript.3",patterns:[{include:"#object_literal"},{include:"#comments"},{include:"#strings"},{include:"#regexp"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#functions"}]},other_keywords:{match:"\\b(as|delete|in|instanceof|is|native|new|to|typeof)\\b",name:"keyword.other.actionscript.3"},other_operators:{match:"(\\.|=)",name:"keyword.operator.actionscript.3"},package:{begin:"(^|\\s+)(package)\\b",beginCaptures:{2:{name:"keyword.other.actionscript.3"}},end:"\\}",name:"meta.package.actionscript.3",patterns:[{include:"#package_name"},{include:"#variable_declaration"},{include:"#method"},{include:"#comments"},{include:"#return_type"},{include:"#import"},{include:"#use_namespace"},{include:"#strings"},{include:"#numbers"},{include:"#language_constants"},{include:"#metadata"},{include:"#class"},{include:"#interface"},{include:"#namespace_declaration"}]},package_name:{begin:"(?<=package)\\s+([\\w\\._]*)\\b",end:"\\{",name:"meta.package_name.actionscript.3"},parameters:{begin:"(\\.\\.\\.)?\\s*([A-Za-z\\_\\$][A-Za-z0-9_\\$]*)(?:\\s*(\\:)\\s*(?:(?:([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)(?:\\.<([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)>)?)|(\\*)))?(?:\\s*(=))?",beginCaptures:{1:{name:"keyword.operator.actionscript.3"},2:{name:"variable.parameter.actionscript.3"},3:{name:"keyword.operator.actionscript.3"},4:{name:"support.type.actionscript.3"},5:{name:"support.type.actionscript.3"},6:{name:"support.type.actionscript.3"},7:{name:"keyword.operator.actionscript.3"}},end:",|(?=\\))",patterns:[{include:"#strings"},{include:"#numbers"},{include:"#language_constants"},{include:"#comments"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#guess_type"},{include:"#guess_constant"}]},primitive_error_types:{captures:{1:{name:"support.class.error.actionscript.3"}},match:"\\b((Argument|Definition|Eval|Internal|Range|Reference|Security|Syntax|Type|URI|Verify)?Error)\\b"},primitive_functions:{captures:{1:{name:"support.function.actionscript.3"}},match:"\\b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|isFinite|isNaN|isXMLName|parseFloat|parseInt|trace|unescape)(?=\\s*\\()"},primitive_types:{captures:{1:{name:"support.class.builtin.actionscript.3"}},match:"\\b(Array|Boolean|Class|Date|Function|int|JSON|Math|Namespace|Number|Object|QName|RegExp|String|uint|Vector|XML|XMLList|\\*(?<=a))\\b"},regexp:{begin:"(?<=[=(:,\\[]|^|return|&&|\\|\\||!)\\s*(/)(?![/*+{}?])",end:"$|(/)[igm]*",name:"string.regex.actionscript.3",patterns:[{match:"\\\\.",name:"constant.character.escape.actionscript.3"},{match:"\\[(\\\\\\]|[^\\]])*\\]",name:"constant.character.class.actionscript.3"}]},return_type:{captures:{1:{name:"keyword.operator.actionscript.3"},2:{name:"support.type.actionscript.3"},3:{name:"support.type.actionscript.3"},4:{name:"support.type.actionscript.3"}},match:"(\\:)\\s*(?:([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)(?:\\.<([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)>)?)|(\\*)"},strings:{patterns:[{begin:'"',end:'"',name:"string.quoted.double.actionscript.3",patterns:[{include:"#escapes"}]},{begin:"'",end:"'",name:"string.quoted.single.actionscript.3",patterns:[{include:"#escapes"}]}]},use_namespace:{captures:{2:{name:"keyword.other.actionscript.3"},3:{name:"keyword.other.actionscript.3"},4:{name:"storage.modifier.actionscript.3"}},match:"(?x) (^|\\s+|;) (use\\s+)? (namespace) \\s+ (\\w+) \\s* (;|$)"},variable_declaration:{captures:{2:{name:"storage.modifier.actionscript.3"},4:{name:"storage.modifier.actionscript.3"},6:{name:"storage.modifier.actionscript.3"},7:{name:"storage.modifier.actionscript.3"},8:{name:"keyword.operator.actionscript.3"}},match:"(?x) ((static)\\s+)? ((\\w+)\\s+)? ((static)\\s+)? (const|var) \\s+ (?:[A-Za-z0-9_\\$]+)(?:\\s*(:))?",name:"meta.variable_declaration.actionscript.3"},vector_creation_operators:{match:"(<|>)",name:"keyword.operator.actionscript.3"}},scopeName:"source.actionscript.3"});var t=[e];export{t as default}; diff --git a/assets/chunks/ada.CowR2XfX.js b/assets/chunks/ada.CowR2XfX.js new file mode 100644 index 000000000..799fae3ff --- /dev/null +++ b/assets/chunks/ada.CowR2XfX.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Ada",name:"ada",patterns:[{include:"#library_unit"},{include:"#comment"},{include:"#use_clause"},{include:"#with_clause"},{include:"#pragma"},{include:"#keyword"}],repository:{abort_statement:{begin:"(?i)\\babort\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.abort.ada",patterns:[{match:",",name:"punctuation.ada"},{match:"\\b(\\w|\\d|\\.|_)+\\b",name:"entity.name.task.ada"}]},accept_statement:{begin:"(?i)\\b(accept)\\s+((?:\\w|\\d|\\.|_)+)\\b",beginCaptures:{1:{name:"keyword.control.ada"},2:{name:"entity.name.accept.ada"}},end:"(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)",endCaptures:{1:{name:"keyword.control.ada"},2:{name:"entity.name.accept.ada"},3:{name:"punctuation.ada"}},name:"meta.statement.accept.ada",patterns:[{begin:"(?i)\\bdo\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{include:"#statement"}]},{include:"#parameter_profile"}]},access_definition:{captures:{1:{name:"storage.visibility.ada"},2:{name:"storage.visibility.ada"},3:{name:"storage.modifier.ada"},4:{name:"entity.name.type.ada"}},match:"(?i)(not\\s+null\\s+)?(access)\\s+(constant\\s+)?((?:\\w|\\d|\\.|_)+)\\b",name:"meta.declaration.access.definition.ada"},access_type_definition:{begin:"(?i)\\b(not\\s+null\\s+)?(access)\\b",beginCaptures:{1:{name:"storage.visibility.ada"},2:{name:"storage.visibility.ada"}},end:"(?i)(?=(with|;))",name:"meta.declaration.type.definition.access.ada",patterns:[{match:"(?i)\\ball\\b",name:"storage.visibility.ada"},{match:"(?i)\\bconstant\\b",name:"storage.modifier.ada"},{include:"#subtype_mark"}]},actual_parameter_part:{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",patterns:[{match:",",name:"punctuation.ada"},{include:"#parameter_association"}]},adding_operator:{match:"(\\+|-|\\&)",name:"keyword.operator.adding.ada"},array_aggregate:{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",name:"meta.definition.array.aggregate.ada",patterns:[{match:",",name:"punctuation.ada"},{include:"#positional_array_aggregate"},{include:"#array_component_association"}]},array_component_association:{captures:{1:{name:"variable.name.ada"},2:{name:"keyword.other.ada"},3:{patterns:[{match:"<>",name:"keyword.modifier.unknown.ada"},{include:"#expression"}]}},match:"(?i)\\b([^(=>)]*)\\s*(=>)\\s*([^,\\)]+)",name:"meta.definition.array.aggregate.component.ada"},array_dimensions:{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",name:"meta.declaration.type.definition.array.dimensions.ada",patterns:[{match:",",name:"punctuation.ada"},{match:"(?i)\\brange\\b",name:"storage.modifier.ada"},{match:"<>",name:"keyword.modifier.unknown.ada"},{match:"\\.\\.",name:"keyword.ada"},{include:"#expression"},{patterns:[{include:"#subtype_mark"}]}]},array_type_definition:{begin:"(?i)\\barray\\b",beginCaptures:{0:{name:"storage.modifier.ada"}},end:"(?i)(?=(with|;))",name:"meta.declaration.type.definition.array.ada",patterns:[{include:"#array_dimensions"},{match:"(?i)\\bof\\b",name:"storage.modifier.ada"},{match:"(?i)\\baliased\\b",name:"storage.visibility.ada"},{include:"#access_definition"},{include:"#subtype_mark"}]},aspect_clause:{begin:"(?i)\\b(for)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{patterns:[{include:"#subtype_mark"}]},3:{name:"punctuation.ada"},5:{name:"keyword.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.aspect.clause.ada",patterns:[{begin:"(?i)\\buse\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=;)",endCaptures:{0:{name:"punctuation.ada"}},patterns:[{include:"#record_representation_clause"},{include:"#array_aggregate"},{include:"#expression"}]},{begin:"(?i)(?<=for)",captures:{0:{name:"keyword.ada"}},end:"(?i)(?=use)",patterns:[{captures:{1:{patterns:[{include:"#subtype_mark"}]},2:{patterns:[{include:"#attribute"}]}},match:"((?:\\w|\\d|_)+)('((?:\\w|\\d|_)+))?"}]}]},aspect_definition:{begin:"=>",beginCaptures:{0:{name:"keyword.other.ada"}},end:"(?i)(?=(,|;|\\bis\\b))",name:"meta.aspect.definition.ada",patterns:[{include:"#expression"}]},aspect_mark:{captures:{1:{name:"keyword.control.directive.ada"},2:{name:"punctuation.ada"},3:{name:"entity.other.attribute-name.ada"}},match:"(?i)\\b((?:\\w|\\d|\\.|_)+)(?:(')(class))?\\b",name:"meta.aspect.mark.ada"},aspect_specification:{begin:"(?i)\\bwith\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=(;|\\bis\\b))",name:"meta.aspect.specification.ada",patterns:[{match:",",name:"punctuation.ada"},{captures:{1:{name:"storage.modifier.ada"},2:{name:"storage.modifier.ada"}},match:"(?i)\\b(null)\\s+(record)\\b"},{begin:"(?i)\\brecord\\b",beginCaptures:{0:{name:"storage.modifier.ada"}},end:"(?i)\\b(end)\\s+(record)\\b",endCaptures:{1:{name:"keyword.ada"},2:{name:"storage.modifier.ada"}},patterns:[{include:"#component_item"}]},{captures:{0:{name:"storage.visibility.ada"}},match:"(?i)\\bprivate\\b"},{include:"#aspect_definition"},{include:"#aspect_mark"},{include:"#comment"}]},assignment_statement:{begin:`\\b((?:\\w|\\d|\\.|_|\\(|\\)|"|'|\\s)+)\\s*(:=)`,beginCaptures:{1:{patterns:[{match:"((?:\\w|\\d|\\.|_)+)",name:"variable.name.ada"},{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",patterns:[{include:"#expression"}]}]},2:{name:"keyword.operator.new.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.assignment.ada",patterns:[{include:"#expression"},{include:"#comment"}]},attribute:{captures:{1:{name:"punctuation.ada"},2:{name:"entity.other.attribute-name.ada"}},match:"(')((?:\\w|\\d|_)+)\\b",name:"meta.attribute.ada"},based_literal:{captures:{1:{name:"constant.numeric.base.ada"},2:{name:"punctuation.ada"},3:{name:"punctuation.ada"},4:{name:"punctuation.radix-point.ada"},5:{name:"punctuation.ada"},6:{name:"constant.numeric.base.ada"},7:{patterns:[{include:"#exponent_part"}]}},match:"(?i)(\\d(?:(_)?\\d)*#)[0-9a-f](?:(_)?[0-9a-f])*(?:(\\.)[0-9a-f](?:(_)?[0-9a-f])*)?(#)([eE](?:\\+|\\-)?\\d(?:_?\\d)*)?",name:"constant.numeric.ada"},basic_declaration:{patterns:[{include:"#type_declaration"},{include:"#subtype_declaration"},{include:"#exception_declaration"},{include:"#object_declaration"},{include:"#single_protected_declaration"},{include:"#single_task_declaration"},{include:"#subprogram_specification"},{include:"#package_declaration"},{include:"#pragma"},{include:"#comment"}]},basic_declarative_item:{patterns:[{include:"#basic_declaration"},{include:"#aspect_clause"},{include:"#use_clause"},{include:"#keyword"}]},block_statement:{begin:"(?i)\\bdeclare\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(end)(\\s+(?:\\w|\\d|_)+)?\\s*(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.label.ada"},3:{name:"punctuation.ada"}},name:"meta.statement.block.ada",patterns:[{begin:"(?i)(?<=declare)",end:"(?i)\\bbegin\\b",endCaptures:{0:{name:"keyword.ada"}},patterns:[{include:"#body"},{include:"#basic_declarative_item"}]},{begin:"(?i)(?<=begin)",end:"(?i)(?=end)",patterns:[{include:"#statement"}]}]},body:{patterns:[{include:"#subprogram_body"},{include:"#package_body"},{include:"#task_body"},{include:"#protected_body"}]},case_statement:{begin:"(?i)\\bcase\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(end)\\s+(case)\\s*(;)",endCaptures:{1:{name:"keyword.control.ada"},2:{name:"keyword.control.ada"},3:{name:"punctuation.ada"}},name:"meta.statement.case.ada",patterns:[{begin:"(?i)(?<=case)\\b",end:"(?i)\\bis\\b",endCaptures:{0:{name:"keyword.control.ada"}},patterns:[{include:"#expression"}]},{begin:"(?i)\\bwhen\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"=>",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.case.alternative.ada",patterns:[{match:"(?i)\\bothers\\b",name:"keyword.modifier.unknown.ada"},{match:"\\|",name:"punctuation.ada"},{include:"#expression"}]},{include:"#statement"}]},character_literal:{captures:{0:{patterns:[{match:"'",name:"punctuation.definition.string.ada"}]}},match:"'.'",name:"string.quoted.single.ada"},comment:{patterns:[{include:"#preprocessor"},{include:"#comment-section"},{include:"#comment-doc"},{include:"#comment-line"}]},"comment-doc":{captures:{1:{name:"comment.line.double-dash.ada"},2:{name:"punctuation.definition.tag.ada"},3:{name:"entity.name.tag.ada"},4:{name:"comment.line.double-dash.ada"}},match:"(--)\\s*(@)(\\w+)\\s+(.*)$",name:"comment.block.documentation.ada"},"comment-line":{match:"--.*$",name:"comment.line.double-dash.ada"},"comment-section":{captures:{1:{name:"entity.name.section.ada"}},match:"--\\s*([^-].*?[^-])\\s*--\\s*$",name:"comment.line.double-dash.ada"},component_clause:{begin:"(?i)\\b((?:\\w|\\d|_)+)\\b",beginCaptures:{0:{name:"variable.name.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.aspect.clause.record.representation.component.ada",patterns:[{begin:"(?i)\\bat\\b",beginCaptures:{0:{name:"storage.modifier.ada"}},end:"(?i)\\b(?=range)\\b",patterns:[{include:"#expression"}]},{include:"#range_constraint"}]},component_declaration:{begin:"(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)",beginCaptures:{1:{patterns:[{match:",",name:"punctuation.ada"},{match:"\\b(\\w|\\d|_)+\\b",name:"variable.name.ada"}]},2:{name:"punctuation.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.declaration.type.definition.record.component.ada",patterns:[{patterns:[{match:":=",name:"keyword.operator.new.ada"},{include:"#expression"}]},{include:"#component_definition"}]},component_definition:{patterns:[{match:"(?i)\\baliased\\b",name:"storage.visibility.ada"},{match:"(?i)\\brange\\b",name:"storage.modifier.ada"},{match:"\\.\\.",name:"keyword.ada"},{include:"#access_definition"},{include:"#subtype_mark"}]},component_item:{patterns:[{include:"#component_declaration"},{include:"#variant_part"},{include:"#comment"},{include:"#aspect_clause"},{captures:{1:{name:"keyword.ada"},2:{name:"punctuation.ada"}},match:"(?i)\\b(null)\\s*(;)"}]},composite_constraint:{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",name:"meta.declaration.constraint.composite.ada",patterns:[{match:",",name:"punctuation.ada"},{match:"\\.\\.",name:"keyword.ada"},{captures:{1:{name:"variable.name.ada"},2:{name:"keyword.other.ada"},3:{patterns:[{include:"#expression"}]}},match:"(?i)\\b((?:\\w|\\d|_)+)\\s*(=>)\\s*([^,\\)])+\\b"},{include:"#expression"}]},decimal_literal:{captures:{1:{name:"punctuation.ada"},2:{name:"punctuation.radix-point.ada"},3:{name:"punctuation.ada"},4:{patterns:[{include:"#exponent_part"}]}},match:"\\d(?:(_)?\\d)*(?:(\\.)\\d(?:(_)?\\d)*)?([eE](?:\\+|\\-)?\\d(?:_?\\d)*)?",name:"constant.numeric.ada"},declarative_item:{patterns:[{include:"#body"},{include:"#basic_declarative_item"}]},delay_relative_statement:{begin:"(?i)\\b(delay)\\b",beginCaptures:{1:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},patterns:[{include:"#expression"}]},delay_statement:{patterns:[{include:"#delay_until_statement"},{include:"#delay_relative_statement"}]},delay_until_statement:{begin:"(?i)\\b(delay)\\s+(until)\\b",beginCaptures:{1:{name:"keyword.control.ada"},2:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.delay.until.ada",patterns:[{include:"#expression"}]},derived_type_definition:{name:"meta.declaration.type.definition.derived.ada",patterns:[{begin:"(?i)\\bnew\\b",beginCaptures:{0:{name:"storage.modifier.ada"}},end:"(?i)(?=(\\bwith\\b|;))",patterns:[{match:"(?i)\\band\\b",name:"storage.modifier.ada"},{include:"#subtype_mark"}]},{match:"(?i)\\b(abstract|and|limited|tagged)\\b",name:"storage.modifier.ada"},{match:"(?i)\\bprivate\\b",name:"storage.visibility.ada"},{include:"#subtype_mark"}]},discriminant_specification:{begin:"(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)",beginCaptures:{1:{patterns:[{match:",",name:"punctuation.ada"},{match:"\\b(\\w|\\d|_)+\\b",name:"variable.name.ada"}]},2:{name:"punctuation.ada"}},end:"(?=(;|\\)))",patterns:[{begin:":=",beginCaptures:{0:{name:"keyword.operator.new.ada"}},end:"(?=(;|\\)))",patterns:[{include:"#expression"}]},{captures:{1:{name:"storage.visibility.ada"},2:{patterns:[{include:"#subtype_mark"}]}},match:"(?i)(not\\s+null\\s+)?((?:\\w|\\d|\\.|_)+)\\b"},{include:"#access_definition"}]},entry_body:{begin:"(?i)\\b(entry)\\s+((?:\\w|\\d|_)+)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.entry.ada"}},end:"(?i)\\b(end)\\s*(\\s\\2)\\s*(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.entry.ada"},3:{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=begin)\\b",patterns:[{include:"#declarative_item"}]},{begin:"(?i)\\bbegin\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{include:"#statement"}]},{begin:"(?i)\\bwhen\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=is)\\b",patterns:[{include:"#expression"}]},{include:"#parameter_profile"}]},entry_declaration:{begin:"(?i)\\b(?:(not)?\\s+(overriding)\\s+)?(entry)\\s+((?:\\w|\\d|_)+)\\b",beginCaptures:{1:{name:"storage.modifier.ada"},2:{name:"storage.modifier.ada"},3:{name:"keyword.ada"},4:{name:"entity.name.entry.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},patterns:[{include:"#parameter_profile"}]},enumeration_type_definition:{begin:"\\(",beginCaptures:{0:{name:"punctuation.ada"}},end:"\\)",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.declaration.type.definition.enumeration.ada",patterns:[{match:",",name:"punctuation.ada"},{match:"\\b(\\w|\\d|_)+\\b",name:"variable.name.ada"},{include:"#comment"}]},exception_declaration:{begin:"(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)\\s*(exception)",beginCaptures:{1:{patterns:[{match:",",name:"punctuation.ada"},{match:"\\b(\\w|\\d|_)+\\b",name:"entity.name.exception.ada"}]},2:{name:"punctuation.ada"},3:{name:"storage.type.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.declaration.exception.ada",patterns:[{match:"(?i)\\b(renames)\\s+((\\w|\\d|_|\\.)+)",name:"entity.name.exception.ada"}]},exit_statement:{begin:"(?i)\\bexit\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.exit.ada",patterns:[{begin:"(?i)\\bwhen\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?=;)",patterns:[{include:"#expression"}]},{match:"(?:\\w|\\d|_)+",name:"entity.name.label.ada"}]},exponent_part:{captures:{1:{name:"punctuation.exponent-mark.ada"},2:{name:"keyword.operator.unary.ada"},3:{name:"punctuation.ada"}},match:"([eE])(\\+|\\-)?\\d(?:(_)?\\d)*"},expression:{name:"meta.expression.ada",patterns:[{match:"(?i)\\bnull\\b",name:"constant.language.ada"},{match:"=>(\\+)?",name:"keyword.other.ada"},{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",patterns:[{include:"#expression"}]},{match:",",name:"punctuation.ada"},{match:"\\.\\.",name:"keyword.ada"},{include:"#value"},{include:"#attribute"},{include:"#comment"},{include:"#operator"},{match:"(?i)\\b(and|or|xor)\\b",name:"keyword.ada"},{match:"(?i)\\b(if|then|else|elsif|in|for|(?",endCaptures:{0:{name:"keyword.other.ada"}},patterns:[{include:"#expression"}]},handled_sequence_of_statements:{patterns:[{begin:"(?i)\\bexception\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",name:"meta.handler.exception.ada",patterns:[{begin:"(?i)\\bwhen\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"=>",endCaptures:{0:{name:"keyword.other.ada"}},patterns:[{captures:{1:{name:"variable.name.ada"},2:{name:"punctuation.ada"}},match:"\\b((?:\\w|\\d|\\.|_)+)\\s*(:)"},{match:"\\|",name:"punctuation.ada"},{match:"(?i)\\bothers\\b",name:"keyword.ada"},{match:"(?:\\w|\\d|\\.|_)+",name:"entity.name.exception.ada"}]},{include:"#statement"}]},{include:"#statement"}]},highest_precedence_operator:{match:"(?i)(\\*\\*|\\babs\\b|\\bnot\\b)",name:"keyword.operator.highest-precedence.ada"},if_statement:{begin:"(?i)\\bif\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(end)\\s+(if)\\s*(;)",endCaptures:{1:{name:"keyword.control.ada"},2:{name:"keyword.control.ada"},3:{name:"punctuation.ada"}},name:"meta.statement.if.ada",patterns:[{begin:"(?i)\\belsif\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)(?:(?",name:"keyword.modifier.unknown.ada"},{match:"(\\+|-|\\*|/)",name:"keyword.operator.arithmetic.ada"},{match:":=",name:"keyword.operator.assignment.ada"},{match:"(=|/=|<|>|<=|>=)",name:"keyword.operator.logic.ada"},{match:"\\&",name:"keyword.operator.concatenation.ada"}]},known_discriminant_part:{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",name:"meta.declaration.type.discriminant.ada",patterns:[{match:";",name:"punctuation.ada"},{include:"#discriminant_specification"}]},label:{captures:{1:{name:"punctuation.label.ada"},2:{name:"entity.name.label.ada"},3:{name:"punctuation.label.ada"}},match:"(<<)?((?:\\w|\\d|_)+)\\s*(:[^=]|>>)",name:"meta.label.ada"},library_unit:{name:"meta.library.unit.ada",patterns:[{include:"#package_body"},{include:"#package_specification"},{include:"#subprogram_body"}]},loop_statement:{patterns:[{include:"#simple_loop_statement"},{include:"#while_loop_statement"},{include:"#for_loop_statement"}]},modular_type_definition:{begin:"(?i)\\b(mod)\\b",beginCaptures:{1:{name:"storage.modifier.ada"}},end:"(?i)(?=(with|;))",patterns:[{match:"<>",name:"keyword.modifier.unknown.ada"},{include:"#expression"}]},multiplying_operator:{match:"(?i)(\\*|/|\\bmod\\b|\\brem\\b)",name:"keyword.operator.multiplying.ada"},null_statement:{captures:{1:{name:"keyword.ada"},2:{name:"punctuation.ada"}},match:"(?i)\\b(null)\\s*(;)",name:"meta.statement.null.ada"},object_declaration:{begin:"(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)*)\\s*(:)",beginCaptures:{1:{patterns:[{match:",",name:"punctuation.ada"},{match:"\\b(\\w|\\d|_)+\\b",name:"variable.name.ada"}]},2:{name:"punctuation.ada"}},end:"(;)",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.declaration.object.ada",patterns:[{begin:"(?<=:)",end:"(?:(?=;)|(:=)|(\\brenames\\b))",endCaptures:{1:{name:"keyword.operator.new.ada"},2:{name:"keyword.ada"}},patterns:[{match:"(?i)\\bconstant\\b",name:"storage.modifier.ada"},{match:"(?i)\\baliased\\b",name:"storage.visibility.ada"},{include:"#aspect_specification"},{include:"#subtype_mark"}]},{begin:"(?<=:=)",end:"(?=;)",patterns:[{include:"#aspect_specification"},{include:"#expression"}]},{begin:"(?<=renames)",end:"(?=;)",patterns:[{include:"#aspect_specification"}]}]},operator:{patterns:[{include:"#highest_precedence_operator"},{include:"#multiplying_operator"},{include:"#adding_operator"},{include:"#relational_operator"},{include:"#logical_operator"}]},package_body:{begin:"(?i)\\b(package)\\s+(body)\\s+((?:\\w|\\d|\\.|_)+)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{name:"keyword.ada"},3:{patterns:[{include:"#package_mark"}]}},end:"(?i)\\b(end)\\s+(\\3)\\s*(;)",endCaptures:{1:{name:"keyword.ada"},2:{patterns:[{include:"#package_mark"}]},3:{name:"punctuation.ada"}},name:"meta.declaration.package.body.ada",patterns:[{begin:"(?i)\\bbegin\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{include:"#handled_sequence_of_statements"}]},{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=(\\bbegin\\b|\\bend\\b))",patterns:[{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#declarative_item"},{include:"#comment"}]},{include:"#aspect_specification"}]},package_declaration:{patterns:[{include:"#package_specification"}]},package_mark:{match:"\\b(\\w|\\d|\\.|_)+\\b",name:"entity.name.package.ada"},package_specification:{begin:"(?i)\\b(package)\\s+((?:\\w|\\d|\\.|_)+)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{patterns:[{include:"#package_mark"}]}},end:"(?i)(?:\\b(end)\\s+(\\2)\\s*)?(;)",endCaptures:{1:{name:"keyword.ada"},2:{patterns:[{include:"#package_mark"}]},3:{name:"punctuation.ada"}},name:"meta.declaration.package.specification.ada",patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=(end|;))",patterns:[{begin:"(?i)\\bnew\\b",beginCaptures:{0:{name:"keyword.operator.new.ada"}},end:"(?=;)",name:"meta.declaration.package.generic.ada",patterns:[{include:"#package_mark"},{include:"#actual_parameter_part"}]},{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#basic_declarative_item"},{include:"#comment"}]},{include:"#aspect_specification"}]},parameter_association:{patterns:[{captures:{1:{name:"variable.parameter.ada"},2:{name:"keyword.other.ada"}},match:"((?:\\w|\\d|_)+)\\s*(=>)"},{include:"#expression"}]},parameter_profile:{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",patterns:[{match:";",name:"punctuation.ada"},{include:"#parameter_specification"}]},parameter_specification:{patterns:[{begin:":(?!=)",beginCaptures:{0:{name:"punctuation.ada"}},end:"(?=[:;)])",name:"meta.type.annotation.ada",patterns:[{match:"(?i)\\b(in|out)\\b",name:"keyword.ada"},{include:"#subtype_mark"}]},{begin:":=",beginCaptures:{0:{name:"keyword.operator.new.ada"}},end:"(?=[:;)])",patterns:[{include:"#expression"}]},{match:",",name:"punctuation.ada"},{match:"\\b(?:\\w|\\d|\\.|_)+\\b",name:"variable.parameter.ada"},{include:"#comment"}]},positional_array_aggregate:{name:"meta.definition.array.aggregate.positional.ada",patterns:[{captures:{1:{name:"keyword.ada"},2:{name:"keyword.other.ada"},3:{patterns:[{match:"<>",name:"keyword.modifier.unknown.ada"},{include:"#expression"}]}},match:"(?i)\\b(others)\\s*(=>)\\s*([^,\\)]+)"},{include:"#expression"}]},pragma:{begin:"(?i)\\b(pragma)\\s+((?:\\w|\\d|_)+)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{name:"keyword.control.directive.ada"}},end:"(;)",endCaptures:{1:{name:"punctuation.ada"}},name:"meta.pragma.ada",patterns:[{include:"#expression"}]},preprocessor:{name:"meta.preprocessor.ada",patterns:[{captures:{1:{name:"punctuation.definition.directive.ada"},2:{name:"keyword.control.directive.conditional.ada"},3:{patterns:[{include:"#expression"}]}},match:"^\\s*(#)(if|elsif)\\s+(.*)$"},{captures:{1:{name:"punctuation.definition.directive.ada"},2:{name:"keyword.control.directive.conditional"},3:{name:"punctuation.ada"}},match:"^\\s*(#)(end if)(;)"},{captures:{1:{name:"punctuation.definition.directive.ada"},2:{name:"keyword.control.directive.conditional"}},match:"^\\s*(#)(else)"}]},procedure_body:{begin:"(?i)\\b(overriding\\s+)?(procedure)\\s+((?:\\w|\\d|\\.|_)+)\\b",beginCaptures:{1:{name:"storage.visibility.ada"},2:{name:"keyword.ada"},3:{name:"entity.name.function.ada"}},end:"(?i)(?:\\b(end)\\s+(\\3)\\s*)?(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.function.ada"},3:{name:"punctuation.ada"}},name:"meta.declaration.procedure.body.ada",patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=(with|begin|;))",patterns:[{begin:"(?i)\\bnew\\b",beginCaptures:{0:{name:"keyword.operator.new.ada"}},end:"(?=;)",name:"meta.declaration.package.generic.ada",patterns:[{match:"((?:\\w|\\d|\\.|_)+)",name:"entity.name.function.ada"},{include:"#actual_parameter_part"}]},{match:"(?i)\\b(null|abstract)\\b",name:"storage.modifier.ada"},{include:"#declarative_item"}]},{begin:"(?i)\\bbegin\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=\\bend\\b)",patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#subprogram_renaming_declaration"},{include:"#aspect_specification"},{include:"#parameter_profile"},{include:"#comment"}]},procedure_call_statement:{begin:"(?i)\\b((?:\\w|\\d|_|\\.)+)\\b",beginCaptures:{1:{name:"entity.name.function.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.call.ada",patterns:[{include:"#attribute"},{include:"#actual_parameter_part"},{include:"#comment"}]},procedure_specification:{patterns:[{include:"#procedure_body"}]},protected_body:{begin:"(?i)\\b(protected)\\s+(body)\\s+((?:\\w|\\d|\\.|_)+)\\b",beginCaptures:{1:{name:"storage.modifier.ada"},2:{name:"keyword.ada"},3:{name:"entity.name.body.ada"}},end:"(?i)(?:\\b(end)\\s*(\\s\\3)\\s*)(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.body.ada"},3:{name:"punctuation.ada"}},name:"meta.declaration.procedure.body.ada",patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{include:"#protected_operation_item"}]}]},protected_element_declaration:{patterns:[{include:"#subprogram_specification"},{include:"#aspect_clause"},{include:"#entry_declaration"},{include:"#component_declaration"},{include:"#pragma"}]},protected_operation_item:{patterns:[{include:"#subprogram_specification"},{include:"#subprogram_body"},{include:"#aspect_clause"},{include:"#entry_body"}]},raise_expression:{begin:"(?i)\\braise\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?=;)",name:"meta.expression.raise.ada",patterns:[{begin:"(?i)\\bwith\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=(;|\\))",patterns:[{include:"#expression"}]},{match:"\\b(\\w|\\d|_)+\\b",name:"entity.name.exception.ada"}]},raise_statement:{begin:"(?i)\\braise\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.raise.ada",patterns:[{begin:"(?i)\\bwith\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?=;)",patterns:[{include:"#expression"}]},{match:"\\b(\\w|\\d|\\.|_)+\\b",name:"entity.name.exception.ada"}]},range_constraint:{begin:"(?i)\\brange\\b",beginCaptures:{0:{name:"storage.modifier.ada"}},end:"(?=(\\bwith\\b|;))",patterns:[{match:"\\.\\.",name:"keyword.ada"},{match:"<>",name:"keyword.modifier.unknown.ada"},{include:"#expression"}]},real_type_definition:{name:"meta.declaration.type.definition.real-type.ada",patterns:[{include:"#scalar_constraint"}]},record_representation_clause:{begin:"(?i)\\b(record)\\b",beginCaptures:{1:{name:"storage.modifier.ada"}},end:"(?i)\\b(end)\\s+(record)\\b",endCaptures:{1:{name:"keyword.ada"},2:{name:"storage.modifier.ada"}},name:"meta.aspect.clause.record.representation.ada",patterns:[{include:"#component_clause"},{include:"#comment"}]},record_type_definition:{patterns:[{captures:{1:{name:"storage.modifier.ada"},2:{name:"storage.modifier.ada"},3:{name:"storage.modifier.ada"},4:{name:"storage.modifier.ada"},5:{name:"storage.modifier.ada"}},match:"(?i)\\b(?:(abstract)\\s+)?(?:(tagged)\\s+)?(?:(limited)\\s+)?(null)\\s+(record)\\b",name:"meta.declaration.type.definition.record.null.ada",patterns:[{include:"#component_item"}]},{begin:"(?i)\\b(?:(abstract)\\s+)?(?:(tagged)\\s+)?(?:(limited)\\s+)?(record)\\b",beginCaptures:{1:{name:"storage.modifier.ada"},2:{name:"storage.modifier.ada"},3:{name:"storage.modifier.ada"},4:{name:"storage.modifier.ada"}},end:"(?i)\\b(end)\\s+(record)\\b",endCaptures:{1:{name:"keyword.ada"},2:{name:"storage.modifier.ada"}},name:"meta.declaration.type.definition.record.ada",patterns:[{include:"#component_item"}]}]},regular_type_declaration:{begin:"(?i)\\b(type)\\b",beginCaptures:{1:{name:"keyword.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.declaration.type.definition.regular.ada",patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=(with(?!\\s+(private))|;))",patterns:[{include:"#type_definition"}]},{begin:"(?i)\\b(?<=type)\\b",end:"(?i)(?=(is|;))",patterns:[{include:"#known_discriminant_part"},{include:"#subtype_mark"}]},{include:"#aspect_specification"}]},relational_operator:{match:"(=|/=|<|<=|>|>=)",name:"keyword.operator.relational.ada"},requeue_statement:{begin:"(?i)\\brequeue\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.requeue.ada",patterns:[{match:"(?i)\\b(with|abort)\\b",name:"keyword.control.ada"},{match:"\\b(\\w|\\d|\\.|_)+\\b",name:"entity.name.function.ada"}]},result_profile:{begin:"(?i)\\breturn\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=(is|with|renames|;))",patterns:[{include:"#subtype_mark"}]},return_statement:{begin:"(?i)\\breturn\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.return.ada",patterns:[{begin:"(?i)\\bdo\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(end)\\s+(return)\\s*(?=;)",endCaptures:{1:{name:"keyword.control.ada"},2:{name:"keyword.control.ada"}},patterns:[{include:"#label"},{include:"#statement"}]},{captures:{1:{name:"variable.name.ada"},2:{name:"punctuation.ada"},3:{name:"entity.name.type.ada"}},match:"\\b((?:\\w|\\d|_)+)\\s*(:)\\s*((?:\\w|\\d|\\.|_)+)\\b"},{match:":=",name:"keyword.operator.new.ada"},{include:"#expression"}]},scalar_constraint:{name:"meta.declaration.constraint.scalar.ada",patterns:[{begin:"(?i)\\b(digits|delta)\\b",beginCaptures:{1:{name:"storage.modifier.ada"}},end:"(?i)(?=\\brange\\b|\\bdigits\\b|\\bwith\\b|;)",patterns:[{include:"#expression"}]},{include:"#range_constraint"},{include:"#expression"}]},select_alternative:{patterns:[{begin:"(?i)\\bterminate\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}}},{include:"#statement"}]},select_statement:{begin:"(?i)\\bselect\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(end)\\s+(select)\\b",endCaptures:{1:{name:"keyword.control.ada"},2:{name:"keyword.control.ada"}},name:"meta.statement.select.ada",patterns:[{begin:"(?i)\\b(?:(or)|(?<=select))\\b",beginCaptures:{1:{name:"keyword.control.ada"}},end:"(?i)\\b(?=(or|else|end))\\b",patterns:[{include:"#guard"},{include:"#select_alternative"}]},{begin:"(?i)\\belse\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{include:"#statement"}]}]},signed_integer_type_definition:{patterns:[{include:"#range_constraint"}]},simple_loop_statement:{begin:"(?i)\\bloop\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)",endCaptures:{1:{name:"keyword.control.ada"},2:{name:"keyword.control.ada"},3:{name:"entity.name.label.ada"},4:{name:"punctuation.ada"}},name:"meta.statement.loop.ada",patterns:[{include:"#statement"}]},single_protected_declaration:{begin:"(?i)\\b(protected)\\s+((?:\\w|\\d|_)+)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.protected.ada"}},end:"(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.protected.ada"},3:{name:"punctuation.ada"}},name:"meta.declaration.protected.ada",patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=(\\bend\\b|;))",patterns:[{begin:"(?i)\\bnew\\b",captures:{0:{name:"keyword.ada"}},end:"(?i)\\bwith\\b",patterns:[{match:"(?i)\\band\\b",name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#protected_element_declaration"},{include:"#comment"}]},{include:"#comment"}]},single_task_declaration:{begin:"(?i)\\b(task)\\s+((?:\\w|\\d|_)+)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.task.ada"}},end:"(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.task.ada"},3:{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{begin:"(?i)\\bnew\\b",captures:{0:{name:"keyword.ada"}},end:"(?i)\\bwith\\b",patterns:[{match:"(?i)\\band\\b",name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#task_item"},{include:"#comment"}]},{include:"#comment"}]},statement:{patterns:[{begin:"(?i)\\bbegin\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(end)\\s*(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"punctuation.ada"}},patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#label"},{include:"#null_statement"},{include:"#return_statement"},{include:"#assignment_statement"},{include:"#exit_statement"},{include:"#goto_statement"},{include:"#requeue_statement"},{include:"#delay_statement"},{include:"#abort_statement"},{include:"#raise_statement"},{include:"#if_statement"},{include:"#case_statement"},{include:"#loop_statement"},{include:"#block_statement"},{include:"#select_statement"},{include:"#accept_statement"},{include:"#pragma"},{include:"#procedure_call_statement"},{include:"#comment"}]},string_literal:{captures:{1:{name:"punctuation.definition.string.ada"},2:{name:"punctuation.definition.string.ada"}},match:'(").*?(")',name:"string.quoted.double.ada"},subprogram_body:{name:"meta.declaration.subprogram.body.ada",patterns:[{include:"#procedure_body"},{include:"#function_body"}]},subprogram_renaming_declaration:{begin:"(?i)\\brenames\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=(with|;))",patterns:[{match:"(?:\\w|\\d|_|\\.)+",name:"entity.name.function.ada"}]},subprogram_specification:{name:"meta.declaration.subprogram.specification.ada",patterns:[{include:"#procedure_specification"},{include:"#function_specification"}]},subtype_declaration:{begin:"(?i)\\bsubtype\\b",beginCaptures:{0:{name:"keyword.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.declaration.subtype.ada",patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=;)",patterns:[{match:"(?i)\\b(not\\s+null)\\b",name:"storage.modifier.ada"},{include:"#composite_constraint"},{include:"#aspect_specification"},{include:"#subtype_indication"}]},{begin:"(?i)(?<=subtype)",end:"(?i)\\b(?=is)\\b",patterns:[{include:"#subtype_mark"}]}]},subtype_indication:{name:"meta.declaration.indication.subtype.ada",patterns:[{include:"#scalar_constraint"},{include:"#subtype_mark"}]},subtype_mark:{patterns:[{match:"(?i)\\b(access|aliased|not\\s+null|constant)\\b",name:"storage.visibility.ada"},{include:"#attribute"},{include:"#actual_parameter_part"},{begin:"(?i)\\b(procedure|function)\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=(;|\\)))",patterns:[{include:"#parameter_profile"},{begin:"(?i)\\breturn\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=(;|\\)))",patterns:[{include:"#subtype_mark"}]}]},{captures:{0:{patterns:[{match:"[_.]",name:"punctuation.ada"}]}},match:"\\b(?:\\w|\\d|\\.|_)+\\b",name:"entity.name.type.ada"},{include:"#comment"}]},task_body:{begin:"(?i)\\b(task)\\s+(body)\\s+((\\w|\\d|\\.|_)+)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{name:"keyword.ada"},3:{name:"entity.name.task.ada"}},end:"(?i)(?:\\b(end)\\s*(?:\\s(\\3))?\\s*)?(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.task.ada"},3:{name:"punctuation.ada"}},name:"meta.declaration.task.body.ada",patterns:[{begin:"(?i)\\bbegin\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=end)",patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#aspect_specification"},{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=(with|begin))",patterns:[{include:"#declarative_item"}]}]},task_item:{patterns:[{include:"#aspect_clause"},{include:"#entry_declaration"}]},task_type_declaration:{begin:"(?i)\\b(task)\\s+(type)\\s+((\\w|\\d|\\.|_)+)\\b",beginCaptures:{1:{name:"storage.modifier.ada"},2:{name:"keyword.ada"},3:{name:"entity.name.task.ada"}},end:"(?i)(?:\\b(end)\\s*(?:\\s(\\3))?\\s*)?(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.task.ada"},3:{name:"punctuation.ada"}},name:"meta.declaration.type.task.ada",patterns:[{include:"#known_discriminant_part"},{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{begin:"(?i)\\bnew\\b",captures:{0:{name:"keyword.ada"}},end:"(?i)\\bwith\\b",patterns:[{match:"(?i)\\band\\b",name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#task_item"},{include:"#comment"}]},{include:"#comment"}]},type_declaration:{name:"meta.declaration.type.ada",patterns:[{include:"#full_type_declaration"}]},type_definition:{name:"meta.declaration.type.definition.ada",patterns:[{include:"#enumeration_type_definition"},{include:"#integer_type_definition"},{include:"#real_type_definition"},{include:"#array_type_definition"},{include:"#record_type_definition"},{include:"#access_type_definition"},{include:"#interface_type_definition"},{include:"#derived_type_definition"}]},use_clause:{name:"meta.context.use.ada",patterns:[{include:"#use_type_clause"},{include:"#use_package_clause"}]},use_package_clause:{begin:"(?i)\\buse\\b",beginCaptures:{0:{name:"keyword.other.using.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.context.use.package.ada",patterns:[{match:",",name:"punctuation.ada"},{include:"#package_mark"}]},use_type_clause:{begin:"(?i)\\b(use)\\s+(?:(all)\\s+)?(type)\\b",beginCaptures:{1:{name:"keyword.other.using.ada"},2:{name:"keyword.modifier.ada"},3:{name:"keyword.modifier.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.context.use.type.ada",patterns:[{match:",",name:"punctuation.ada"},{include:"#subtype_mark"}]},value:{patterns:[{include:"#based_literal"},{include:"#decimal_literal"},{include:"#character_literal"},{include:"#string_literal"}]},variant_part:{begin:"(?i)\\bcase\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(end)\\s+(case);",endCaptures:{1:{name:"keyword.ada"},2:{name:"keyword.ada"},3:{name:"punctuation.ada"}},name:"meta.declaration.variant.ada",patterns:[{begin:"(?i)\\b(?<=case)\\b",end:"(?i)\\bis\\b",endCaptures:{0:{name:"keyword.ada"}},patterns:[{match:"(?:\\w|\\d|_)+",name:"variable.name.ada"},{include:"#comment"}]},{begin:"(?i)\\b(?<=is)\\b",end:"(?i)\\b(?=end)\\b",patterns:[{begin:"(?i)\\bwhen\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"=>",endCaptures:{0:{name:"keyword.other.ada"}},patterns:[{match:"\\|",name:"punctuation.ada"},{match:"(?i)\\bothers\\b",name:"keyword.ada"},{include:"#expression"}]},{include:"#component_item"}]}]},while_loop_statement:{begin:"(?i)\\bwhile\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)",endCaptures:{1:{name:"keyword.control.ada"},2:{name:"keyword.control.ada"},3:{name:"entity.name.label.ada"},4:{name:"punctuation.ada"}},name:"meta.statement.loop.while.ada",patterns:[{begin:"(?i)(?<=while)\\b",end:"(?i)\\bloop\\b",endCaptures:{0:{name:"keyword.control.ada"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},with_clause:{begin:"(?i)\\b(?:(limited)\\s+)?(?:(private)\\s+)?(with)\\b",beginCaptures:{1:{name:"keyword.modifier.ada"},2:{name:"storage.visibility.ada"},3:{name:"keyword.other.using.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.context.with.ada",patterns:[{match:",",name:"punctuation.ada"},{include:"#package_mark"}]}},scopeName:"source.ada"});var a=[e];export{a as default}; diff --git a/assets/chunks/andromeeda.YxQm0tCS.js b/assets/chunks/andromeeda.YxQm0tCS.js new file mode 100644 index 000000000..6cfb1d9e2 --- /dev/null +++ b/assets/chunks/andromeeda.YxQm0tCS.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.background":"#23262E","activityBar.dropBackground":"#3a404e","activityBar.foreground":"#BAAFC0","activityBarBadge.background":"#00b0ff","activityBarBadge.foreground":"#20232B","badge.background":"#00b0ff","badge.foreground":"#20232B","button.background":"#00e8c5cc","button.hoverBackground":"#07d4b6cc","debugExceptionWidget.background":"#FF9F2E60","debugExceptionWidget.border":"#FF9F2E60","debugToolBar.background":"#20232A","diffEditor.insertedTextBackground":"#29BF1220","diffEditor.removedTextBackground":"#F21B3F20","dropdown.background":"#2b303b","dropdown.border":"#363c49","editor.background":"#23262E","editor.findMatchBackground":"#f39d1256","editor.findMatchBorder":"#f39d12b6","editor.findMatchHighlightBackground":"#59b8b377","editor.foreground":"#D5CED9","editor.hoverHighlightBackground":"#373941","editor.lineHighlightBackground":"#2e323d","editor.lineHighlightBorder":"#2e323d","editor.rangeHighlightBackground":"#372F3C","editor.selectionBackground":"#3D4352","editor.selectionHighlightBackground":"#4F435580","editor.wordHighlightBackground":"#4F4355","editor.wordHighlightStrongBackground":"#db45a280","editorBracketMatch.background":"#746f77","editorBracketMatch.border":"#746f77","editorCodeLens.foreground":"#746f77","editorCursor.foreground":"#FFF","editorError.foreground":"#FC644D","editorGroup.background":"#23262E","editorGroup.dropBackground":"#495061d7","editorGroupHeader.tabsBackground":"#23262E","editorGutter.addedBackground":"#9BC53DBB","editorGutter.deletedBackground":"#FC644DBB","editorGutter.modifiedBackground":"#5BC0EBBB","editorHoverWidget.background":"#373941","editorHoverWidget.border":"#00e8c5cc","editorIndentGuide.activeBackground":"#585C66","editorIndentGuide.background":"#333844","editorLineNumber.foreground":"#746f77","editorLink.activeForeground":"#3B79C7","editorOverviewRuler.border":"#1B1D23","editorRuler.foreground":"#4F4355","editorSuggestWidget.background":"#20232A","editorSuggestWidget.border":"#372F3C","editorSuggestWidget.selectedBackground":"#373941","editorWarning.foreground":"#FF9F2E","editorWhitespace.foreground":"#333844","editorWidget.background":"#20232A",errorForeground:"#FC644D","extensionButton.prominentBackground":"#07d4b6cc","extensionButton.prominentHoverBackground":"#07d4b5b0",focusBorder:"#746f77",foreground:"#D5CED9","gitDecoration.ignoredResourceForeground":"#555555","input.background":"#2b303b","input.placeholderForeground":"#746f77","inputOption.activeBorder":"#C668BA","inputValidation.errorBackground":"#D65343","inputValidation.errorBorder":"#D65343","inputValidation.infoBackground":"#3A6395","inputValidation.infoBorder":"#3A6395","inputValidation.warningBackground":"#DE9237","inputValidation.warningBorder":"#DE9237","list.activeSelectionBackground":"#23262E","list.activeSelectionForeground":"#00e8c6","list.dropBackground":"#3a404e","list.focusBackground":"#282b35","list.focusForeground":"#eee","list.hoverBackground":"#23262E","list.hoverForeground":"#eee","list.inactiveSelectionBackground":"#23262E","list.inactiveSelectionForeground":"#00e8c6","merge.currentContentBackground":"#F9267240","merge.currentHeaderBackground":"#F92672","merge.incomingContentBackground":"#3B79C740","merge.incomingHeaderBackground":"#3B79C7BB","minimapSlider.activeBackground":"#60698060","minimapSlider.background":"#58607460","minimapSlider.hoverBackground":"#60698060","notification.background":"#2d313b","notification.buttonBackground":"#00e8c5cc","notification.buttonHoverBackground":"#07d4b5b0","notification.errorBackground":"#FC644D","notification.infoBackground":"#00b0ff","notification.warningBackground":"#FF9F2E","panel.background":"#23262E","panel.border":"#1B1D23","panelTitle.activeBorder":"#23262E","panelTitle.inactiveForeground":"#746f77","peekView.border":"#23262E","peekViewEditor.background":"#1A1C22","peekViewEditor.matchHighlightBackground":"#FF9F2E60","peekViewResult.background":"#1A1C22","peekViewResult.matchHighlightBackground":"#FF9F2E60","peekViewResult.selectionBackground":"#23262E","peekViewTitle.background":"#1A1C22","peekViewTitleDescription.foreground":"#746f77","pickerGroup.border":"#4F4355","pickerGroup.foreground":"#746f77","progressBar.background":"#C668BA","scrollbar.shadow":"#23262E","scrollbarSlider.activeBackground":"#3A3F4CCC","scrollbarSlider.background":"#3A3F4C77","scrollbarSlider.hoverBackground":"#3A3F4CAA","selection.background":"#746f77","sideBar.background":"#23262E","sideBar.foreground":"#999999","sideBarSectionHeader.background":"#23262E","sideBarTitle.foreground":"#00e8c6","statusBar.background":"#23262E","statusBar.debuggingBackground":"#FC644D","statusBar.noFolderBackground":"#23262E","statusBarItem.activeBackground":"#00e8c5cc","statusBarItem.hoverBackground":"#07d4b5b0","statusBarItem.prominentBackground":"#07d4b5b0","statusBarItem.prominentHoverBackground":"#00e8c5cc","tab.activeBackground":"#23262e","tab.activeBorder":"#00e8c6","tab.activeForeground":"#00e8c6","tab.inactiveBackground":"#23262E","tab.inactiveForeground":"#746f77","terminal.ansiBlue":"#7cb7ff","terminal.ansiBrightBlue":"#7cb7ff","terminal.ansiBrightCyan":"#00e8c6","terminal.ansiBrightGreen":"#96E072","terminal.ansiBrightMagenta":"#ff00aa","terminal.ansiBrightRed":"#ee5d43","terminal.ansiBrightYellow":"#FFE66D","terminal.ansiCyan":"#00e8c6","terminal.ansiGreen":"#96E072","terminal.ansiMagenta":"#ff00aa","terminal.ansiRed":"#ee5d43","terminal.ansiYellow":"#FFE66D","terminalCursor.background":"#23262E","terminalCursor.foreground":"#FFE66D","titleBar.activeBackground":"#23262E","walkThrough.embeddedEditorBackground":"#23262E","widget.shadow":"#14151A"},displayName:"Andromeeda",name:"andromeeda",tokenColors:[{settings:{background:"#23262E",foreground:"#D5CED9"}},{scope:["comment","markup.quote.markdown","meta.diff","meta.diff.header"],settings:{foreground:"#A0A1A7cc"}},{scope:["meta.template.expression.js","constant.name.attribute.tag.jade","punctuation.definition.metadata.markdown","punctuation.definition.string.end.markdown","punctuation.definition.string.begin.markdown"],settings:{foreground:"#D5CED9"}},{scope:["variable","support.variable","entity.name.tag.yaml","constant.character.entity.html","source.css entity.name.tag.reference","beginning.punctuation.definition.list.markdown","source.css entity.other.attribute-name.parent-selector","meta.structure.dictionary.json support.type.property-name"],settings:{foreground:"#00e8c6"}},{scope:["markup.bold","constant.numeric","meta.group.regexp","constant.other.php","support.constant.ext.php","constant.other.class.php","support.constant.core.php","fenced_code.block.language","constant.other.caps.python","entity.other.attribute-name","support.type.exception.python","source.css keyword.other.unit","variable.other.object.property.js.jsx","variable.other.object.js"],settings:{foreground:"#f39c12"}},{scope:["markup.list","text.xml string","entity.name.type","support.function","entity.other.attribute-name","meta.at-rule.extend","entity.name.function","entity.other.inherited-class","entity.other.keyframe-offset.css","text.html.markdown string.quoted","meta.function-call.generic.python","meta.at-rule.extend support.constant","entity.other.attribute-name.class.jade","source.css entity.other.attribute-name","text.xml punctuation.definition.string"],settings:{foreground:"#FFE66D"}},{scope:["markup.heading","variable.language.this.js","variable.language.special.self.python"],settings:{foreground:"#ff00aa"}},{scope:["punctuation.definition.interpolation","punctuation.section.embedded.end.php","punctuation.section.embedded.end.ruby","punctuation.section.embedded.begin.php","punctuation.section.embedded.begin.ruby","punctuation.definition.template-expression","entity.name.tag"],settings:{foreground:"#f92672"}},{scope:["storage","keyword","meta.link","meta.image","markup.italic","source.js support.type"],settings:{foreground:"#c74ded"}},{scope:["string.regexp","markup.changed"],settings:{foreground:"#7cb7ff"}},{scope:["constant","support.class","keyword.operator","support.constant","text.html.markdown string","source.css support.function","source.php support.function","support.function.magic.python","entity.other.attribute-name.id","markup.deleted"],settings:{foreground:"#ee5d43"}},{scope:["string","text.html.php string","markup.inline.raw","markup.inserted","punctuation.definition.string","punctuation.definition.markdown","text.html meta.embedded source.js string","text.html.php punctuation.definition.string","text.html meta.embedded source.js punctuation.definition.string","text.html punctuation.definition.string","text.html string"],settings:{foreground:"#96E072"}},{scope:["entity.other.inherited-class"],settings:{fontStyle:"underline"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/angular-html.833w9gUK.js b/assets/chunks/angular-html.833w9gUK.js new file mode 100644 index 000000000..4d2b54843 --- /dev/null +++ b/assets/chunks/angular-html.833w9gUK.js @@ -0,0 +1,16 @@ +import n from"./html.CuK0VrWf.js";const a=Object.freeze({injectionSelector:"L:text.html -comment",name:"angular-expression",patterns:[{include:"#ngExpression"}],repository:{arrayLiteral:{begin:"\\[",beginCaptures:{0:{name:"meta.brace.square.ts"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.ts"}},name:"meta.array.literal.ts",patterns:[{include:"#ngExpression"},{include:"#punctuationComma"}]},booleanLiteral:{patterns:[{match:"(?>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.ts"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.ts"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.ts"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.ts"},{match:"\\!|&&|\\?\\?|\\|\\|",name:"keyword.operator.logical.ts"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.ts"},{match:"\\=",name:"keyword.operator.assignment.ts"},{match:"--",name:"keyword.operator.decrement.ts"},{match:"\\+\\+",name:"keyword.operator.increment.ts"},{match:"\\%|\\*|\\/|-|\\+",name:"keyword.operator.arithmetic.ts"},{captures:{1:{name:"keyword.operator.arithmetic.ts"}},match:"(?<=[_$[:alnum:]])\\s*(\\/)(?![\\/*])"},{include:"#typeofOperator"}]},functionCall:{begin:"(?=(\\??\\.\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\()",end:"(?<=\\))(?!(\\??\\.\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\()",patterns:[{match:"\\?",name:"punctuation.accessor.ts"},{match:"\\.",name:"punctuation.accessor.ts"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.ts"},{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.ts"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.ts"}},name:"meta.type.parameters.ts",patterns:[{include:"#type"},{include:"#punctuationComma"}]},{include:"#parenExpression"}]},functionParameters:{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.ts"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.ts"}},name:"meta.parameters.ts",patterns:[{include:"#decorator"},{include:"#parameterName"},{include:"#variableInitializer"},{match:",",name:"punctuation.separator.parameter.ts"}]},identifiers:{patterns:[{match:"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\.\\s*prototype\\b(?!\\$))",name:"support.class.ts"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"constant.other.object.property.ts"},3:{name:"variable.other.object.property.ts"}},match:`(?x)([?!]?\\.)\\s*(?: +([[:upper:]][_$[:digit:][:upper:]]*)| +([_$[:alpha:]][_$[:alnum:]]*) +)(?=\\s*\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)`},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"entity.name.function.ts"}},match:"(?x)(?:([?!]?\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*((async\\s+)|(function\\s*[(<])|(function\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\s*=>)|((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)))"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"constant.other.property.ts"}},match:"([?!]?\\.)\\s*([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"variable.other.property.ts"}},match:"([?!]?\\.)\\s*([_$[:alpha:]][_$[:alnum:]]*)"},{captures:{1:{name:"constant.other.object.ts"},2:{name:"variable.other.object.ts"}},match:`(?x)(?: +([[:upper:]][_$[:digit:][:upper:]]*)| +([_$[:alpha:]][_$[:alnum:]]*) +)(?=\\s*\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)`},{match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",name:"constant.character.other"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.other.readwrite.ts"}]},literal:{name:"literal.ts",patterns:[{include:"#numericLiteral"},{include:"#booleanLiteral"},{include:"#nullLiteral"},{include:"#undefinedLiteral"},{include:"#numericConstantLiteral"},{include:"#arrayLiteral"},{include:"#thisLiteral"}]},ngExpression:{name:"meta.expression.ng",patterns:[{include:"#string"},{include:"#literal"},{include:"#ternaryExpression"},{include:"#expressionOperator"},{include:"#functionCall"},{include:"#identifiers"},{include:"#parenExpression"},{include:"#punctuationComma"},{include:"#punctuationAccessor"}]},nullLiteral:{match:"(?) | ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)) ) | (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) ))) ))"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"keyword.operator.rest.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?:\\s*\\b(readonly)\\s+)?(?:\\s*\\b(public|private|protected)\\s+)?(\\.\\.\\.)?\\s*(?])|(?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)',name:"meta.type.annotation.ts",patterns:[{include:"#type"}]},typeBuiltinLiterals:{match:"(?)\\s*(?=\\()",end:"(?<=\\))",include:"#typeofOperator",name:"meta.type.function.ts",patterns:[{include:"#functionParameters"}]},{begin:"(?x)((?=[(]\\s*(([)])|(\\.\\.\\.)|([_$[:alnum:]]+\\s*(([:,?=])|([)]\\s*=>))))))",end:"(?<=\\))",name:"meta.type.function.ts",patterns:[{include:"#functionParameters"}]}]},typeName:{patterns:[{captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*([?!]?\\.)"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"entity.name.type.ts"}]},typeObject:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.object.type.ts",patterns:[{include:"#typeObjectMembers"}]},typeObjectMembers:{patterns:[{include:"#typeAnnotation"},{include:"#punctuationComma"},{include:"#punctuationSemicolon"}]},typeOperators:{patterns:[{include:"#typeofOperator"},{match:"[&|]",name:"keyword.operator.type.ts"},{match:"(?]*)(?)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.unrecognized.html.derivative",patterns:[{include:"text.html.basic#attribute"}]}],scopeName:"text.html.derivative.ng",embeddedLangs:["html","angular-expression","angular-template","angular-template-blocks"]});var m=[...n,...e,...t,...i,o];const p=Object.freeze(Object.defineProperty({__proto__:null,default:m},Symbol.toStringTag,{value:"Module"}));export{m as a,t as b,e as c,i as d,p as e}; diff --git a/assets/chunks/angular-ts.BCBvF5Sf.js b/assets/chunks/angular-ts.BCBvF5Sf.js new file mode 100644 index 000000000..6811cec80 --- /dev/null +++ b/assets/chunks/angular-ts.BCBvF5Sf.js @@ -0,0 +1,666 @@ +import{a as n,b as e,c as a,d as t}from"./angular-html.833w9gUK.js";import s from"./scss.Dr-_CcBd.js";import"./html.CuK0VrWf.js";import"./javascript.Dch3xQiY.js";import"./css.CbYhyuC0.js";const i=Object.freeze({injectTo:["source.ts.ng"],injectionSelector:"L:source.ts#meta.decorator.ts -comment",name:"angular-inline-style",patterns:[{include:"#inlineStyles"}],repository:{inlineStyles:{begin:"(styles)\\s*(:)",beginCaptures:{1:{name:"meta.object-literal.key.ts"},2:{name:"meta.object-literal.key.ts punctuation.separator.key-value.ts"}},end:"(?=,|})",patterns:[{include:"#tsParenExpression"},{include:"#tsBracketExpression"},{include:"#style"}]},style:{begin:"\\s*([`|'|\"])",beginCaptures:{1:{name:"string"}},contentName:"source.css.scss",end:"\\1",endCaptures:{0:{name:"string"}},patterns:[{include:"source.css.scss"}]},tsBracketExpression:{begin:"\\G\\s*(\\[)",beginCaptures:{1:{name:"meta.array.literal.ts meta.brace.square.ts"}},end:"\\]",endCaptures:{0:{name:"meta.array.literal.ts meta.brace.square.ts"}},patterns:[{include:"#style"}]},tsParenExpression:{begin:"\\G\\s*(\\()",beginCaptures:{1:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"$self"},{include:"#tsBracketExpression"},{include:"#style"}]}},scopeName:"inline-styles.ng",embeddedLangs:["scss"]});var r=[...s,i];const o=Object.freeze({injectTo:["source.ts.ng"],injectionSelector:"L:meta.decorator.ts -comment -text.html",name:"angular-inline-template",patterns:[{include:"#inlineTemplate"}],repository:{inlineTemplate:{begin:"(template)\\s*(:)",beginCaptures:{1:{name:"meta.object-literal.key.ts"},2:{name:"meta.object-literal.key.ts punctuation.separator.key-value.ts"}},end:"(?=,|})",patterns:[{include:"#tsParenExpression"},{include:"#ngTemplate"}]},ngTemplate:{begin:"\\G\\s*([`|'|\"])",beginCaptures:{1:{name:"string"}},contentName:"text.html",end:"\\1",endCaptures:{0:{name:"string"}},patterns:[{include:"text.html.derivative.ng"},{include:"template.ng"}]},tsParenExpression:{begin:"\\G\\s*(\\()",beginCaptures:{1:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#tsParenExpression"},{include:"#ngTemplate"}]}},scopeName:"inline-template.ng",embeddedLangs:["angular-html","angular-template"]});var c=[...n,...e,o];const l=Object.freeze({displayName:"Angular TypeScript",name:"angular-ts",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{"access-modifier":{match:"(?]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.objectliteral.ts",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.ts"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.ts"}},name:"meta.array.literal.ts",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{1:{name:"storage.modifier.async.ts"},2:{name:"variable.parameter.ts"}},match:"(?:(?)",name:"meta.arrow.ts"},{begin:`(?x) (?: +(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +) +)`,beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.arrow.ts",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.ts"}},end:"((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",name:"meta.arrow.ts",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"arrow-return-type":{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.return.type.arrow.ts",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"async-modifier":{match:"(?)",name:"cast.expr.ts"},{begin:"(?:(?*?\\&\\|\\^]|[^_$[:alnum:]](?:\\+\\+|\\-\\-)|[^\\+]\\+|[^\\-]\\-))\\s*(<)(?!)",endCaptures:{1:{name:"meta.brace.angle.ts"}},name:"cast.expr.ts",patterns:[{include:"#type"}]},{begin:"(?:(?<=^))\\s*(<)(?=[_$[:alpha:]][_$[:alnum:]]*\\s*>)",beginCaptures:{1:{name:"meta.brace.angle.ts"}},end:"(\\>)",endCaptures:{1:{name:"meta.brace.angle.ts"}},name:"cast.expr.ts",patterns:[{include:"#type"}]}]},"class-declaration":{begin:"(?\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.ts"}},end:"(?=$)",name:"comment.line.triple-slash.directive.ts",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.ts"},2:{name:"entity.name.tag.directive.ts"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.ts"}},name:"meta.tag.ts",patterns:[{match:"path|types|no-default-lib|lib|name|resolution-mode",name:"entity.other.attribute-name.directive.ts"},{match:"=",name:"keyword.operator.assignment.ts"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:`(?x) +((@)(?:access|api)) +\\s+ +(private|protected|public) +\\b`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:`(?x) +((@)author) +\\s+ +( +[^@\\s<>*/] +(?:[^@<>*/]|\\*[^/])* +) +(?: +\\s* +(<) +([^>\\s]+) +(>) +)?`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +((@)borrows) \\s+ +((?:[^@\\s*/]|\\*[^/])+) +\\s+ (as) \\s+ +((?:[^@\\s*/]|\\*[^/])+)`},{begin:"((@)example)\\s+",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=@|\\*/)",name:"meta.example.jsdoc",patterns:[{match:"^\\s\\*\\s+"},{begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},contentName:"constant.other.description.jsdoc",end:"()|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{0:{name:"source.embedded.ts"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +((@)see) +\\s+ +(?: + +( +(?=https?://) +(?:[^\\s*]|\\*[^/])+ +) +| + +( +(?! + +https?:// +| + +(?:\\[[^\\[\\]]*\\])? +{@(?:link|linkcode|linkplain|tutorial)\\b +) + +(?:[^@\\s*/]|\\*[^/])+ +) +)`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:`(?x) +((@)template) +\\s+ +# One or more valid identifiers +( +[A-Za-z_$] +[\\w$.\\[\\]]* +(?: +\\s* , \\s* +[A-Za-z_$] +[\\w$.\\[\\]]* +)* +)`},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:`(?x) +( +(@) +(?:arg|argument|const|constant|member|namespace|param|var) +) +\\s+ +( +[A-Za-z_$] +[\\w$.\\[\\]]* +)`},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"(?:[^@\\s*/]|\\*[^/])+",name:"entity.name.type.instance.jsdoc"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"},{captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.ts"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:`(?x) +(\\[)\\s* +[\\w$]+ +(?: +(?:\\[\\])? +\\. +[\\w$]+ +)* +(?: +\\s* +(=) +\\s* +( + +(?> +"(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?" | +'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | +\\[ (?:(?:\\*(?!/))|[^*])*? \\] | +(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* +)* +) +)? +\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,name:"variable.other.jsdoc"}]},{begin:`(?x) +( +(@) +(?:define|enum|exception|export|extends|lends|implements|modifies +|namespace|private|protected|returns?|satisfies|suppress|this|throws|type +|yields?) +) +\\s+(?={)`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +( +(@) +(?:alias|augments|callback|constructs|emits|event|fires|exports? +|extends|external|function|func|host|lends|listens|interface|memberof!? +|method|module|mixes|mixin|name|requires|see|this|typedef|uses) +) +\\s+ +( +(?: +[^{}@\\s*] | \\*[^/] +)+ +)`},{begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)"}]},"enum-declaration":{begin:"(?) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.ts"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.ts"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.ts"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.ts"},{captures:{1:{name:"keyword.operator.logical.ts"},2:{name:"keyword.operator.assignment.compound.ts"},3:{name:"keyword.operator.arithmetic.ts"}},match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.ts"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.ts"},{match:"\\=",name:"keyword.operator.assignment.ts"},{match:"--",name:"keyword.operator.decrement.ts"},{match:"\\+\\+",name:"keyword.operator.increment.ts"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.ts"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.ts"},2:{name:"keyword.operator.arithmetic.ts"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.operator.assignment.compound.ts"},2:{name:"keyword.operator.arithmetic.ts"}},match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:`(?x)(?) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{match:"\\#?[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.property.ts variable.object.property.ts"},{match:"\\?",name:"keyword.operator.optional.ts"},{match:"\\!",name:"keyword.operator.definiteassignment.ts"}]},"for-loop":{begin:"(?\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",name:"meta.function-call.ts",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",name:"meta.function-call.ts",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:"\\?\\.",name:"meta.function-call.ts punctuation.accessor.optional.ts"},{match:"\\!",name:"meta.function-call.ts keyword.operator.definiteassignment.ts"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.ts"}]},"function-declaration":{begin:"(?) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +))`},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"variable.other.constant.property.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"variable.other.property.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",name:"variable.other.constant.ts"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.other.readwrite.ts"}]},"if-statement":{patterns:[{begin:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.modifier.async.ts"},5:{name:"keyword.operator.new.ts"},6:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:`(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.modifier.async.ts"},5:{name:"storage.type.property.ts"},6:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:`(?x)(?=((\\b(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"storage.type.property.ts"},3:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:`(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"storage.type.property.ts"},3:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.ts meta.object-literal.key.ts",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",name:"meta.object.member.ts meta.object-literal.key.ts",patterns:[{include:"#comment"},{include:"#string"}]},{begin:`(?x)(?=(\\b(?) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,name:"meta.object.member.ts"},{captures:{0:{name:"meta.object-literal.key.ts"}},match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.ts"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.ts"}},end:"(?=,|\\})",name:"meta.object.member.ts",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.ts"},{captures:{1:{name:"keyword.control.as.ts"},2:{name:"storage.modifier.ts"}},match:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"parameter-name":{patterns:[{captures:{1:{name:"storage.modifier.ts"}},match:"(?) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?])",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts"}},contentName:"meta.arrow.ts meta.return.type.arrow.ts",end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:"(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.ts"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"keyword.other.ts"}},name:"string.regexp.ts",patterns:[{include:"#regexp"}]},{begin:"((?"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"return-type":{patterns:[{begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\()) +| +(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))`},{captures:{1:{name:"support.type.object.module.ts"},2:{name:"support.type.object.module.ts"},3:{name:"punctuation.accessor.ts"},4:{name:"punctuation.accessor.optional.ts"},5:{name:"support.type.object.module.ts"}},match:"(?\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.tagged-template.ts"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.ts"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.ts"}},contentName:"meta.embedded.line.ts",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.ts"}},name:"meta.template.expression.ts",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.ts"},2:{name:"string.template.ts punctuation.definition.string.template.begin.ts"}},contentName:"string.template.ts",end:"`",endCaptures:{0:{name:"string.template.ts punctuation.definition.string.template.end.ts"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.ts"}},contentName:"meta.embedded.line.ts",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.ts"}},name:"meta.template.expression.ts",patterns:[{include:"#type"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.ts"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.ts"}},patterns:[{include:"#expression"}]},"this-literal":{match:"(?])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]},{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]}]},"type-arguments":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.ts"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.ts"}},name:"meta.type.parameters.ts",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{0:{name:"keyword.operator.type.ts"}},match:"(?)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:"(?) +)) +) +) +)`,end:"(?<=\\))",name:"meta.type.function.ts",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.ts"}},end:"(?)(?:\\?]|//|$)",name:"meta.type.function.return.ts",patterns:[{include:"#type-function-return-type-core"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.ts"}},end:"(?)(?]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.type.function.return.ts",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-infer":{patterns:[{captures:{1:{name:"keyword.operator.expression.infer.ts"},2:{name:"entity.name.type.ts"},3:{name:"keyword.operator.expression.extends.ts"}},match:"(?)",endCaptures:{1:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"}},patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.ts"},2:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts"}},contentName:"meta.type.parameters.ts",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"}},patterns:[{include:"#type-arguments-body"}]},{captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"entity.name.type.ts"}]},"type-object":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.object.type.ts",patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.ts"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.ts"}},end:"(?=\\S)"},{match:"(?)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.ts"}},name:"meta.type.parameters.ts",patterns:[{include:"#comment"},{match:"(?)",name:"keyword.operator.assignment.ts"}]},"type-paren-or-function-parameters":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},name:"meta.type.paren.cover.ts",patterns:[{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"entity.name.function.ts variable.language.this.ts"},4:{name:"entity.name.function.ts"},5:{name:"keyword.operator.optional.ts"}},match:`(?x)(?:(?) +)) +)) +)) | +(:\\s*(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))`},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:"(?) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,beginCaptures:{1:{name:"meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts"}},end:"(?=$|^|[;,=}]|((?) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,beginCaptures:{1:{name:"meta.definition.variable.ts entity.name.function.ts"},2:{name:"keyword.operator.definiteassignment.ts"}},end:"(?=$|^|[;,=}]|((?\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.ts"}},end:"(?=$|^|[,);}\\]]|((?)"},{captures:{1:{name:"punctuation.definition.tag.apacheconf"},2:{name:"entity.tag.apacheconf"},3:{name:"punctuation.definition.tag.apacheconf"}},match:"()"},{captures:{3:{name:"string.regexp.apacheconf"},4:{name:"string.replacement.apacheconf"}},match:"(?<=(Rewrite(Rule|Cond)))\\s+(.+?)\\s+(.+?)($|\\s)"},{captures:{2:{name:"entity.status.apacheconf"},3:{name:"string.regexp.apacheconf"},5:{name:"string.path.apacheconf"}},match:"(?<=RedirectMatch)(\\s+(\\d\\d\\d|permanent|temp|seeother|gone))?\\s+(.+?)\\s+((.+?)($|\\s))?"},{captures:{2:{name:"entity.status.apacheconf"},3:{name:"string.path.apacheconf"},5:{name:"string.path.apacheconf"}},match:"(?<=Redirect)(\\s+(\\d\\d\\d|permanent|temp|seeother|gone))?\\s+(.+?)\\s+((.+?)($|\\s))?"},{captures:{1:{name:"string.regexp.apacheconf"},3:{name:"string.path.apacheconf"}},match:"(?<=ScriptAliasMatch|AliasMatch)\\s+(.+?)\\s+((.+?)\\s)?"},{captures:{1:{name:"string.path.apacheconf"},3:{name:"string.path.apacheconf"}},match:"(?<=RedirectPermanent|RedirectTemp|ScriptAlias|Alias)\\s+(.+?)\\s+((.+?)($|\\s))?"},{captures:{1:{name:"keyword.core.apacheconf"}},match:"\\b(AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|Define|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include(Optional)?|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|Mutex|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|Time(O|o)ut|TraceEnable|UseCanonicalName|Use|ErrorLogFormat|GlobalLog|PHPIniDir|SSLHonorCipherOrder|SSLCompression|SSLUseStapling|SSLStapling\\w+|SSLCARevocationCheck|SSLSRPVerifierFile|SSLSessionTickets|RequestReadTimeout|ProxyHTML\\w+|MaxRanges)\\b"},{captures:{1:{name:"keyword.mpm.apacheconf"}},match:"\\b(AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxConnectionsPerChild|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\\b"},{captures:{1:{name:"keyword.access.apacheconf"}},match:"\\b(Allow|Deny|Order)\\b"},{captures:{1:{name:"keyword.actions.apacheconf"}},match:"\\b(Action|Script)\\b"},{captures:{1:{name:"keyword.alias.apacheconf"}},match:"\\b(Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\\b"},{captures:{1:{name:"keyword.auth.apacheconf"}},match:"\\b(AuthAuthoritative|AuthGroupFile|AuthUserFile|AuthBasicProvider|AuthBasicFake|AuthBasicAuthoritative|AuthBasicUseDigestAlgorithm)\\b"},{captures:{1:{name:"keyword.auth_anon.apacheconf"}},match:"\\b(Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\\b"},{captures:{1:{name:"keyword.auth_dbm.apacheconf"}},match:"\\b(AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\\b"},{captures:{1:{name:"keyword.auth_digest.apacheconf"}},match:"\\b(AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize|AuthDigestProvider)\\b"},{captures:{1:{name:"keyword.auth_ldap.apacheconf"}},match:"\\b(AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\\b"},{captures:{1:{name:"keyword.autoindex.apacheconf"}},match:"\\b(AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|IndexStyleSheet|IndexHeadInsert|ReadmeName)\\b"},{captures:{1:{name:"keyword.filter.apacheconf"}},match:"\\b(BalancerMember|BalancerGrowth|BalancerPersist|BalancerInherit)\\b"},{captures:{1:{name:"keyword.cache.apacheconf"}},match:"\\b(CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\\b"},{captures:{1:{name:"keyword.cern_meta.apacheconf"}},match:"\\b(MetaDir|MetaFiles|MetaSuffix)\\b"},{captures:{1:{name:"keyword.cgi.apacheconf"}},match:"\\b(ScriptLog|ScriptLogBuffer|ScriptLogLength)\\b"},{captures:{1:{name:"keyword.cgid.apacheconf"}},match:"\\b(ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\\b"},{captures:{1:{name:"keyword.charset_lite.apacheconf"}},match:"\\b(CharsetDefault|CharsetOptions|CharsetSourceEnc)\\b"},{captures:{1:{name:"keyword.dav.apacheconf"}},match:"\\b(Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\\b"},{captures:{1:{name:"keyword.deflate.apacheconf"}},match:"\\b(DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\\b"},{captures:{1:{name:"keyword.dir.apacheconf"}},match:"\\b(DirectoryIndex|DirectorySlash|FallbackResource)\\b"},{captures:{1:{name:"keyword.disk_cache.apacheconf"}},match:"\\b(CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\\b"},{captures:{1:{name:"keyword.dumpio.apacheconf"}},match:"\\b(DumpIOInput|DumpIOOutput)\\b"},{captures:{1:{name:"keyword.env.apacheconf"}},match:"\\b(PassEnv|SetEnv|UnsetEnv)\\b"},{captures:{1:{name:"keyword.expires.apacheconf"}},match:"\\b(ExpiresActive|ExpiresByType|ExpiresDefault)\\b"},{captures:{1:{name:"keyword.ext_filter.apacheconf"}},match:"\\b(ExtFilterDefine|ExtFilterOptions)\\b"},{captures:{1:{name:"keyword.file_cache.apacheconf"}},match:"\\b(CacheFile|MMapFile)\\b"},{captures:{1:{name:"keyword.filter.apacheconf"}},match:"\\b(AddOutputFilterByType|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace)\\b"},{captures:{1:{name:"keyword.headers.apacheconf"}},match:"\\b(Header|RequestHeader)\\b"},{captures:{1:{name:"keyword.imap.apacheconf"}},match:"\\b(ImapBase|ImapDefault|ImapMenu)\\b"},{captures:{1:{name:"keyword.include.apacheconf"}},match:"\\b(SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\\b"},{captures:{1:{name:"keyword.isapi.apacheconf"}},match:"\\b(ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\\b"},{captures:{1:{name:"keyword.ldap.apacheconf"}},match:"\\b(LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\\b"},{captures:{1:{name:"keyword.log.apacheconf"}},match:"\\b(BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\\b"},{captures:{1:{name:"keyword.mem_cache.apacheconf"}},match:"\\b(MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\\b"},{captures:{1:{name:"keyword.mime.apacheconf"}},match:"\\b(AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\\b"},{captures:{1:{name:"keyword.misc.apacheconf"}},match:"\\b(ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\\b"},{captures:{1:{name:"keyword.negotiation.apacheconf"}},match:"\\b(CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\\b"},{captures:{1:{name:"keyword.nw_ssl.apacheconf"}},match:"\\b(NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\\b"},{captures:{1:{name:"keyword.proxy.apacheconf"}},match:"\\b(AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassMatch|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\\b"},{captures:{1:{name:"keyword.rewrite.apacheconf"}},match:"\\b(RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\\b"},{captures:{1:{name:"keyword.setenvif.apacheconf"}},match:"\\b(BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\\b"},{captures:{1:{name:"keyword.so.apacheconf"}},match:"\\b(LoadFile|LoadModule)\\b"},{captures:{1:{name:"keyword.ssl.apacheconf"}},match:"\\b(SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth|SSLInsecureRenegotiation|SSLOpenSSLConfCmd)\\b"},{captures:{1:{name:"keyword.substitute.apacheconf"}},match:"\\b(Substitute|SubstituteInheritBefore|SubstituteMaxLineLength)\\b"},{captures:{1:{name:"keyword.usertrack.apacheconf"}},match:"\\b(CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\\b"},{captures:{1:{name:"keyword.vhost_alias.apacheconf"}},match:"\\b(VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\\b"},{captures:{1:{name:"keyword.php.apacheconf"},3:{name:"entity.property.apacheconf"},5:{name:"string.value.apacheconf"}},match:'\\b(php_value|php_flag|php_admin_value|php_admin_flag)\\b(\\s+(.+?)(\\s+(".+?"|.+?))?)?\\s'},{captures:{1:{name:"punctuation.variable.apacheconf"},3:{name:"variable.env.apacheconf"},4:{name:"variable.misc.apacheconf"},5:{name:"punctuation.variable.apacheconf"}},match:"(%\\{)((HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\\})"},{captures:{1:{name:"entity.mime-type.apacheconf"}},match:"\\b((text|image|application|video|audio)/.+?)\\s"},{captures:{1:{name:"entity.helper.apacheconf"}},match:"\\b(?i)(export|from|unset|set|on|off)\\b"},{captures:{1:{name:"constant.numeric.integer.decimal.apacheconf"}},match:"\\b(\\d+)\\b"},{captures:{1:{name:"punctuation.definition.flag.apacheconf"},2:{name:"string.flag.apacheconf"},3:{name:"punctuation.definition.flag.apacheconf"}},match:"\\s(\\[)(.*?)(\\])\\s"}],scopeName:"source.apacheconf"});var a=[e];export{a as default}; diff --git a/assets/chunks/apex.Sfo2eW0G.js b/assets/chunks/apex.Sfo2eW0G.js new file mode 100644 index 000000000..481919f7f --- /dev/null +++ b/assets/chunks/apex.Sfo2eW0G.js @@ -0,0 +1,274 @@ +const e=Object.freeze({displayName:"Apex",fileTypes:["apex","cls","trigger"],name:"apex",patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#directives"},{include:"#declarations"},{include:"#script-top-level"}],repository:{"annotation-declaration":{begin:"([@][_[:alpha:]]+)\\b",beginCaptures:{1:{name:"storage.type.annotation.apex"}},end:"(?<=\\)|$)",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.apex"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},"argument-list":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.apex"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#named-argument"},{include:"#expression"},{include:"#punctuation-comma"}]},"array-creation-expression":{begin:`(?x) +\\b(new)\\b\\s* +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* +) +(?:\\s*\\?\\s*)? +(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* +) +)?\\s* +(?=\\[)`,beginCaptures:{1:{name:"keyword.control.new.apex"},2:{patterns:[{include:"#support-type"},{include:"#type"}]}},end:"(?<=\\])",patterns:[{include:"#bracketed-argument-list"}]},block:{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.apex"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#statement"}]},"boolean-literal":{patterns:[{match:"(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* +) +(?:\\s*\\?\\s*)? +(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* +) +)\\s* +(\\))(?=\\s*@?[_[:alnum:]\\(])`},"catch-clause":{begin:"(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* +) +(?:\\s*\\?\\s*)? +(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* +) +)\\s* +(?:(\\g)\\b)?`}]},{include:"#comment"},{include:"#block"}]},"class-declaration":{begin:"(?=\\bclass\\b)",end:"(?<=\\})",patterns:[{begin:`(?x) +\\b(class)\\b\\s+ +(@?[_[:alpha:]][_[:alnum:]]*)\\s*`,beginCaptures:{1:{name:"keyword.other.class.apex"},2:{name:"entity.name.type.class.apex"}},end:"(?=\\{)",patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#type-parameter-list"},{include:"#extends-class"},{include:"#implements-class"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.apex"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#class-or-trigger-members"}]},{include:"#javadoc-comment"},{include:"#comment"}]},"class-or-trigger-members":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#storage-modifier"},{include:"#sharing-modifier"},{include:"#type-declarations"},{include:"#field-declaration"},{include:"#property-declaration"},{include:"#indexer-declaration"},{include:"#variable-initializer"},{include:"#constructor-declaration"},{include:"#method-declaration"},{include:"#punctuation-semicolon"}]},"colon-expression":{match:":",name:"keyword.operator.conditional.colon.apex"},comment:{patterns:[{begin:"/\\*(\\*)?",beginCaptures:{0:{name:"punctuation.definition.comment.apex"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.apex"}},name:"comment.block.apex"},{begin:"(^\\s+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.apex"}},end:"(?=$)",patterns:[{begin:"(?)",patterns:[{include:"#constructor-initializer"}]},{include:"#parenthesized-parameter-list"},{include:"#comment"},{include:"#expression-body"},{include:"#block"}]},"constructor-initializer":{begin:"\\b(?:(this))\\b\\s*(?=\\()",beginCaptures:{1:{name:"keyword.other.this.apex"}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"date-literal-with-params":{captures:{1:{name:"keyword.operator.query.date.apex"}},match:"\\b((LAST_N_DAYS|NEXT_N_DAYS|NEXT_N_WEEKS|LAST_N_WEEKS|NEXT_N_MONTHS|LAST_N_MONTHS|NEXT_N_QUARTERS|LAST_N_QUARTERS|NEXT_N_YEARS|LAST_N_YEARS|NEXT_N_FISCAL_QUARTERS|LAST_N_FISCAL_QUARTERS|NEXT_N_FISCAL_YEARS|LAST_N_FISCAL_YEARS)\\s*\\:\\d+)\\b"},"date-literals":{captures:{1:{name:"keyword.operator.query.date.apex"}},match:"\\b(YESTERDAY|TODAY|TOMORROW|LAST_WEEK|THIS_WEEK|NEXT_WEEK|LAST_MONTH|THIS_MONTH|NEXT_MONTH|LAST_90_DAYS|NEXT_90_DAYS|THIS_QUARTER|LAST_QUARTER|NEXT_QUARTER|THIS_YEAR|LAST_YEAR|NEXT_YEAR|THIS_FISCAL_QUARTER|LAST_FISCAL_QUARTER|NEXT_FISCAL_QUARTER|THIS_FISCAL_YEAR|LAST_FISCAL_YEAR|NEXT_FISCAL_YEAR)\\b\\s*"},declarations:{patterns:[{include:"#type-declarations"},{include:"#punctuation-semicolon"}]},directives:{patterns:[{include:"#punctuation-semicolon"}]},"do-statement":{begin:"(?",beginCaptures:{0:{name:"keyword.operator.arrow.apex"}},end:"(?=[,\\);}])",patterns:[{include:"#expression"}]},"expression-operators":{patterns:[{match:"\\*=|/=|%=|\\+=|-=",name:"keyword.operator.assignment.compound.apex"},{match:"\\&=|\\^=|<<=|>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.apex"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.apex"},{match:"==|!=",name:"keyword.operator.comparison.apex"},{match:"<=|>=|<|>",name:"keyword.operator.relational.apex"},{match:"\\!|&&|\\|\\|",name:"keyword.operator.logical.apex"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.apex"},{match:"\\=",name:"keyword.operator.assignment.apex"},{match:"--",name:"keyword.operator.decrement.apex"},{match:"\\+\\+",name:"keyword.operator.increment.apex"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.apex"}]},"extends-class":{begin:"(extends)\\b\\s+([_[:alpha:]][_[:alnum:]]*)",beginCaptures:{1:{name:"keyword.other.extends.apex"},2:{name:"entity.name.type.extends.apex"}},end:"(?={|implements)"},"field-declaration":{begin:`(?x) +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* +) +(?:\\s*\\?\\s*)? +(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* +) +)\\s+ +(\\g)\\s* +(?!=>|==)(?=,|;|=|$)`,beginCaptures:{1:{patterns:[{include:"#support-type"},{include:"#type"}]},5:{name:"entity.name.variable.field.apex"}},end:"(?=;)",patterns:[{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.variable.field.apex"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"},{include:"#class-or-trigger-members"}]},"finally-clause":{begin:"(? +(? +(?: +(?:ref\\s+)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* +) +(?:\\s*\\?\\s*)? +(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* +) +)\\s+ +) +(?\\g\\s*\\.\\s*)? +(?this)\\s* +(?=\\[)`,beginCaptures:{1:{patterns:[{include:"#type"}]},6:{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},7:{name:"keyword.other.this.apex"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#property-accessors"},{include:"#expression-body"},{include:"#variable-initializer"}]},"initializer-expression":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.apex"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"interface-declaration":{begin:"(?=\\binterface\\b)",end:"(?<=\\})",patterns:[{begin:`(?x) +(interface)\\b\\s+ +(@?[_[:alpha:]][_[:alnum:]]*)`,beginCaptures:{1:{name:"keyword.other.interface.apex"},2:{name:"entity.name.type.interface.apex"}},end:"(?=\\{)",patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#type-parameter-list"},{include:"#extends-class"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.apex"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#interface-members"}]},{include:"#javadoc-comment"},{include:"#comment"}]},"interface-members":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#property-declaration"},{include:"#indexer-declaration"},{include:"#method-declaration"},{include:"#punctuation-semicolon"}]},"invocation-expression":{begin:`(?x) +(?:(\\??\\.)\\s*)? +(@?[_[:alpha:]][_[:alnum:]]*)\\s* +(?\\s*<([^<>]|\\g)+>\\s*)?\\s* +(?=\\()`,beginCaptures:{1:{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},2:{name:"entity.name.function.apex"},3:{patterns:[{include:"#type-arguments"}]}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"javadoc-comment":{patterns:[{begin:"^\\s*(/\\*\\*)(?!/)",beginCaptures:{1:{name:"punctuation.definition.comment.apex"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.apex"}},name:"comment.block.javadoc.apex",patterns:[{match:"@(deprecated|author|return|see|serial|since|version|usage|name|link)\\b",name:"keyword.other.documentation.javadoc.apex"},{captures:{1:{name:"keyword.other.documentation.javadoc.apex"},2:{name:"entity.name.variable.parameter.apex"}},match:"(@param)\\s+(\\S+)"},{captures:{1:{name:"keyword.other.documentation.javadoc.apex"},2:{name:"entity.name.type.class.apex"}},match:"(@(?:exception|throws))\\s+(\\S+)"},{captures:{1:{name:"string.quoted.single.apex"}},match:"(`([^`]+?)`)"}]}]},literal:{patterns:[{include:"#boolean-literal"},{include:"#null-literal"},{include:"#numeric-literal"},{include:"#string-literal"}]},"local-constant-declaration":{begin:`(?x) +(?\\b(?:const)\\b)\\s* +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* +) +(?:\\s*\\?\\s*)? +(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* +) +)\\s+ +(\\g)\\s* +(?=,|;|=)`,beginCaptures:{1:{name:"storage.modifier.apex"},2:{patterns:[{include:"#type"}]},6:{name:"entity.name.variable.local.apex"}},end:"(?=;)",patterns:[{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.variable.local.apex"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"local-declaration":{patterns:[{include:"#local-constant-declaration"},{include:"#local-variable-declaration"}]},"local-variable-declaration":{begin:`(?x) +(?: +(?:(\\bref)\\s+)?(\\bvar\\b)| +(? +(?: +(?:ref\\s+)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* +) +(?:\\s*\\?\\s*)? +(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* +) +) +)\\s+ +(\\g)\\s* +(?=,|;|=|\\))`,beginCaptures:{1:{name:"storage.modifier.apex"},2:{name:"keyword.other.var.apex"},3:{patterns:[{include:"#support-type"},{include:"#type"}]},7:{name:"entity.name.variable.local.apex"}},end:"(?=;|\\))",patterns:[{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.variable.local.apex"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"member-access-expression":{patterns:[{captures:{1:{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},2:{name:"variable.other.object.property.apex"}},match:`(?x) +(\\??\\.)\\s* +(@?[_[:alpha:]][_[:alnum:]]*)\\s* +(?![_[:alnum:]]|\\(|(\\?)?\\[|<)`},{captures:{1:{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},2:{name:"variable.other.object.apex"},3:{patterns:[{include:"#type-arguments"}]}},match:`(?x) +(\\??\\.)?\\s* +(@?[_[:alpha:]][_[:alnum:]]*) +(?\\s*<([^<>]|\\g)+>\\s*) +(?= +(\\s*\\?)? +\\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]* +)`},{captures:{1:{name:"variable.other.object.apex"}},match:`(?x) +(@?[_[:alpha:]][_[:alnum:]]*) +(?= +(\\s*\\?)? +\\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]* +)`}]},"merge-expression":{begin:"(merge)\\b\\s+",beginCaptures:{1:{name:"support.function.apex"}},end:"(?<=\\;)",patterns:[{include:"#object-creation-expression"},{include:"#merge-type-statement"},{include:"#expression"},{include:"#punctuation-semicolon"}]},"merge-type-statement":{captures:{1:{name:"variable.other.readwrite.apex"},2:{name:"variable.other.readwrite.apex"},3:{name:"punctuation.terminator.statement.apex"}},match:"([_[:alpha:]]*)\\b\\s+([_[:alpha:]]*)\\b\\s*(\\;)"},"method-declaration":{begin:`(?x) +(? +(? +(?: +(?:ref\\s+)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* +) +(?:\\s*\\?\\s*)? +(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* +) +)\\s+ +) +(?\\g\\s*\\.\\s*)? +(\\g)\\s* +(<([^<>]+)>)?\\s* +(?=\\()`,beginCaptures:{1:{patterns:[{include:"#support-type"},{include:"#type"}]},6:{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},7:{patterns:[{include:"#support-type"},{include:"#method-name-custom"}]},8:{patterns:[{include:"#type-parameter-list"}]}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#expression-body"},{include:"#block"}]},"method-name-custom":{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.function.apex"},"named-argument":{begin:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)",beginCaptures:{1:{name:"entity.name.variable.parameter.apex"},2:{name:"punctuation.separator.colon.apex"}},end:"(?=(,|\\)|\\]))",patterns:[{include:"#expression"}]},"null-literal":{match:"(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* +) +(?:\\s*\\?\\s*)? +(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* +) +)\\s* +(?=\\{|$)`},"object-creation-expression-with-parameters":{begin:`(?x) +(delete|insert|undelete|update|upsert)? +\\s*(new)\\s+ +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* +) +(?:\\s*\\?\\s*)? +(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* +) +)\\s* +(?=\\()`,beginCaptures:{1:{name:"support.function.apex"},2:{name:"keyword.control.new.apex"},3:{patterns:[{include:"#support-type"},{include:"#type"}]}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"operator-assignment":{match:"(? +(?: +(?:ref\\s+)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* +) +(?:\\s*\\?\\s*)? +(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* +) +)\\s+ +(\\g)`},"parenthesized-expression":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.apex"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},"parenthesized-parameter-list":{begin:"(\\()",beginCaptures:{0:{name:"punctuation.parenthesis.open.apex"}},end:"(\\))",endCaptures:{0:{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#comment"},{include:"#parameter"},{include:"#punctuation-comma"},{include:"#variable-initializer"}]},"property-accessors":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.apex"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.apex"}},patterns:[{match:"\\b(private|protected)\\b",name:"storage.modifier.apex"},{match:"\\b(get)\\b",name:"keyword.other.get.apex"},{match:"\\b(set)\\b",name:"keyword.other.set.apex"},{include:"#comment"},{include:"#expression-body"},{include:"#block"},{include:"#punctuation-semicolon"}]},"property-declaration":{begin:`(?x) +(?!.*\\b(?:class|interface|enum)\\b)\\s* +(? +(? +(?: +(?:ref\\s+)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* +) +(?:\\s*\\?\\s*)? +(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* +) +)\\s+ +) +(?\\g\\s*\\.\\s*)? +(?\\g)\\s* +(?=\\{|=>|$)`,beginCaptures:{1:{patterns:[{include:"#type"}]},6:{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},7:{name:"entity.name.variable.property.apex"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#property-accessors"},{include:"#expression-body"},{include:"#variable-initializer"},{include:"#class-or-trigger-members"}]},"punctuation-accessor":{match:"\\.",name:"punctuation.accessor.apex"},"punctuation-comma":{match:",",name:"punctuation.separator.comma.apex"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.apex"},"query-operators":{captures:{1:{name:"keyword.operator.query.apex"}},match:"\\b(ABOVE|AND|AT|FOR REFERENCE|FOR UPDATE|FOR VIEW|GROUP BY|HAVING|IN|LIKE|LIMIT|NOT IN|NOT|OFFSET|OR|TYPEOF|UPDATE TRACKING|UPDATE VIEWSTAT|WITH DATA CATEGORY|WITH)\\b\\s*"},"return-statement":{begin:"(?",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{include:"#comment"},{include:"#support-type"},{include:"#punctuation-comma"}]},"support-class":{captures:{1:{name:"support.class.apex"}},match:"\\b(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)\\b"},"support-expression":{begin:`(?x) +(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)(?=\\.|\\s)`,beginCaptures:{1:{name:"support.class.apex"}},end:"(?<=\\)|$)|(?=\\})|(?=;)|(?=\\)|(?=\\]))|(?=\\,)",patterns:[{include:"#support-type"},{captures:{1:{name:"punctuation.accessor.apex"},2:{name:"support.function.apex"}},match:"(?:(\\.))([[:alpha:]]*)(?=\\()"},{captures:{1:{name:"punctuation.accessor.apex"},2:{name:"support.type.apex"}},match:"(?:(\\.))([[:alpha:]]+)"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.apex"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},{include:"#comment"},{include:"#statement"}]},"support-functions":{captures:{1:{name:"support.function.apex"}},match:"\\b(delete|execute|finish|insert|start|undelete|update|upsert)\\b"},"support-name":{patterns:[{captures:{1:{name:"punctuation.accessor.apex"},2:{name:"support.function.apex"}},match:"(\\.)\\s*([[:alpha:]]*)(?=\\()"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.apex"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},{captures:{1:{name:"punctuation.accessor.apex"},2:{name:"support.type.apex"}},match:"(\\.)\\s*([_[:alpha:]]*)"}]},"support-type":{name:"support.apex",patterns:[{include:"#comment"},{include:"#support-class"},{include:"#support-functions"},{include:"#support-name"}]},"switch-statement":{begin:`(?x) +(switch)\\b\\s+ +(on)\\b\\s+ +(?:([_.?\\'\\(\\)[:alnum:]]+)\\s*)? +(\\{)`,beginCaptures:{1:{name:"keyword.control.switch.apex"},2:{name:"keyword.control.switch.on.apex"},3:{patterns:[{include:"#statement"},{include:"#parenthesized-expression"}]},4:{name:"punctuation.curlybrace.open.apex"}},end:"(\\})",endCaptures:{0:{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#when-string"},{include:"#when-else-statement"},{include:"#when-sobject-statement"},{include:"#when-statement"},{include:"#when-multiple-statement"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"this-expression":{captures:{1:{name:"keyword.other.this.apex"}},match:"\\b(?:(this))\\b"},"throw-expression":{captures:{1:{name:"keyword.control.flow.throw.apex"}},match:"(?",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{include:"#comment"},{include:"#support-type"},{include:"#type"},{include:"#punctuation-comma"}]},"type-array-suffix":{begin:"\\[",beginCaptures:{0:{name:"punctuation.squarebracket.open.apex"}},end:"\\]",endCaptures:{0:{name:"punctuation.squarebracket.close.apex"}},patterns:[{include:"#punctuation-comma"}]},"type-builtin":{captures:{1:{name:"keyword.type.apex"}},match:"\\b(Blob|Boolean|byte|Date|Datetime|Decimal|Double|ID|Integer|Long|Object|String|Time|void)\\b"},"type-declarations":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#annotation-declaration"},{include:"#storage-modifier"},{include:"#sharing-modifier"},{include:"#class-declaration"},{include:"#enum-declaration"},{include:"#interface-declaration"},{include:"#trigger-declaration"},{include:"#punctuation-semicolon"}]},"type-name":{patterns:[{captures:{1:{name:"storage.type.apex"},2:{name:"punctuation.accessor.apex"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)"},{captures:{1:{name:"punctuation.accessor.apex"},2:{name:"storage.type.apex"}},match:"(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)"},{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"storage.type.apex"}]},"type-nullable-suffix":{captures:{0:{name:"punctuation.separator.question-mark.apex"}},match:"\\?"},"type-parameter-list":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.apex"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{captures:{1:{name:"entity.name.type.type-parameter.apex"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\b"},{include:"#comment"},{include:"#punctuation-comma"}]},"using-scope":{captures:{1:{name:"keyword.operator.query.using.apex"}},match:"((USING SCOPE)\\b\\s*(Delegated|Everything|Mine|My_Territory|My_Team_Territory|Team))\\b\\s*"},"variable-initializer":{begin:"(?)",beginCaptures:{1:{name:"keyword.operator.assignment.apex"}},end:"(?=[,\\)\\];}])",patterns:[{include:"#expression"}]},"when-else-statement":{begin:"(when)\\b\\s+(else)\\b\\s*",beginCaptures:{1:{name:"keyword.control.switch.when.apex"},2:{name:"keyword.control.switch.else.apex"}},end:"(?<=\\})",patterns:[{include:"#block"},{include:"#expression"}]},"when-multiple-statement":{begin:"(when)\\b\\s*",beginCaptures:{1:{name:"keyword.control.switch.when.apex"}},end:"(?<=\\})",patterns:[{include:"#block"},{include:"#expression"}]},"when-sobject-statement":{begin:"(when)\\b\\s+([_[:alnum:]]+)\\s+([_[:alnum:]]+)\\s*",beginCaptures:{1:{name:"keyword.control.switch.when.apex"},2:{name:"storage.type.apex"},3:{name:"entity.name.variable.local.apex"}},end:"(?<=\\})",patterns:[{include:"#block"},{include:"#expression"}]},"when-statement":{begin:"(when)\\b\\s+([\\'_\\-[:alnum:]]+)\\s*",beginCaptures:{1:{name:"keyword.control.switch.when.apex"},2:{patterns:[{include:"#expression"}]}},end:"(?<=\\})",patterns:[{include:"#block"},{include:"#expression"}]},"when-string":{begin:"(when)(\\b\\s*)((\\')[_.\\,\\'\\s*[:alnum:]]+)",beginCaptures:{1:{name:"keyword.control.switch.when.apex"},2:{name:"punctuation.whitespace.apex"},3:{patterns:[{include:"#when-string-statement"},{include:"#punctuation-comma"}]}},end:"(?<=\\})",patterns:[{include:"#block"},{include:"#expression"}]},"when-string-statement":{patterns:[{begin:"\\'",beginCaptures:{0:{name:"punctuation.definition.string.begin.apex"}},end:"\\'",endCaptures:{0:{name:"punctuation.definition.string.end.apex"}},name:"string.quoted.single.apex"}]},"where-clause":{captures:{1:{name:"keyword.operator.query.where.apex"}},match:"\\b(WHERE)\\b\\s*"},"while-statement":{begin:"(?",endCaptures:{0:{name:"punctuation.definition.string.end.apex"}},name:"string.unquoted.cdata.apex"},"xml-character-entity":{patterns:[{captures:{1:{name:"punctuation.definition.constant.apex"},3:{name:"punctuation.definition.constant.apex"}},match:`(?x) +(&) +( +(?:[[:alpha:]:_][[:alnum:]:_.-]*)| +(?:\\#[[:digit:]]+)| +(?:\\#x[[:xdigit:]]+) +) +(;)`,name:"constant.character.entity.apex"},{match:"&",name:"invalid.illegal.bad-ampersand.apex"}]},"xml-comment":{begin:"",endCaptures:{0:{name:"punctuation.definition.comment.apex"}},name:"comment.block.apex"},"xml-doc-comment":{patterns:[{include:"#xml-comment"},{include:"#xml-character-entity"},{include:"#xml-cdata"},{include:"#xml-tag"}]},"xml-string":{patterns:[{begin:"\\'",beginCaptures:{0:{name:"punctuation.definition.string.begin.apex"}},end:"\\'",endCaptures:{0:{name:"punctuation.definition.string.end.apex"}},name:"string.quoted.single.apex",patterns:[{include:"#xml-character-entity"}]},{begin:'\\"',beginCaptures:{0:{name:"punctuation.definition.stringdoublequote.begin.apex"}},end:'\\"',endCaptures:{0:{name:"punctuation.definition.stringdoublequote.end.apex"}},name:"string.quoted.double.apex",patterns:[{include:"#xml-character-entity"}]}]},"xml-tag":{begin:`(?x) +()",endCaptures:{1:{name:"punctuation.definition.tag.apex"}},name:"meta.tag.apex",patterns:[{include:"#xml-attribute"}]}},scopeName:"source.apex"});var n=[e];export{n as default}; diff --git a/assets/chunks/apl.7kPAH7yp.js b/assets/chunks/apl.7kPAH7yp.js new file mode 100644 index 000000000..25a4b5e0a --- /dev/null +++ b/assets/chunks/apl.7kPAH7yp.js @@ -0,0 +1,87 @@ +import a from"./html.CuK0VrWf.js";import e from"./xml.BzTcx3OS.js";import n from"./css.CbYhyuC0.js";import t from"./javascript.Dch3xQiY.js";import u from"./json.CupVZNk8.js";import"./java.ClXEvkw9.js";const o=Object.freeze({displayName:"APL",fileTypes:["apl","apla","aplc","aplf","apli","apln","aplo","dyalog","dyapp","mipage"],firstLineMatch:`(?x) +# APL symbols +[⌶-⍺] +| + +# Hashbang +^\\#!.*(?:\\s|\\/|(?<=!)\\b) + (?:gnu[-._]?apl|aplx?|dyalog) +(?:$|\\s) +| + +# Modeline +(?i: + # Emacs + -\\*-(?:\\s*(?=[^:;\\s]+\\s*-\\*-)|(?:.*?[;\\s]|(?<=-\\*-))mode\\s*:\\s*) + apl + (?=[\\s;]|(?]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s* set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*= + apl + (?=\\s|:|$) +)`,foldingStartMarker:"{",foldingStopMarker:"}",name:"apl",patterns:[{match:"\\A#!.*$",name:"comment.line.shebang.apl"},{include:"#heredocs"},{include:"#main"},{begin:"^\\s*((\\))OFF|(\\])NEXTFILE)\\b(.*)$",beginCaptures:{1:{name:"entity.name.command.eof.apl"},2:{name:"punctuation.definition.command.apl"},3:{name:"punctuation.definition.command.apl"},4:{patterns:[{include:"#comment"}]}},contentName:"text.embedded.apl",end:"(?=N)A"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.round.bracket.begin.apl"}},end:"\\)",endCaptures:{0:{name:"punctuation.round.bracket.end.apl"}},name:"meta.round.bracketed.group.apl",patterns:[{include:"#main"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.square.bracket.begin.apl"}},end:"\\]",endCaptures:{0:{name:"punctuation.square.bracket.end.apl"}},name:"meta.square.bracketed.group.apl",patterns:[{include:"#main"}]},{begin:"^\\s*((\\))\\S+)",beginCaptures:{1:{name:"entity.name.command.apl"},2:{name:"punctuation.definition.command.apl"}},end:"$",name:"meta.system.command.apl",patterns:[{include:"#command-arguments"},{include:"#command-switches"},{include:"#main"}]},{begin:"^\\s*((\\])\\S+)",beginCaptures:{1:{name:"entity.name.command.apl"},2:{name:"punctuation.definition.command.apl"}},end:"$",name:"meta.user.command.apl",patterns:[{include:"#command-arguments"},{include:"#command-switches"},{include:"#main"}]}],repository:{class:{patterns:[{begin:`(?x) +(?<=\\s|^) +((:)Class) +\\s+ +( +'[^']*'? +| +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* +) +\\s* +( +(:) +\\s* +(?: +( +'[^']*'? +| +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* +) +\\s* +)? +)? +(.*?)$`,beginCaptures:{0:{name:"meta.class.apl"},1:{name:"keyword.control.class.apl"},2:{name:"punctuation.definition.class.apl"},3:{name:"entity.name.type.class.apl",patterns:[{include:"#strings"}]},4:{name:"entity.other.inherited-class.apl"},5:{name:"punctuation.separator.inheritance.apl"},6:{patterns:[{include:"#strings"}]},7:{name:"entity.other.class.interfaces.apl",patterns:[{include:"#csv"}]}},end:"(?<=\\s|^)((:)EndClass)(?=\\b)",endCaptures:{1:{name:"keyword.control.class.apl"},2:{name:"punctuation.definition.class.apl"}},patterns:[{begin:"(?<=\\s|^)(:)Field(?=\\s)",beginCaptures:{0:{name:"keyword.control.field.apl"},1:{name:"punctuation.definition.field.apl"}},end:"\\s*(←.*)?(?:$|(?=⍝))",endCaptures:{0:{name:"entity.other.initial-value.apl"},1:{patterns:[{include:"#main"}]}},name:"meta.field.apl",patterns:[{match:"(?<=\\s|^)Public(?=\\s|$)",name:"storage.modifier.access.public.apl"},{match:"(?<=\\s|^)Private(?=\\s|$)",name:"storage.modifier.access.private.apl"},{match:"(?<=\\s|^)Shared(?=\\s|$)",name:"storage.modifier.shared.apl"},{match:"(?<=\\s|^)Instance(?=\\s|$)",name:"storage.modifier.instance.apl"},{match:"(?<=\\s|^)ReadOnly(?=\\s|$)",name:"storage.modifier.readonly.apl"},{captures:{1:{patterns:[{include:"#strings"}]}},match:`(?x) +( +'[^']*'? +| +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* +)`,name:"entity.name.type.apl"}]},{include:"$self"}]}]},"command-arguments":{patterns:[{begin:"\\b(?=\\S)",end:"\\b(?=\\s)",name:"variable.parameter.argument.apl",patterns:[{include:"#main"}]}]},"command-switches":{patterns:[{begin:`(?x) +(?<=\\s)(-) +( +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* +) +(=)`,beginCaptures:{1:{name:"punctuation.delimiter.switch.apl"},2:{name:"entity.name.switch.apl"},3:{name:"punctuation.assignment.switch.apl"}},end:"\\b(?=\\s)",name:"variable.parameter.switch.apl",patterns:[{include:"#main"}]},{captures:{1:{name:"punctuation.delimiter.switch.apl"},2:{name:"entity.name.switch.apl"}},match:`(?x) +(?<=\\s)(-) +( +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* +) +(?!=)`,name:"variable.parameter.switch.apl"}]},comment:{patterns:[{begin:"⍝",captures:{0:{name:"punctuation.definition.comment.apl"}},end:"$",name:"comment.line.apl"}]},csv:{patterns:[{match:",",name:"punctuation.separator.apl"},{include:"$self"}]},definition:{patterns:[{begin:"(?x) ^\\s*? (?# 1: keyword.operator.nabla.apl) (∇) (?: \\s* (?: (?# 2: entity.function.return-value.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) | \\s* (?# 3: entity.function.return-value.shy.apl) ( (\\{) (?# 4: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}) (?# 5: punctuation.definition.return-value.end.apl) | (\\() (?# 6: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 7: punctuation.definition.return-value.end.apl) | (\\(\\s*\\{) (?# 8: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}\\s*\\)) (?# 9: punctuation.definition.return-value.end.apl) | (\\{\\s*\\() (?# 10: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)\\s*\\}) (?# 11: punctuation.definition.return-value.end.apl) ) \\s* ) \\s* (?# 12: keyword.operator.assignment.apl) (←) )? \\s* (?: (?# MONADIC) (?: (?# 13: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s* (?# 14: entity.function.axis.apl) ( (?# 15: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 16: invalid.illegal.extra-characters.apl) (.*?) | (?# 17: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 18: punctuation.definition.axis.end.apl) (\\]) )? \\s*? (?# 19: entity.function.arguments.right.apl) ( (?<=\\s|\\]) [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* | (\\() (?# 20: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 21: punctuation.definition.arguments.end.apl) ) \\s* (?=;|$) ) | (?# DYADIC/AMBIVALENT) (?#==================) (?: (?# 22: entity.function.arguments.left.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s+ ) | (?# 23: entity.function.arguments.left.optional.apl) ( (\\{) (?# 24: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}) (?# 25: punctuation.definition.arguments.end.apl) | (\\(\\s*\\{) (?# 26: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}\\s*\\)) (?# 27: punctuation.definition.arguments.end.apl) | (\\{\\s*\\() (?# 28: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)\\s*\\}) (?# 29: punctuation.definition.arguments.end.apl) ) )? \\s* (?: (?# 30: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s* (?# 31: entity.function.axis.apl) ( (?# 32: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 33: invalid.illegal.extra-characters.apl) (.*?) | (?# 34: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 35: punctuation.definition.axis.end.apl) (\\]) )? | (?# 36: entity.function.operands.apl) ( (?# 37: punctuation.definition.operands.begin.apl) (\\() (?# 38: entity.function.operands.left.apl) ( \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* )? \\s* (?# 39: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s*? (?# 40: entity.function.axis.apl) ( (?# 41: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 42: invalid.illegal.extra-characters.apl) (.*?) | (?# 43: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 44: punctuation.definition.axis.end.apl) (\\]) )? \\s* (?# 45: entity.function.operands.right.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )? (?# 46: punctuation.definition.operands.end.apl) (\\)) ) ) \\s* (?# 47: entity.function.arguments.right.apl) ( (?<=\\s|\\]) [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* | \\s* (\\() (?# 48: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 49: punctuation.definition.arguments.end.apl) )? (?#==================) ) \\s* (?# 50: invalid.illegal.arguments.right.apl) ([^;]+)? (?# 51: entity.function.local-variables.apl) ( (?# 52: Include “;”) ( (?> \\s* ; (?: \\s* [⎕A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )+ )+ ) | (?# 53: invalid.illegal.local-variables.apl) ([^⍝]+) )? \\s* (?# 54: comment.line.apl) (⍝.*)? $",beginCaptures:{0:{name:"entity.function.definition.apl"},1:{name:"keyword.operator.nabla.apl"},2:{name:"entity.function.return-value.apl"},3:{name:"entity.function.return-value.shy.apl"},4:{name:"punctuation.definition.return-value.begin.apl"},5:{name:"punctuation.definition.return-value.end.apl"},6:{name:"punctuation.definition.return-value.begin.apl"},7:{name:"punctuation.definition.return-value.end.apl"},8:{name:"punctuation.definition.return-value.begin.apl"},9:{name:"punctuation.definition.return-value.end.apl"},10:{name:"punctuation.definition.return-value.begin.apl"},11:{name:"punctuation.definition.return-value.end.apl"},12:{name:"keyword.operator.assignment.apl"},13:{name:"entity.function.name.apl",patterns:[{include:"#embolden"}]},14:{name:"entity.function.axis.apl"},15:{name:"punctuation.definition.axis.begin.apl"},16:{name:"invalid.illegal.extra-characters.apl"},17:{name:"invalid.illegal.apl"},18:{name:"punctuation.definition.axis.end.apl"},19:{name:"entity.function.arguments.right.apl"},20:{name:"punctuation.definition.arguments.begin.apl"},21:{name:"punctuation.definition.arguments.end.apl"},22:{name:"entity.function.arguments.left.apl"},23:{name:"entity.function.arguments.left.optional.apl"},24:{name:"punctuation.definition.arguments.begin.apl"},25:{name:"punctuation.definition.arguments.end.apl"},26:{name:"punctuation.definition.arguments.begin.apl"},27:{name:"punctuation.definition.arguments.end.apl"},28:{name:"punctuation.definition.arguments.begin.apl"},29:{name:"punctuation.definition.arguments.end.apl"},30:{name:"entity.function.name.apl",patterns:[{include:"#embolden"}]},31:{name:"entity.function.axis.apl"},32:{name:"punctuation.definition.axis.begin.apl"},33:{name:"invalid.illegal.extra-characters.apl"},34:{name:"invalid.illegal.apl"},35:{name:"punctuation.definition.axis.end.apl"},36:{name:"entity.function.operands.apl"},37:{name:"punctuation.definition.operands.begin.apl"},38:{name:"entity.function.operands.left.apl"},39:{name:"entity.function.name.apl",patterns:[{include:"#embolden"}]},40:{name:"entity.function.axis.apl"},41:{name:"punctuation.definition.axis.begin.apl"},42:{name:"invalid.illegal.extra-characters.apl"},43:{name:"invalid.illegal.apl"},44:{name:"punctuation.definition.axis.end.apl"},45:{name:"entity.function.operands.right.apl"},46:{name:"punctuation.definition.operands.end.apl"},47:{name:"entity.function.arguments.right.apl"},48:{name:"punctuation.definition.arguments.begin.apl"},49:{name:"punctuation.definition.arguments.end.apl"},50:{name:"invalid.illegal.arguments.right.apl"},51:{name:"entity.function.local-variables.apl"},52:{patterns:[{match:";",name:"punctuation.separator.apl"}]},53:{name:"invalid.illegal.local-variables.apl"},54:{name:"comment.line.apl"}},end:"^\\s*?(?:(∇)|(⍫))\\s*?(⍝.*?)?$",endCaptures:{1:{name:"keyword.operator.nabla.apl"},2:{name:"keyword.operator.lock.apl"},3:{name:"comment.line.apl"}},name:"meta.function.apl",patterns:[{captures:{0:{name:"entity.function.local-variables.apl"},1:{patterns:[{match:";",name:"punctuation.separator.apl"}]}},match:`(?x) +^\\s* +( +(?> +; +(?: +\\s* +[⎕A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* +\\s* +)+ +)+ +)`,name:"entity.function.definition.apl"},{include:"$self"}]}]},"embedded-apl":{patterns:[{begin:"(?i)(<(\\?|%)(?:apl(?=\\s+)|=))",beginCaptures:{1:{name:"punctuation.section.embedded.begin.apl"}},end:"(?<=\\s)(\\2>)",endCaptures:{1:{name:"punctuation.section.embedded.end.apl"}},name:"meta.embedded.block.apl",patterns:[{include:"#main"}]}]},embolden:{patterns:[{match:".+",name:"markup.bold.identifier.apl"}]},heredocs:{patterns:[{begin:`^.*?⎕INP\\s+('|")((?i).*?HTML?.*?|END-OF-⎕INP)\\1.*$`,beginCaptures:{0:{patterns:[{include:"#main"}]}},contentName:"text.embedded.html.basic",end:"^.*?\\2.*?$",endCaptures:{0:{name:"constant.other.apl"}},name:"meta.heredoc.apl",patterns:[{include:"text.html.basic"},{include:"#embedded-apl"}]},{begin:`^.*?⎕INP\\s+('|")((?i).*?(?:XML|XSLT|SVG|RSS).*?)\\1.*$`,beginCaptures:{0:{patterns:[{include:"#main"}]}},contentName:"text.embedded.xml",end:"^.*?\\2.*?$",endCaptures:{0:{name:"constant.other.apl"}},name:"meta.heredoc.apl",patterns:[{include:"text.xml"},{include:"#embedded-apl"}]},{begin:`^.*?⎕INP\\s+('|")((?i).*?(?:CSS|stylesheet).*?)\\1.*$`,beginCaptures:{0:{patterns:[{include:"#main"}]}},contentName:"source.embedded.css",end:"^.*?\\2.*?$",endCaptures:{0:{name:"constant.other.apl"}},name:"meta.heredoc.apl",patterns:[{include:"source.css"},{include:"#embedded-apl"}]},{begin:`^.*?⎕INP\\s+('|")((?i).*?(?:JS(?!ON)|(?:ECMA|J|Java).?Script).*?)\\1.*$`,beginCaptures:{0:{patterns:[{include:"#main"}]}},contentName:"source.embedded.js",end:"^.*?\\2.*?$",endCaptures:{0:{name:"constant.other.apl"}},name:"meta.heredoc.apl",patterns:[{include:"source.js"},{include:"#embedded-apl"}]},{begin:`^.*?⎕INP\\s+('|")((?i).*?(?:JSON).*?)\\1.*$`,beginCaptures:{0:{patterns:[{include:"#main"}]}},contentName:"source.embedded.json",end:"^.*?\\2.*?$",endCaptures:{0:{name:"constant.other.apl"}},name:"meta.heredoc.apl",patterns:[{include:"source.json"},{include:"#embedded-apl"}]},{begin:`^.*?⎕INP\\s+('|")(?i)((?:Raw|Plain)?\\s*Te?xt)\\1.*$`,beginCaptures:{0:{patterns:[{include:"#main"}]}},contentName:"text.embedded.plain",end:"^.*?\\2.*?$",endCaptures:{0:{name:"constant.other.apl"}},name:"meta.heredoc.apl",patterns:[{include:"#embedded-apl"}]},{begin:`^.*?⎕INP\\s+('|")(.*?)\\1.*$`,beginCaptures:{0:{patterns:[{include:"#main"}]}},end:"^.*?\\2.*?$",endCaptures:{0:{name:"constant.other.apl"}},name:"meta.heredoc.apl",patterns:[{include:"$self"}]}]},label:{patterns:[{captures:{1:{name:"entity.label.name.apl"},2:{name:"punctuation.definition.label.end.apl"}},match:`(?x) +^\\s* +( +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* +) +(:)`,name:"meta.label.apl"}]},lambda:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.lambda.begin.apl"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.lambda.end.apl"}},name:"meta.lambda.function.apl",patterns:[{include:"#main"},{include:"#lambda-variables"}]},"lambda-variables":{patterns:[{match:"⍺⍺",name:"constant.language.lambda.operands.left.apl"},{match:"⍵⍵",name:"constant.language.lambda.operands.right.apl"},{match:"[⍺⍶]",name:"constant.language.lambda.arguments.left.apl"},{match:"[⍵⍹]",name:"constant.language.lambda.arguments.right.apl"},{match:"χ",name:"constant.language.lambda.arguments.axis.apl"},{match:"∇∇",name:"constant.language.lambda.operands.self.operator.apl"},{match:"∇",name:"constant.language.lambda.operands.self.function.apl"},{match:"λ",name:"constant.language.lambda.symbol.apl"}]},main:{patterns:[{include:"#class"},{include:"#definition"},{include:"#comment"},{include:"#label"},{include:"#sck"},{include:"#strings"},{include:"#number"},{include:"#lambda"},{include:"#sysvars"},{include:"#symbols"},{include:"#name"}]},name:{patterns:[{match:`(?x) +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] +[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*`,name:"variable.other.readwrite.apl"}]},number:{patterns:[{match:"¯?[0-9][¯0-9A-Za-z]*(?:\\.[¯0-9Ee][¯0-9A-Za-z]*)*|¯?\\.[0-9Ee][¯0-9A-Za-z]*",name:"constant.numeric.apl"}]},sck:{patterns:[{captures:{1:{name:"punctuation.definition.sck.begin.apl"}},match:"(?<=\\s|^)(:)[A-Za-z]+",name:"keyword.control.sck.apl"}]},strings:{patterns:[{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.apl"}},end:"'|$",endCaptures:{0:{name:"punctuation.definition.string.end.apl"}},name:"string.quoted.single.apl",patterns:[{match:"[^']*[^'\\n\\r\\\\]$",name:"invalid.illegal.string.apl"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.apl"}},end:'"|$',endCaptures:{0:{name:"punctuation.definition.string.end.apl"}},name:"string.quoted.double.apl",patterns:[{match:'[^"]*[^"\\n\\r\\\\]$',name:"invalid.illegal.string.apl"}]}]},symbols:{patterns:[{match:"(?<=\\s)←(?=\\s|$)",name:"keyword.spaced.operator.assignment.apl"},{match:"(?<=\\s)→(?=\\s|$)",name:"keyword.spaced.control.goto.apl"},{match:"(?<=\\s)≡(?=\\s|$)",name:"keyword.spaced.operator.identical.apl"},{match:"(?<=\\s)≢(?=\\s|$)",name:"keyword.spaced.operator.not-identical.apl"},{match:"\\+",name:"keyword.operator.plus.apl"},{match:"[-−]",name:"keyword.operator.minus.apl"},{match:"×",name:"keyword.operator.times.apl"},{match:"÷",name:"keyword.operator.divide.apl"},{match:"⌊",name:"keyword.operator.floor.apl"},{match:"⌈",name:"keyword.operator.ceiling.apl"},{match:"[∣|]",name:"keyword.operator.absolute.apl"},{match:"[⋆*]",name:"keyword.operator.exponent.apl"},{match:"⍟",name:"keyword.operator.logarithm.apl"},{match:"○",name:"keyword.operator.circle.apl"},{match:"!",name:"keyword.operator.factorial.apl"},{match:"∧",name:"keyword.operator.and.apl"},{match:"∨",name:"keyword.operator.or.apl"},{match:"⍲",name:"keyword.operator.nand.apl"},{match:"⍱",name:"keyword.operator.nor.apl"},{match:"<",name:"keyword.operator.less.apl"},{match:"≤",name:"keyword.operator.less-or-equal.apl"},{match:"=",name:"keyword.operator.equal.apl"},{match:"≥",name:"keyword.operator.greater-or-equal.apl"},{match:">",name:"keyword.operator.greater.apl"},{match:"≠",name:"keyword.operator.not-equal.apl"},{match:"[∼~]",name:"keyword.operator.tilde.apl"},{match:"\\?",name:"keyword.operator.random.apl"},{match:"[∊∈]",name:"keyword.operator.member-of.apl"},{match:"⍷",name:"keyword.operator.find.apl"},{match:",",name:"keyword.operator.comma.apl"},{match:"⍪",name:"keyword.operator.comma-bar.apl"},{match:"⌷",name:"keyword.operator.squad.apl"},{match:"⍳",name:"keyword.operator.iota.apl"},{match:"⍴",name:"keyword.operator.rho.apl"},{match:"↑",name:"keyword.operator.take.apl"},{match:"↓",name:"keyword.operator.drop.apl"},{match:"⊣",name:"keyword.operator.left.apl"},{match:"⊢",name:"keyword.operator.right.apl"},{match:"⊤",name:"keyword.operator.encode.apl"},{match:"⊥",name:"keyword.operator.decode.apl"},{match:"\\/",name:"keyword.operator.slash.apl"},{match:"⌿",name:"keyword.operator.slash-bar.apl"},{match:"\\x5C",name:"keyword.operator.backslash.apl"},{match:"⍀",name:"keyword.operator.backslash-bar.apl"},{match:"⌽",name:"keyword.operator.rotate-last.apl"},{match:"⊖",name:"keyword.operator.rotate-first.apl"},{match:"⍉",name:"keyword.operator.transpose.apl"},{match:"⍋",name:"keyword.operator.grade-up.apl"},{match:"⍒",name:"keyword.operator.grade-down.apl"},{match:"⌹",name:"keyword.operator.quad-divide.apl"},{match:"≡",name:"keyword.operator.identical.apl"},{match:"≢",name:"keyword.operator.not-identical.apl"},{match:"⊂",name:"keyword.operator.enclose.apl"},{match:"⊃",name:"keyword.operator.pick.apl"},{match:"∩",name:"keyword.operator.intersection.apl"},{match:"∪",name:"keyword.operator.union.apl"},{match:"⍎",name:"keyword.operator.hydrant.apl"},{match:"⍕",name:"keyword.operator.thorn.apl"},{match:"⊆",name:"keyword.operator.underbar-shoe-left.apl"},{match:"⍸",name:"keyword.operator.underbar-iota.apl"},{match:"¨",name:"keyword.operator.each.apl"},{match:"⍤",name:"keyword.operator.rank.apl"},{match:"⌸",name:"keyword.operator.quad-equal.apl"},{match:"⍨",name:"keyword.operator.commute.apl"},{match:"⍣",name:"keyword.operator.power.apl"},{match:"\\.",name:"keyword.operator.dot.apl"},{match:"∘",name:"keyword.operator.jot.apl"},{match:"⍠",name:"keyword.operator.quad-colon.apl"},{match:"&",name:"keyword.operator.ampersand.apl"},{match:"⌶",name:"keyword.operator.i-beam.apl"},{match:"⌺",name:"keyword.operator.quad-diamond.apl"},{match:"@",name:"keyword.operator.at.apl"},{match:"◊",name:"keyword.operator.lozenge.apl"},{match:";",name:"keyword.operator.semicolon.apl"},{match:"¯",name:"keyword.operator.high-minus.apl"},{match:"←",name:"keyword.operator.assignment.apl"},{match:"→",name:"keyword.control.goto.apl"},{match:"⍬",name:"constant.language.zilde.apl"},{match:"⋄",name:"keyword.operator.diamond.apl"},{match:"⍫",name:"keyword.operator.lock.apl"},{match:"⎕",name:"keyword.operator.quad.apl"},{match:"##",name:"constant.language.namespace.parent.apl"},{match:"#",name:"constant.language.namespace.root.apl"},{match:"⌻",name:"keyword.operator.quad-jot.apl"},{match:"⌼",name:"keyword.operator.quad-circle.apl"},{match:"⌾",name:"keyword.operator.circle-jot.apl"},{match:"⍁",name:"keyword.operator.quad-slash.apl"},{match:"⍂",name:"keyword.operator.quad-backslash.apl"},{match:"⍃",name:"keyword.operator.quad-less.apl"},{match:"⍄",name:"keyword.operator.greater.apl"},{match:"⍅",name:"keyword.operator.vane-left.apl"},{match:"⍆",name:"keyword.operator.vane-right.apl"},{match:"⍇",name:"keyword.operator.quad-arrow-left.apl"},{match:"⍈",name:"keyword.operator.quad-arrow-right.apl"},{match:"⍊",name:"keyword.operator.tack-down.apl"},{match:"⍌",name:"keyword.operator.quad-caret-down.apl"},{match:"⍍",name:"keyword.operator.quad-del-up.apl"},{match:"⍏",name:"keyword.operator.vane-up.apl"},{match:"⍐",name:"keyword.operator.quad-arrow-up.apl"},{match:"⍑",name:"keyword.operator.tack-up.apl"},{match:"⍓",name:"keyword.operator.quad-caret-up.apl"},{match:"⍔",name:"keyword.operator.quad-del-down.apl"},{match:"⍖",name:"keyword.operator.vane-down.apl"},{match:"⍗",name:"keyword.operator.quad-arrow-down.apl"},{match:"⍘",name:"keyword.operator.underbar-quote.apl"},{match:"⍚",name:"keyword.operator.underbar-diamond.apl"},{match:"⍛",name:"keyword.operator.underbar-jot.apl"},{match:"⍜",name:"keyword.operator.underbar-circle.apl"},{match:"⍞",name:"keyword.operator.quad-quote.apl"},{match:"⍡",name:"keyword.operator.dotted-tack-up.apl"},{match:"⍢",name:"keyword.operator.dotted-del.apl"},{match:"⍥",name:"keyword.operator.dotted-circle.apl"},{match:"⍦",name:"keyword.operator.stile-shoe-up.apl"},{match:"⍧",name:"keyword.operator.stile-shoe-left.apl"},{match:"⍩",name:"keyword.operator.dotted-greater.apl"},{match:"⍭",name:"keyword.operator.stile-tilde.apl"},{match:"⍮",name:"keyword.operator.underbar-semicolon.apl"},{match:"⍯",name:"keyword.operator.quad-not-equal.apl"},{match:"⍰",name:"keyword.operator.quad-question.apl"}]},sysvars:{patterns:[{captures:{1:{name:"punctuation.definition.quad.apl"},2:{name:"punctuation.definition.quad-quote.apl"}},match:"(?:(⎕)|(⍞))[A-Za-z]*",name:"support.system.variable.apl"}]}},scopeName:"source.apl",embeddedLangs:["html","xml","css","javascript","json"]});var d=[...a,...e,...n,...t,...u,o];export{d as default}; diff --git a/assets/chunks/applescript.B4yE-MfL.js b/assets/chunks/applescript.B4yE-MfL.js new file mode 100644 index 000000000..1e3689c2d --- /dev/null +++ b/assets/chunks/applescript.B4yE-MfL.js @@ -0,0 +1,38 @@ +const e=Object.freeze({displayName:"AppleScript",fileTypes:["applescript","scpt","script editor"],firstLineMatch:"^#!.*(osascript)",name:"applescript",patterns:[{include:"#blocks"},{include:"#inline"}],repository:{"attributes.considering-ignoring":{patterns:[{match:",",name:"punctuation.separator.array.attributes.applescript"},{match:"\\b(and)\\b",name:"keyword.control.attributes.and.applescript"},{match:"\\b(?i:case|diacriticals|hyphens|numeric\\s+strings|punctuation|white\\s+space)\\b",name:"constant.other.attributes.text.applescript"},{match:"\\b(?i:application\\s+responses)\\b",name:"constant.other.attributes.application.applescript"}]},blocks:{patterns:[{begin:"^\\s*(script)\\s+(\\w+)",beginCaptures:{1:{name:"keyword.control.script.applescript"},2:{name:"entity.name.type.script-object.applescript"}},end:"^\\s*(end(?:\\s+script)?)(?=\\s*(--.*?)?$)",endCaptures:{1:{name:"keyword.control.script.applescript"}},name:"meta.block.script.applescript",patterns:[{include:"$self"}]},{begin:`^(?x) +\\s*(to|on)\\s+ +(\\w+) +(\\() +((?:[\\s,:\\{\\}]*(?:\\w+)?)*) +(\\)) +`,beginCaptures:{1:{name:"keyword.control.function.applescript"},2:{name:"entity.name.function.handler.applescript"},3:{name:"punctuation.definition.parameters.begin.applescript"},4:{name:"variable.parameter.handler.applescript"},5:{name:"punctuation.definition.parameters.end.applescript"}},comment:` + This is not a very well-designed rule. For now, + we can leave it like this though, as it sorta works. + `,end:"^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)",endCaptures:{1:{name:"keyword.control.function.applescript"}},name:"meta.function.positional.applescript",patterns:[{include:"$self"}]},{begin:`^(?x) +\\s*(to|on)\\s+ +(\\w+) +(?:\\s+ +(of|in)\\s+ +(\\w+) +)? +(?=\\s+(above|against|apart\\s+from|around|aside\\s+from|at|below|beneath|beside|between|by|for|from|instead\\s+of|into|on|onto|out\\s+of|over|thru|under)\\b) +`,beginCaptures:{1:{name:"keyword.control.function.applescript"},2:{name:"entity.name.function.handler.applescript"},3:{name:"keyword.control.function.applescript"},4:{name:"variable.parameter.handler.direct.applescript"}},comment:"TODO: match `given` parameters",end:"^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)",endCaptures:{1:{name:"keyword.control.function.applescript"}},name:"meta.function.prepositional.applescript",patterns:[{captures:{1:{name:"keyword.control.preposition.applescript"},2:{name:"variable.parameter.handler.applescript"}},match:"\\b(?i:above|against|apart\\s+from|around|aside\\s+from|at|below|beneath|beside|between|by|for|from|instead\\s+of|into|on|onto|out\\s+of|over|thru|under)\\s+(\\w+)\\b"},{include:"$self"}]},{begin:`^(?x) +\\s*(to|on)\\s+ +(\\w+) +(?=\\s*(--.*?)?$) +`,beginCaptures:{1:{name:"keyword.control.function.applescript"},2:{name:"entity.name.function.handler.applescript"}},end:"^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)",endCaptures:{1:{name:"keyword.control.function.applescript"}},name:"meta.function.parameterless.applescript",patterns:[{include:"$self"}]},{include:"#blocks.tell"},{include:"#blocks.repeat"},{include:"#blocks.statement"},{include:"#blocks.other"}]},"blocks.other":{patterns:[{begin:"^\\s*(considering)\\b",end:"^\\s*(end(?:\\s+considering)?)(?=\\s*(--.*?)?$)",name:"meta.block.considering.applescript",patterns:[{begin:"(?<=considering)",end:"(?|<|≥|>=|≤|<=)",name:"keyword.operator.comparison.applescript"},{match:`(?ix)\\b +(and|or|div|mod|as|not +|(a\\s+)?(ref(\\s+to)?|reference\\s+to) +|equal(s|\\s+to)|contains?|comes\\s+(after|before)|(start|begin|end)s?\\s+with +) +\\b`,name:"keyword.operator.word.applescript"},{comment:"In double quotes so we can use a single quote in the keywords.",match:`(?ix)\\b +(is(n't|\\s+not)?(\\s+(equal(\\s+to)?|(less|greater)\\s+than(\\s+or\\s+equal(\\s+to)?)?|in|contained\\s+by))? +|does(n't|\\s+not)\\s+(equal|come\\s+(before|after)|contain) +) +\\b`,name:"keyword.operator.word.applescript"},{match:"\\b(?i:some|every|whose|where|that|id|index|\\d+(st|nd|rd|th)|first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|last|front|back|middle|named|beginning|end|from|to|thr(u|ough)|before|(front|back|beginning|end)\\s+of|after|behind|in\\s+(front|back|beginning|end)\\s+of)\\b",name:"keyword.operator.reference.applescript"},{match:"\\b(?i:continue|return|exit(\\s+repeat)?)\\b",name:"keyword.control.loop.applescript"},{match:"\\b(?i:about|above|after|against|and|apart\\s+from|around|as|aside\\s+from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|contains|copy|div|does|eighth|else|end|equal|equals|error|every|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead\\s+of|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|out\\s+of|over|prop|property|put|ref|reference|repeat|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b",name:"keyword.other.applescript"}]},"built-in.punctuation":{patterns:[{match:"¬",name:"punctuation.separator.continuation.line.applescript"},{comment:"the : in property assignments",match:":",name:"punctuation.separator.key-value.property.applescript"},{comment:"the parentheses in groups",match:"[()]",name:"punctuation.section.group.applescript"}]},"built-in.support":{patterns:[{match:"\\b(?i:POSIX\\s+path|frontmost|id|name|running|version|days?|weekdays?|months?|years?|time|date\\s+string|time\\s+string|length|rest|reverse|items?|contents|quoted\\s+form|characters?|paragraphs?|words?)\\b",name:"support.function.built-in.property.applescript"},{match:"\\b(?i:activate|log|clipboard\\s+info|set\\s+the\\s+clipboard\\s+to|the\\s+clipboard|info\\s+for|list\\s+(disks|folder)|mount\\s+volume|path\\s+to(\\s+resource)?|close\\s+access|get\\s+eof|open\\s+for\\s+access|read|set\\s+eof|write|open\\s+location|current\\s+date|do\\s+shell\\s+script|get\\s+volume\\s+settings|random\\s+number|round|set\\s+volume|system\\s+(attribute|info)|time\\s+to\\s+GMT|load\\s+script|run\\s+script|scripting\\s+components|store\\s+script|copy|count|get|launch|run|set|ASCII\\s+(character|number)|localized\\s+string|offset|summarize|beep|choose\\s+(application|color|file(\\s+name)?|folder|from\\s+list|remote\\s+application|URL)|delay|display\\s+(alert|dialog)|say)\\b",name:"support.function.built-in.command.applescript"},{match:"\\b(?i:get|run)\\b",name:"support.function.built-in.applescript"},{match:"\\b(?i:anything|data|text|upper\\s+case|propert(y|ies))\\b",name:"support.class.built-in.applescript"},{match:"\\b(?i:alias|class)(es)?\\b",name:"support.class.built-in.applescript"},{match:"\\b(?i:app(lication)?|boolean|character|constant|date|event|file(\\s+specification)?|handler|integer|item|keystroke|linked\\s+list|list|machine|number|picture|preposition|POSIX\\s+file|real|record|reference(\\s+form)?|RGB\\s+color|script|sound|text\\s+item|type\\s+class|vector|writing\\s+code(\\s+info)?|zone|((international|styled(\\s+(Clipboard|Unicode))?|Unicode)\\s+)?text|((C|encoded|Pascal)\\s+)?string)s?\\b",name:"support.class.built-in.applescript"},{match:`(?ix)\\b +( (cubic\\s+(centi)?|square\\s+(kilo)?|centi|kilo)met(er|re)s +| square\\s+(yards|feet|miles)|cubic\\s+(yards|feet|inches)|miles|inches +| lit(re|er)s|gallons|quarts +| (kilo)?grams|ounces|pounds +| degrees\\s+(Celsius|Fahrenheit|Kelvin) +) +\\b`,name:"support.class.built-in.unit.applescript"},{match:"\\b(?i:seconds|minutes|hours|days)\\b",name:"support.class.built-in.time.applescript"}]},comments:{patterns:[{begin:"^\\s*(#!)",captures:{1:{name:"punctuation.definition.comment.applescript"}},end:"\\n",name:"comment.line.number-sign.applescript"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.applescript"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.applescript"}},end:"\\n",name:"comment.line.number-sign.applescript"}]},{begin:"(^[ \\t]+)?(?=--)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.applescript"}},end:"(?!\\G)",patterns:[{begin:"--",beginCaptures:{0:{name:"punctuation.definition.comment.applescript"}},end:"\\n",name:"comment.line.double-dash.applescript"}]},{begin:"\\(\\*",captures:{0:{name:"punctuation.definition.comment.applescript"}},end:"\\*\\)",name:"comment.block.applescript",patterns:[{include:"#comments.nested"}]}]},"comments.nested":{patterns:[{begin:"\\(\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.applescript"}},end:"\\*\\)",endCaptures:{0:{name:"punctuation.definition.comment.end.applescript"}},name:"comment.block.applescript",patterns:[{include:"#comments.nested"}]}]},"data-structures":{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.array.begin.applescript"}},comment:'We cannot necessarily distinguish "records" from "arrays", and so this could be either.',end:"\\}",endCaptures:{0:{name:"punctuation.definition.array.end.applescript"}},name:"meta.array.applescript",patterns:[{captures:{1:{name:"constant.other.key.applescript"},2:{name:"meta.identifier.applescript"},3:{name:"punctuation.definition.identifier.applescript"},4:{name:"punctuation.definition.identifier.applescript"},5:{name:"punctuation.separator.key-value.applescript"}},match:"(\\w+|((\\|)[^|\\n]*(\\|)))\\s*(:)"},{match:":",name:"punctuation.separator.key-value.applescript"},{match:",",name:"punctuation.separator.array.applescript"},{include:"#inline"}]},{begin:'(?:(?<=application )|(?<=app ))(")',captures:{1:{name:"punctuation.definition.string.applescript"}},end:'(")',name:"string.quoted.double.application-name.applescript",patterns:[{match:"\\\\.",name:"constant.character.escape.applescript"}]},{begin:'(")',captures:{1:{name:"punctuation.definition.string.applescript"}},end:'(")',name:"string.quoted.double.applescript",patterns:[{match:"\\\\.",name:"constant.character.escape.applescript"}]},{captures:{1:{name:"punctuation.definition.identifier.applescript"},2:{name:"punctuation.definition.identifier.applescript"}},match:"(\\|)[^|\\n]*(\\|)",name:"meta.identifier.applescript"},{captures:{1:{name:"punctuation.definition.data.applescript"},2:{name:"support.class.built-in.applescript"},3:{name:"storage.type.utxt.applescript"},4:{name:"string.unquoted.data.applescript"},5:{name:"punctuation.definition.data.applescript"},6:{name:"keyword.operator.applescript"},7:{name:"support.class.built-in.applescript"}},match:"(«)(data) (utxt|utf8)([[:xdigit:]]*)(»)(?:\\s+(as)\\s+(?i:Unicode\\s+text))?",name:"constant.other.data.utxt.applescript"},{begin:"(«)(\\w+)\\b(?=\\s)",beginCaptures:{1:{name:"punctuation.definition.data.applescript"},2:{name:"support.class.built-in.applescript"}},end:"(»)",endCaptures:{1:{name:"punctuation.definition.data.applescript"}},name:"constant.other.data.raw.applescript"},{captures:{1:{name:"punctuation.definition.data.applescript"},2:{name:"punctuation.definition.data.applescript"}},match:"(«)[^»]*(»)",name:"invalid.illegal.data.applescript"}]},finder:{patterns:[{match:"\\b(item|container|(computer|disk|trash)-object|disk|folder|((alias|application|document|internet location) )?file|clipping|package)s?\\b",name:"support.class.finder.items.applescript"},{match:"\\b((Finder|desktop|information|preferences|clipping) )windows?\\b",name:"support.class.finder.window-classes.applescript"},{match:"\\b(preferences|(icon|column|list) view options|(label|column|alias list)s?)\\b",name:"support.class.finder.type-definitions.applescript"},{match:"\\b(copy|find|sort|clean up|eject|empty( trash)|erase|reveal|update)\\b",name:"support.function.finder.items.applescript"},{match:"\\b(insertion location|product version|startup disk|desktop|trash|home|computer container|finder preferences)\\b",name:"support.constant.finder.applescript"},{match:"\\b(visible)\\b",name:"support.variable.finder.applescript"}]},inline:{patterns:[{include:"#comments"},{include:"#data-structures"},{include:"#built-in"},{include:"#standardadditions"}]},itunes:{patterns:[{match:"\\b(artwork|application|encoder|EQ preset|item|source|visual|(EQ |browser )?window|((audio CD|device|shared|URL|file) )?track|playlist window|((audio CD|device|radio tuner|library|folder|user) )?playlist)s?\\b",name:"support.class.itunes.applescript"},{match:"\\b(add|back track|convert|fast forward|(next|previous) track|pause|play(pause)?|refresh|resume|rewind|search|stop|update|eject|subscribe|update(Podcast|AllPodcasts)|download)\\b",name:"support.function.itunes.applescript"},{match:"\\b(current (playlist|stream (title|URL)|track)|player state)\\b",name:"support.constant.itunes.applescript"},{match:"\\b(current (encoder|EQ preset|visual)|EQ enabled|fixed indexing|full screen|mute|player position|sound volume|visuals enabled|visual size)\\b",name:"support.variable.itunes.applescript"}]},"standard-suite":{patterns:[{match:"\\b(colors?|documents?|items?|windows?)\\b",name:"support.class.standard-suite.applescript"},{match:"\\b(close|count|delete|duplicate|exists|make|move|open|print|quit|save|activate|select|data size)\\b",name:"support.function.standard-suite.applescript"},{match:"\\b(name|frontmost|version)\\b",name:"support.constant.standard-suite.applescript"},{match:"\\b(selection)\\b",name:"support.variable.standard-suite.applescript"},{match:"\\b(attachments?|attribute runs?|characters?|paragraphs?|texts?|words?)\\b",name:"support.class.text-suite.applescript"}]},standardadditions:{patterns:[{match:"\\b((alert|dialog) reply)\\b",name:"support.class.standardadditions.user-interaction.applescript"},{match:"\\b(file information)\\b",name:"support.class.standardadditions.file.applescript"},{match:"\\b(POSIX files?|system information|volume settings)\\b",name:"support.class.standardadditions.miscellaneous.applescript"},{match:"\\b(URLs?|internet address(es)?|web pages?|FTP items?)\\b",name:"support.class.standardadditions.internet.applescript"},{match:"\\b(info for|list (disks|folder)|mount volume|path to( resource)?)\\b",name:"support.function.standardadditions.file.applescript"},{match:"\\b(beep|choose (application|color|file( name)?|folder|from list|remote application|URL)|delay|display (alert|dialog)|say)\\b",name:"support.function.standardadditions.user-interaction.applescript"},{match:"\\b(ASCII (character|number)|localized string|offset|summarize)\\b",name:"support.function.standardadditions.string.applescript"},{match:"\\b(set the clipboard to|the clipboard|clipboard info)\\b",name:"support.function.standardadditions.clipboard.applescript"},{match:"\\b(open for access|close access|read|write|get eof|set eof)\\b",name:"support.function.standardadditions.file-i-o.applescript"},{match:"\\b((load|store|run) script|scripting components)\\b",name:"support.function.standardadditions.scripting.applescript"},{match:"\\b(current date|do shell script|get volume settings|random number|round|set volume|system attribute|system info|time to GMT)\\b",name:"support.function.standardadditions.miscellaneous.applescript"},{match:"\\b(opening folder|(closing|moving) folder window for|adding folder items to|removing folder items from)\\b",name:"support.function.standardadditions.folder-actions.applescript"},{match:"\\b(open location|handle CGI request)\\b",name:"support.function.standardadditions.internet.applescript"}]},"system-events":{patterns:[{match:"\\b(audio (data|file))\\b",name:"support.class.system-events.audio-file.applescript"},{match:"\\b(alias(es)?|(Classic|local|network|system|user) domain objects?|disk( item)?s?|domains?|file( package)?s?|folders?|items?)\\b",name:"support.class.system-events.disk-folder-file.applescript"},{match:"\\b(delete|open|move)\\b",name:"support.function.system-events.disk-folder-file.applescript"},{match:"\\b(folder actions?|scripts?)\\b",name:"support.class.system-events.folder-actions.applescript"},{match:"\\b(attach action to|attached scripts|edit action of|remove action from)\\b",name:"support.function.system-events.folder-actions.applescript"},{match:"\\b(movie data|movie file)\\b",name:"support.class.system-events.movie-file.applescript"},{match:"\\b(log out|restart|shut down|sleep)\\b",name:"support.function.system-events.power.applescript"},{match:"\\b(((application |desk accessory )?process|(check|combo )?box)(es)?|(action|attribute|browser|(busy|progress|relevance) indicator|color well|column|drawer|group|grow area|image|incrementor|list|menu( bar)?( item)?|(menu |pop up |radio )?button|outline|(radio|tab|splitter) group|row|scroll (area|bar)|sheet|slider|splitter|static text|table|text (area|field)|tool bar|UI element|window)s?)\\b",name:"support.class.system-events.processes.applescript"},{match:"\\b(click|key code|keystroke|perform|select)\\b",name:"support.function.system-events.processes.applescript"},{match:"\\b(property list (file|item))\\b",name:"support.class.system-events.property-list.applescript"},{match:"\\b(annotation|QuickTime (data|file)|track)s?\\b",name:"support.class.system-events.quicktime-file.applescript"},{match:"\\b((abort|begin|end) transaction)\\b",name:"support.function.system-events.system-events.applescript"},{match:"\\b(XML (attribute|data|element|file)s?)\\b",name:"support.class.system-events.xml.applescript"},{match:"\\b(print settings|users?|login items?)\\b",name:"support.class.sytem-events.other.applescript"}]},textmate:{patterns:[{match:"\\b(print settings)\\b",name:"support.class.textmate.applescript"},{match:"\\b(get url|insert|reload bundles)\\b",name:"support.function.textmate.applescript"}]}},scopeName:"source.applescript"});var t=[e];export{t as default}; diff --git a/assets/chunks/ara.CG4fK2Nq.js b/assets/chunks/ara.CG4fK2Nq.js new file mode 100644 index 000000000..5e862f68b --- /dev/null +++ b/assets/chunks/ara.CG4fK2Nq.js @@ -0,0 +1,21 @@ +const a=Object.freeze({displayName:"Ara",fileTypes:["ara"],name:"ara",patterns:[{include:"#namespace"},{include:"#named-arguments"},{include:"#comments"},{include:"#keywords"},{include:"#strings"},{include:"#numbers"},{include:"#operators"},{include:"#type"},{include:"#function-call"}],repository:{"class-name":{patterns:[{begin:"\\b(?i)(?=|&=|\\|=|<<=|>>=|\\?\\?=)",name:"keyword.assignments.ara"},{comment:"logical operators",match:"(\\^|\\||\\|\\||&&|>>|<<|&|~|<<|>>|>|<|<=>|\\?\\?|\\?|:|\\?:)(?!=)",name:"keyword.operators.ara"},{comment:"comparison operators",match:"(==|===|!==|!=|<=|>=|<|>)(?!=)",name:"keyword.operator.comparison.ara"},{comment:"math operators",match:"(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))",name:"keyword.operator.math.ara"},{comment:"single equal assignment operator",match:"(?])=(?!=|>)",name:"keyword.operator.assignment.ara"},{captures:{1:{name:"punctuation.brackets.round.ara"},2:{name:"punctuation.brackets.square.ara"},3:{name:"punctuation.brackets.curly.ara"},4:{name:"keyword.operator.comparison.ara"},5:{name:"punctuation.brackets.round.ara"},6:{name:"punctuation.brackets.square.ara"},7:{name:"punctuation.brackets.curly.ara"}},comment:"less than, greater than (special case)",match:"(?:\\b|(?:(\\))|(\\])|(\\})))[ \\t]+([<>])[ \\t]+(?:\\b|(?:(\\()|(\\[)|(\\{)))"},{comment:"arrow method call, arrow property access",match:`(?x) +(?: +-> | \\?-> +)`,name:"keyword.operator.arrow.ara"},{comment:"double arrow key-value pair",match:`(?x) +(?: +=> +)`,name:"keyword.operator.double-arrow.ara"},{comment:"static method call, static property access",match:`(?x) +(?: +:: +)`,name:"keyword.operator.static.ara"},{comment:"closure creation",match:`(?x) +(?: +\\(\\.\\.\\.\\) +)`,name:"keyword.operator.closure.ara"},{comment:"spread operator",match:`(?x) +(?: +\\.\\.\\. +)`,name:"keyword.operator.spread.ara"},{comment:"namespace operator",match:"\\\\",name:"keyword.operator.namespace.ara"}]},strings:{patterns:[{begin:"'",end:"'",name:"string.quoted.single.ara",patterns:[{match:"\\\\[\\\\']",name:"constant.character.escape.ara"}]},{begin:'"',end:'"',name:"string.quoted.double.ara",patterns:[{include:"#interpolation"}]}]},type:{name:"support.type.php",patterns:[{match:"\\b(?:void|true|false|null|never|float|bool|int|string|dict|vec|object|mixed|nonnull|resource|self|static|parent|iterable)\\b",name:"support.type.php"},{begin:"([A-Za-z_][A-Za-z0-9_]*)<",beginCaptures:{1:{name:"support.class.php"}},end:">",patterns:[{include:"#type-annotation"}]},{begin:"(shape\\()",end:"((,|\\.\\.\\.)?\\s*\\))",endCaptures:{1:{name:"keyword.operator.key.php"}},name:"storage.type.shape.php",patterns:[{include:"#type-annotation"},{include:"#strings"},{include:"#constants"}]},{begin:"\\(",end:"\\)",patterns:[{include:"#type-annotation"}]},{begin:"\\(fn\\(",end:"\\)",patterns:[{include:"#type-annotation"}]},{include:"#class-name"},{include:"#comments"}]},"user-function-call":{begin:"(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z0-9_]*\\s*\\()",end:"(?i)[a-z_][a-z_0-9]*(?=\\s*\\()",endCaptures:{0:{name:"entity.name.function.php"}},name:"meta.function-call.php",patterns:[{include:"#namespace"}]}},scopeName:"source.ara"});var e=[a];export{e as default}; diff --git a/assets/chunks/asm.PWN5J14X.js b/assets/chunks/asm.PWN5J14X.js new file mode 100644 index 000000000..87701d7b4 --- /dev/null +++ b/assets/chunks/asm.PWN5J14X.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Assembly",fileTypes:["asm","nasm","yasm","inc","s"],name:"asm",patterns:[{include:"#registers"},{include:"#mnemonics"},{include:"#constants"},{include:"#entities"},{include:"#support"},{include:"#comments"},{include:"#preprocessor"},{include:"#strings"}],repository:{comments:{patterns:[{match:"(;|(^|\\s)#\\s).*$",name:"comment.line"},{begin:"/\\*",end:"\\*/",name:"comment.block"},{begin:"^\\s*[\\#%]\\s*if\\s+0\\b",end:"^\\s*[\\#%]\\s*endif\\b",name:"comment.preprocessor"}]},constants:{patterns:[{match:"(?i)\\b0[by](?:[01][01_]*)\\.(?:(?:[01][01_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?",name:"constant.numeric.binary.floating-point.asm.x86_64"},{match:"(?i)\\b0[by](?:[01][01_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b",name:"constant.numeric.binary.floating-point.asm.x86_64"},{match:"(?i)\\b0[oq](?:[0-7][0-7_]*)\\.(?:(?:[0-7][0-7_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?",name:"constant.numeric.octal.floating-point.asm.x86_64"},{match:"(?i)\\b0[oq](?:[0-7][0-7_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b",name:"constant.numeric.octal.floating-point.asm.x86_64"},{match:"(?i)\\b(?:0[dt])?(?:[0-9][0-9_]*)\\.(?:(?:[0-9][0-9_]*)?(?:e[+-]?(?:[0-9][0-9_]*))?\\b)?",name:"constant.numeric.decimal.floating-point.asm.x86_64"},{match:"(?i)\\b(?:[0-9][0-9_]*)(?:e[+-]?(?:[0-9][0-9_]*))\\b",name:"constant.numeric.decimal.floating-point.asm.x86_64"},{match:"(?i)\\b(?:[0-9][0-9_]*)p(?:[0-9][0-9_]*)?\\b",name:"constant.numeric.decimal.packed-bcd.asm.x86_64"},{match:"(?i)\\b0[xh](?:[[:xdigit:]][[:xdigit:]_]*)\\.(?:(?:[[:xdigit:]][[:xdigit:]_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?",name:"constant.numeric.hex.floating-point.asm.x86_64"},{match:"(?i)\\b0[xh](?:[[:xdigit:]][[:xdigit:]_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b",name:"constant.numeric.hex.floating-point.asm.x86_64"},{match:"(?i)\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)?\\.(?:(?:[[:xdigit:]][[:xdigit:]_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?",name:"constant.numeric.hex.floating-point.asm.x86_64"},{match:"(?i)\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b",name:"constant.numeric.hex.floating-point.asm.x86_64"},{match:"(?i)\\b(?:(?:0[by](?:[01][01_]*))|(?:(?:[01][01_]*)[by]))\\b",name:"constant.numeric.binary.asm.x86_64"},{match:"(?i)\\b(?:(?:0[oq](?:[0-7][0-7_]*))|(?:(?:[0-7][0-7_]*)[oq]))\\b",name:"constant.numeric.octal.asm.x86_64"},{match:"(?i)\\b(?:(?:0[dt](?:[0-9][0-9_]*))|(?:(?:[0-9][0-9_]*)[dt]?))\\b",name:"constant.numeric.decimal.asm.x86_64"},{match:"(?i)(?:\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)?)\\b",name:"constant.numeric.hex.asm.x86_64"},{match:"(?i)\\b(?:(?:0[xh](?:[[:xdigit:]][[:xdigit:]_]*))|(?:(?:[[:xdigit:]][[:xdigit:]_]*)[hxHX]))\\b",name:"constant.numeric.hex.asm.x86_64"}]},entities:{patterns:[{match:"((section|segment)\\s+)?\\.((ro)?data|bss|text)",name:"entity.name.section"},{match:"^\\.?(globa?l|extern|required)\\b",name:"entity.directive"},{match:"(\\$\\w+)\\b",name:"text.variable"},{captures:{1:{name:"punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64"},2:{name:"entity.name.function.special.asm.x86_64"},3:{name:"punctuation.separator.asm.x86_64"}},match:"(\\.\\.@)((?:[[:alpha:]_?](?:[[:alnum:]_$#@~.?]*)))(?:(\\:)?|\\b)",name:"entity.name.function.asm.x86_64"},{captures:{1:{name:"punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64"},2:{name:"entity.name.function.asm.x86_64"},3:{name:"punctuation.separator.asm.x86_64"}},match:"(?:(\\.)?|\\b)((?:[[:alpha:]_?](?:[[:alnum:]_$#@~.?]*)))(?:(\\:))",name:"entity.name.function.asm.x86_64"},{captures:{1:{name:"punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64"},2:{name:"entity.name.function.asm.x86_64"},3:{name:"punctuation.separator.asm.x86_64"}},match:"(\\.)([0-9]+(?:[[:alnum:]_$#@~.?]*))(?:(\\:)?|\\b)",name:"entity.name.function.asm.x86_64"},{captures:{1:{name:"punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64"},2:{name:"invalid.illegal.entity.name.function.asm.x86_64"},3:{name:"punctuation.separator.asm.x86_64"}},match:"(?:(\\.)?|\\b)([0-9$@~](?:[[:alnum:]_$#@~.?]*))(?:(\\:))",name:"invalid.illegal.entity.name.function.asm.x86_64"}]},mnemonics:{patterns:[{include:"#mnemonics-general-purpose"},{include:"#mnemonics-fpu"},{include:"#mnemonics-mmx"},{include:"#mnemonics-sse"},{include:"#mnemonics-sse2"},{include:"#mnemonics-sse3"},{include:"#mnemonics-sse4"},{include:"#mnemonics-aesni"},{include:"#mnemonics-avx"},{include:"#mnemonics-avx2"},{include:"#mnemonics-tsx"},{include:"#mnemonics-sha"},{include:"#mnemonics-avx512"},{include:"#mnemonics-system"},{include:"#mnemonics-64bit"},{include:"#mnemonics-vmx"},{include:"#mnemonics-smx"},{include:"#mnemonics-mpx"},{include:"#mnemonics-sgx"},{include:"#mnemonics-cet"},{include:"#mnemonics-amx"},{include:"#mnemonics-uirq"},{include:"#mnemonics-esi"},{include:"#mnemonics-intel-manual-listing"},{include:"#mnemonics-intel-isa-xeon-phi"},{include:"#mnemonics-intel-isa-keylocker"},{include:"#mnemonics-supplemental-amd"},{include:"#mnemonics-supplemental-cyrix"},{include:"#mnemonics-supplemental-via"},{include:"#mnemonics-undocumented"},{include:"#mnemonics-future-intel"},{include:"#mnemonics-pseudo-ops"}]},"mnemonics-64bit":{patterns:[{match:"(?i)\\b(cdqe|cqo|(cmp|lod|mov|sto)sq|cmpxchg16b|mov(ntq|sxd)|scasq|swapgs|sys(call|ret))\\b",name:"keyword.operator.word.mnemonic.64-bit-mode"}]},"mnemonics-aesni":{patterns:[{match:"(?i)\\b(aes((dec|enc)(last)?|imc|keygenassist)|pclmulqdq)\\b",name:"keyword.operator.word.mnemonic.aesni"}]},"mnemonics-amx":{patterns:[{match:"(?i)\\b((ld|st)tilecfg|tdpb(f16ps|[su]{2}d)|tile(loadd(t1)?|release|stored|zero))\\b",name:"keyword.operator.word.mnemonic.amx"}]},"mnemonics-avx":{patterns:[{match:"(?i)\\b(v((test|permil|maskmov)p[ds]|zero(all|upper)|(perm2|insert|extract|broadcast)f128|broadcasts[ds]))\\b",name:"keyword.operator.word.mnemonic.avx"},{match:"(?i)\\b(vaes((dec|enc)(last)?|imc|keygenassist)|vpclmulqdq)\\b",name:"keyword.operator.word.mnemonic.avx.promoted.aes"},{match:"(?i)\\b(v((cmp[ps]|u?comis)[ds]|pcmp([ei]str[im]|(eq|gt)[bdqw])))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.comparison"},{match:"(?i)\\b(v(cvt(dq2pd|dq2ps|pd2ps|ps2pd|sd2ss|si2sd|si2ss|ss2sd|t?(pd2dq|ps2dq|sd2si|ss2si))))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.conversion"},{match:"(?i)\\b(vh((add|sub)p[ds])|vph((add|sub)([dw]|sw)|minposuw))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.horizontal-packed-arithmetic"},{match:"(?i)\\b(v((andn?|x?or)p[ds]))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.logical"},{match:"(?i)\\b(v(mov(([ahl]|msk|nt|u)p[ds]|(hl|lh)ps|s([ds]|[hl]dup)|q)))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.mov"},{match:"(?i)\\b(v((add|div|mul|sub|max|min|round|sqrt)[ps][ds]|(addsub|dp)p[ds]|(rcp|rsqrt)[ps]s))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.packed-arithmetic"},{match:"(?i)\\b(v(pack[su]s(dw|wb)|punpck[hl](bw|dq|wd|qdq)|unpck[hl]p[ds]))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.packed-conversion"},{match:"(?i)\\b(vp(shuf([bd]|[hl]w))|vshufp[ds])\\b",name:"keyword.operator.word.mnemonic.avx.promoted.packed-shuffle"},{match:"(?i)\\b(vp((abs|sign|(max|min)[su])[bdw]|(add|sub)([bdqw]|u?s[bw])|avg[bw]|extr[bdqw]|madd(wd|ubsw)|mul(hu?w|hrsw|l[dw]|u?dq)|sadbw))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.supplemental.arithmetic"},{match:"(?i)\\b(vp(andn?|x?or))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.supplemental.logical"},{match:"(?i)\\b(vpblend(vb|w))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.supplemental.blending"},{match:"(?i)\\b(vpmov(mskb|[sz]x(b[dqw]|w[dq]|dq)))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.supplemental.mov"},{match:"(?i)\\b(vp(insr[bdqw]|sll(dq|[dqw])|srl(dq)))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.simd-integer"},{match:"(?i)\\b(vp(sra[dwq]|srl[dqw]))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.shift-and-rotate"},{match:"(?i)\\b(vblendv?p[ds])\\b",name:"keyword.operator.word.mnemonic.avx.promoted.packed-blending"},{match:"(?i)\\b(vp(test|alignr))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.packed-other"},{match:"(?i)\\b(vmov(d(dup|qa|qu)?))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.simd-integer.mov"},{match:"(?i)\\b(v((extract|insert)ps|lddqu|(ld|st)mxcsr|mpsadbw))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.other"},{match:"(?i)\\b(v(maskmovdqu|movntdqa?))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.cacheability-control"},{match:"(?i)\\b(vcvt(ph2ps|ps2ph))\\b",name:"keyword.operator.word.mnemonic.16-bit-floating-point-conversion"},{match:"(?i)\\b(vfn?m((add|sub)(132|213|231)[ps][ds])|vfm((addsub|subadd)(132|213|231)p[ds]))\\b",name:"keyword.operator.word.mnemonic.fma"}]},"mnemonics-avx2":{patterns:[{match:"(?i)\\b(v((broadcast|extract|insert|perm2)i128|pmaskmov[dq]|perm([dsq]|p[sd])))\\b",name:"keyword.operator.word.mnemonic.avx2.promoted.simd"},{match:"(?i)\\b(vpbroadcast[bdqw])\\b",name:"keyword.operator.word.mnemonic.avx2.promoted.packed"},{match:"(?i)\\b(vp(blendd|s[lr]lv[dq]|sravd))\\b",name:"keyword.operator.word.mnemonic.avx2.blend"},{match:"(?i)\\b(vp?gather[dq][dq]|vgather([dq]|dq)p[ds])\\b",name:"keyword.operator.word.mnemonic.avx2.gather"}]},"mnemonics-avx512":{patterns:[{include:"#mnemonics-avx512f"},{include:"#mnemonics-avx512dq"},{include:"#mnemonics-avx512bw"},{include:"#mnemonics-avx512-opmask"},{include:"#mnemonics-avx512er"},{include:"#mnemonics-avx512pf"},{include:"#mnemonics-avx512fp16"}]},"mnemonics-avx512-opmask":{patterns:[{match:"(?i)\\bk(add|andn?|mov|not|or(test)?|shift[lr]|test|xn?or)[bdqw]\\b",name:"keyword.operator.word.mnemonic.avx512.opmask"},{match:"(?i)\\bkunpck(bw|wd|dq)\\b",name:"keyword.operator.word.mnemonic.avx512.opmask.unpack"}]},"mnemonics-avx512bw":{patterns:[{match:"(?i)\\bv(dbpsadbw|movdqu(8|16))\\b",name:"keyword.operator.word.mnemonic.avx512.bw.dbpsad"},{match:"(?i)\\bvp(blendm|cmpu?|movm2)[bw]\\b",name:"keyword.operator.word.mnemonic.avx512.bw.pblend"},{match:"(?i)\\bvperm(w|i2[bw])\\b",name:"keyword.operator.word.mnemonic.avx512.bw.perpmi2"},{match:"(?i)\\bvp(mov([bw]2m|u?swb))\\b",name:"keyword.operator.word.mnemonic.avx512.bw.pmov"},{match:"(?i)\\bvp(s(ll|ra|rl)vw|testn?m[bw])\\b",name:"keyword.operator.word.mnemonic.avx512.bw.psll"},{match:"(?i)\\bvp(broadcastm(b2q|w2d)|(conflict|lzcnt)[dq])\\b",name:"keyword.operator.word.mnemonic.avx512.bw.broadcast"}]},"mnemonics-avx512dq":{patterns:[{match:"(?i)\\bvcvt(t?p[ds]2u?qq|uqq2p[ds])\\b",name:"keyword.operator.word.mnemonic.avx512.dq.cvt"},{match:"(?i)\\bv((extract|insert)[fi]64x2|(fpclass|range|reduce)[ps][ds])\\b",name:"keyword.operator.word.mnemonic.avx512.dq.extract"},{match:"(?i)\\bvp(mov(m2[dq]|b2d|q2m)|mullq)\\b",name:"keyword.operator.word.mnemonic.avx512.dq.pmov"}]},"mnemonics-avx512er":{patterns:[{match:"(?i)\\bv(exp2|rcp28|rsqrt28)[ps][ds]\\b",name:"keyword.operator.word.mnemonic.avx512.er"}]},"mnemonics-avx512f":{patterns:[{match:"(?i)\\bv(align[dq]|(blendm|compress)p[ds])\\b",name:"keyword.operator.word.mnemonic.avx512.f.align"},{match:"(?i)\\bv(cvtt?[ps][ds]2u(dq|si))\\b",name:"keyword.operator.word.mnemonic.avx512.f.cvtt"},{match:"(?i)\\bv(cvt((q|ud)q2p|usi2s)[ds])\\b",name:"keyword.operator.word.mnemonic.avx512.f.cvt"},{match:"(?i)\\bv(expandp[ds]|extract[fi](32|64)x4|fixupimm[ps][ds])\\b",name:"keyword.operator.word.mnemonic.avx512.f.expand"},{match:"(?i)\\bv(get(exp|mant)[ps][ds]|insertf(32|64)x4|movdq[au](32|64))\\b",name:"keyword.operator.word.mnemonic.avx512.f.getexp"},{match:"(?i)\\bvp(blendm[dq]|cmpu?[dq]|compress[dq])\\b",name:"keyword.operator.word.mnemonic.avx512.f.pblend"},{match:"(?i)\\bvp(erm[it]2(d|q|p[ds])|expand[dq]|(max|min)[su]q|movu?s(q[bdw]|d[bw]))\\b",name:"keyword.operator.word.mnemonic.avx512.f.permi"},{match:"(?i)\\bvp(rolv?|rorr?|scatter[dq]|testn?m|terlog)[dq]\\b",name:"keyword.operator.word.mnemonic.avx512.f.prol"},{match:"(?i)\\bvpsravq\\b",name:"keyword.operator.word.mnemonic.avx512.f.sravq"},{match:"(?i)\\bv(rcp14|(rnd)?scale|rsqrt14)[ps][ds]\\b",name:"keyword.operator.word.mnemonic.avx512.f.rcp"},{match:"(?i)\\bv(scatter[dq]{2}|shuf[fi](32|64)x[24])\\b",name:"keyword.operator.word.mnemonic.avx512.f.scatter"}]},"mnemonics-avx512fp16":{patterns:[{match:"(?i)\\bv((add|cmp|div|fc?(madd|mul)c|fpclass|get(exp|mant)|mul|rcp|reduce|(rnd)?scale|r?sqrt|sub)[ps]h|u?comish)\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.add"},{match:"(?i)\\bvcvt(u?([dq]q|w)|pd)2ph\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.cvtx2ph"},{match:"(?i)\\bvcvtph2(u?([dq]q|w)|pd)\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.cvtph2x"},{match:"(?i)\\bvcvt(ph2psx|ps2phx)\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.cvtx"},{match:"(?i)\\bvcvt(s[dsi]|usi)2sh\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.cvtx2sh"},{match:"(?i)\\bvcvtsh2(s[dsi]|usi)\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.cvtsh2x"},{match:"(?i)\\bvcvtt(ph2(u?(dq|qq|w))|sh2u?si)\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.cvttph2x"},{match:"(?i)\\bvfn?m((add|sub)(132|213|231))[ps]h\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.fmadd"},{match:"(?i)\\bvfm(addsub|subadd)(132|213|231)ph\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.fmaddsub"},{match:"(?i)\\bv((min|max)ph|mov(sh|w))\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.max"}]},"mnemonics-avx512pf":{patterns:[{match:"(?i)\\bv(gather|scatter)pf[01][dq]p[ds]\\b",name:"keyword.operator.word.mnemonic.avx512.pf"}]},"mnemonics-cet":{patterns:[{match:"(?i)\\b((inc|save(prev)?|rstor|rd)ssp|wru?ss|(set|clr)ssbsy|endbr(32|64))\\b",name:"keyword.operator.word.mnemonic.cet"},{match:"(?i)\\bendbranch\\b",name:"keyword.operator.word.mnemonic.cet.misc"}]},"mnemonics-esi":{patterns:[{match:"(?i)\\benqcmds?\\b",name:"keyword.operator.word.mnemonic.esi"}]},"mnemonics-fpu":{patterns:[{match:"(?i)\\b(fcmov(n?([beu]|be)))\\b",name:"keyword.operator.word.mnemonic.fpu.data-transfer.mov"},{match:"(?i)\\b(f(i?(ld|stp?)|b(ld|stp)|xch))\\b",name:"keyword.operator.word.mnemonic.fpu.data-transfer.other"},{match:"(?i)\\b(f((add|div|mul|sub)p?|i(add|div|mul|sub)|(div|sub)rp?|i(div|sub)r))\\b",name:"keyword.operator.word.mnemonic.fpu.basic-arithmetic.basic"},{match:"(?i)\\b(f(prem1?|abs|chs|rndint|scale|sqrt|xtract))\\b",name:"keyword.operator.word.mnemonic.fpu.basic-arithmetic.other"},{match:"(?i)\\b(f(u?com[ip]?p?|icomp?|tst|xam))\\b",name:"keyword.operator.word.mnemonic.fpu.comparison"},{match:"(?i)\\b(f(sin|cos|sincos|pa?tan|2xm1|yl2x(p1)?))\\b",name:"keyword.operator.word.mnemonic.fpu.transcendental"},{match:"(?i)\\b(fld(1|z|pi|l2[et]|l[ng]2))\\b",name:"keyword.operator.word.mnemonic.fpu.load-constants"},{match:"(?i)\\b(f((inc|dec)stp|free|n?(init|clex|st[cs]w|stenv|save)|ld(cw|env)|rstor|nop)|f?wait)\\b",name:"keyword.operator.word.mnemonic.fpu.control-management"},{match:"(?i)\\b(fx(save|rstor)(64)?)\\b",name:"keyword.operator.word.mnemonic.fpu.state-management"}]},"mnemonics-future-intel":{patterns:[{include:"#mnemonics-future-intel-apx"}]},"mnemonics-future-intel-apx":{patterns:[{match:"(?i)\\b(c(cmp|test)(n?[bl]e?|[ft]|n?[osz]))\\b",name:"keyword.operator.word.mnemonic.apx.ccmp_test"},{match:"(?i)\\b(cfcmovn?([bl]e?|[opsz]))\\b",name:"keyword.operator.word.mnemonic.apx.cfcmov"},{match:"(?i)\\b(cmpn?([bl]e?|[opsz])xadd)\\b",name:"keyword.operator.word.mnemonic.apx.cmpxadd"},{match:"(?i)\\b(jmpabs|(push|pop)2p?)\\b",name:"keyword.operator.word.mnemonic.apx.other"}]},"mnemonics-general-purpose":{patterns:[{match:"(?i)\\b(?:mov(?:[sz]x)?|cmov(?:n?[abceglopsz]|n?[abgl]e|p[eo]))\\b",name:"keyword.operator.word.mnemonic.general-purpose.data-transfer.mov"},{match:"(?i)\\b(xchg|bswap|xadd|cmpxchg(8b)?)\\b",name:"keyword.operator.word.mnemonic.general-purpose.data-transfer.xchg"},{match:"(?i)\\b((push|pop)(ad?)?|cwde?|cdq|cbw)\\b",name:"keyword.operator.word.mnemonic.general-purpose.data-transfer.other"},{match:"(?i)\\b(adcx?|adox|add|sub|sbb|i?mul|i?div|inc|dec|neg|cmp)\\b",name:"keyword.operator.word.mnemonic.general-purpose.binary-arithmetic"},{match:"(?i)\\b(daa|das|aaa|aas|aam|aad)\\b",name:"keyword.operator.word.mnemonic.general-purpose.decimal-arithmetic"},{match:"(?i)\\b(and|x?or|not)\\b",name:"keyword.operator.word.mnemonic.general-purpose.logical"},{match:"(?i)\\b(s[ah][rl]|sh[rl]d|r[co][rl])\\b",name:"keyword.operator.word.mnemonic.general-purpose.rotate"},{match:"(?i)\\b(set(n?[abceglopsz]|n?[abgl]e|p[eo]))\\b",name:"keyword.operator.word.mnemonic.general-purpose.bit-and-byte.set"},{match:"(?i)\\b(bt[crs]?|bs[fr]|test|crc32|popcnt)\\b",name:"keyword.operator.word.mnemonic.general-purpose.bit-and-byte.other"},{match:"(?i)\\b(jmp|jn?[abceglopsz]|jn?[abgl]e|jp[eo]|j[er]?cxz)\\b",name:"keyword.operator.word.mnemonic.general-purpose.control-transfer.jmp"},{match:"(?i)\\b(loop(n?[ez])?|call|ret|iret[dq]?|into?|bound|enter|leave)\\b",name:"keyword.operator.word.mnemonic.general-purpose.control-transfer.other"},{match:"(?i)\\b((mov|cmp|sca|lod|sto)(s[bdw]?)|rep(n?[ez])?)\\b",name:"keyword.operator.word.mnemonic.general-purpose.strings"},{match:"(?i)\\b((in|out)(s[bdw]?)?)\\b",name:"keyword.operator.word.mnemonic.general-purpose.io"},{match:"(?i)\\b((st|cl)[cdi]|cmc|[ls]ahf|(push|pop)f[dq]?)\\b",name:"keyword.operator.word.mnemonic.general-purpose.flag-control"},{match:"(?i)\\b(l[defgs]s)\\b",name:"keyword.operator.word.mnemonic.general-purpose.segment-registers"},{match:"(?i)\\b(lea|nop|ud2?|xlatb?|cpuid|movbe)\\b",name:"keyword.operator.word.mnemonic.general-purpose.misc"},{match:"(?i)\\b(cl(flush(opt)?|demote|wb)|pcommit)\\b",name:"keyword.operator.word.mnemonic.general-purpose.cache-control"},{match:"(?i)\\b(rdrand|rdseed)\\b",name:"keyword.operator.word.mnemonic.general-purpose.rng"},{match:"(?i)\\b(andn|bextr|bls(i|r|msk)|bzhi|pdep|pext|[lt]zcnt|(mul|ror|sar|shl|shr)x)\\b",name:"keyword.operator.word.mnemonic.general-purpose.bmi"}]},"mnemonics-intel-isa-keylocker":{patterns:[{match:"(?i)\\b(aes(enc|dec)(wide)?(128|256)kl|encodekey(128|256)|loadiwkey)\\b",name:"keyword.operator.word.mnemonic.keylocker"}]},"mnemonics-intel-isa-xeon-phi":{patterns:[{match:"(?i)\\bv(4fn?(madd)[ps]s|p4dpwssds?)\\b",name:"keyword.operator.word.mnemonic.xeon-phi"}]},"mnemonics-intel-manual-listing":{patterns:[{match:"(?i)\\bcvtt?pd1pi\\b",name:"keyword.operator.word.mnemonic.other.c"},{match:"(?i)\\bv?gf2p8(affine(inv)?q|mul)b\\b",name:"keyword.operator.word.mnemonic.other.g"},{match:"(?i)\\bhreset\\b",name:"keyword.operator.word.mnemonic.other.h"},{match:"(?i)\\bincssp[dq]\\b",name:"keyword.operator.word.mnemonic.other.i"},{match:"(?i)\\bmovdir(i|64b)\\b",name:"keyword.operator.word.mnemonic.other.m"},{match:"(?i)\\bp((abs|(max|min)[su]?|mull|sra)q|config|twrite)\\b",name:"keyword.operator.word.mnemonic.other.p"},{match:"(?i)\\brd(pid|ssp[dq])\\b",name:"keyword.operator.word.mnemonic.other.r"},{match:"(?i)\\bserialize\\b",name:"keyword.operator.word.mnemonic.other.s"},{match:"(?i)\\btpause\\b",name:"keyword.operator.word.mnemonic.other.t"},{match:"(?i)\\bu(monitor|mwait)\\b",name:"keyword.operator.word.mnemonic.other.u"},{match:"(?i)\\bvbroadcast[fi](32x[248]|64x[24])\\b",name:"keyword.operator.word.mnemonic.other.vb"},{match:"(?i)\\bv(compressw|cvtne2?ps2bf16)\\b",name:"keyword.operator.word.mnemonic.other.vc"},{match:"(?i)\\bvdpbf16ps\\b",name:"keyword.operator.word.mnemonic.other.vd"},{match:"(?i)\\bvextract[fi]32x8\\b",name:"keyword.operator.word.mnemonic.other.ve"},{match:"(?i)\\bv(insert([fi]32x8|i(32|64)x4))\\b",name:"keyword.operator.word.mnemonic.other.vi"},{match:"(?i)\\bv(maskmov|(max|min)sh)\\b",name:"keyword.operator.word.mnemonic.other.vm"},{match:"(?i)\\bvp((2intersect|andn?)[dq]|absq)\\b",name:"keyword.operator.word.mnemonic.other.vpa"},{match:"(?i)\\bvpbroadcasti32x4\\b",name:"keyword.operator.word.mnemonic.other.vpb"},{match:"(?i)\\bvpcompress[bw]\\b",name:"keyword.operator.word.mnemonic.other.vpc"},{match:"(?i)\\bvp(dp(bu|ws)sds?)\\b",name:"keyword.operator.word.mnemonic.other.vpd"},{match:"(?i)\\b(vperm(b|t2[bw])|vp(expand[bw]|extrtd))\\b",name:"keyword.operator.word.mnemonic.other.vpe"},{match:"(?i)\\bvp(madd52[hl]uq|mov(d(2m|[bw])|q[bdw]|wb)|mpov[bdqw]2m|multishiftqb)\\b",name:"keyword.operator.word.mnemonic.other.vpm"},{match:"(?i)\\b(vpopcnt[bdqw]|vpor[dq])\\b",name:"keyword.operator.word.mnemonic.other.vpo"},{match:"(?i)\\bvprorv[dq]\\b",name:"keyword.operator.word.mnemonic.other.vpr"},{match:"(?i)\\bvp(sh[lr]dv?[dqw]|shufbitqmb|shufps)\\b",name:"keyword.operator.word.mnemonic.other.vps"},{match:"(?i)\\bvpternlog[dq]\\b",name:"keyword.operator.word.mnemonic.other.vpt"},{match:"(?i)\\bvpxor[dq]\\b",name:"keyword.operator.word.mnemonic.other.vpx"},{match:"(?i)\\bv(scalef[ps][dhs]|scatter[dq]p[ds])\\b",name:"keyword.operator.word.mnemonic.other.vs"},{match:"(?i)\\b(wbnoinvd|wru?ss[dq])\\b",name:"keyword.operator.word.mnemonic.other.w"}]},"mnemonics-invalid":{patterns:[{include:"#mnemonics-invalid-amd-sse5"}]},"mnemonics-invalid-amd-sse5":{patterns:[{match:"(?i)\\b(com[ps][ds]|pcomu?[bdqw])\\b",name:"invalid.keyword.operator.word.mnemonic.sse5.comparison"},{match:"(?i)\\b(cvtp(h2ps|s2ph)|frcz[ps][ds])\\b",name:"invalid.keyword.operator.word.mnemonic.sse5.conversion"},{match:"(?i)\\b(fn?m((add|sub)[ps][ds])|ph(addu?(b[dqw]|w[dq]|dq)|sub(bw|dq|wd))|pma(css?(d(d|q[hl])|w[dw])|dcss?wd))\\b",name:"invalid.keyword.operator.word.mnemonic.sse5.packed-arithmetic"},{match:"(?i)\\b(pcmov|permp[ds]|pperm|prot[bdqw]|psh[al][bdqw])\\b",name:"invalid.keyword.operator.word.mnemonic.sse5.simd-integer"}]},"mnemonics-mmx":{patterns:[{match:"(?i)\\b(mov[dq])\\b",name:"keyword.operator.word.mnemonic.mmx.data-transfer"},{match:"(?i)\\b(pack(ssdw|[su]swb)|punpck[hl](bw|dq|wd))\\b",name:"keyword.operator.word.mnemonic.mmx.conversion"},{match:"(?i)\\b(p(((add|sub)(d|(u?s)?[bw]))|maddwd|mul[lh]w))\\b",name:"keyword.operator.word.mnemonic.mmx.packed-arithmetic"},{match:"(?i)\\b(pcmp((eq|gt)[bdw]))\\b",name:"keyword.operator.word.mnemonic.mmx.comparison"},{match:"(?i)\\b(pandn?|px?or)\\b",name:"keyword.operator.word.mnemonic.mmx.logical"},{match:"(?i)\\b(ps([rl]l[dwq]|raw|rad))\\b",name:"keyword.operator.word.mnemonic.mmx.shift-and-rotate"},{match:"(?i)\\b(emms)\\b",name:"keyword.operator.word.mnemonic.mmx.state-management"}]},"mnemonics-mpx":{patterns:[{match:"(?i)\\b(bnd(mk|c[lnu]|mov|ldx|stx))\\b",name:"keyword.operator.word.mnemonic.mpx"}]},"mnemonics-pseudo-ops":{patterns:[{match:"(?i)\\b(cmp(n?(eq|lt|le)|(un)?ord)[ps][ds])\\b",name:"keyword.operator.word.pseudo-mnemonic.sse2.compare"},{match:"(?i)\\b(v?pclmul([hl]q[hl]q|[hl]qh)dq)\\b",name:"keyword.operator.word.pseudo-mnemonic.avx.promoted.aes"},{match:"(?i)\\b(vcmp(eq(_(os|uq|us))?|neq(_(oq|os|us))?|[gl][et](_oq)?|n[gl][et](_uq)?|(un)?ord(_s)?|false(_os)?|true(_us)?)[ps][ds])\\b",name:"keyword.operator.word.pseudo-mnemonic.avx.promoted.comparison"},{match:"(?i)\\bvp(cmpn?(eq|le|lt))\\b",name:"keyword.operator.word.pseudo-mnemonic.avx512.compare"},{match:"(?i)\\b(vpcom(n?eq|[gl][et]|false|true)(b|uw))\\b",name:"keyword.operator.word.pseudo-mnemonic.supplemental.amd.xop.simd"}]},"mnemonics-sgx":{patterns:[{match:"(?i)\\bencl[su]\\b",name:"keyword.operator.word.mnemonic.sgx"},{match:"(?i)\\be(add|block|create|dbg(rd|wr)|extend|init|ld[bu]|pa|remove|track|wb)\\b",name:"support.constant.sgx1.supervisor"},{match:"(?i)\\be(add|block|create|dbg(rd|wr)|extend|init|ld[bu]|pa|remove|track|wb)\\b",name:"support.constant.sgx1.supervisor"},{match:"(?i)\\be(enter|exit|getkey|report|resume)\\b",name:"support.constant.sgx1.user"},{match:"(?i)\\be(aug|mod(pr|t))\\b",name:"support.constant.sgx2.supervisor"},{match:"(?i)\\be(accept(copy)?|modpe)\\b",name:"support.constant.sgx2.user"}]},"mnemonics-sha":{patterns:[{match:"(?i)\\b(sha(1rnds4|256rnds2|1nexte|(1|256)msg[12]))\\b",name:"keyword.operator.word.mnemonic.sha"}]},"mnemonics-smx":{patterns:[{match:"(?i)\\b(getsec)\\b",name:"keyword.operator.word.mnemonic.smx.getsec"},{match:"(?i)\\b(capabilities|enteraccs|exitac|senter|sexit|parameters|smctrl|wakeup)\\b",name:"support.constant.smx"}]},"mnemonics-sse":{patterns:[{match:"(?i)\\b(mov(([ahlu]|hl|lh|msk)ps|ss))\\b",name:"keyword.operator.word.mnemonic.sse.data-transfer"},{match:"(?i)\\b((add|div|max|min|mul|rcp|r?sqrt|sub)[ps]s)\\b",name:"keyword.operator.word.mnemonic.sse.packed-arithmetic"},{match:"(?i)\\b(cmp[ps]s|u?comiss)\\b",name:"keyword.operator.word.mnemonic.sse.comparison"},{match:"(?i)\\b((andn?|x?or)ps)\\b",name:"keyword.operator.word.mnemonic.sse.logical"},{match:"(?i)\\b((shuf|unpck[hl])ps)\\b",name:"keyword.operator.word.mnemonic.sse.shuffle-and-unpack"},{match:"(?i)\\b(cvt(pi2ps|si2ss|ps2pi|tps2pi|ss2si|tss2si))\\b",name:"keyword.operator.word.mnemonic.sse.conversion"},{match:"(?i)\\b((ld|st)mxcsr)\\b",name:"keyword.operator.word.mnemonic.sse.state-management"},{match:"(?i)\\b(p(avg[bw]|extrw|insrw|(max|min)(sw|ub)|sadbw|shufw|mulhuw|movmskb))\\b",name:"keyword.operator.word.mnemonic.sse.simd-integer"},{match:"(?i)\\b(maskmovq|movntps|sfence)\\b",name:"keyword.operator.word.mnemonic.sse.cacheability-control"},{match:"(?i)\\b(prefetch(nta|t[0-2]|w(t1)?))\\b",name:"keyword.operator.word.mnemonic.sse.prefetch"}]},"mnemonics-sse2":{patterns:[{match:"(?i)\\b(mov([auhl]|msk)pd)\\b",name:"keyword.operator.word.mnemonic.sse2.data-transfer"},{match:"(?i)\\b((add|div|max|min|mul|sub|sqrt)[ps]d)\\b",name:"keyword.operator.word.mnemonic.sse2.packed-arithmetic"},{match:"(?i)\\b((andn?|x?or)pd)\\b",name:"keyword.operator.word.mnemonic.sse2.logical"},{match:"(?i)\\b((cmpp|u?comis)d)\\b",name:"keyword.operator.word.mnemonic.sse2.compare"},{match:"(?i)\\b((shuf|unpck[hl])pd)\\b",name:"keyword.operator.word.mnemonic.sse2.shuffle-and-unpack"},{match:"(?i)\\b(cvt(dq2pd|pi2pd|ps2pd|pd2ps|si2sd|sd2ss|ss2sd|t?(pd2dq|pd2pi|sd2si)))\\b",name:"keyword.operator.word.mnemonic.sse2.conversion"},{match:"(?i)\\b(cvt(dq2ps|ps2dq|tps2dq))\\b",name:"keyword.operator.word.mnemonic.sse2.packed-floating-point"},{match:"(?i)\\b(mov(dq[au]|q2dq|dq2q))\\b",name:"keyword.operator.word.mnemonic.sse2.simd-integer.mov"},{match:"(?i)\\b(p((add|sub|(s[lr]l|mulu|unpck[hl]q)d)q|shuf(d|[hl]w)))\\b",name:"keyword.operator.word.mnemonic.sse2.simd-integer.other"},{match:"(?i)\\b([lm]fence|pause|maskmovdqu|movnt(dq|i|pd))\\b",name:"keyword.operator.word.mnemonic.sse2.cacheability-control"}]},"mnemonics-sse3":{patterns:[{match:"(?i)\\b(fisttp|lddqu|(addsub|h(add|sub))p[sd]|mov(sh|sl|d)dup|monitor|mwait)\\b",name:"keyword.operator.word.mnemonic.sse3"},{match:"(?i)\\b(ph(add|sub)(s?w|d))\\b",name:"keyword.operator.word.mnemonic.sse3.supplimental.horizontal-packed-arithmetic"},{match:"(?i)\\b(p((abs|sign)[bdw]|maddubsw|mulhrsw|shufb|alignr))\\b",name:"keyword.operator.word.mnemonic.sse3.supplimental.other"}]},"mnemonics-sse4":{patterns:[{match:"(?i)\\b(pmul(ld|dq)|dpp[ds])\\b",name:"keyword.operator.word.mnemonic.sse4.1.arithmetic"},{match:"(?i)\\b(movntdqa)\\b",name:"keyword.operator.word.mnemonic.sse4.1.load-hint"},{match:"(?i)\\b(blendv?p[ds]|pblend(vb|w))\\b",name:"keyword.operator.word.mnemonic.sse4.1.packed-blending"},{match:"(?i)\\b(p(min|max)(u[dw]|s[bd]))\\b",name:"keyword.operator.word.mnemonic.sse4.1.packed-integer"},{match:"(?i)\\b(round[ps][sd])\\b",name:"keyword.operator.word.mnemonic.sse4.1.packed-floating-point"},{match:"(?i)\\b((extract|insert)ps|p((ins|ext)(r[bdq])))\\b",name:"keyword.operator.word.mnemonic.sse4.1.insertion-and-extraction"},{match:"(?i)\\b(pmov([sz]x(b[dqw]|dq|wd|wq)))\\b",name:"keyword.operator.word.mnemonic.sse4.1.conversion"},{match:"(?i)\\b(mpsadbw|phminposuw|ptest|pcmpeqq|packusdw)\\b",name:"keyword.operator.word.mnemonic.sse4.1.other"},{match:"(?i)\\b(pcmp([ei]str[im]|gtq))\\b",name:"keyword.operator.word.mnemonic.sse4.2"}]},"mnemonics-supplemental-amd":{patterns:[{match:"(?i)\\b(bl([cs](fill|ic?|msk)|cs)|t1mskc|tzmsk)\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.general-purpose"},{match:"(?i)\\b(clgi|int3|invlpga|iretw|skinit|stgi|vm(load|mcall|run|save)|monitorx|mwaitx)\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.system"},{match:"(?i)\\b([ls]lwpcb|lwp(ins|val))\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.profiling"},{match:"(?i)\\b(movnts[ds])\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.memory-management"},{match:"(?i)\\b(prefetch|clzero)\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.cache-management"},{match:"(?i)\\b((extr|insert)q)\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.sse4.a"},{match:"(?i)\\b(vfn?m((add|sub)[ps][ds])|vfm((addsub|subadd)p[ds]))\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.fma4"},{match:"(?i)\\b(vp(cmov|(comu?|rot|sh[al])[bdqw]|mac(s?s(d(d|q[hl])|w[dw]))|madcss?wd|perm))\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.xop.simd"},{match:"(?i)\\b(vph(addu?(b[dqw]|w[dq]|dq)|sub(bw|dq|wd)))\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.xop.simd-horizontal"},{match:"(?i)\\b(vfrcz[ps][ds]|vpermil2p[ds])\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.xop.other"},{match:"(?i)\\b(femms)\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.3dnow"},{match:"(?i)\\b(p(avgusb|(f2i|i2f)[dw]|mulhrw|swapd)|pf((p?n)?acc|add|max|min|mul|rcp(it[12])?|rsqit1|rsqrt|subr?))\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.3dnow.simd"},{match:"(?i)\\b(pfcmp(eq|ge|gt))\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.3dnow.comparison"}]},"mnemonics-supplemental-cyrix":{patterns:[{match:"(?i)\\b((sv|rs)dc|(wr|rd)shr|paddsiw)\\b",name:"keyword.operator.word.mnemonic.supplemental.cyrix"}]},"mnemonics-supplemental-via":{patterns:[{match:"(?i)\\b(montmul)\\b",name:"keyword.operator.word.mnemonic.supplemental.via"},{match:"(?i)\\b(x(store(rng)?|crypt(ecb|cbc|ctr|cfb|ofb)|sha(1|256)))\\b",name:"keyword.operator.word.mnemonic.supplemental.via.padlock"}]},"mnemonics-system":{patterns:[{match:"(?i)\\b((cl|st)ac|[ls]([gli]dt|tr|msw)|clts|arpl|lar|lsl|ver[rw]|inv(d|lpg|pcid)|wbinvd)\\b",name:"keyword.operator.word.mnemonic.system"},{match:"(?i)\\b(lock|hlt|rsm|(rd|wr)(msr|pkru|[fg]sbase)|rd(pmc|tscp?)|sys(enter|exit))\\b",name:"keyword.operator.word.mnemonic.system"},{match:"(?i)\\b(x((save(c|opt|s)?|rstors?)(64)?|[gs]etbv))\\b",name:"keyword.operator.word.mnemonic.system"}]},"mnemonics-tsx":{patterns:[{match:"(?i)\\b(x(abort|begin|end|test|(res|sus)ldtrk))\\b",name:"keyword.operator.word.mnemonic.tsx"}]},"mnemonics-uirq":{patterns:[{match:"(?i)\\b((cl|st|test)ui|senduipi|uiret)\\b",name:"keyword.operator.word.mnemonic.uirq"}]},"mnemonics-undocumented":{patterns:[{match:"(?i)\\b(ret[nf]|icebp|int1|int03|smi|ud1)\\b",name:"keyword.operator.word.mnemonic.undocumented"}]},"mnemonics-vmx":{patterns:[{match:"(?i)\\b(vm(ptr(ld|st)|clear|read|write|launch|resume|xo(ff|n)|call|func)|inv(ept|vpid))\\b",name:"keyword.operator.word.mnemonic.vmx"}]},preprocessor:{patterns:[{begin:"^\\s*[#%]\\s*(error|warning)\\b",captures:{1:{name:"keyword.control.import.error.c"}},end:"$",name:"meta.preprocessor.diagnostic.c",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"}]},{begin:"^\\s*[#%]\\s*(include|import)\\b\\s+",captures:{1:{name:"keyword.control.import.include.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.c.include",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.c"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.c"}},name:"string.quoted.double.include.c"},{begin:"<",beginCaptures:{0:{name:"punctuation.definition.string.begin.c"}},end:">",endCaptures:{0:{name:"punctuation.definition.string.end.c"}},name:"string.quoted.other.lt-gt.include.c"}]},{begin:"^\\s*[%#]\\s*(i?x?define|defined|elif(def)?|else|i[fs]n?(?:def|macro|ctx|idni?|id|num|str|token|empty|env)?|line|(i|end|uni?)?macro|pragma|endif)\\b",captures:{1:{name:"keyword.control.import.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.c",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{include:"#preprocessor-functions"}]},{begin:"^\\s*[#%]\\s*(assign|strlen|substr|(end|exit)?rep|push|pop|rotate|use|ifusing|ifusable|def(?:ailas|str|tok)|undef(?:alias)?)\\b",captures:{1:{name:"keyword.control"}},end:"$",name:"meta.preprocessor.nasm",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{include:"#preprocessor-functions"}]}]},"preprocessor-functions":{patterns:[{begin:"((%)(?:(abs|cond|count|eval|isn?(?:def|macro|ctx|idni?|id|num|str|token|empty|env)?|num|sel|str(?:cat|len)?|substr|tok)\\s*(\\()))",captures:{3:{name:"support.function.preprocessor.asm.x86_64"}},end:"(\\))|$",name:"meta.preprocessor.function.asm.x86_64",patterns:[{include:"#preprocessor-functions"}]}]},registers:{patterns:[{match:"(?i)\\b(?:[abcd][hl]|[er]?[abcd]x|[er]?(?:di|si|bp|sp)|dil|sil|bpl|spl|r(?:8|9|1[0-5])[bdlw]?)\\b",name:"constant.language.register.general-purpose.asm.x86_64"},{match:"(?i)\\b(?:[cdefgs]s)\\b",name:"constant.language.register.segment.asm.x86_64"},{match:"(?i)\\b(?:[er]?flags)\\b",name:"constant.language.register.flags.asm.x86_64"},{match:"(?i)\\b(?:[er]?ip)\\b",name:"constant.language.register.instruction-pointer.asm.x86_64"},{match:"(?i)\\b(?:cr[02-4])\\b",name:"constant.language.register.control.asm.x86_64"},{match:"(?i)\\b(?:(?:mm|st|fpr)[0-7])\\b",name:"constant.language.register.mmx.asm.x86_64"},{match:"(?i)\\b(?:[xy]mm(?:[0-9]|1[0-5])|mxcsr)\\b",name:"constant.language.register.sse_avx.asm.x86_64"},{match:"(?i)\\b(?:zmm(?:[12]?[0-9]|30|31))\\b",name:"constant.language.register.avx512.asm.x86_64"},{match:"(?i)\\b(?:bnd(?:[0-3]|cfg[su]|status))\\b",name:"constant.language.register.memory-protection.asm.x86_64"},{match:"(?i)\\b(?:(?:[gil]dt)r?|tr)\\b",name:"constant.language.register.system-table-pointer.asm.x86_64"},{match:"(?i)\\b(?:dr[0-367])\\b",name:"constant.language.register.debug.asm.x86_64"},{match:"(?i)\\b(?:cr8|dr(?:[89]|1[0-5])|efer|tpr|syscfg)\\b",name:"constant.language.register.amd.asm.x86_64"},{match:"(?i)\\b(?:db[0-367]|t[67]|tr[3-7]|st)\\b",name:"invalid.deprecated.constant.language.register.asm.x86_64"},{match:"(?i)\\b[xy]mm(?:1[6-9]|2[0-9]|3[01])\\b",name:"constant.language.register.general-purpose.alias.asm.x86_64"}]},strings:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.asm"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.asm"}},name:"string.quoted.double.asm",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.asm"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.asm"}},name:"string.quoted.single.asm",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"}]},{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.asm"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.asm"}},name:"string.quoted.backquote.asm",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"}]}]},support:{patterns:[{match:"(?i)\\b(?:s?byte|(?:[doqtyz]|dq|s[dq]?)?word|(?:d|res)[bdoqtwyz]|ddq)\\b",name:"storage.type.asm.x86_64"},{match:"(?i)\\b(?:incbin|equ|times|dup)\\b",name:"support.function.asm.x86_64"},{match:"(?i)\\b(?:strict|nosplit|near|far|abs|rel)\\b",name:"storage.modifier.asm.x86_64"},{match:"(?i)\\b(?:[ao](?:16|32|64))\\b",name:"storage.modifier.prefix.asm.x86_64"},{match:"(?i)\\b(?:rep(?:n?[ez])?|lock|xacquire|xrelease|(?:no)?bnd)\\b",name:"storage.modifier.prefix.asm.x86_64"},{captures:{1:{name:"storage.modifier.prefix.vex.asm.x86_64"}},match:"{(vex[23]?|evex|rex)}"},{captures:{1:{name:"storage.modifier.opmask.asm.x86_64"}},match:"{(k[1-7])}"},{captures:{1:{name:"storage.modifier.precision.asm.x86_64"}},match:"{(1to(?:8|16))}"},{captures:{1:{name:"storage.modifier.rounding.asm.x86_64"}},match:"{(z|(?:r[nudz]-)?sae)}"},{match:"\\.\\.(?:start|imagebase|tlvp|got(?:pc(?:rel)?|(?:tp)?off)?|plt|sym|tlsie)\\b",name:"support.constant.asm.x86_64"},{match:"\\b__\\?(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|bfloat16|Infinity|[QS]?NaN)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|bfloat16|Infinity|[QS]?NaN)__\\b",name:"support.function.legacy.asm.x86_64"},{match:"\\b__\\?NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b___\\?NASM_PATCHLEVEL\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__\\?(?:FILE|LINE|BITS|OUTPUT_FORMAT|DEBUG_FORMAT)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__\\?(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__\\?USE_(?:\\w+)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__\\?PASS\\?__\\b",name:"invalid.deprecated.support.constant.altreg.asm.x86_64"},{match:"\\b__\\?ALIGNMODE\\?__\\b",name:"support.constant.smartalign.asm.x86_64"},{match:"\\b__\\?ALIGN_(\\w+)\\?__\\b",name:"support.function.smartalign.asm.x86_64"},{match:"\\b__NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)__\\b",name:"support.function.asm.x86_64"},{match:"\\b___NASM_PATCHLEVEL__\\b",name:"support.function.asm.x86_64"},{match:"\\b__(?:FILE|LINE|BITS|OUTPUT_FORMAT|DEBUG_FORMAT)__\\b",name:"support.function.asm.x86_64"},{match:"\\b__(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)__\\b",name:"support.function.asm.x86_64"},{match:"\\b__USE_(?:\\w+)__\\b",name:"support.function.asm.x86_64"},{match:"\\b__PASS__\\b",name:"invalid.deprecated.support.constant.altreg.asm.x86_64"},{match:"\\b__ALIGNMODE__\\b",name:"support.constant.smartalign.asm.x86_64"},{match:"\\b__ALIGN_(\\w+)__\\b",name:"support.function.smartalign.asm.x86_64"},{match:"\\b(?:Inf|[QS]?NaN)\\b",name:"support.constant.fp.asm.x86_64"},{match:"\\b(?:float(?:8|16|32|64|80[me]|128[lh]))\\b",name:"support.function.fp.asm.x86_64"},{match:"(?i)\\bilog2(?:[ewfc]|[fc]w)?\\b",name:"support.function.ifunc.asm.x86_64"}]}},scopeName:"source.asm.x86_64"});var n=[e];export{n as default}; diff --git a/assets/chunks/astro.Dtt22nl1.js b/assets/chunks/astro.Dtt22nl1.js new file mode 100644 index 000000000..e9fab0b04 --- /dev/null +++ b/assets/chunks/astro.Dtt22nl1.js @@ -0,0 +1,32 @@ +import e from"./json.CupVZNk8.js";import t from"./javascript.Dch3xQiY.js";import r from"./typescript.DC8MraHL.js";import a from"./stylus.DSrLtGYv.js";import n from"./sass.CMDmr8et.js";import s from"./css.CbYhyuC0.js";import o from"./scss.Dr-_CcBd.js";import i from"./less.Du6_OKDb.js";import c from"./postcss.DXT9h7v2.js";import l from"./tsx.BlxWTfDV.js";const u=Object.freeze({displayName:"Astro",fileTypes:["astro"],injections:{"L:(meta.script.astro) (meta.lang.js | meta.lang.javascript | meta.lang.partytown | meta.lang.node) - (meta source)":{patterns:[{begin:"(?<=>)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)",patterns:[{include:"#interpolation"},{include:"#attribute-literal"},{begin:"(?=[^\\s=<>`/]|/(?!>))",end:"(?!\\G)",name:"meta.embedded.line.js",patterns:[{captures:{0:{name:"source.js"},1:{patterns:[{include:"source.js"}]}},match:"(([^\\s\\\"'=<>`/]|/(?!>))+)",name:"string.unquoted.astro"},{begin:'(["])',beginCaptures:{0:{name:"punctuation.definition.string.begin.astro"}},end:"\\1",endCaptures:{0:{name:"punctuation.definition.string.end.astro"}},name:"string.quoted.astro",patterns:[{captures:{0:{patterns:[{include:"source.js"}]}},match:'([^\\n\\"/]|/(?![/*]))+'},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.js"}},end:'(?=\\")|\\n',name:"comment.line.double-slash.js"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.js"}},end:'(?=\\")|\\*/',endCaptures:{0:{name:"punctuation.definition.comment.end.js"}},name:"comment.block.js"}]},{begin:"(['])",beginCaptures:{0:{name:"punctuation.definition.string.begin.astro"}},end:"\\1",endCaptures:{0:{name:"punctuation.definition.string.end.astro"}},name:"string.quoted.astro",patterns:[{captures:{0:{patterns:[{include:"source.js"}]}},match:"([^\\n\\'/]|/(?![/*]))+"},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.js"}},end:"(?=\\')|\\n",name:"comment.line.double-slash.js"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.js"}},end:"(?=\\')|\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.js"}},name:"comment.block.js"}]}]}]}]},"attributes-interpolated":{begin:"(?)",patterns:[{include:"#attributes-value"}]}]},"attributes-value":{patterns:[{include:"#interpolation"},{match:"([^\\s\"'=<>`/]|/(?!>))+",name:"string.unquoted.astro"},{begin:`(['"])`,beginCaptures:{0:{name:"punctuation.definition.string.begin.astro"}},end:"\\1",endCaptures:{0:{name:"punctuation.definition.string.end.astro"}},name:"string.quoted.astro"},{include:"#attribute-literal"}]},comments:{begin:"",name:"comment.block.astro",patterns:[{match:"\\G-?>|)|--!>",name:"invalid.illegal.characters-not-allowed-here.astro"}]},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.astro"},912:{name:"punctuation.definition.entity.astro"}},match:`(?x) +(&) (?=[a-zA-Z]) +( +(a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve)) +| (B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?)) +| (c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross)) +| (d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger))) +| (e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr))) +| (f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr)) +| (G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve)) +| (h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy)) +| (i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?)) +| (j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr)) +| (k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa)) +| (l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot)) +| (M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker))) +| (n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute)) +| (o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr))) +| (p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?)) +| (q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr)) +| (R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))) +| (s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle)) +| (t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot)) +| (u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve))) +| (v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar)) +| (w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr)) +| (X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map)) +| (y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy)) +| (z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute)) +) +(;) +`,name:"constant.character.entity.named.$2.astro"},{captures:{1:{name:"punctuation.definition.entity.astro"},3:{name:"punctuation.definition.entity.astro"}},match:"(&)#[0-9]+(;)",name:"constant.character.entity.numeric.decimal.astro"},{captures:{1:{name:"punctuation.definition.entity.astro"},3:{name:"punctuation.definition.entity.astro"}},match:"(&)#[xX][0-9a-fA-F]+(;)",name:"constant.character.entity.numeric.hexadecimal.astro"},{match:"&(?=[a-zA-Z0-9]+;)",name:"invalid.illegal.ambiguous-ampersand.astro"}]},frontmatter:{begin:"\\A(-{3})\\s*$",beginCaptures:{1:{name:"comment"}},contentName:"source.ts",end:"(^|\\G)(-{3})|\\.{3}\\s*$",endCaptures:{2:{name:"comment"}},patterns:[{include:"source.ts"}]},interpolation:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.astro"}},contentName:"meta.embedded.expression.astro source.tsx",end:"\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.astro"}},patterns:[{begin:"\\G\\s*(?={)",end:"(?<=})",patterns:[{include:"source.tsx#object-literal"}]},{include:"source.tsx"}]}]},scope:{patterns:[{include:"#comments"},{include:"#tags"},{include:"#interpolation"},{include:"#entities"}]},tags:{patterns:[{include:"#tags-raw"},{include:"#tags-lang"},{include:"#tags-void"},{include:"#tags-general-end"},{include:"#tags-general-start"}]},"tags-end-node":{captures:{1:{name:"meta.tag.end.astro punctuation.definition.tag.begin.astro"},2:{name:"meta.tag.end.astro",patterns:[{include:"#tags-name"}]},3:{name:"meta.tag.end.astro punctuation.definition.tag.end.astro"},4:{name:"meta.tag.start.astro punctuation.definition.tag.end.astro"}},match:"()|(/>)"},"tags-general-end":{begin:"(]*)",beginCaptures:{1:{name:"meta.tag.end.astro punctuation.definition.tag.begin.astro"},2:{name:"meta.tag.end.astro",patterns:[{include:"#tags-name"}]}},end:"(>)",endCaptures:{1:{name:"meta.tag.end.astro punctuation.definition.tag.end.astro"}},name:"meta.scope.tag.$2.astro"},"tags-general-start":{begin:"(<)([^/\\s>/]*)",beginCaptures:{0:{patterns:[{include:"#tags-start-node"}]}},end:"(/?>)",endCaptures:{1:{name:"meta.tag.start.astro punctuation.definition.tag.end.astro"}},name:"meta.scope.tag.$2.astro",patterns:[{include:"#tags-start-attributes"}]},"tags-lang":{begin:"<(script|style)",beginCaptures:{0:{patterns:[{include:"#tags-start-node"}]}},end:"|/>",endCaptures:{0:{patterns:[{include:"#tags-end-node"}]}},name:"meta.scope.tag.$1.astro meta.$1.astro",patterns:[{begin:`\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['"]|)(?:text\\/)?(application\\/ld\\+json)\\2)`,end:"(?=)",name:"meta.lang.json.astro",patterns:[{include:"#tags-lang-start-attributes"}]},{begin:`\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['"]|)(module)\\2)`,end:"(?=)",name:"meta.lang.javascript.astro",patterns:[{include:"#tags-lang-start-attributes"}]},{begin:`\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['"]|)(?:text/|application/)?([\\w\\/+]+)\\2)`,end:"(?=)",name:"meta.lang.$3.astro",patterns:[{include:"#tags-lang-start-attributes"}]},{include:"#tags-lang-start-attributes"}]},"tags-lang-start-attributes":{begin:"\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.astro"}},name:"meta.tag.start.astro",patterns:[{include:"#attributes"}]},"tags-name":{patterns:[{match:"[A-Z][a-zA-Z0-9_]*",name:"support.class.component.astro"},{match:"[a-z][\\w0-9:]*-[\\w0-9:-]*",name:"meta.tag.custom.astro entity.name.tag.astro"},{match:"[a-z][\\w0-9:-]*",name:"entity.name.tag.astro"}]},"tags-raw":{begin:"<([^/?!\\s<>]+)(?=[^>]+is:raw).*?",beginCaptures:{0:{patterns:[{include:"#tags-start-node"}]}},contentName:"source.unknown",end:"|/>",endCaptures:{0:{patterns:[{include:"#tags-end-node"}]}},name:"meta.scope.tag.$1.astro meta.raw.astro",patterns:[{include:"#tags-lang-start-attributes"}]},"tags-start-attributes":{begin:"\\G",end:"(?=/?>)",name:"meta.tag.start.astro",patterns:[{include:"#attributes"}]},"tags-start-node":{captures:{1:{name:"punctuation.definition.tag.begin.astro"},2:{patterns:[{include:"#tags-name"}]}},match:"(<)([^/\\s>/]*)",name:"meta.tag.start.astro"},"tags-void":{begin:"(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.astro"},2:{name:"entity.name.tag.astro"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.begin.astro"}},name:"meta.tag.void.astro",patterns:[{include:"#attributes"}]},text:{patterns:[{begin:"(?<=^|---|>|})",end:"(?=<|{|$)",name:"text.astro",patterns:[{include:"#entities"}]}]}},scopeName:"source.astro",embeddedLangs:["json","javascript","typescript","stylus","sass","css","scss","less","postcss","tsx"]});var v=[...e,...t,...r,...a,...n,...s,...o,...i,...c,...l,u];export{v as default}; diff --git a/assets/chunks/aurora-x.BaWyeHV_.js b/assets/chunks/aurora-x.BaWyeHV_.js new file mode 100644 index 000000000..25753460a --- /dev/null +++ b/assets/chunks/aurora-x.BaWyeHV_.js @@ -0,0 +1 @@ +var t=Object.freeze({colors:{"activityBar.background":"#07090F","activityBar.foreground":"#86A5FF","activityBar.inactiveForeground":"#576dafc5","activityBarBadge.background":"#86A5FF","activityBarBadge.foreground":"#07090F","badge.background":"#86A5FF","badge.foreground":"#07090F","breadcrumb.activeSelectionForeground":"#86A5FF","breadcrumb.focusForeground":"#576daf","breadcrumb.foreground":"#576dafa6","breadcrumbPicker.background":"#07090F","button.background":"#86A5FF","button.foreground":"#07090F","button.hoverBackground":"#A8BEFF",descriptionForeground:"#576daf79","diffEditor.diagonalFill":"#15182B","diffEditor.insertedTextBackground":"#64d3892c","diffEditor.removedTextBackground":"#dd50742c","dropdown.background":"#15182B","dropdown.foreground":"#c7d5ff99","editor.background":"#07090F","editor.findMatchBackground":"#576daf","editor.findMatchHighlightBackground":"#262E47","editor.inactiveSelectionBackground":"#262e47be","editor.selectionBackground":"#262E47","editor.selectionHighlightBackground":"#262E47","editor.wordHighlightBackground":"#262E47","editor.wordHighlightStrongBackground":"#262E47","editorCodeLens.foreground":"#262E47","editorCursor.background":"#01030b","editorCursor.foreground":"#86A5FF","editorGroup.background":"#07090F","editorGroup.border":"#15182B","editorGroup.dropBackground":"#0C0E19","editorGroup.emptyBackground":"#07090F","editorGroupHeader.tabsBackground":"#07090F","editorLineNumber.activeForeground":"#576dafd8","editorLineNumber.foreground":"#262e47bb","editorWidget.background":"#15182B","editorWidget.border":"#576daf","extensionButton.prominentBackground":"#C7D5FF","extensionButton.prominentForeground":"#07090F",focusBorder:"#262E47",foreground:"#576daf","gitDecoration.addedResourceForeground":"#64d389fd","gitDecoration.deletedResourceForeground":"#dd5074","gitDecoration.ignoredResourceForeground":"#576daf90","gitDecoration.modifiedResourceForeground":"#c778db","gitDecoration.untrackedResourceForeground":"#576daf90","icon.foreground":"#576daf","input.background":"#15182B","input.foreground":"#86A5FF","inputOption.activeForeground":"#86A5FF","inputValidation.errorBackground":"#dd5073","inputValidation.errorBorder":"#dd5073","inputValidation.errorForeground":"#07090F","list.activeSelectionBackground":"#000000","list.activeSelectionForeground":"#86A5FF","list.dropBackground":"#000000","list.errorForeground":"#dd5074","list.focusBackground":"#01030b","list.focusForeground":"#86A5FF","list.highlightForeground":"#A8BEFF","list.hoverBackground":"#000000","list.hoverForeground":"#A8BEFF","list.inactiveFocusBackground":"#01030b","list.inactiveSelectionBackground":"#000000","list.inactiveSelectionForeground":"#86A5FF","list.warningForeground":"#e6db7f","notificationCenterHeader.background":"#15182B","notifications.background":"#15182B","panel.border":"#15182B","panelTitle.activeBorder":"#86A5FF","panelTitle.activeForeground":"#C7D5FF","panelTitle.inactiveForeground":"#576daf","peekViewTitle.background":"#262E47","quickInput.background":"#0C0E19","scrollbar.shadow":"#01030b","scrollbarSlider.activeBackground":"#576daf","scrollbarSlider.background":"#262E47","scrollbarSlider.hoverBackground":"#576daf","selection.background":"#01030b","sideBar.background":"#07090F","sideBar.border":"#15182B","sideBarSectionHeader.background":"#07090F","sideBarSectionHeader.foreground":"#86A5FF","statusBar.background":"#86A5FF","statusBar.debuggingBackground":"#c778db","statusBar.foreground":"#07090F","tab.activeBackground":"#07090F","tab.activeBorder":"#86A5FF","tab.activeForeground":"#C7D5FF","tab.border":"#07090F","tab.inactiveBackground":"#07090F","tab.inactiveForeground":"#576dafd8","terminal.ansiBrightRed":"#dd5073","terminal.ansiGreen":"#63eb90","terminal.ansiRed":"#dd5073","terminal.foreground":"#A8BEFF","textLink.foreground":"#86A5FF","titleBar.activeBackground":"#07090F","titleBar.activeForeground":"#86A5FF","titleBar.inactiveBackground":"#07090F","tree.indentGuidesStroke":"#576daf","widget.shadow":"#01030b"},displayName:"Aurora X",name:"aurora-x",tokenColors:[{scope:["comment","punctuation.definition.comment"],settings:{fontStyle:"italic",foreground:"#546E7A"}},{scope:["variable","string constant.other.placeholder"],settings:{foreground:"#EEFFFF"}},{scope:["constant.other.color"],settings:{foreground:"#ffffff"}},{scope:["invalid","invalid.illegal"],settings:{foreground:"#FF5370"}},{scope:["keyword","storage.type","storage.modifier"],settings:{foreground:"#C792EA"}},{scope:["keyword.control","constant.other.color","punctuation","meta.tag","punctuation.definition.tag","punctuation.separator.inheritance.php","punctuation.definition.tag.html","punctuation.definition.tag.begin.html","punctuation.definition.tag.end.html","punctuation.section.embedded","keyword.other.template","keyword.other.substitution"],settings:{foreground:"#89DDFF"}},{scope:["entity.name.tag","meta.tag.sgml","markup.deleted.git_gutter"],settings:{foreground:"#f07178"}},{scope:["entity.name.function","meta.function-call","variable.function","support.function","keyword.other.special-method"],settings:{foreground:"#82AAFF"}},{scope:["meta.block variable.other"],settings:{foreground:"#f07178"}},{scope:["support.other.variable","string.other.link"],settings:{foreground:"#f07178"}},{scope:["constant.numeric","constant.language","support.constant","constant.character","constant.escape","variable.parameter","keyword.other.unit","keyword.other"],settings:{foreground:"#F78C6C"}},{scope:["string","constant.other.symbol","constant.other.key","entity.other.inherited-class","markup.heading","markup.inserted.git_gutter","meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js"],settings:{foreground:"#C3E88D"}},{scope:["entity.name","support.type","support.class","support.orther.namespace.use.php","meta.use.php","support.other.namespace.php","markup.changed.git_gutter","support.type.sys-types"],settings:{foreground:"#FFCB6B"}},{scope:["support.type"],settings:{foreground:"#B2CCD6"}},{scope:["source.css support.type.property-name","source.sass support.type.property-name","source.scss support.type.property-name","source.less support.type.property-name","source.stylus support.type.property-name","source.postcss support.type.property-name"],settings:{foreground:"#B2CCD6"}},{scope:["entity.name.module.js","variable.import.parameter.js","variable.other.class.js"],settings:{foreground:"#FF5370"}},{scope:["variable.language"],settings:{fontStyle:"italic",foreground:"#FF5370"}},{scope:["entity.name.method.js"],settings:{fontStyle:"italic",foreground:"#82AAFF"}},{scope:["meta.class-method.js entity.name.function.js","variable.function.constructor"],settings:{foreground:"#82AAFF"}},{scope:["entity.other.attribute-name"],settings:{foreground:"#C792EA"}},{scope:["text.html.basic entity.other.attribute-name.html","text.html.basic entity.other.attribute-name"],settings:{fontStyle:"italic",foreground:"#FFCB6B"}},{scope:["entity.other.attribute-name.class"],settings:{foreground:"#FFCB6B"}},{scope:["source.sass keyword.control"],settings:{foreground:"#82AAFF"}},{scope:["markup.inserted"],settings:{foreground:"#C3E88D"}},{scope:["markup.deleted"],settings:{foreground:"#FF5370"}},{scope:["markup.changed"],settings:{foreground:"#C792EA"}},{scope:["string.regexp"],settings:{foreground:"#89DDFF"}},{scope:["constant.character.escape"],settings:{foreground:"#89DDFF"}},{scope:["*url*","*link*","*uri*"],settings:{fontStyle:"underline"}},{scope:["tag.decorator.js entity.name.tag.js","tag.decorator.js punctuation.definition.tag.js"],settings:{fontStyle:"italic",foreground:"#82AAFF"}},{scope:["source.js constant.other.object.key.js string.unquoted.label.js"],settings:{fontStyle:"italic",foreground:"#FF5370"}},{scope:["source.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFCB6B"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F78C6C"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FF5370"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C17E70"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#82AAFF"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#f07178"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C3E88D"}},{scope:["text.html.markdown","punctuation.definition.list_item.markdown"],settings:{foreground:"#EEFFFF"}},{scope:["text.html.markdown markup.inline.raw.markdown"],settings:{foreground:"#C792EA"}},{scope:["text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown"],settings:{foreground:"#65737E"}},{scope:["markdown.heading","markup.heading | markup.heading entity.name","markup.heading.markdown punctuation.definition.heading.markdown"],settings:{foreground:"#C3E88D"}},{scope:["markup.italic"],settings:{fontStyle:"italic",foreground:"#f07178"}},{scope:["markup.bold","markup.bold string"],settings:{fontStyle:"bold",foreground:"#f07178"}},{scope:["markup.bold markup.italic","markup.italic markup.bold","markup.quote markup.bold","markup.bold markup.italic string","markup.italic markup.bold string","markup.quote markup.bold string"],settings:{fontStyle:"bold",foreground:"#f07178"}},{scope:["markup.underline"],settings:{fontStyle:"underline",foreground:"#F78C6C"}},{scope:["markup.quote punctuation.definition.blockquote.markdown"],settings:{foreground:"#65737E"}},{scope:["markup.quote"],settings:{fontStyle:"italic"}},{scope:["string.other.link.title.markdown"],settings:{foreground:"#82AAFF"}},{scope:["string.other.link.description.title.markdown"],settings:{foreground:"#C792EA"}},{scope:["constant.other.reference.link.markdown"],settings:{foreground:"#FFCB6B"}},{scope:["markup.raw.block"],settings:{foreground:"#C792EA"}},{scope:["markup.raw.block.fenced.markdown"],settings:{foreground:"#00000050"}},{scope:["punctuation.definition.fenced.markdown"],settings:{foreground:"#00000050"}},{scope:["markup.raw.block.fenced.markdown","variable.language.fenced.markdown","punctuation.section.class.end"],settings:{foreground:"#EEFFFF"}},{scope:["variable.language.fenced.markdown"],settings:{foreground:"#65737E"}},{scope:["meta.separator"],settings:{fontStyle:"bold",foreground:"#65737E"}},{scope:["markup.table"],settings:{foreground:"#EEFFFF"}}],type:"dark"});export{t as default}; diff --git a/assets/chunks/awk.i0IPvypD.js b/assets/chunks/awk.i0IPvypD.js new file mode 100644 index 000000000..67ed0d772 --- /dev/null +++ b/assets/chunks/awk.i0IPvypD.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"AWK",fileTypes:["awk"],name:"awk",patterns:[{include:"#comment"},{include:"#procedure"},{include:"#pattern"}],repository:{"builtin-pattern":{match:"\\b(BEGINFILE|BEGIN|ENDFILE|END)\\b",name:"constant.language.awk"},command:{patterns:[{match:"\\b(?:next|print|printf)\\b",name:"keyword.other.command.awk"},{match:"\\b(?:close|getline|delete|system)\\b",name:"keyword.other.command.nawk"},{match:"\\b(?:fflush|nextfile)\\b",name:"keyword.other.command.bell-awk"}]},comment:{match:"#.*",name:"comment.line.number-sign.awk"},constant:{patterns:[{include:"#numeric-constant"},{include:"#string-constant"}]},"escaped-char":{match:'\\\\(?:[\\\\abfnrtv/"]|x[0-9A-Fa-f]{2}|[0-7]{3})',name:"constant.character.escape.awk"},expression:{patterns:[{include:"#command"},{include:"#function"},{include:"#constant"},{include:"#variable"},{include:"#regexp-in-expression"},{include:"#operator"},{include:"#groupings"}]},function:{patterns:[{match:"\\b(?:exp|int|log|sqrt|index|length|split|sprintf|substr)\\b",name:"support.function.awk"},{match:"\\b(?:atan2|cos|rand|sin|srand|gsub|match|sub|tolower|toupper)\\b",name:"support.function.nawk"},{match:"\\b(?:gensub|strftime|systime)\\b",name:"support.function.gawk"}]},"function-definition":{begin:"\\b(function)\\s+(\\w+)(\\()",beginCaptures:{1:{name:"storage.type.function.awk"},2:{name:"entity.name.function.awk"},3:{name:"punctuation.definition.parameters.begin.awk"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.awk"}},patterns:[{match:"\\b(\\w+)\\b",name:"variable.parameter.function.awk"},{match:"\\b(,)\\b",name:"punctuation.separator.parameters.awk"}]},groupings:{patterns:[{match:"\\(",name:"meta.brace.round.awk"},{match:"\\)",name:"meta.brace.round.awk"},{match:"\\,",name:"punctuation.separator.parameters.awk"}]},keyword:{match:"\\b(?:break|continue|do|while|exit|for|if|else|return)\\b",name:"keyword.control.awk"},"numeric-constant":{match:"\\b[0-9]+(?:\\.[0-9]+)?(?:e[+-][0-9]+)?\\b",name:"constant.numeric.awk"},operator:{patterns:[{match:"(!?~|[=<>!]=|[<>])",name:"keyword.operator.comparison.awk"},{match:"\\b(in)\\b",name:"keyword.operator.comparison.awk"},{match:"([+\\-*/%^]=|\\+\\+|--|>>|=)",name:"keyword.operator.assignment.awk"},{match:"(\\|\\||&&|!)",name:"keyword.operator.boolean.awk"},{match:"([+\\-*/%^])",name:"keyword.operator.arithmetic.awk"},{match:"([?:])",name:"keyword.operator.trinary.awk"},{match:"(\\[|\\])",name:"keyword.operator.index.awk"}]},pattern:{patterns:[{include:"#regexp-as-pattern"},{include:"#function-definition"},{include:"#builtin-pattern"},{include:"#expression"}]},procedure:{begin:"\\{",end:"\\}",patterns:[{include:"#comment"},{include:"#procedure"},{include:"#keyword"},{include:"#expression"}]},"regex-as-assignment":{begin:"([^=<>!+\\-*/%^]=)\\s*(/)",beginCaptures:{1:{name:"keyword.operator.assignment.awk"},2:{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{0:{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regex-as-comparison":{begin:"(!?~)\\s*(/)",beginCaptures:{1:{name:"keyword.operator.comparison.awk"},2:{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{0:{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regex-as-first-argument":{begin:"(\\()\\s*(/)",beginCaptures:{1:{name:"meta.brace.round.awk"},2:{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{0:{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regex-as-nth-argument":{begin:"(,)\\s*(/)",beginCaptures:{1:{name:"punctuation.separator.parameters.awk"},2:{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{0:{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regexp-as-pattern":{begin:"/",beginCaptures:{0:{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{0:{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regexp-in-expression":{patterns:[{include:"#regex-as-assignment"},{include:"#regex-as-comparison"},{include:"#regex-as-first-argument"},{include:"#regex-as-nth-argument"}]},"string-constant":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.awk"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.awk"}},name:"string.quoted.double.awk",patterns:[{include:"#escaped-char"}]},variable:{patterns:[{match:"\\$[0-9]+",name:"variable.language.awk"},{match:"\\b(?:FILENAME|FS|NF|NR|OFMT|OFS|ORS|RS)\\b",name:"variable.language.awk"},{match:"\\b(?:ARGC|ARGV|CONVFMT|ENVIRON|FNR|RLENGTH|RSTART|SUBSEP)\\b",name:"variable.language.nawk"},{match:"\\b(?:ARGIND|ERRNO|FIELDWIDTHS|IGNORECASE|RT)\\b",name:"variable.language.gawk"}]}},scopeName:"source.awk"});var n=[e];export{n as default}; diff --git a/assets/chunks/ayu-dark.Bn5gmY5k.js b/assets/chunks/ayu-dark.Bn5gmY5k.js new file mode 100644 index 000000000..1908c108c --- /dev/null +++ b/assets/chunks/ayu-dark.Bn5gmY5k.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#e6b450b3","activityBar.background":"#0b0e14","activityBar.border":"#0b0e14","activityBar.foreground":"#565b66cc","activityBar.inactiveForeground":"#565b6699","activityBarBadge.background":"#e6b450","activityBarBadge.foreground":"#0b0e14","badge.background":"#e6b45033","badge.foreground":"#e6b450","button.background":"#e6b450","button.foreground":"#0b0e14","button.hoverBackground":"#e1af4b","button.secondaryBackground":"#565b6633","button.secondaryForeground":"#bfbdb6","button.secondaryHoverBackground":"#565b6680","debugConsoleInputIcon.foreground":"#e6b450","debugExceptionWidget.background":"#0f131a","debugExceptionWidget.border":"#11151c","debugIcon.breakpointDisabledForeground":"#f2966880","debugIcon.breakpointForeground":"#f29668","debugToolBar.background":"#0f131a",descriptionForeground:"#565b66","diffEditor.diagonalFill":"#11151c","diffEditor.insertedTextBackground":"#7fd9621f","diffEditor.removedTextBackground":"#f26d781f","dropdown.background":"#0d1017","dropdown.border":"#565b6645","dropdown.foreground":"#565b66","editor.background":"#0b0e14","editor.findMatchBackground":"#6c5980","editor.findMatchBorder":"#6c5980","editor.findMatchHighlightBackground":"#6c598066","editor.findMatchHighlightBorder":"#5f4c7266","editor.findRangeHighlightBackground":"#6c598040","editor.foreground":"#bfbdb6","editor.inactiveSelectionBackground":"#409fff21","editor.lineHighlightBackground":"#131721","editor.rangeHighlightBackground":"#6c598033","editor.selectionBackground":"#409fff4d","editor.selectionHighlightBackground":"#7fd96226","editor.selectionHighlightBorder":"#7fd96200","editor.snippetTabstopHighlightBackground":"#7fd96233","editor.wordHighlightBackground":"#73b8ff14","editor.wordHighlightBorder":"#73b8ff80","editor.wordHighlightStrongBackground":"#7fd96214","editor.wordHighlightStrongBorder":"#7fd96280","editorBracketMatch.background":"#6c73804d","editorBracketMatch.border":"#6c73804d","editorCodeLens.foreground":"#acb6bf8c","editorCursor.foreground":"#e6b450","editorError.foreground":"#d95757","editorGroup.background":"#0f131a","editorGroup.border":"#11151c","editorGroupHeader.noTabsBackground":"#0b0e14","editorGroupHeader.tabsBackground":"#0b0e14","editorGroupHeader.tabsBorder":"#0b0e14","editorGutter.addedBackground":"#7fd962cc","editorGutter.deletedBackground":"#f26d78cc","editorGutter.modifiedBackground":"#73b8ffcc","editorHoverWidget.background":"#0f131a","editorHoverWidget.border":"#11151c","editorIndentGuide.activeBackground":"#6c738080","editorIndentGuide.background":"#6c738033","editorLineNumber.activeForeground":"#6c7380e6","editorLineNumber.foreground":"#6c738099","editorLink.activeForeground":"#e6b450","editorMarkerNavigation.background":"#0f131a","editorOverviewRuler.addedForeground":"#7fd962","editorOverviewRuler.border":"#11151c","editorOverviewRuler.bracketMatchForeground":"#6c7380b3","editorOverviewRuler.deletedForeground":"#f26d78","editorOverviewRuler.errorForeground":"#d95757","editorOverviewRuler.findMatchForeground":"#6c5980","editorOverviewRuler.modifiedForeground":"#73b8ff","editorOverviewRuler.warningForeground":"#e6b450","editorOverviewRuler.wordHighlightForeground":"#73b8ff66","editorOverviewRuler.wordHighlightStrongForeground":"#7fd96266","editorRuler.foreground":"#6c738033","editorSuggestWidget.background":"#0f131a","editorSuggestWidget.border":"#11151c","editorSuggestWidget.highlightForeground":"#e6b450","editorSuggestWidget.selectedBackground":"#47526640","editorWarning.foreground":"#e6b450","editorWhitespace.foreground":"#6c738099","editorWidget.background":"#0f131a","editorWidget.border":"#11151c",errorForeground:"#d95757","extensionButton.prominentBackground":"#e6b450","extensionButton.prominentForeground":"#0d1017","extensionButton.prominentHoverBackground":"#e1af4b",focusBorder:"#e6b450b3",foreground:"#565b66","gitDecoration.conflictingResourceForeground":"","gitDecoration.deletedResourceForeground":"#f26d78b3","gitDecoration.ignoredResourceForeground":"#565b6680","gitDecoration.modifiedResourceForeground":"#73b8ffb3","gitDecoration.submoduleResourceForeground":"#d2a6ffb3","gitDecoration.untrackedResourceForeground":"#7fd962b3","icon.foreground":"#565b66","input.background":"#0d1017","input.border":"#565b6645","input.foreground":"#bfbdb6","input.placeholderForeground":"#565b6680","inputOption.activeBackground":"#e6b45033","inputOption.activeBorder":"#e6b4504d","inputOption.activeForeground":"#e6b450","inputValidation.errorBackground":"#0d1017","inputValidation.errorBorder":"#d95757","inputValidation.infoBackground":"#0b0e14","inputValidation.infoBorder":"#39bae6","inputValidation.warningBackground":"#0b0e14","inputValidation.warningBorder":"#ffb454","keybindingLabel.background":"#565b661a","keybindingLabel.border":"#bfbdb61a","keybindingLabel.bottomBorder":"#bfbdb61a","keybindingLabel.foreground":"#bfbdb6","list.activeSelectionBackground":"#47526640","list.activeSelectionForeground":"#bfbdb6","list.deemphasizedForeground":"#d95757","list.errorForeground":"#d95757","list.filterMatchBackground":"#5f4c7266","list.filterMatchBorder":"#6c598066","list.focusBackground":"#47526640","list.focusForeground":"#bfbdb6","list.focusOutline":"#47526640","list.highlightForeground":"#e6b450","list.hoverBackground":"#47526640","list.inactiveSelectionBackground":"#47526633","list.inactiveSelectionForeground":"#565b66","list.invalidItemForeground":"#565b664d","listFilterWidget.background":"#0f131a","listFilterWidget.noMatchesOutline":"#d95757","listFilterWidget.outline":"#e6b450","minimap.background":"#0b0e14","minimap.errorHighlight":"#d95757","minimap.findMatchHighlight":"#6c5980","minimap.selectionHighlight":"#409fff4d","minimapGutter.addedBackground":"#7fd962","minimapGutter.deletedBackground":"#f26d78","minimapGutter.modifiedBackground":"#73b8ff","panel.background":"#0b0e14","panel.border":"#11151c","panelTitle.activeBorder":"#e6b450","panelTitle.activeForeground":"#bfbdb6","panelTitle.inactiveForeground":"#565b66","peekView.border":"#47526640","peekViewEditor.background":"#0f131a","peekViewEditor.matchHighlightBackground":"#6c598066","peekViewEditor.matchHighlightBorder":"#5f4c7266","peekViewResult.background":"#0f131a","peekViewResult.fileForeground":"#bfbdb6","peekViewResult.lineForeground":"#565b66","peekViewResult.matchHighlightBackground":"#6c598066","peekViewResult.selectionBackground":"#47526640","peekViewTitle.background":"#47526640","peekViewTitleDescription.foreground":"#565b66","peekViewTitleLabel.foreground":"#bfbdb6","pickerGroup.border":"#11151c","pickerGroup.foreground":"#565b6680","progressBar.background":"#e6b450","scrollbar.shadow":"#11151c00","scrollbarSlider.activeBackground":"#565b66b3","scrollbarSlider.background":"#565b6666","scrollbarSlider.hoverBackground":"#565b6699","selection.background":"#409fff4d","settings.headerForeground":"#bfbdb6","settings.modifiedItemIndicator":"#73b8ff","sideBar.background":"#0b0e14","sideBar.border":"#0b0e14","sideBarSectionHeader.background":"#0b0e14","sideBarSectionHeader.border":"#0b0e14","sideBarSectionHeader.foreground":"#565b66","sideBarTitle.foreground":"#565b66","statusBar.background":"#0b0e14","statusBar.border":"#0b0e14","statusBar.debuggingBackground":"#f29668","statusBar.debuggingForeground":"#0d1017","statusBar.foreground":"#565b66","statusBar.noFolderBackground":"#0f131a","statusBarItem.activeBackground":"#565b6633","statusBarItem.hoverBackground":"#565b6633","statusBarItem.prominentBackground":"#11151c","statusBarItem.prominentHoverBackground":"#00000030","statusBarItem.remoteBackground":"#e6b450","statusBarItem.remoteForeground":"#0d1017","tab.activeBackground":"#0b0e14","tab.activeBorder":"#e6b450","tab.activeForeground":"#bfbdb6","tab.border":"#0b0e14","tab.inactiveBackground":"#0b0e14","tab.inactiveForeground":"#565b66","tab.unfocusedActiveBorder":"#565b66","tab.unfocusedActiveForeground":"#565b66","tab.unfocusedInactiveForeground":"#565b66","terminal.ansiBlack":"#11151c","terminal.ansiBlue":"#53bdfa","terminal.ansiBrightBlack":"#686868","terminal.ansiBrightBlue":"#59c2ff","terminal.ansiBrightCyan":"#95e6cb","terminal.ansiBrightGreen":"#aad94c","terminal.ansiBrightMagenta":"#d2a6ff","terminal.ansiBrightRed":"#f07178","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#ffb454","terminal.ansiCyan":"#90e1c6","terminal.ansiGreen":"#7fd962","terminal.ansiMagenta":"#cda1fa","terminal.ansiRed":"#ea6c73","terminal.ansiWhite":"#c7c7c7","terminal.ansiYellow":"#f9af4f","terminal.background":"#0b0e14","terminal.foreground":"#bfbdb6","textBlockQuote.background":"#0f131a","textLink.activeForeground":"#e6b450","textLink.foreground":"#e6b450","textPreformat.foreground":"#bfbdb6","titleBar.activeBackground":"#0b0e14","titleBar.activeForeground":"#bfbdb6","titleBar.border":"#0b0e14","titleBar.inactiveBackground":"#0b0e14","titleBar.inactiveForeground":"#565b66","tree.indentGuidesStroke":"#6c738080","walkThrough.embeddedEditorBackground":"#0f131a","welcomePage.buttonBackground":"#e6b45066","welcomePage.progress.background":"#131721","welcomePage.tileBackground":"#0b0e14","welcomePage.tileShadow":"#00000080","widget.shadow":"#00000080"},displayName:"Ayu Dark",name:"ayu-dark",semanticHighlighting:!0,semanticTokenColors:{"parameter.label":"#bfbdb6"},tokenColors:[{settings:{background:"#0b0e14",foreground:"#bfbdb6"}},{scope:["comment"],settings:{fontStyle:"italic",foreground:"#acb6bf8c"}},{scope:["string","constant.other.symbol"],settings:{foreground:"#aad94c"}},{scope:["string.regexp","constant.character","constant.other"],settings:{foreground:"#95e6cb"}},{scope:["constant.numeric"],settings:{foreground:"#d2a6ff"}},{scope:["constant.language"],settings:{foreground:"#d2a6ff"}},{scope:["variable","variable.parameter.function-call"],settings:{foreground:"#bfbdb6"}},{scope:["variable.member"],settings:{foreground:"#f07178"}},{scope:["variable.language"],settings:{fontStyle:"italic",foreground:"#39bae6"}},{scope:["storage"],settings:{foreground:"#ff8f40"}},{scope:["keyword"],settings:{foreground:"#ff8f40"}},{scope:["keyword.operator"],settings:{foreground:"#f29668"}},{scope:["punctuation.separator","punctuation.terminator"],settings:{foreground:"#bfbdb6b3"}},{scope:["punctuation.section"],settings:{foreground:"#bfbdb6"}},{scope:["punctuation.accessor"],settings:{foreground:"#f29668"}},{scope:["punctuation.definition.template-expression"],settings:{foreground:"#ff8f40"}},{scope:["punctuation.section.embedded"],settings:{foreground:"#ff8f40"}},{scope:["meta.embedded"],settings:{foreground:"#bfbdb6"}},{scope:["source.java storage.type","source.haskell storage.type","source.c storage.type"],settings:{foreground:"#59c2ff"}},{scope:["entity.other.inherited-class"],settings:{foreground:"#39bae6"}},{scope:["storage.type.function"],settings:{foreground:"#ff8f40"}},{scope:["source.java storage.type.primitive"],settings:{foreground:"#39bae6"}},{scope:["entity.name.function"],settings:{foreground:"#ffb454"}},{scope:["variable.parameter","meta.parameter"],settings:{foreground:"#d2a6ff"}},{scope:["variable.function","variable.annotation","meta.function-call.generic","support.function.go"],settings:{foreground:"#ffb454"}},{scope:["support.function","support.macro"],settings:{foreground:"#f07178"}},{scope:["entity.name.import","entity.name.package"],settings:{foreground:"#aad94c"}},{scope:["entity.name"],settings:{foreground:"#59c2ff"}},{scope:["entity.name.tag","meta.tag.sgml"],settings:{foreground:"#39bae6"}},{scope:["support.class.component"],settings:{foreground:"#59c2ff"}},{scope:["punctuation.definition.tag.end","punctuation.definition.tag.begin","punctuation.definition.tag"],settings:{foreground:"#39bae680"}},{scope:["entity.other.attribute-name"],settings:{foreground:"#ffb454"}},{scope:["support.constant"],settings:{fontStyle:"italic",foreground:"#f29668"}},{scope:["support.type","support.class","source.go storage.type"],settings:{foreground:"#39bae6"}},{scope:["meta.decorator variable.other","meta.decorator punctuation.decorator","storage.type.annotation"],settings:{foreground:"#e6b673"}},{scope:["invalid"],settings:{foreground:"#d95757"}},{scope:["meta.diff","meta.diff.header"],settings:{foreground:"#c594c5"}},{scope:["source.ruby variable.other.readwrite"],settings:{foreground:"#ffb454"}},{scope:["source.css entity.name.tag","source.sass entity.name.tag","source.scss entity.name.tag","source.less entity.name.tag","source.stylus entity.name.tag"],settings:{foreground:"#59c2ff"}},{scope:["source.css support.type","source.sass support.type","source.scss support.type","source.less support.type","source.stylus support.type"],settings:{foreground:"#acb6bf8c"}},{scope:["support.type.property-name"],settings:{fontStyle:"normal",foreground:"#39bae6"}},{scope:["constant.numeric.line-number.find-in-files - match"],settings:{foreground:"#acb6bf8c"}},{scope:["constant.numeric.line-number.match"],settings:{foreground:"#ff8f40"}},{scope:["entity.name.filename.find-in-files"],settings:{foreground:"#aad94c"}},{scope:["message.error"],settings:{foreground:"#d95757"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#aad94c"}},{scope:["markup.underline.link","string.other.link"],settings:{foreground:"#39bae6"}},{scope:["markup.italic"],settings:{fontStyle:"italic",foreground:"#f07178"}},{scope:["markup.bold"],settings:{fontStyle:"bold",foreground:"#f07178"}},{scope:["markup.italic markup.bold","markup.bold markup.italic"],settings:{fontStyle:"bold italic"}},{scope:["markup.raw"],settings:{background:"#bfbdb605"}},{scope:["markup.raw.inline"],settings:{background:"#bfbdb60f"}},{scope:["meta.separator"],settings:{background:"#bfbdb60f",fontStyle:"bold",foreground:"#acb6bf8c"}},{scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#95e6cb"}},{scope:["markup.list punctuation.definition.list.begin"],settings:{foreground:"#ffb454"}},{scope:["markup.inserted"],settings:{foreground:"#7fd962"}},{scope:["markup.changed"],settings:{foreground:"#73b8ff"}},{scope:["markup.deleted"],settings:{foreground:"#f26d78"}},{scope:["markup.strike"],settings:{foreground:"#e6b673"}},{scope:["markup.table"],settings:{background:"#bfbdb60f",foreground:"#39bae6"}},{scope:["text.html.markdown markup.inline.raw"],settings:{foreground:"#f29668"}},{scope:["text.html.markdown meta.dummy.line-break"],settings:{background:"#acb6bf8c",foreground:"#acb6bf8c"}},{scope:["punctuation.definition.markdown"],settings:{background:"#bfbdb6",foreground:"#acb6bf8c"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/ballerina.T9ysyp6P.js b/assets/chunks/ballerina.T9ysyp6P.js new file mode 100644 index 000000000..de8bab3c8 --- /dev/null +++ b/assets/chunks/ballerina.T9ysyp6P.js @@ -0,0 +1,62 @@ +const e=Object.freeze({displayName:"Ballerina",fileTypes:["bal"],name:"ballerina",patterns:[{include:"#statements"}],repository:{"access-modifier":{patterns:[{match:"(?",beginCaptures:{0:{name:"meta.arrow.ballerina storage.type.function.arrow.ballerina"}},end:",|(?=\\})",patterns:[{include:"#code"}]}]},butExp:{patterns:[{begin:"\\bbut\\b",beginCaptures:{0:{name:"keyword.ballerina"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ballerina.documentation"}},patterns:[{include:"#butExpBody"},{include:"#comment"}]}]},butExpBody:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ballerina.documentation"}},end:"(?=\\})",endCaptures:{0:{name:"punctuation.definition.block.ballerina.documentation"}},patterns:[{include:"#parameter"},{include:"#butClause"},{include:"#comment"}]}]},call:{patterns:[{match:"(?:\\')?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()",name:"entity.name.function.ballerina"}]},callableUnitBody:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ballerina"}},end:"(?=\\})",endCaptures:{0:{name:"punctuation.definition.block.ballerina"}},patterns:[{include:"#workerDef"},{include:"#service-decl"},{include:"#objectDec"},{include:"#function-defn"},{include:"#forkStatement"},{include:"#code"}]}]},"class-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ballerina"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ballerina"}},name:"meta.class.body.ballerina",patterns:[{include:"#comment"},{include:"#mdDocumentation"},{include:"#function-defn"},{include:"#var-expr"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#keywords"},{begin:"(?<=:)\\s*",end:"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"class-defn":{begin:"(\\s+)(class\\b)|^class\\b(?=\\s+|/[/*])",beginCaptures:{0:{name:"storage.type.class.ballerina keyword.other.ballerina"}},end:"(?<=\\})",name:"meta.class.ballerina",patterns:[{include:"#keywords"},{captures:{0:{name:"entity.name.type.class.ballerina"}},match:"[_$[:alpha:]][_$[:alnum:]]*"},{include:"#class-body"}]},code:{patterns:[{include:"#booleans"},{include:"#matchStatement"},{include:"#butExp"},{include:"#xml"},{include:"#stringTemplate"},{include:"#keywords"},{include:"#strings"},{include:"#comment"},{include:"#mdDocumentation"},{include:"#annotationAttachment"},{include:"#numbers"},{include:"#maps"},{include:"#paranthesised"},{include:"#paranthesisedBracket"},{include:"#regex"}]},comment:{patterns:[{match:"\\/\\/.*",name:"comment.ballerina"}]},constrainType:{patterns:[{begin:"<",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.ballerina"}},end:">",endCaptures:{0:{name:"punctuation.definition.parameters.end.ballerina"}},patterns:[{include:"#comment"},{include:"#constrainType"},{match:"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b",name:"storage.type.ballerina"}]}]},"control-statement":{patterns:[{begin:"(?)",patterns:[{include:"#code"}]}]},expression:{patterns:[{include:"#keywords"},{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#regex"}]},"expression-operators":{patterns:[{match:"\\*=|(?>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.ballerina"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.ballerina"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.ballerina"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.ballerina"},{captures:{1:{name:"keyword.operator.logical.ballerina"},2:{name:"keyword.operator.assignment.compound.ballerina"},3:{name:"keyword.operator.arithmetic.ballerina"}},match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.ballerina"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.ballerina"},{match:"\\=",name:"keyword.operator.assignment.ballerina"},{match:"--",name:"keyword.operator.decrement.ballerina"},{match:"\\+\\+",name:"keyword.operator.increment.ballerina"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.ballerina"}]},expressionWithoutIdentifiers:{patterns:[{include:"#xml"},{include:"#string"},{include:"#stringTemplate"},{include:"#comment"},{include:"#object-literal"},{include:"#ternary-expression"},{include:"#expression-operators"},{include:"#literal"},{include:"#paranthesised"},{include:"#regex"}]},"flags-on-off":{name:"meta.flags.regexp.ballerina",patterns:[{begin:"(\\??)([imsx]*)(-?)([imsx]*)(:)",beginCaptures:{1:{name:"punctuation.other.non-capturing-group-begin.regexp.ballerina"},2:{name:"keyword.other.non-capturing-group.flags-on.regexp.ballerina"},3:{name:"punctuation.other.non-capturing-group.off.regexp.ballerina"},4:{name:"keyword.other.non-capturing-group.flags-off.regexp.ballerina"},5:{name:"punctuation.other.non-capturing-group-end.regexp.ballerina"}},end:"()",name:"constant.other.flag.regexp.ballerina",patterns:[{include:"#regexp"},{include:"#template-substitution-element"}]}]},"for-loop":{begin:"(?",beginCaptures:{0:{name:"meta.arrow.ballerina storage.type.function.arrow.ballerina"}},end:"(?=\\;)|(?=\\,)|(?=)(?=\\);)",name:"meta.block.ballerina",patterns:[{include:"#statements"},{include:"#punctuation-comma"}]},{match:"\\*",name:"keyword.generator.asterisk.ballerina"}]},"function-defn":{begin:"(?:(public|private)\\s+)?(function\\b)",beginCaptures:{1:{name:"keyword.other.ballerina"},2:{name:"keyword.other.ballerina"}},end:"(?<=\\;)|(?<=\\})|(?<=\\,)|(?=)(?=\\);)",name:"meta.function.ballerina",patterns:[{match:"\\bexternal\\b",name:"keyword.ballerina"},{include:"#stringTemplate"},{include:"#annotationAttachment"},{include:"#functionReturns"},{include:"#functionName"},{include:"#functionParameters"},{include:"#punctuation-semicolon"},{include:"#function-body"},{include:"#regex"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#numbers"},{include:"#string"},{include:"#annotationAttachment"},{include:"#recordLiteral"},{include:"#keywords"},{include:"#parameter-name"},{include:"#array-literal"},{include:"#variable-initializer"},{include:"#identifiers"},{include:"#regex"},{match:"\\,",name:"punctuation.separator.parameter.ballerina"}]},functionName:{patterns:[{match:"\\bfunction\\b",name:"keyword.other.ballerina"},{include:"#type-primitive"},{include:"#self-literal"},{include:"#string"},{captures:{2:{name:"variable.language.this.ballerina"},3:{name:"keyword.other.ballerina"},4:{name:"support.type.primitive.ballerina"},5:{name:"storage.type.ballerina"},6:{name:"meta.definition.function.ballerina entity.name.function.ballerina"}},match:"\\s+(\\b(self)|\\b(is|new|isolated|null|function|in)\\b|(string|int|boolean|float|byte|decimal|json|xml|anydata)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))"}]},functionParameters:{begin:"\\(|\\[",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.ballerina"}},end:"\\)|\\]",endCaptures:{0:{name:"punctuation.definition.parameters.end.ballerina"}},name:"meta.parameters.ballerina",patterns:[{include:"#function-parameters-body"}]},functionReturns:{begin:"\\s*(returns)\\s*",beginCaptures:{1:{name:"keyword.other.ballerina"}},end:"(?==>)|(\\=)|(?=\\{)|(\\))|(?=\\;)",endCaptures:{1:{name:"keyword.operator.ballerina"}},name:"meta.type.function.return.ballerina",patterns:[{include:"#comment"},{include:"#string"},{include:"#numbers"},{include:"#keywords"},{include:"#type-primitive"},{captures:{1:{name:"support.type.primitive.ballerina"}},match:"\\s*\\b(var)(?=\\s+|\\[|\\?)"},{match:"\\|",name:"keyword.operator.ballerina"},{match:"\\?",name:"keyword.operator.optional.ballerina"},{include:"#type-annotation"},{include:"#type-tuple"},{include:"#keywords"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.other.readwrite.ballerina"}]},functionType:{patterns:[{begin:"\\bfunction\\b",beginCaptures:{0:{name:"keyword.ballerina"}},end:"(?=\\,)|(?=\\|)|(?=\\:)|(?==>)|(?=\\))|(?=\\])",patterns:[{include:"#comment"},{include:"#functionTypeParamList"},{include:"#functionTypeReturns"}]}]},functionTypeParamList:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"delimiter.parenthesis"}},end:"\\)",endCaptures:{0:{name:"delimiter.parenthesis"}},patterns:[{match:"public",name:"keyword"},{include:"#annotationAttachment"},{include:"#recordLiteral"},{include:"#record"},{include:"#objectDec"},{include:"#functionType"},{include:"#constrainType"},{include:"#parameterTuple"},{include:"#functionTypeType"},{include:"#comment"}]}]},functionTypeReturns:{patterns:[{begin:"\\breturns\\b",beginCaptures:{0:{name:"keyword"}},end:"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))",patterns:[{include:"#functionTypeReturnsParameter"},{include:"#comment"}]}]},functionTypeReturnsParameter:{patterns:[{begin:"((?=record|object|function)|(?:[_$[:alpha:]][_$[:alnum:]]*))",beginCaptures:{0:{name:"storage.type.ballerina"}},end:"(?=\\,)|(?:\\|)|(?:\\:)|(?==>)|(?=\\))|(?=\\])",patterns:[{include:"#record"},{include:"#objectDec"},{include:"#functionType"},{include:"#constrainType"},{include:"#defaultValue"},{include:"#comment"},{include:"#parameterTuple"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"default.variable.parameter.ballerina"}]}]},functionTypeType:{patterns:[{begin:"[_$[:alpha:]][_$[:alnum:]]*",beginCaptures:{0:{name:"storage.type.ballerina"}},end:"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))"}]},identifiers:{patterns:[{captures:{1:{name:"punctuation.accessor.ballerina"},2:{name:"punctuation.accessor.optional.ballerina"},3:{name:"entity.name.function.ballerina"}},match:`(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*( +(( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +(( +((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +))`},{captures:{1:{name:"punctuation.accessor.ballerina"},2:{name:"punctuation.accessor.optional.ballerina"},3:{name:"entity.name.function.ballerina"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()"},{captures:{1:{name:"punctuation.accessor.ballerina"},2:{name:"punctuation.accessor.optional.ballerina"},3:{name:"variable.other.property.ballerina"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{include:"#type-primitive"},{include:"#self-literal"},{match:"\\b(check|foreach|if|checkpanic)\\b",name:"keyword.control.ballerina"},{include:"#call"},{match:"\\b(var)\\b",name:"support.type.primitive.ballerina"},{captures:{1:{name:"variable.other.readwrite.ballerina"},3:{name:"punctuation.accessor.ballerina"},4:{name:"entity.name.function.ballerina"},5:{name:"punctuation.definition.parameters.begin.ballerina"},6:{name:"punctuation.definition.parameters.end.ballerina"}},match:"([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?"},{match:"(\\')([_$[:alpha:]][_$[:alnum:]]*)",name:"variable.other.property.ballerina"},{include:"#type-annotation"}]},"if-statement":{patterns:[{begin:"(?)",name:"meta.arrow.ballerina storage.type.function.arrow.ballerina"},{match:"(!|%|\\+|\\-|~=|===|==|=|!=|!==|<|>|&|\\||\\?:|\\.\\.\\.|<=|>=|&&|\\|\\||~|>>|>>>)",name:"keyword.operator.ballerina"},{include:"#types"},{include:"#self-literal"},{include:"#type-primitive"}]},literal:{patterns:[{include:"#booleans"},{include:"#numbers"},{include:"#strings"},{include:"#maps"},{include:"#self-literal"},{include:"#array-literal"}]},maps:{patterns:[{begin:"\\{",end:"\\}",patterns:[{include:"#code"}]}]},matchBindingPattern:{patterns:[{begin:"var",beginCaptures:{0:{name:"storage.type.ballerina"}},end:"(?==>)|,",patterns:[{include:"#errorDestructure"},{include:"#code"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.parameter.ballerina"}]}]},matchStatement:{patterns:[{begin:"\\bmatch\\b",beginCaptures:{0:{name:"keyword.control.ballerina"}},end:"\\}",patterns:[{include:"#matchStatementBody"},{include:"#comment"},{include:"#code"}]}]},matchStatementBody:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ballerina.documentation"}},end:"(?=\\})",endCaptures:{0:{name:"punctuation.definition.block.ballerina.documentation"}},patterns:[{include:"#literal"},{include:"#matchBindingPattern"},{include:"#matchStatementPatternClause"},{include:"#comment"},{include:"#code"}]}]},matchStatementPatternClause:{patterns:[{begin:"=>",beginCaptures:{0:{name:"keyword.ballerina"}},end:"((\\})|;|,)",patterns:[{include:"#callableUnitBody"},{include:"#code"}]}]},mdDocumentation:{begin:"\\#",end:"[\\r\\n]+",name:"comment.mddocs.ballerina",patterns:[{include:"#mdDocumentationReturnParamDescription"},{include:"#mdDocumentationParamDescription"}]},mdDocumentationParamDescription:{patterns:[{begin:"(\\+\\s+)(\\'?[_$[:alpha:]][_$[:alnum:]]*)(\\s*\\-\\s+)",beginCaptures:{1:{name:"keyword.operator.ballerina"},2:{name:"variable.other.readwrite.ballerina"},3:{name:"keyword.operator.ballerina"}},end:"(?=[^#\\r\\n]|(?:# *?\\+))",patterns:[{match:"#.*",name:"comment.mddocs.paramdesc.ballerina"}]}]},mdDocumentationReturnParamDescription:{patterns:[{begin:"(#)(?: *?)(\\+)(?: *)(return)(?: *)(-)?(.*)",beginCaptures:{1:{name:"comment.mddocs.ballerina"},2:{name:"keyword.ballerina"},3:{name:"keyword.ballerina"},4:{name:"keyword.ballerina"},5:{name:"comment.mddocs.returnparamdesc.ballerina"}},end:"(?=[^#\\r\\n]|(?:# *?\\+))",patterns:[{match:"#.*",name:"comment.mddocs.returnparamdesc.ballerina"}]}]},multiType:{patterns:[{match:"(?<=\\|)([_$[:alpha:]][_$[:alnum:]]*)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)",name:"storage.type.ballerina"},{match:"\\|",name:"keyword.operator.ballerina"}]},numbers:{patterns:[{match:"\\b0[xX][\\da-fA-F]+\\b|\\b\\d+(?:\\.(?:\\d+|$))?",name:"constant.numeric.decimal.ballerina"}]},"object-literal":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ballerina"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ballerina"}},name:"meta.objectliteral.ballerina",patterns:[{include:"#object-member"},{include:"#punctuation-comma"}]},"object-member":{patterns:[{include:"#comment"},{include:"#function-defn"},{include:"#literal"},{include:"#keywords"},{include:"#expression"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.ballerina meta.object-literal.key.ballerina",patterns:[{include:"#comment"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\n*})|(\\s+(as)\\s+))))",name:"meta.object.member.ballerina meta.object-literal.key.ballerina",patterns:[{include:"#comment"},{include:"#string"}]},{begin:`(?x)(?=(\\b(?) +)) | +(( +((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,name:"meta.object.member.ballerina"},{captures:{0:{name:"meta.object-literal.key.ballerina"}},match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.ballerina"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.ballerina"}},end:"(?=,|\\})",name:"meta.object.member.ballerina",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.ballerina"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.ballerina"},{captures:{1:{name:"keyword.control.as.ballerina"},2:{name:"storage.modifier.ballerina"}},match:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?)|(?=\\))|(?=\\])",patterns:[{include:"#parameterWithDescriptor"},{include:"#record"},{include:"#objectDec"},{include:"#functionType"},{include:"#constrainType"},{include:"#defaultValue"},{include:"#comment"},{include:"#parameterTuple"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"default.variable.parameter.ballerina"}]}]},"parameter-name":{patterns:[{captures:{1:{name:"support.type.primitive.ballerina"}},match:"\\s*\\b(var)\\s+"},{captures:{2:{name:"keyword.operator.rest.ballerina"},3:{name:"support.type.primitive.ballerina"},4:{name:"keyword.other.ballerina"},5:{name:"constant.language.boolean.ballerina"},6:{name:"keyword.control.flow.ballerina"},7:{name:"storage.type.ballerina"},8:{name:"variable.parameter.ballerina"},9:{name:"variable.parameter.ballerina"},10:{name:"keyword.operator.optional.ballerina"}},match:"(?x)(?:(?)|(?=\\))",patterns:[{include:"#record"},{include:"#objectDec"},{include:"#parameterTupleType"},{include:"#parameterTupleEnd"},{include:"#comment"}]}]},parameterTupleEnd:{patterns:[{begin:"\\]",end:"(?=\\,)|(?=\\|)|(?=\\:)|(?==>)|(?=\\))",patterns:[{include:"#defaultWithParentheses"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"default.variable.parameter.ballerina"}]}]},parameterTupleType:{patterns:[{begin:"[_$[:alpha:]][_$[:alnum:]]*",beginCaptures:{0:{name:"storage.type.ballerina"}},end:"(?:\\,)|(?:\\|)|(?=\\])"}]},parameterWithDescriptor:{patterns:[{begin:"\\&",beginCaptures:{0:{name:"keyword.operator.ballerina"}},end:"(?=\\,)|(?=\\|)|(?=\\))",patterns:[{include:"#parameter"}]}]},parameters:{patterns:[{match:"\\s*(return|break|continue|check|checkpanic|panic|trap|from|where)\\b",name:"keyword.control.flow.ballerina"},{match:"\\s*(let|select)\\b",name:"keyword.other.ballerina"},{match:"\\,",name:"punctuation.separator.parameter.ballerina"}]},paranthesised:{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ballerina"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ballerina"}},name:"meta.brace.round.block.ballerina",patterns:[{include:"#self-literal"},{include:"#function-defn"},{include:"#decl-block"},{include:"#comment"},{include:"#string"},{include:"#parameters"},{include:"#annotationAttachment"},{include:"#recordLiteral"},{include:"#stringTemplate"},{include:"#parameter-name"},{include:"#variable-initializer"},{include:"#expression"},{include:"#regex"}]},paranthesisedBracket:{patterns:[{begin:"\\[",end:"\\]",patterns:[{include:"#comment"},{include:"#code"}]}]},"punctuation-accessor":{patterns:[{captures:{1:{name:"punctuation.accessor.ballerina"},2:{name:"punctuation.accessor.optional.ballerina"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"}]},"punctuation-comma":{patterns:[{match:",",name:"punctuation.separator.comma.ballerina"}]},"punctuation-semicolon":{patterns:[{match:";",name:"punctuation.terminator.statement.ballerina"}]},record:{begin:"\\brecord\\b",beginCaptures:{0:{name:"keyword.other.ballerina"}},end:"(?<=\\})",name:"meta.record.ballerina",patterns:[{include:"#recordBody"}]},recordBody:{patterns:[{include:"#decl-block"}]},recordLiteral:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ballerina"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ballerina"}},patterns:[{include:"#code"}]}]},regex:{patterns:[{begin:"(\\bre)(\\s*)(`)",beginCaptures:{1:{name:"support.type.primitive.ballerina"},3:{name:"punctuation.definition.regexp.template.begin.ballerina"}},end:"`",endCaptures:{1:{name:"punctuation.definition.regexp.template.end.ballerina"}},name:"regexp.template.ballerina",patterns:[{include:"#template-substitution-element"},{include:"#regexp"}]}]},"regex-character-class":{patterns:[{match:"\\\\[wWsSdDtrn]|\\.",name:"keyword.other.character-class.regexp.ballerina"},{match:"\\\\[^pPu]",name:"constant.character.escape.backslash.regexp"}]},"regex-unicode-properties-general-category":{patterns:[{match:"(Lu|Ll|Lt|Lm|Lo|L|Mn|Mc|Me|M|Nd|Nl|No|N|Pc|Pd|Ps|Pe|Pi|Pf|Po|P|Sm|Sc|Sk|So|S|Zs|Zl|Zp|Z|Cf|Cc|Cn|Co|C)",name:"constant.other.unicode-property-general-category.regexp.ballerina"}]},"regex-unicode-property-key":{patterns:[{begin:"(sc=|gc=)",beginCaptures:{1:{name:"keyword.other.unicode-property-key.regexp.ballerina"}},end:"()",endCaptures:{1:{name:"punctuation.other.unicode-property.end.regexp.ballerina"}},name:"keyword.other.unicode-property-key.regexp.ballerina",patterns:[{include:"#regex-unicode-properties-general-category"}]}]},regexp:{patterns:[{match:"\\^|\\$",name:"keyword.control.assertion.regexp.ballerina"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp.ballerina"},{match:"\\|",name:"keyword.operator.or.regexp.ballerina"},{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.group.regexp.ballerina"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.group.regexp.ballerina"}},name:"meta.group.assertion.regexp.ballerina",patterns:[{include:"#template-substitution-element"},{include:"#regexp"},{include:"#flags-on-off"},{include:"#unicode-property-escape"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.start.regexp.ballerina"},2:{name:"keyword.operator.negation.regexp.ballerina"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.end.regexp.ballerina"}},name:"constant.other.character-class.set.regexp.ballerina",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.escape.backslash.regexp"},3:{name:"constant.character.numeric.regexp"},4:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\[^pPu]))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\[^pPu]))",name:"constant.other.character-class.range.regexp.ballerina"},{include:"#regex-character-class"},{include:"#unicode-values"},{include:"#unicode-property-escape"}]},{include:"#template-substitution-element"},{include:"#regex-character-class"},{include:"#unicode-values"},{include:"#unicode-property-escape"}]},"self-literal":{patterns:[{captures:{1:{name:"variable.language.this.ballerina"},2:{name:"punctuation.accessor.ballerina"},3:{name:"entity.name.function.ballerina"}},match:"(\\bself\\b)\\s*(.)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()"},{match:"(?\\=>]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))(\\?)?",name:"meta.type.annotation.ballerina",patterns:[{include:"#booleans"},{include:"#stringTemplate"},{include:"#regex"},{include:"#self-literal"},{include:"#xml"},{include:"#call"},{captures:{1:{name:"keyword.other.ballerina"},2:{name:"constant.language.boolean.ballerina"},3:{name:"keyword.control.ballerina"},4:{name:"storage.type.ballerina"},5:{name:"support.type.primitive.ballerina"},6:{name:"variable.other.readwrite.ballerina"},8:{name:"punctuation.accessor.ballerina"},9:{name:"entity.name.function.ballerina"},10:{name:"punctuation.definition.parameters.begin.ballerina"},11:{name:"punctuation.definition.parameters.end.ballerina"}},match:"\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|\\b(var)\\b|([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?"},{match:"\\?",name:"keyword.operator.optional.ballerina"},{include:"#multiType"},{include:"#type"},{include:"#paranthesised"}]}]},"type-primitive":{patterns:[{match:"(?|\\|)",beginCaptures:{2:{name:"support.type.primitive.ballerina"},3:{name:"storage.type.ballerina"},4:{name:"meta.definition.variable.ballerina variable.other.readwrite.ballerina"}},end:"(?=$|^|[;,=}])",endCaptures:{0:{name:"punctuation.terminator.statement.ballerina"}},name:"meta.var-single-variable.expr.ballerina",patterns:[{include:"#call"},{include:"#self-literal"},{include:"#if-statement"},{include:"#string"},{include:"#numbers"},{include:"#keywords"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s+(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.ballerina variable.other.readwrite.ballerina"},2:{name:"keyword.operator.definiteassignment.ballerina"}},end:"(?=$|^|[;,=}]|((?)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.assignment.ballerina"}},end:"(?=$|[,);}\\]])",patterns:[{match:"(\\')([_$[:alpha:]][_$[:alnum:]]*)",name:"variable.other.property.ballerina"},{include:"#xml"},{include:"#function-defn"},{include:"#expression"},{include:"#punctuation-accessor"},{include:"#regex"}]},{begin:"(?)",beginCaptures:{1:{name:"keyword.operator.assignment.ballerina"}},end:"(?=[,);}\\]]|((?",endCaptures:{0:{name:"comment.block.xml.ballerina"}},name:"comment.block.xml.ballerina"}]},xmlDoubleQuotedString:{patterns:[{begin:'\\"',beginCaptures:{0:{name:"string.begin.ballerina"}},end:'\\"',endCaptures:{0:{name:"string.end.ballerina"}},patterns:[{match:"\\\\.",name:"constant.character.escape.ballerina"},{match:".",name:"string"}]}]},xmlSingleQuotedString:{patterns:[{begin:"\\'",beginCaptures:{0:{name:"string.begin.ballerina"}},end:"\\'",endCaptures:{0:{name:"string.end.ballerina"}},patterns:[{match:"\\\\.",name:"constant.character.escape.ballerina"},{match:".",name:"string"}]}]},xmlTag:{patterns:[{begin:"(<\\/?\\??)\\s*([-_a-zA-Z0-9]+)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.xml.ballerina"},2:{name:"entity.name.tag.xml.ballerina"}},end:"\\??\\/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.xml.ballerina"}},patterns:[{include:"#xmlSingleQuotedString"},{include:"#xmlDoubleQuotedString"},{match:"xmlns",name:"keyword.other.ballerina"},{match:"([a-zA-Z0-9-]+)",name:"entity.other.attribute-name.xml.ballerina"}]}]}},scopeName:"source.ballerina"});var n=[e];export{n as default}; diff --git a/assets/chunks/bat.BPiaQZfK.js b/assets/chunks/bat.BPiaQZfK.js new file mode 100644 index 000000000..af518c9e1 --- /dev/null +++ b/assets/chunks/bat.BPiaQZfK.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Batch File",injections:{"L:meta.block.repeat.batchfile":{patterns:[{include:"#repeatParameter"}]}},name:"bat",patterns:[{include:"#commands"},{include:"#comments"},{include:"#constants"},{include:"#controls"},{include:"#escaped_characters"},{include:"#labels"},{include:"#numbers"},{include:"#operators"},{include:"#parens"},{include:"#strings"},{include:"#variables"}],repository:{command_set:{patterns:[{begin:"(?<=^|[\\s@])(?i:SET)(?=$|\\s)",beginCaptures:{0:{name:"keyword.command.batchfile"}},end:"(?=$\\n|[&|><)])",patterns:[{include:"#command_set_inside"}]}]},command_set_group:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.group.begin.batchfile"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.group.end.batchfile"}},patterns:[{include:"#command_set_inside_arithmetic"}]}]},command_set_inside:{patterns:[{include:"#escaped_characters"},{include:"#variables"},{include:"#numbers"},{include:"#parens"},{include:"#command_set_strings"},{include:"#strings"},{begin:"([^ ][^=]*)(=)",beginCaptures:{1:{name:"variable.other.readwrite.batchfile"},2:{name:"keyword.operator.assignment.batchfile"}},end:"(?=$\\n|[&|><)])",patterns:[{include:"#escaped_characters"},{include:"#variables"},{include:"#numbers"},{include:"#parens"},{include:"#strings"}]},{begin:"\\s+/[aA]\\s+",end:"(?=$\\n|[&|><)])",name:"meta.expression.set.batchfile",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.batchfile"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.batchfile"}},name:"string.quoted.double.batchfile",patterns:[{include:"#command_set_inside_arithmetic"},{include:"#command_set_group"},{include:"#variables"}]},{include:"#command_set_inside_arithmetic"},{include:"#command_set_group"}]},{begin:"\\s+/[pP]\\s+",end:"(?=$\\n|[&|><)])",patterns:[{include:"#command_set_strings"},{begin:"([^ ][^=]*)(=)",beginCaptures:{1:{name:"variable.other.readwrite.batchfile"},2:{name:"keyword.operator.assignment.batchfile"}},end:"(?=$\\n|[&|><)])",name:"meta.prompt.set.batchfile",patterns:[{include:"#strings"}]}]}]},command_set_inside_arithmetic:{patterns:[{include:"#command_set_operators"},{include:"#numbers"},{match:",",name:"punctuation.separator.batchfile"}]},command_set_operators:{patterns:[{captures:{1:{name:"variable.other.readwrite.batchfile"},2:{name:"keyword.operator.assignment.augmented.batchfile"}},match:"([^ ]*)(\\+\\=|\\-\\=|\\*\\=|\\/\\=|%%\\=|&\\=|\\|\\=|\\^\\=|<<\\=|>>\\=)"},{match:"\\+|\\-|/|\\*|%%|\\||&|\\^|<<|>>|~",name:"keyword.operator.arithmetic.batchfile"},{match:"!",name:"keyword.operator.logical.batchfile"},{captures:{1:{name:"variable.other.readwrite.batchfile"},2:{name:"keyword.operator.assignment.batchfile"}},match:"([^ =]*)(=)"}]},command_set_strings:{patterns:[{begin:'(")\\s*([^ ][^=]*)(=)',beginCaptures:{1:{name:"punctuation.definition.string.begin.batchfile"},2:{name:"variable.other.readwrite.batchfile"},3:{name:"keyword.operator.assignment.batchfile"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.batchfile"}},name:"string.quoted.double.batchfile",patterns:[{include:"#variables"},{include:"#numbers"},{include:"#escaped_characters"}]}]},commands:{patterns:[{match:"(?<=^|[\\s@])(?i:adprep|append|arp|assoc|at|atmadm|attrib|auditpol|autochk|autoconv|autofmt|bcdboot|bcdedit|bdehdcfg|bitsadmin|bootcfg|brea|cacls|cd|certreq|certutil|change|chcp|chdir|chglogon|chgport|chgusr|chkdsk|chkntfs|choice|cipher|clip|cls|clscluadmin|cluster|cmd|cmdkey|cmstp|color|comp|compact|convert|copy|cprofile|cscript|csvde|date|dcdiag|dcgpofix|dcpromo|defra|del|dfscmd|dfsdiag|dfsrmig|diantz|dir|dirquota|diskcomp|diskcopy|diskpart|diskperf|diskraid|diskshadow|dispdiag|doin|dnscmd|doskey|driverquery|dsacls|dsadd|dsamain|dsdbutil|dsget|dsmgmt|dsmod|dsmove|dsquery|dsrm|edit|endlocal|eraseesentutl|eventcreate|eventquery|eventtriggers|evntcmd|expand|extract|fc|filescrn|find|findstr|finger|flattemp|fonde|forfiles|format|freedisk|fsutil|ftp|ftype|fveupdate|getmac|gettype|gpfixup|gpresult|gpupdate|graftabl|hashgen|hep|helpctr|hostname|icacls|iisreset|inuse|ipconfig|ipxroute|irftp|ismserv|jetpack|klist|ksetup|ktmutil|ktpass|label|ldifd|ldp|lodctr|logman|logoff|lpq|lpr|macfile|makecab|manage-bde|mapadmin|md|mkdir|mklink|mmc|mode|more|mount|mountvol|move|mqbup|mqsvc|mqtgsvc|msdt|msg|msiexec|msinfo32|mstsc|nbtstat|net computer|net group|net localgroup|net print|net session|net share|net start|net stop|net use|net user|net view|net|netcfg|netdiag|netdom|netsh|netstat|nfsadmin|nfsshare|nfsstat|nlb|nlbmgr|nltest|nslookup|ntackup|ntcmdprompt|ntdsutil|ntfrsutl|openfiles|pagefileconfig|path|pathping|pause|pbadmin|pentnt|perfmon|ping|pnpunatten|pnputil|popd|powercfg|powershell|powershell_ise|print|prncnfg|prndrvr|prnjobs|prnmngr|prnport|prnqctl|prompt|pubprn|pushd|pushprinterconnections|pwlauncher|qappsrv|qprocess|query|quser|qwinsta|rasdial|rcp|rd|rdpsign|regentc|recover|redircmp|redirusr|reg|regini|regsvr32|relog|ren|rename|rendom|repadmin|repair-bde|replace|reset session|rxec|risetup|rmdir|robocopy|route|rpcinfo|rpcping|rsh|runas|rundll32|rwinsta|sc|schtasks|scp|scwcmd|secedit|serverceipoptin|servrmanagercmd|serverweroptin|setspn|setx|sfc|sftp|shadow|shift|showmount|shutdown|sort|ssh|ssh-add|ssh-agent|ssh-keygen|ssh-keyscan|start|storrept|subst|sxstrace|ysocmgr|systeminfo|takeown|tapicfg|taskkill|tasklist|tcmsetup|telnet|tftp|time|timeout|title|tlntadmn|tpmvscmgr|tpmvscmgr|tacerpt|tracert|tree|tscon|tsdiscon|tsecimp|tskill|tsprof|type|typeperf|tzutil|uddiconfig|umount|unlodctr|ver|verifier|verif|vol|vssadmin|w32tm|waitfor|wbadmin|wdsutil|wecutil|wevtutil|where|whoami|winnt|winnt32|winpop|winrm|winrs|winsat|wlbs|wmic|wscript|wsl|xcopy)(?=$|\\s)",name:"keyword.command.batchfile"},{begin:"(?i)(?<=^|[\\s@])(echo)(?:(?=$|\\.|:)|\\s+(?:(on|off)(?=\\s*$))?)",beginCaptures:{1:{name:"keyword.command.batchfile"},2:{name:"keyword.other.special-method.batchfile"}},end:"(?=$\\n|[&|><)])",patterns:[{include:"#escaped_characters"},{include:"#variables"},{include:"#numbers"},{include:"#strings"}]},{captures:{1:{name:"keyword.command.batchfile"},2:{name:"keyword.other.special-method.batchfile"}},match:"(?i)(?<=^|[\\s@])(setlocal)(?:\\s*$|\\s+(EnableExtensions|DisableExtensions|EnableDelayedExpansion|DisableDelayedExpansion)(?=\\s*$))"},{include:"#command_set"}]},comments:{patterns:[{begin:"(?:^|(&))\\s*(?=((?::[+=,;: ])))",beginCaptures:{1:{name:"keyword.operator.conditional.batchfile"}},end:"\\n",patterns:[{begin:"((?::[+=,;: ]))",beginCaptures:{1:{name:"punctuation.definition.comment.batchfile"}},end:"(?=\\n)",name:"comment.line.colon.batchfile"}]},{begin:"(?<=^|[\\s@])(?i)(REM)(\\.)",beginCaptures:{1:{name:"keyword.command.rem.batchfile"},2:{name:"punctuation.separator.batchfile"}},end:"(?=$\\n|[&|><)])",name:"comment.line.rem.batchfile"},{begin:"(?<=^|[\\s@])(?i:rem)\\b",beginCaptures:{0:{name:"keyword.command.rem.batchfile"}},end:"\\n",name:"comment.line.rem.batchfile",patterns:[{match:"[><|]",name:"invalid.illegal.unexpected-character.batchfile"}]}]},constants:{patterns:[{match:"\\b(?i:NUL)\\b",name:"constant.language.batchfile"}]},controls:{patterns:[{match:"(?i)(?<=^|\\s)(?:call|exit(?=$|\\s)|goto(?=$|\\s|:))",name:"keyword.control.statement.batchfile"},{captures:{1:{name:"keyword.control.conditional.batchfile"},2:{name:"keyword.operator.logical.batchfile"},3:{name:"keyword.other.special-method.batchfile"}},match:"(?<=^|\\s)(?i)(if)\\s+(?:(not)\\s+)?(exist|defined|errorlevel|cmdextversion)(?=\\s)"},{match:"(?<=^|\\s)(?i)(?:if|else)(?=$|\\s)",name:"keyword.control.conditional.batchfile"},{begin:"(?<=^|[\\s(&^])(?i)for(?=\\s)",beginCaptures:{0:{name:"keyword.control.repeat.batchfile"}},end:"\\n",name:"meta.block.repeat.batchfile",patterns:[{begin:"(?<=[\\s^])(?i)in(?=\\s)",beginCaptures:{0:{name:"keyword.control.repeat.in.batchfile"}},end:"(?<=[\\s)^])(?i)do(?=\\s)|\\n",endCaptures:{0:{name:"keyword.control.repeat.do.batchfile"}},patterns:[{include:"$self"}]},{include:"$self"}]}]},escaped_characters:{patterns:[{match:"%%|\\^\\^!|\\^(?=.)|\\^\\n",name:"constant.character.escape.batchfile"}]},labels:{patterns:[{captures:{1:{name:"punctuation.separator.batchfile"},2:{name:"keyword.other.special-method.batchfile"}},match:"(?i)(?:^\\s*|(?<=call|goto)\\s*)(:)([^+=,;:\\s]\\S*)"}]},numbers:{patterns:[{match:"(?<=^|\\s|=)(0[xX][0-9A-Fa-f]*|[+-]?\\d+)(?=$|\\s|<|>)",name:"constant.numeric.batchfile"}]},operators:{patterns:[{match:"@(?=\\S)",name:"keyword.operator.at.batchfile"},{match:"(?<=\\s)(?i:EQU|NEQ|LSS|LEQ|GTR|GEQ)(?=\\s)|==",name:"keyword.operator.comparison.batchfile"},{match:"(?<=\\s)(?i)(NOT)(?=\\s)",name:"keyword.operator.logical.batchfile"},{match:"(?[&>]?",name:"keyword.operator.redirection.batchfile"}]},parens:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.group.begin.batchfile"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.group.end.batchfile"}},name:"meta.group.batchfile",patterns:[{match:",|;",name:"punctuation.separator.batchfile"},{include:"$self"}]}]},repeatParameter:{patterns:[{captures:{1:{name:"punctuation.definition.variable.batchfile"}},match:"(%%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?[a-zA-Z])",name:"variable.parameter.repeat.batchfile"}]},strings:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.batchfile"}},end:'(")|(\\n)',endCaptures:{1:{name:"punctuation.definition.string.end.batchfile"},2:{name:"invalid.illegal.newline.batchfile"}},name:"string.quoted.double.batchfile",patterns:[{match:"%%",name:"constant.character.escape.batchfile"},{include:"#variables"}]}]},variable:{patterns:[{begin:"%(?=[^%]+%)",beginCaptures:{0:{name:"punctuation.definition.variable.begin.batchfile"}},end:"(%)|\\n",endCaptures:{1:{name:"punctuation.definition.variable.end.batchfile"}},name:"variable.other.readwrite.batchfile",patterns:[{begin:":~",beginCaptures:{0:{name:"punctuation.separator.batchfile"}},end:"(?=%|\\n)",name:"meta.variable.substring.batchfile",patterns:[{include:"#variable_substring"}]},{begin:":",beginCaptures:{0:{name:"punctuation.separator.batchfile"}},end:"(?=%|\\n)",name:"meta.variable.substitution.batchfile",patterns:[{include:"#variable_replace"},{begin:"=",beginCaptures:{0:{name:"punctuation.separator.batchfile"}},end:"(?=%|\\n)",patterns:[{include:"#variable_delayed_expansion"},{match:"[^%]+",name:"string.unquoted.batchfile"}]}]}]}]},variable_delayed_expansion:{patterns:[{begin:"!(?=[^!]+!)",beginCaptures:{0:{name:"punctuation.definition.variable.begin.batchfile"}},end:"(!)|\\n",endCaptures:{1:{name:"punctuation.definition.variable.end.batchfile"}},name:"variable.other.readwrite.batchfile",patterns:[{begin:":~",beginCaptures:{0:{name:"punctuation.separator.batchfile"}},end:"(?=!|\\n)",name:"meta.variable.substring.batchfile",patterns:[{include:"#variable_substring"}]},{begin:":",beginCaptures:{0:{name:"punctuation.separator.batchfile"}},end:"(?=!|\\n)",name:"meta.variable.substitution.batchfile",patterns:[{include:"#escaped_characters"},{include:"#variable_replace"},{include:"#variable"},{begin:"=",beginCaptures:{0:{name:"punctuation.separator.batchfile"}},end:"(?=!|\\n)",patterns:[{include:"#variable"},{match:"[^!]+",name:"string.unquoted.batchfile"}]}]}]}]},variable_replace:{patterns:[{match:"[^=%!\\n]+",name:"string.unquoted.batchfile"}]},variable_substring:{patterns:[{captures:{1:{name:"constant.numeric.batchfile"},2:{name:"punctuation.separator.batchfile"},3:{name:"constant.numeric.batchfile"}},match:"([+-]?\\d+)(?:(,)([+-]?\\d+))?"}]},variables:{patterns:[{captures:{1:{name:"punctuation.definition.variable.batchfile"}},match:"(%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?\\d|\\*)",name:"variable.parameter.batchfile"},{include:"#variable"},{include:"#variable_delayed_expansion"}]}},scopeName:"source.batchfile",aliases:["batch"]});var t=[e];export{t as default}; diff --git a/assets/chunks/beancount.Urb1RsFe.js b/assets/chunks/beancount.Urb1RsFe.js new file mode 100644 index 000000000..f32aa6c8f --- /dev/null +++ b/assets/chunks/beancount.Urb1RsFe.js @@ -0,0 +1 @@ +const n=Object.freeze({displayName:"Beancount",fileTypes:["beancount"],name:"beancount",patterns:[{comment:"Comments",match:";.*",name:"comment.line.beancount"},{begin:"^\\s*(poptag|pushtag)\\s+(#)([A-Za-z0-9\\-_/.]+)",beginCaptures:{1:{name:"support.function.beancount"},2:{name:"keyword.operator.tag.beancount"},3:{name:"entity.name.tag.beancount"}},comment:"Tag directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.tag.beancount",patterns:[{include:"#comments"},{include:"#illegal"}]},{begin:'^\\s*(include)\\s+(\\".*\\")',beginCaptures:{1:{name:"support.function.beancount"},2:{name:"string.quoted.double.beancount"}},comment:"Include directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.include.beancount",patterns:[{include:"#comments"},{include:"#illegal"}]},{begin:'^\\s*(option)\\s+(\\".*\\")\\s+(\\".*\\")',beginCaptures:{1:{name:"support.function.beancount"},2:{name:"support.variable.beancount"},3:{name:"string.quoted.double.beancount"}},comment:"Option directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.option.beancount",patterns:[{include:"#comments"},{include:"#illegal"}]},{begin:'^\\s*(plugin)\\s*("(.*?)")\\s*(".*?")?',beginCaptures:{1:{name:"support.function.beancount"},2:{name:"string.quoted.double.beancount"},3:{name:"entity.name.function.beancount"},4:{name:"string.quoted.double.beancount"}},comment:"Plugin directive",end:"(?=(^\\s*$|^\\S))",name:"keyword.operator.directive.beancount",patterns:[{include:"#comments"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s+(open|close|pad)\\b",beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.beancount"}},comment:"Open/Close/Pad directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#account"},{include:"#commodity"},{match:"\\,",name:"punctuation.separator.beancount"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s+(custom)\\b",beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.beancount"}},comment:"Custom directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#string"},{include:"#bool"},{include:"#amount"},{include:"#number"},{include:"#date"},{include:"#account"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(event)",beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.directive.beancount"}},comment:"Event directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#string"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(commodity)",beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.directive.beancount"}},comment:"Commodity directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#commodity"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(note|document)",beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.directive.beancount"}},comment:"Note/Document directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#account"},{include:"#string"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(price)",beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.directive.beancount"}},comment:"Price directives",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#commodity"},{include:"#amount"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(balance)",beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.directive.beancount"}},comment:"Balance directives",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#account"},{include:"#amount"},{include:"#illegal"}]},{begin:'([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s*(txn|[*!&#?%PSTCURM])\\s*(".*?")?\\s*(".*?")?',beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.directive.beancount"},7:{name:"string.quoted.tiers.beancount"},8:{name:"string.quoted.narration.beancount"}},comment:"Transaction directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.transaction.beancount",patterns:[{include:"#comments"},{include:"#posting"},{include:"#meta"},{include:"#tag"},{include:"#link"},{include:"#illegal"}]}],repository:{account:{begin:"([A-Z][a-z]+)(:)",beginCaptures:{1:{name:"variable.language.beancount"},2:{name:"punctuation.separator.beancount"}},end:"\\s",name:"meta.account.beancount",patterns:[{begin:"(\\S+)([:]?)",beginCaptures:{1:{name:"variable.other.account.beancount"},2:{name:"punctuation.separator.beancount"}},comment:"Sub accounts",end:"([:]?)|(\\s)",patterns:[{include:"$self"},{include:"#illegal"}]}]},amount:{captures:{1:{name:"keyword.operator.modifier.beancount"},2:{name:"constant.numeric.currency.beancount"},3:{name:"entity.name.type.commodity.beancount"}},match:"([\\-|\\+]?)(\\d+(?:,\\d{3})*(?:\\.\\d*)?)\\s*([A-Z][A-Z0-9\\'\\.\\_\\-]{0,22}[A-Z0-9])",name:"meta.amount.beancount"},bool:{captures:{0:{name:"constant.language.bool.beancount"},2:{name:"constant.numeric.currency.beancount"},3:{name:"entity.name.type.commodity.beancount"}},match:"TRUE|FALSE"},comments:{captures:{1:{name:"comment.line.beancount"}},match:"(;.*)$"},commodity:{match:"([A-Z][A-Z0-9\\'\\.\\_\\-]{0,22}[A-Z0-9])",name:"entity.name.type.commodity.beancount"},cost:{begin:"\\{\\{?",beginCaptures:{0:{name:"keyword.operator.assignment.beancount"}},end:"\\}\\}?",endCaptures:{0:{name:"keyword.operator.assignment.beancount"}},name:"meta.cost.beancount",patterns:[{include:"#amount"},{include:"#date"},{match:"\\,",name:"punctuation.separator.beancount"},{include:"#illegal"}]},date:{captures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"}},match:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})",name:"meta.date.beancount"},flag:{match:"(?<=\\s)([*!&#?%PSTCURM])(?=\\s+)",name:"keyword.other.beancount"},illegal:{match:"[^\\s]",name:"invalid.illegal.unrecognized.beancount"},link:{captures:{1:{name:"keyword.operator.link.beancount"},2:{name:"markup.underline.link.beancount"}},match:"(\\^)([A-Za-z0-9\\-_/.]+)"},meta:{begin:"^\\s*([a-z][A-Za-z0-9\\-_]+)([:])",beginCaptures:{1:{name:"keyword.operator.directive.beancount"},2:{name:"punctuation.separator.beancount"}},end:"\\n",name:"meta.meta.beancount",patterns:[{include:"#string"},{include:"#account"},{include:"#bool"},{include:"#commodity"},{include:"#date"},{include:"#tag"},{include:"#amount"},{include:"#number"},{include:"#comments"},{include:"#illegal"}]},number:{captures:{1:{name:"keyword.operator.modifier.beancount"},2:{name:"constant.numeric.currency.beancount"}},match:"([\\-|\\+]?)(\\d+(?:,\\d{3})*(?:\\.\\d*)?)"},posting:{begin:"^\\s+(?=([A-Z\\!]))",end:"(?=(^\\s*$|^\\S|^\\s*[A-Z]))",name:"meta.posting.beancount",patterns:[{include:"#meta"},{include:"#comments"},{include:"#flag"},{include:"#account"},{include:"#amount"},{include:"#cost"},{include:"#date"},{include:"#price"},{include:"#illegal"}]},price:{begin:"\\@\\@?",beginCaptures:{0:{name:"keyword.operator.assignment.beancount"}},end:"(?=(;|\\n))",name:"meta.price.beancount",patterns:[{include:"#amount"},{include:"#illegal"}]},string:{begin:'\\"',end:'\\"',name:"string.quoted.double.beancount",patterns:[{match:"\\\\.",name:"constant.character.escape.beancount"}]},tag:{captures:{1:{name:"keyword.operator.tag.beancount"},2:{name:"entity.name.tag.beancount"}},match:"(#)([A-Za-z0-9\\-_/.]+)"}},scopeName:"text.beancount"});var e=[n];export{e as default}; diff --git a/assets/chunks/berry.CxrokwfH.js b/assets/chunks/berry.CxrokwfH.js new file mode 100644 index 000000000..f3db71616 --- /dev/null +++ b/assets/chunks/berry.CxrokwfH.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Berry",name:"berry",patterns:[{include:"#controls"},{include:"#strings"},{include:"#comment-block"},{include:"#comments"},{include:"#keywords"},{include:"#function"},{include:"#member"},{include:"#identifier"},{include:"#number"},{include:"#operator"}],repository:{"comment-block":{begin:"\\#\\-",end:"\\-#",name:"comment.berry",patterns:[{}]},comments:{begin:"\\#",end:"\\n",name:"comment.line.berry",patterns:[{}]},controls:{patterns:[{match:"\\b(if|elif|else|for|while|do|end|break|continue|return|try|except|raise)\\b",name:"keyword.control.berry"}]},function:{patterns:[{match:"\\b([a-zA-Z_][a-zA-Z0-9_]*(?=\\s*\\())",name:"entity.name.function.berry"}]},identifier:{patterns:[{match:"\\b[_A-Za-z]\\w+\\b",name:"identifier.berry"}]},keywords:{patterns:[{match:"\\b(var|static|def|class|true|false|nil|self|super|import|as|_class)\\b",name:"keyword.berry"}]},member:{patterns:[{captures:{0:{name:"entity.other.attribute-name.berry"}},match:"\\.([a-zA-Z_][a-zA-Z0-9_]*)"}]},number:{patterns:[{match:"0x[a-fA-F0-9]+|\\d+|(\\d+\\.?|\\.\\d)\\d*([eE][+-]?\\d+)?",name:"constant.numeric.berry"}]},operator:{patterns:[{match:"\\(|\\)|\\[|\\]|\\.|-|\\!|~|\\*|/|%|\\+|&|\\^|\\||<|>|=|:",name:"keyword.operator.berry"}]},strings:{patterns:[{begin:`("|')`,end:"\\1",name:"string.quoted.double.berry",patterns:[{match:`(\\\\x[\\h]{2})|(\\\\[0-7]{3})|(\\\\\\\\)|(\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)`,name:"constant.character.escape.berry"}]},{begin:`f("|')`,end:"\\1",name:"string.quoted.other.berry",patterns:[{match:`(\\\\x[\\h]{2})|(\\\\[0-7]{3})|(\\\\\\\\)|(\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)`,name:"constant.character.escape.berry"},{match:"\\{\\{[^\\}]*\\}\\}",name:"string.quoted.other.berry"},{begin:"\\{",end:"\\}",name:"keyword.other.unit.berry",patterns:[{include:"#keywords"},{include:"#numbers"},{include:"#identifier"},{include:"#operator"},{include:"#member"},{include:"#function"}]}]}]}},scopeName:"source.berry",aliases:["be"]});var r=[e];export{r as default}; diff --git a/assets/chunks/bibtex.BaedD2tq.js b/assets/chunks/bibtex.BaedD2tq.js new file mode 100644 index 000000000..0ecd773e5 --- /dev/null +++ b/assets/chunks/bibtex.BaedD2tq.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"BibTeX",name:"bibtex",patterns:[{captures:{0:{name:"punctuation.definition.comment.bibtex"}},match:"@(?i:comment)(?=[\\s{(])",name:"comment.block.at-sign.bibtex"},{begin:"((@)(?i:preamble))\\s*(\\{)\\s*",beginCaptures:{1:{name:"keyword.other.preamble.bibtex"},2:{name:"punctuation.definition.keyword.bibtex"},3:{name:"punctuation.section.preamble.begin.bibtex"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.preamble.end.bibtex"}},name:"meta.preamble.braces.bibtex",patterns:[{include:"#field_value"}]},{begin:"((@)(?i:preamble))\\s*(\\()\\s*",beginCaptures:{1:{name:"keyword.other.preamble.bibtex"},2:{name:"punctuation.definition.keyword.bibtex"},3:{name:"punctuation.section.preamble.begin.bibtex"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.preamble.end.bibtex"}},name:"meta.preamble.parenthesis.bibtex",patterns:[{include:"#field_value"}]},{begin:"((@)(?i:string))\\s*(\\{)\\s*([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)",beginCaptures:{1:{name:"keyword.other.string-constant.bibtex"},2:{name:"punctuation.definition.keyword.bibtex"},3:{name:"punctuation.section.string-constant.begin.bibtex"},4:{name:"variable.other.bibtex"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.string-constant.end.bibtex"}},name:"meta.string-constant.braces.bibtex",patterns:[{include:"#field_value"}]},{begin:"((@)(?i:string))\\s*(\\()\\s*([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)",beginCaptures:{1:{name:"keyword.other.string-constant.bibtex"},2:{name:"punctuation.definition.keyword.bibtex"},3:{name:"punctuation.section.string-constant.begin.bibtex"},4:{name:"variable.other.bibtex"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.string-constant.end.bibtex"}},name:"meta.string-constant.parenthesis.bibtex",patterns:[{include:"#field_value"}]},{begin:"((@)[a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\{)\\s*([^\\s,}]*)",beginCaptures:{1:{name:"keyword.other.entry-type.bibtex"},2:{name:"punctuation.definition.keyword.bibtex"},3:{name:"punctuation.section.entry.begin.bibtex"},4:{name:"entity.name.type.entry-key.bibtex"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.entry.end.bibtex"}},name:"meta.entry.braces.bibtex",patterns:[{begin:"([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\=)",beginCaptures:{1:{name:"support.function.key.bibtex"},2:{name:"punctuation.separator.key-value.bibtex"}},end:"(?=[,}])",name:"meta.key-assignment.bibtex",patterns:[{include:"#field_value"}]}]},{begin:"((@)[a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\()\\s*([^\\s,]*)",beginCaptures:{1:{name:"keyword.other.entry-type.bibtex"},2:{name:"punctuation.definition.keyword.bibtex"},3:{name:"punctuation.section.entry.begin.bibtex"},4:{name:"entity.name.type.entry-key.bibtex"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.entry.end.bibtex"}},name:"meta.entry.parenthesis.bibtex",patterns:[{begin:"([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\=)",beginCaptures:{1:{name:"support.function.key.bibtex"},2:{name:"punctuation.separator.key-value.bibtex"}},end:"(?=[,)])",name:"meta.key-assignment.bibtex",patterns:[{include:"#field_value"}]}]},{begin:"[^@\\n]",end:"(?=@)",name:"comment.block.bibtex"}],repository:{field_value:{patterns:[{include:"#string_content"},{include:"#integer"},{include:"#string_var"},{match:"#",name:"keyword.operator.bibtex"}]},integer:{captures:{1:{name:"constant.numeric.bibtex"}},match:"\\s*(\\d+)\\s*"},nested_braces:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.group.begin.bibtex"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.group.end.bibtex"}},patterns:[{include:"#nested_braces"}]},string_content:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.bibtex"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.bibtex"}},patterns:[{include:"#nested_braces"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.bibtex"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.bibtex"}},patterns:[{include:"#nested_braces"}]}]},string_var:{captures:{0:{name:"support.variable.bibtex"}},match:"[a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*"}},scopeName:"text.bibtex"});var n=[e];export{n as default}; diff --git a/assets/chunks/bicep.3ghuYFLd.js b/assets/chunks/bicep.3ghuYFLd.js new file mode 100644 index 000000000..4a22898c5 --- /dev/null +++ b/assets/chunks/bicep.3ghuYFLd.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Bicep",fileTypes:[".bicep"],name:"bicep",patterns:[{include:"#expression"},{include:"#comments"}],repository:{"array-literal":{begin:"\\[(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\bfor\\b)",end:"]",name:"meta.array-literal.bicep",patterns:[{include:"#expression"},{include:"#comments"}]},"block-comment":{begin:"/\\*",end:"\\*/",name:"comment.block.bicep"},comments:{patterns:[{include:"#line-comment"},{include:"#block-comment"}]},decorator:{begin:"@(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(?=\\b[_$[:alpha:]][_$[:alnum:]]*\\b)",end:"",name:"meta.decorator.bicep",patterns:[{include:"#expression"},{include:"#comments"}]},directive:{begin:"#\\b[_a-zA-Z-0-9]+\\b",end:"$",name:"meta.directive.bicep",patterns:[{include:"#directive-variable"},{include:"#comments"}]},"directive-variable":{match:"\\b[_a-zA-Z-0-9]+\\b",name:"keyword.control.declaration.bicep"},"escape-character":{match:"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)",name:"constant.character.escape.bicep"},expression:{patterns:[{include:"#string-literal"},{include:"#string-verbatim"},{include:"#numeric-literal"},{include:"#named-literal"},{include:"#object-literal"},{include:"#array-literal"},{include:"#keyword"},{include:"#identifier"},{include:"#function-call"},{include:"#decorator"},{include:"#lambda-start"},{include:"#directive"}]},"function-call":{begin:"(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\(",beginCaptures:{1:{name:"entity.name.function.bicep"}},end:"\\)",name:"meta.function-call.bicep",patterns:[{include:"#expression"},{include:"#comments"}]},identifier:{match:"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\()",name:"variable.other.readwrite.bicep"},keyword:{match:"\\b(metadata|targetScope|resource|module|param|var|output|for|in|if|existing|import|as|type|with|using|func|assert|provider)\\b",name:"keyword.control.declaration.bicep"},"lambda-start":{begin:"(\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(,(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)*\\)|\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\)|(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=>)",beginCaptures:{1:{name:"meta.undefined.bicep",patterns:[{include:"#identifier"},{include:"#comments"}]}},end:"(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=>",name:"meta.lambda-start.bicep"},"line-comment":{match:"//.*(?=$)",name:"comment.line.double-slash.bicep"},"named-literal":{match:"\\b(true|false|null)\\b",name:"constant.language.bicep"},"numeric-literal":{match:"[0-9]+",name:"constant.numeric.bicep"},"object-literal":{begin:"{",end:"}",name:"meta.object-literal.bicep",patterns:[{include:"#object-property-key"},{include:"#expression"},{include:"#comments"}]},"object-property-key":{match:"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*:)",name:"variable.other.property.bicep"},"string-literal":{begin:"'(?!'')",end:"'",name:"string.quoted.single.bicep",patterns:[{include:"#escape-character"},{include:"#string-literal-subst"}]},"string-literal-subst":{begin:"(?))",beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.php"}},end:"(?!\\G)(\\s*$\\n)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.php"}},patterns:[{begin:"<\\?(?i:php|=)?",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"}},contentName:"source.php",end:"(\\?)>",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"source.php"}},name:"meta.embedded.block.php",patterns:[{include:"#language"}]}]},{begin:"<\\?(?i:php|=)?(?![^?]*\\?>)",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"}},contentName:"source.php",end:"(\\?)>",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"source.php"}},name:"meta.embedded.block.php",patterns:[{include:"#language"}]},{begin:"<\\?(?i:php|=)?",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"}},end:">",endCaptures:{0:{name:"punctuation.section.embedded.end.php"}},name:"meta.embedded.line.php",patterns:[{captures:{1:{name:"source.php"},2:{name:"punctuation.section.embedded.end.php"},3:{name:"source.php"}},match:"\\G(\\s*)((\\?))(?=>)",name:"meta.special.empty-tag.php"},{begin:"\\G",contentName:"source.php",end:"(\\?)(?=>)",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"source.php"}},patterns:[{include:"#language"}]}]}]}},name:"blade",patterns:[{include:"text.html.basic"}],repository:{balance_brackets:{patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"#balance_brackets"}]},{match:"[^()]+"}]},blade:{patterns:[{begin:"{{--",beginCaptures:{0:{name:"punctuation.definition.comment.begin.blade"}},end:"--}}",endCaptures:{0:{name:"punctuation.definition.comment.end.blade"}},name:"comment.block.blade",patterns:[{begin:"(^\\s*)(?=<\\?(?![^?]*\\?>))",beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.php"}},end:"(?!\\G)(\\s*$\\n)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.php"}},name:"invalid.illegal.php-code-in-comment.blade",patterns:[{begin:"<\\?(?i:php|=)?",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"}},contentName:"source.php",end:"(\\?)>",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"source.php"}},name:"meta.embedded.block.php",patterns:[{include:"#language"}]}]},{begin:"<\\?(?i:php|=)?(?![^?]*\\?>)",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"}},contentName:"source.php",end:"(\\?)>",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"source.php"}},name:"invalid.illegal.php-code-in-comment.blade.meta.embedded.block.php",patterns:[{include:"#language"}]},{begin:"<\\?(?i:php|=)?",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"}},end:">",endCaptures:{0:{name:"punctuation.section.embedded.end.php"}},name:"invalid.illegal.php-code-in-comment.blade.meta.embedded.line.php",patterns:[{captures:{1:{name:"source.php"},2:{name:"punctuation.section.embedded.end.php"},3:{name:"source.php"}},match:"\\G(\\s*)((\\?))(?=>)",name:"meta.special.empty-tag.php"},{begin:"\\G",contentName:"source.php",end:"(\\?)(?=>)",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"source.php"}},patterns:[{include:"#language"}]}]}]},{begin:"(?)",name:"comment.line.double-slash.php"}]},{begin:"(^\\s+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.php"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.php"}},end:"\\n|(?=\\?>)",name:"comment.line.number-sign.php"}]}]},constants:{patterns:[{match:"(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b",name:"constant.language.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:`(?x) +(\\\\)?\\b +(DEFAULT_INCLUDE_PATH +|EAR_(INSTALL|EXTENSION)_DIR +|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|DEPRECATED|ERROR|NOTICE +|PARSE|RECOVERABLE_ERROR|STRICT|USER_(DEPRECATED|ERROR|NOTICE|WARNING)|WARNING) +|PHP_(ROUND_HALF_(DOWN|EVEN|ODD|UP)|(MAJOR|MINOR|RELEASE)_VERSION|MAXPATHLEN +|BINDIR|SHLIB_SUFFIX|SYSCONFDIR|SAPI|CONFIG_FILE_(PATH|SCAN_DIR) +|INT_(MAX|SIZE)|ZTS|OS|OUTPUT_HANDLER_(START|CONT|END)|DEBUG|DATADIR +|URL_(SCHEME|HOST|USER|PORT|PASS|PATH|QUERY|FRAGMENT)|PREFIX +|EXTRA_VERSION|EXTENSION_DIR|EOL|VERSION(_ID)? +|WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION) +|VERSION_(MAJOR|MINOR)|BUILD|SUITEMASK|SP_(MAJOR|MINOR) +|PRODUCTTYPE|PLATFORM) +|LIBDIR|LOCALSTATEDIR) +|STD(ERR|IN|OUT)|ZEND_(DEBUG_BUILD|THREAD_SAFE)) +\\b`,name:"support.constant.core.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:`(?x) +(\\\\)?\\b +(__COMPILER_HALT_OFFSET__|AB(MON_(1|2|3|4|5|6|7|8|9|10|11|12)|DAY[1-7]) +|AM_STR|ASSERT_(ACTIVE|BAIL|CALLBACK_QUIET_EVAL|WARNING)|ALT_DIGITS +|CASE_(UPPER|LOWER)|CHAR_MAX|CONNECTION_(ABORTED|NORMAL|TIMEOUT)|CODESET|COUNT_(NORMAL|RECURSIVE) +|CREDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI) +|CRYPT_(BLOWFISH|EXT_DES|MD5|SHA(256|512)|SALT_LENGTH|STD_DES)|CURRENCY_SYMBOL +|D_(T_)?FMT|DATE_(ATOM|COOKIE|ISO8601|RFC(822|850|1036|1123|2822|3339)|RSS|W3C) +|DAY_[1-7]|DECIMAL_POINT|DIRECTORY_SEPARATOR +|ENT_(COMPAT|IGNORE|(NO)?QUOTES)|EXTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|REFS|SKIP) +|ERA(_(D_(T_)?FMT)|T_FMT|YEAR)?|FRAC_DIGITS|GROUPING|HASH_HMAC|HTML_(ENTITIES|SPECIALCHARS) +|INF|INFO_(ALL|CREDITS|CONFIGURATION|ENVIRONMENT|GENERAL|LICENSEMODULES|VARIABLES) +|INI_(ALL|CANNER_(NORMAL|RAW)|PERDIR|SYSTEM|USER)|INT_(CURR_SYMBOL|FRAC_DIGITS) +|LC_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|LOCK_(EX|NB|SH|UN) +|LOG_(ALERT|AUTH(PRIV)?|CRIT|CRON|CONS|DAEMON|DEBUG|EMERG|ERR|INFO|LOCAL[1-7]|LPR|KERN|MAIL +|NEWS|NODELAY|NOTICE|NOWAIT|ODELAY|PID|PERROR|WARNING|SYSLOG|UCP|USER) +|M_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRT)?PI|PI(_(2|4))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E) +|MON_(1|2|3|4|5|6|7|8|9|10|11|12|DECIMAL_POINT|GROUPING|THOUSANDS_SEP) +|N_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|NAN|NEGATIVE_SIGN|NO(EXPR|STR) +|P_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|PM_STR|POSITIVE_SIGN +|PATH(_SEPARATOR|INFO_(EXTENSION|(BASE|DIR|FILE)NAME))|RADIXCHAR +|SEEK_(CUR|END|SET)|SORT_(ASC|DESC|LOCALE_STRING|REGULAR|STRING)|STR_PAD_(BOTH|LEFT|RIGHT) +|T_FMT(_AMPM)?|THOUSEP|THOUSANDS_SEP +|UPLOAD_ERR_(CANT_WRITE|EXTENSION|(FORM|INI)_SIZE|NO_(FILE|TMP_DIR)|OK|PARTIAL) +|YES(EXPR|STR)) +\\b`,name:"support.constant.std.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:`(?x) +(\\\\)?\\b +(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS) +|XML_(SAX_IMPL|(DTD|DOCUMENT(_(FRAG|TYPE))?|HTML_DOCUMENT|NOTATION|NAMESPACE_DECL|PI|COMMENT|DATA_SECTION|TEXT)_NODE +|OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING) +|ERROR_((BAD_CHAR|(ATTRIBUTE_EXTERNAL|BINARY|PARAM|RECURSIVE)_ENTITY)_REF|MISPLACED_XML_PI|SYNTAX|NONE +|NO_(MEMORY|ELEMENTS)|TAG_MISMATCH|INCORRECT_ENCODING|INVALID_TOKEN|DUPLICATE_ATTRIBUTE +|UNCLOSED_(CDATA_SECTION|TOKEN)|UNDEFINED_ENTITY|UNKNOWN_ENCODING|JUNK_AFTER_DOC_ELEMENT +|PARTIAL_CHAR|EXTERNAL_ENTITY_HANDLING|ASYNC_ENTITY) +|ENTITY_(((REF|DECL)_)?NODE)|ELEMENT(_DECL)?_NODE|LOCAL_NAMESPACE|ATTRIBUTE_(NMTOKEN(S)?|NOTATION|NODE) +|CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION) +|MHASH_(RIPEMD(128|160|256|320)|GOST|MD(2|4|5)|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256) +|CRC23(B)?|TIGER(128|160)?|WHIRLPOOL|ADLER32) +|MYSQL_(BOTH|NUM|CLIENT_(SSL|COMPRESS|IGNORE_SPACE|INTERACTIVE|ASSOC)) +|MYSQLI_(REPORT_(STRICT|INDEX|OFF|ERROR|ALL)|REFRESH_(GRANT|MASTER|BACKUP_LOG|STATUS|SLAVE|HOSTS|THREADS|TABLES|LOG) +|READ_DEFAULT_(FILE|GROUP)|(GROUP|MULTIPLE_KEY|BINARY|BLOB)_FLAG|BOTH +|STMT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|STORE_RESULT +|SERVER_QUERY_(NO_((GOOD_)?INDEX_USED)|WAS_SLOW)|SET_(CHARSET_NAME|FLAG) +|NO_(DEFAULT_VALUE_FLAG|DATA)|NOT_NULL_FLAG|NUM(_FLAG)? +|CURSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE) +|CLIENT_(SSL|NO_SCHEMA|COMPRESS|IGNORE_SPACE|INTERACTIVE|FOUND_ROWS) +|TYPE_(GEOMETRY|((MEDIUM|LONG|TINY)_)?BLOB|BIT|SHORT|STRING|SET|YEAR|NULL|NEWDECIMAL|NEWDATE|CHAR +|TIME(STAMP)?|TINY|INT24|INTERVAL|DOUBLE|DECIMAL|DATE(TIME)?|ENUM|VAR_STRING|FLOAT|LONG(LONG)?) +|TIME_STAMP_FLAG|INIT_COMMAND|ZEROFILL_FLAG|ON_UPDATE_NOW_FLAG +|OPT_(NET_((CMD|READ)_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE) +|DEBUG_TRACE_ENABLED|DATA_TRUNCATED|USE_RESULT|(ENUM|(PART|PRI|UNIQUE)_KEY|UNSIGNED)_FLAG +|ASSOC|ASYNC|AUTO_INCREMENT_FLAG) +|MCRYPT_(RC(2|6)|RIJNDAEL_(128|192|256)|RAND|GOST|XTEA|MODE_(STREAM|NOFB|CBC|CFB|OFB|ECB)|MARS +|BLOWFISH(_COMPAT)?|SERPENT|SKIPJACK|SAFER(64|128|PLUS)|CRYPT|CAST_(128|256)|TRIPLEDES|THREEWAY +|TWOFISH|IDEA|(3)?DES|DECRYPT|DEV_(U)?RANDOM|PANAMA|ENCRYPT|ENIGNA|WAKE|LOKI97|ARCFOUR(_IV)?) +|STREAM_(REPORT_ERRORS|MUST_SEEK|MKDIR_RECURSIVE|BUFFER_(NONE|FULL|LINE)|SHUT_(RD)?WR +|SOCK_(RDM|RAW|STREAM|SEQPACKET|DGRAM)|SERVER_(BIND|LISTEN) +|NOTIFY_(REDIRECTED|RESOLVE|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|COMPLETED|CONNECT|PROGRESS +|FILE_SIZE_IS|FAILURE|AUTH_(REQUIRED|RESULT)) +|CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT) +|CAST_(AS_STREAM|FOR_SELECT)|(IGNORE|IS)_URL|IPPROTO_(RAW|TCP|ICMP|IP|UDP)|OOB +|OPTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER)|URL_STAT_(LINK|QUIET)|USE_PATH +|PEEK|PF_(INET(6)?|UNIX)|ENFORCE_SAFE_MODE|FILTER_(ALL|READ|WRITE)) +|SUNFUNCS_RET_(DOUBLE|STRING|TIMESTAMP) +|SQLITE_(READONLY|ROW|MISMATCH|MISUSE|BOTH|BUSY|SCHEMA|NOMEM|NOTFOUND|NOTADB|NOLFS|NUM|CORRUPT +|CONSTRAINT|CANTOPEN|TOOBIG|INTERRUPT|INTERNAL|IOERR|OK|DONE|PROTOCOL|PERM|ERROR|EMPTY +|FORMAT|FULL|LOCKED|ABORT|ASSOC|AUTH) +|SQLITE3_(BOTH|BLOB|NUM|NULL|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT_ASSOC) +|CURL(M_(BAD_((EASY)?HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|OUT_OF_MEMORY|OK) +|MSG_DONE|SSH_AUTH_(HOST|NONE|DEFAULT|PUBLICKEY|PASSWORD|KEYBOARD) +|CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC) +|INFO_(REDIRECT_(COUNT|TIME)|REQUEST_SIZE|SSL_VERIFYRESULT|STARTTRANSFER_TIME +|(SIZE|SPEED)_(DOWNLOAD|UPLOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME +|CONNECT_TIME|CONTENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD))|CERTINFO|TOTAL_TIME +|PRIVATE|PRETRANSFER_TIME|EFFECTIVE_URL|FILETIME) +|OPT_(RESUME_FROM|RETURNTRANSFER|REDIR_PROTOCOLS|REFERER|READ(DATA|FUNCTION)|RANGE|RANDOM_FILE +|MAX(CONNECTS|REDIRS)|BINARYTRANSFER|BUFFERSIZE +|SSH_(HOST_PUBLIC_KEY_MD5|(PRIVATE|PUBLIC)_KEYFILE)|AUTH_TYPES) +|SSL(CERT(TYPE|PASSWD)?|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?) +|SSL_(CIPHER_LIST|VERIFY(HOST|PEER)) +|STDERR|HTTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH) +|HEADER(FUNCTION)?|NO(BODY|SIGNAL|PROGRESS)|NETRC|CRLF|CONNECTTIMEOUT(_MS)? +|COOKIE(SESSION|JAR|FILE)?|CUSTOMREQUEST|CERTINFO|CLOSEPOLICY|CA(INFO|PATH)|TRANSFERTEXT +|TCP_NODELAY|TIME(CONDITION|OUT(_MS)?|VALUE)|INTERFACE|INFILE(SIZE)?|IPRESOLVE +|DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|URL|USER(AGENT|PWD)|UNRESTRICTED_AUTH|UPLOAD +|PRIVATE|PROGRESSFUNCTION|PROXY(TYPE|USERPWD|PORT|AUTH)?|PROTOCOLS|PORT +|POST(REDIR|QUOTE|FIELDS)?|PUT|EGDSOCKET|ENCODING|VERBOSE|KRB4LEVEL|KEYPASSWD|QUOTE|FRESH_CONNECT +|FTP(APPEND|LISTONLY|PORT|SSLAUTH) +|FTP_(SSL|SKIP_PASV_IP|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD) +|FILE(TIME)?|FORBID_REUSE|FOLLOWLOCATION|FAILONERROR|WRITE(FUNCTION|HEADER)|LOW_SPEED_(LIMIT|TIME) +|AUTOREFERER) +|PROXY_(HTTP|SOCKS(4|5))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL) +|E_((RECV|READ)_ERROR|GOT_NOTHING|MALFORMAT_USER +|BAD_(CONTENT_ENCODING|CALLING_ORDER|PASSWORD_ENTERED|FUNCTION_ARGUMENT) +|SSH|SSL_(CIPHER|CONNECT_ERROR|CERTPROBLEM|CACERT|PEER_CERTIFICATE|ENGINE_(NOTFOUND|SETFAILED)) +|SHARE_IN_USE|SEND_ERROR|HTTP_(RANGE_ERROR|NOT_FOUND|PORT_FAILED|POST_ERROR) +|COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|TOO_MANY_REDIRECTS|TELNET_OPTION_SYNTAX|OBSOLETE +|OUT_OF_MEMORY|OPERATION|TIMEOUTED|OK|URL_MALFORMAT(_USER)?|UNSUPPORTED_PROTOCOL +|UNKNOWN_TELNET_OPTION|PARTIAL_FILE +|FTP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|COULDNT_(RETR_FILE|GET_SIZE|STOR_FILE|SET_(BINARY|ASCII)|USE_REST) +|CANT_(GET_HOST|RECONNECT)|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|WRITE_ERROR +|WEIRD_((PASS|PASV|SERVER|USER)_REPLY|227_FORMAT)|ACCESS_DENIED) +|FILESIZE_EXCEEDED|FILE_COULDNT_READ_FILE|FUNCTION_NOT_FOUND|FAILED_INIT|WRITE_ERROR|LIBRARY_NOT_FOUND +|LDAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL)|ABORTED_BY_CALLBACK) +|VERSION_NOW +|FTP(METHOD_(MULTI|SINGLE|NO)CWD|SSL_(ALL|NONE|CONTROL|TRY)|AUTH_(DEFAULT|SSL|TLS)) +|AUTH_(ANY(SAFE)?|BASIC|DIGEST|GSSNEGOTIATE|NTLM)) +|CURL_(HTTP_VERSION_(1_(0|1)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD) +|IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ)) +|IMAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|ICO|IFF|UNKNOWN|JB2|JPX|JP2|JPC|JPEG(2000)?|PSD|PNG|WBMP) +|INPUT_(REQUEST|GET|SERVER|SESSION|COOKIE|POST|ENV)|ICONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION) +|DNS_(MX|SRV|SOA|HINFO|NS|NAPTR|CNAME|TXT|PTR|ANY|ALL|AAAA|A(6)?) +|DOM(STRING_SIZE_ERR) +|DOM_((SYNTAX|HIERARCHY_REQUEST|NO_(MODIFICATION_ALLOWED|DATA_ALLOWED)|NOT_(FOUND|SUPPORTED)|NAMESPACE +|INDEX_SIZE|USE_ATTRIBUTE|VALID_(MODIFICATION|STATE|CHARACTER|ACCESS)|PHP|VALIDATION|WRONG_DOCUMENT)_ERR) +|JSON_(HEX_(TAG|QUOT|AMP|APOS)|NUMERIC_CHECK|ERROR_(SYNTAX|STATE_MISMATCH|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT) +|PREG_((D_UTF8(_OFFSET)?|NO|INTERNAL|(BACKTRACK|RECURSION)_LIMIT)_ERROR|GREP_INVERT +|SPLIT_(NO_EMPTY|(DELIM|OFFSET)_CAPTURE)|SET_ORDER|OFFSET_CAPTURE|PATTERN_ORDER) +|PSFS_(PASS_ON|ERR_FATAL|FEED_ME|FLAG_(NORMAL|FLUSH_(CLOSE|INC))) +|PCRE_VERSION|POSIX_((F|R|W|X)_OK|S_IF(REG|BLK|SOCK|CHR|IFO)) +|FNM_(NOESCAPE|CASEFOLD|PERIOD|PATHNAME) +|FILTER_(REQUIRE_(SCALAR|ARRAY)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW +|SANITIZE_(MAGIC_QUOTES|STRING|STRIPPED|SPECIAL_CHARS|NUMBER_(INT|FLOAT)|URL +|EMAIL|ENCODED|FULL_SPCIAL_CHARS) +|VALIDATE_(REGEXP|BOOLEAN|INT|IP|URL|EMAIL|FLOAT) +|FORCE_ARRAY +|FLAG_(SCHEME_REQUIRED|STRIP_(BACKTICK|HIGH|LOW)|HOST_REQUIRED|NONE|NO_(RES|PRIV)_RANGE|ENCODE_QUOTES +|IPV(4|6)|PATH_REQUIRED|EMPTY_STRING_NULL|ENCODE_(HIGH|LOW|AMP)|QUERY_REQUIRED +|ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION))) +|FILE_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND) +|FILEINFO_(RAW|MIME(_(ENCODING|TYPE))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME) +|FORCE_(DEFLATE|GZIP) +|LIBXML_(XINCLUDE|NSCLEAN|NO(XMLDECL|BLANKS|NET|CDATA|ERROR|EMPTYTAG|ENT|WARNING) +|COMPACT|DTD(VALID|LOAD|ATTR)|((DOTTED|LOADED)_)?VERSION|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING))) +\\b`,name:"support.constant.ext.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:`(?x) +(\\\\)?\\b +(T_(RETURN|REQUIRE(_ONCE)?|GOTO|GLOBAL|(MINUS|MOD|MUL|XOR)_EQUAL|METHOD_C|ML_COMMENT|BREAK +|BOOL_CAST|BOOLEAN_(AND|OR)|BAD_CHARACTER|SR(_EQUAL)?|STRING(_CAST|VARNAME)?|START_HEREDOC|STATIC +|SWITCH|SL(_EQUAL)?|HALT_COMPILER|NS_(C|SEPARATOR)|NUM_STRING|NEW|NAMESPACE|CHARACTER|COMMENT +|CONSTANT(_ENCAPSED_STRING)?|CONCAT_EQUAL|CONTINUE|CURLY_OPEN|CLOSE_TAG|CLONE|CLASS(_C)? +|CASE|CATCH|TRY|THROW|IMPLEMENTS|ISSET|IS_((GREATER|SMALLER)_OR_EQUAL|(NOT_)?(IDENTICAL|EQUAL)) +|INSTANCEOF|INCLUDE(_ONCE)?|INC|INT_CAST|INTERFACE|INLINE_HTML|IF|OR_EQUAL|OBJECT_(CAST|OPERATOR) +|OPEN_TAG(_WITH_ECHO)?|OLD_FUNCTION|DNUMBER|DIR|DIV_EQUAL|DOC_COMMENT|DOUBLE_(ARROW|CAST|COLON) +|DOLLAR_OPEN_CURLY_BRACES|DO|DEC|DECLARE|DEFAULT|USE|UNSET(_CAST)?|PRINT|PRIVATE|PROTECTED|PUBLIC +|PLUS_EQUAL|PAAMAYIM_NEKUDOTAYIM|EXTENDS|EXIT|EMPTY|ENCAPSED_AND_WHITESPACE +|END(SWITCH|IF|DECLARE|FOR(EACH)?|WHILE)|END_HEREDOC|ECHO|EVAL|ELSE(IF)?|VAR(IABLE)?|FINAL|FILE +|FOR(EACH)?|FUNC_C|FUNCTION|WHITESPACE|WHILE|LNUMBER|LIST|LINE|LOGICAL_(AND|OR|XOR) +|ARRAY_(CAST)?|ABSTRACT|AS|AND_EQUAL)) +\\b`,name:"support.constant.parser-token.php"},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"constant.other.php"}]},"function-call":{patterns:[{begin:`(?xi) +( +\\\\?\\b +[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]* +(?:\\\\[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)+ +)\\s*(\\()`,beginCaptures:{1:{patterns:[{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.name.function.php"}]},2:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#language"}]},{begin:"(?i)(\\\\)?\\b([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()",beginCaptures:{1:{patterns:[{include:"#namespace"}]},2:{patterns:[{include:"#support"},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.name.function.php"}]},3:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#language"}]},{match:"(?i)\\b(print|echo)\\b",name:"support.function.construct.output.php"}]},"function-parameters":{patterns:[{include:"#comments"},{match:",",name:"punctuation.separator.delimiter.php"},{begin:`(?xi) +(array) +\\s+((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) +\\s*(=)\\s*(array)\\s*(\\()`,beginCaptures:{1:{name:"storage.type.php"},2:{name:"variable.other.php"},3:{name:"storage.modifier.reference.php"},4:{name:"punctuation.definition.variable.php"},5:{name:"keyword.operator.assignment.php"},6:{name:"support.function.construct.php"},7:{name:"punctuation.definition.array.begin.bracket.round.php"}},contentName:"meta.array.php",end:"\\)",endCaptures:{0:{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.function.parameter.array.php",patterns:[{include:"#comments"},{include:"#strings"},{include:"#numbers"}]},{captures:{1:{name:"storage.type.php"},2:{name:"variable.other.php"},3:{name:"storage.modifier.reference.php"},4:{name:"punctuation.definition.variable.php"},5:{name:"keyword.operator.assignment.php"},6:{name:"constant.language.php"},7:{name:"punctuation.section.array.begin.php"},8:{patterns:[{include:"#parameter-default-types"}]},9:{name:"punctuation.section.array.end.php"},10:{name:"invalid.illegal.non-null-typehinted.php"}},match:`(?xi) +(array|callable) +\\s+((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) +(?: +\\s*(=)\\s* +(?: +(null) +| +(\\[)((?>[^\\[\\]]+|\\[\\g<8>\\])*)(\\]) +|((?:\\S*?\\(\\))|(?:\\S*?)) +) +)? +\\s*(?=,|\\)|/[/*]|\\#|$)`,name:"meta.function.parameter.array.php"},{begin:`(?xi) +(\\\\?(?:[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)*) +([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) +\\s+((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)`,beginCaptures:{1:{name:"support.other.namespace.php",patterns:[{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"storage.type.php"},{match:"\\\\",name:"punctuation.separator.inheritance.php"}]},2:{name:"storage.type.php"},3:{name:"variable.other.php"},4:{name:"storage.modifier.reference.php"},5:{name:"keyword.operator.variadic.php"},6:{name:"punctuation.definition.variable.php"}},end:"(?=,|\\)|/[/*]|\\#)",name:"meta.function.parameter.typehinted.php",patterns:[{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.php"}},end:"(?=,|\\)|/[/*]|\\#)",patterns:[{include:"#language"}]}]},{captures:{1:{name:"variable.other.php"},2:{name:"storage.modifier.reference.php"},3:{name:"keyword.operator.variadic.php"},4:{name:"punctuation.definition.variable.php"}},match:`(?xi) +((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) +\\s*(?=,|\\)|/[/*]|\\#|$)`,name:"meta.function.parameter.no-default.php"},{begin:`(?xi) +((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) +\\s*(=)\\s* +(?:(\\[)((?>[^\\[\\]]+|\\[\\g<6>\\])*)(\\]))?`,beginCaptures:{1:{name:"variable.other.php"},2:{name:"storage.modifier.reference.php"},3:{name:"keyword.operator.variadic.php"},4:{name:"punctuation.definition.variable.php"},5:{name:"keyword.operator.assignment.php"},6:{name:"punctuation.section.array.begin.php"},7:{patterns:[{include:"#parameter-default-types"}]},8:{name:"punctuation.section.array.end.php"}},end:"(?=,|\\)|/[/*]|\\#)",name:"meta.function.parameter.default.php",patterns:[{include:"#parameter-default-types"}]}]},heredoc:{patterns:[{begin:'(?i)(?=<<<\\s*("?)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(\\1)\\s*$)',end:"(?!\\G)",name:"string.unquoted.heredoc.php",patterns:[{include:"#heredoc_interior"}]},{begin:"(?=<<<\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\s*$)",end:"(?!\\G)",name:"string.unquoted.nowdoc.php",patterns:[{include:"#nowdoc_interior"}]}]},heredoc_interior:{patterns:[{begin:'(<<<)\\s*("?)(HTML)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html",end:"^(\\3)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.html",patterns:[{include:"#interpolation"},{include:"text.html.basic"}]},{begin:'(<<<)\\s*("?)(XML)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.xml",end:"^(\\3)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.xml",patterns:[{include:"#interpolation"},{include:"text.xml"}]},{begin:'(<<<)\\s*("?)(SQL)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.sql",end:"^(\\3)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.sql",patterns:[{include:"#interpolation"},{include:"source.sql"}]},{begin:'(<<<)\\s*("?)(JAVASCRIPT|JS)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.js",end:"^(\\3)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.js",patterns:[{include:"#interpolation"},{include:"source.js"}]},{begin:'(<<<)\\s*("?)(JSON)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.json",end:"^(\\3)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.json",patterns:[{include:"#interpolation"},{include:"source.json"}]},{begin:'(<<<)\\s*("?)(CSS)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.css",end:"^(\\3)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.css",patterns:[{include:"#interpolation"},{include:"source.css"}]},{begin:'(<<<)\\s*("?)(REGEXP?)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"string.regexp.heredoc.php",end:"^(\\3)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},patterns:[{include:"#interpolation"},{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{captures:{1:{name:"punctuation.definition.arbitrary-repitition.php"},3:{name:"punctuation.definition.arbitrary-repitition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repitition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{match:"\\\\[\\\\'\\[\\]]",name:"constant.character.escape.php"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"},{begin:"(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{ff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",beginCaptures:{1:{name:"punctuation.definition.comment.php"}},end:"$",endCaptures:{0:{name:"punctuation.definition.comment.php"}},name:"comment.line.number-sign.php"}]},{begin:'(?i)(<<<)\\s*("?)([a-z_\\x{7f}-\\x{ff}]+[a-z0-9_\\x{7f}-\\x{ff}]*)(\\2)(\\s*)',beginCaptures:{1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},end:"^(\\3)\\b",endCaptures:{1:{name:"keyword.operator.heredoc.php"}},patterns:[{include:"#interpolation"}]}]},instantiation:{begin:"(?i)(new)\\s+",beginCaptures:{1:{name:"keyword.other.new.php"}},end:"(?i)(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",patterns:[{match:"(?i)(parent|static|self)(?![a-z0-9_\\x{7f}-\\x{ff}])",name:"storage.type.php"},{include:"#class-name"},{include:"#variable-name"}]},interpolation:{patterns:[{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.octal.php"},{match:"\\\\x[0-9A-Fa-f]{1,2}",name:"constant.character.escape.hex.php"},{match:"\\\\u{[0-9A-Fa-f]+}",name:"constant.character.escape.unicode.php"},{match:'\\\\[nrtvef$"\\\\]',name:"constant.character.escape.php"},{begin:"{(?=\\$.*?})",beginCaptures:{0:{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.variable.php"}},patterns:[{include:"#language"}]},{include:"#variable-name"}]},"invoke-call":{captures:{1:{name:"punctuation.definition.variable.php"},2:{name:"variable.other.php"}},match:"(?i)(\\$+)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(?=\\s*\\()",name:"meta.function-call.invoke.php"},language:{patterns:[{include:"#comments"},{begin:"(?i)^\\s*(interface)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(extends)?\\s*",beginCaptures:{1:{name:"storage.type.interface.php"},2:{name:"entity.name.type.interface.php"},3:{name:"storage.modifier.extends.php"}},end:"(?i)((?:[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\s*,\\s*)*)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\\s*(?:(?={)|$)",endCaptures:{1:{patterns:[{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.other.inherited-class.php"},{match:",",name:"punctuation.separator.classes.php"}]},2:{name:"entity.other.inherited-class.php"}},name:"meta.interface.php",patterns:[{include:"#namespace"}]},{begin:"(?i)^\\s*(trait)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)",beginCaptures:{1:{name:"storage.type.trait.php"},2:{name:"entity.name.type.trait.php"}},end:"(?={)",name:"meta.trait.php",patterns:[{include:"#comments"}]},{captures:{1:{name:"keyword.other.namespace.php"},2:{name:"entity.name.type.namespace.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]}},match:"(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+([a-z0-9_\\x{7f}-\\x{ff}\\\\]+)(?=\\s*;)",name:"meta.namespace.php"},{begin:"(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+",beginCaptures:{1:{name:"keyword.other.namespace.php"}},end:"(?<=})|(?=\\?>)",name:"meta.namespace.php",patterns:[{include:"#comments"},{captures:{0:{patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]}},match:"(?i)[a-z0-9_\\x{7f}-\\x{ff}\\\\]+",name:"entity.name.type.namespace.php"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.namespace.begin.bracket.curly.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.namespace.end.bracket.curly.php"}},patterns:[{include:"#language"}]},{match:"[^\\s]+",name:"invalid.illegal.identifier.php"}]},{match:"\\s+(?=use\\b)"},{begin:"(?i)\\buse\\b",beginCaptures:{0:{name:"keyword.other.use.php"}},end:"(?<=})|(?=;)",name:"meta.use.php",patterns:[{match:"\\b(const|function)\\b",name:"storage.type.${1:/downcase}.php"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.use.begin.bracket.curly.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.use.end.bracket.curly.php"}},patterns:[{include:"#scope-resolution"},{captures:{1:{name:"keyword.other.use-as.php"},2:{name:"storage.modifier.php"},3:{name:"entity.other.alias.php"}},match:`(?xi) +\\b(as) +\\s+(final|abstract|public|private|protected|static) +\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) +\\b`},{captures:{1:{name:"keyword.other.use-as.php"},2:{patterns:[{match:"^(?:final|abstract|public|private|protected|static)$",name:"storage.modifier.php"},{match:".+",name:"entity.other.alias.php"}]}},match:`(?xi) +\\b(as) +\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) +\\b`},{captures:{1:{name:"keyword.other.use-insteadof.php"},2:{name:"support.class.php"}},match:"(?i)\\b(insteadof)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)"},{match:";",name:"punctuation.terminator.expression.php"},{include:"#use-inner"}]},{include:"#use-inner"}]},{begin:"(?i)^\\s*(?:(abstract|final)\\s+)?(class)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)",beginCaptures:{1:{name:"storage.modifier.${1:/downcase}.php"},2:{name:"storage.type.class.php"},3:{name:"entity.name.type.class.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.class.end.bracket.curly.php"}},name:"meta.class.php",patterns:[{include:"#comments"},{begin:"(?i)(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.extends.php"}},contentName:"meta.other.inherited-class.php",end:"(?i)(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)",end:"(?i)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",endCaptures:{1:{name:"entity.other.inherited-class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.other.inherited-class.php"}]},{begin:"(?i)(implements)\\s+",beginCaptures:{1:{name:"storage.modifier.implements.php"}},end:"(?i)(?=[;{])",patterns:[{include:"#comments"},{begin:"(?i)(?=[a-z0-9_\\x{7f}-\\x{ff}\\\\]+)",contentName:"meta.other.inherited-class.php",end:"(?i)(?:\\s*(?:,|(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\\\s]))\\s*)",patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)",end:"(?i)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",endCaptures:{1:{name:"entity.other.inherited-class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.other.inherited-class.php"}]}]},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.class.begin.bracket.curly.php"}},contentName:"meta.class.body.php",end:"(?=}|\\?>)",patterns:[{include:"#language"}]}]},{include:"#switch_statement"},{captures:{1:{name:"keyword.control.${1:/downcase}.php"}},match:`(?x) +\\s* +\\b( +break|case|continue|declare|default|die|do| +else(if)?|end(declare|for(each)?|if|switch|while)|exit| +for(each)?|if|return|switch|use|while|yield +)\\b`},{begin:"(?i)\\b((?:require|include)(?:_once)?)\\s+",beginCaptures:{1:{name:"keyword.control.import.include.php"}},end:"(?=\\s|;|$|\\?>)",name:"meta.include.php",patterns:[{include:"#language"}]},{begin:"\\b(catch)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.exception.catch.php"},2:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},name:"meta.catch.php",patterns:[{include:"#namespace"},{captures:{1:{name:"support.class.exception.php"},2:{patterns:[{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"support.class.exception.php"},{match:"\\|",name:"punctuation.separator.delimiter.php"}]},3:{name:"variable.other.php"},4:{name:"punctuation.definition.variable.php"}},match:`(?xi) +([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) +((?:\\s*\\|\\s*[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)*) +\\s* +((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)`}]},{match:"\\b(catch|try|throw|exception|finally)\\b",name:"keyword.control.exception.php"},{begin:"(?i)\\b(function)\\s*(?=\\()",beginCaptures:{1:{name:"storage.type.function.php"}},end:"(?={)",name:"meta.function.closure.php",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},patterns:[{include:"#function-parameters"}]},{begin:"(?i)(use)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.function.use.php"},2:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},patterns:[{captures:{1:{name:"variable.other.php"},2:{name:"storage.modifier.reference.php"},3:{name:"punctuation.definition.variable.php"}},match:"(?i)((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))",name:"meta.function.closure.use.php"}]}]},{begin:`(?x) +((?:(?:final|abstract|public|private|protected|static)\\s+)*) +(function)\\s+ +(?i: +(__(?:call|construct|debugInfo|destruct|get|set|isset|unset|tostring| +clone|set_state|sleep|wakeup|autoload|invoke|callStatic)) +|([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) +) +\\s*(\\()`,beginCaptures:{1:{patterns:[{match:"final|abstract|public|private|protected|static",name:"storage.modifier.php"}]},2:{name:"storage.type.function.php"},3:{name:"support.function.magic.php"},4:{name:"entity.name.function.php"},5:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"(\\))(?:\\s*(:)\\s*([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))?",endCaptures:{1:{name:"punctuation.definition.parameters.end.bracket.round.php"},2:{name:"keyword.operator.return-value.php"},3:{name:"storage.type.php"}},name:"meta.function.php",patterns:[{include:"#function-parameters"}]},{include:"#invoke-call"},{include:"#scope-resolution"},{include:"#variables"},{include:"#strings"},{captures:{1:{name:"support.function.construct.php"},2:{name:"punctuation.definition.array.begin.bracket.round.php"},3:{name:"punctuation.definition.array.end.bracket.round.php"}},match:"(array)(\\()(\\))",name:"meta.array.empty.php"},{begin:"(array)(\\()",beginCaptures:{1:{name:"support.function.construct.php"},2:{name:"punctuation.definition.array.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.array.php",patterns:[{include:"#language"}]},{captures:{1:{name:"punctuation.definition.storage-type.begin.bracket.round.php"},2:{name:"storage.type.php"},3:{name:"punctuation.definition.storage-type.end.bracket.round.php"}},match:"(?i)(\\()\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\s*(\\))"},{match:"(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object)\\b",name:"storage.type.php"},{match:"(?i)\\b(global|abstract|const|extends|implements|final|private|protected|public|static)\\b",name:"storage.modifier.php"},{include:"#object"},{match:";",name:"punctuation.terminator.expression.php"},{match:":",name:"punctuation.terminator.statement.php"},{include:"#heredoc"},{include:"#numbers"},{match:"(?i)\\bclone\\b",name:"keyword.other.clone.php"},{match:"\\.=?",name:"keyword.operator.string.php"},{match:"=>",name:"keyword.operator.key.php"},{captures:{1:{name:"keyword.operator.assignment.php"},2:{name:"storage.modifier.reference.php"},3:{name:"storage.modifier.reference.php"}},match:"(?i)(\\=)(&)|(&)(?=[$a-z_])"},{match:"@",name:"keyword.operator.error-control.php"},{match:"===|==|!==|!=|<>",name:"keyword.operator.comparison.php"},{match:"=|\\+=|\\-=|\\*=|/=|%=|&=|\\|=|\\^=|<<=|>>=",name:"keyword.operator.assignment.php"},{match:"<=>|<=|>=|<|>",name:"keyword.operator.comparison.php"},{match:"\\-\\-|\\+\\+",name:"keyword.operator.increment-decrement.php"},{match:"\\-|\\+|\\*|/|%",name:"keyword.operator.arithmetic.php"},{match:"(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b",name:"keyword.operator.logical.php"},{include:"#function-call"},{match:"<<|>>|~|\\^|&|\\|",name:"keyword.operator.bitwise.php"},{begin:"(?i)\\b(instanceof)\\s+(?=[\\\\$a-z_])",beginCaptures:{1:{name:"keyword.operator.type.php"}},end:"(?=[^\\\\$a-z0-9_\\x{7f}-\\x{ff}])",patterns:[{include:"#class-name"},{include:"#variable-name"}]},{include:"#instantiation"},{captures:{1:{name:"keyword.control.goto.php"},2:{name:"support.other.php"}},match:"(?i)(goto)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)"},{captures:{1:{name:"entity.name.goto-label.php"}},match:"(?i)^\\s*([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*:(?!:)"},{include:"#string-backtick"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.curly.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.end.bracket.curly.php"}},patterns:[{include:"#language"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.array.begin.php"}},end:"\\]|(?=\\?>)",endCaptures:{0:{name:"punctuation.section.array.end.php"}},patterns:[{include:"#language"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.php"}},patterns:[{include:"#language"}]},{include:"#constants"},{match:",",name:"punctuation.separator.delimiter.php"}]},namespace:{begin:"(?i)(?:(namespace)|[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(\\\\)(?=.*?[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",beginCaptures:{1:{name:"variable.language.namespace.php"},2:{name:"punctuation.separator.inheritance.php"}},end:"(?i)(?=[a-z0-9_\\x{7f}-\\x{ff}]*[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",name:"support.other.namespace.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]},nowdoc_interior:{patterns:[{begin:"(<<<)\\s*'(HTML)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html",end:"^(\\2)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.html",patterns:[{include:"text.html.basic"}]},{begin:"(<<<)\\s*'(XML)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.xml",end:"^(\\2)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.xml",patterns:[{include:"text.xml"}]},{begin:"(<<<)\\s*'(SQL)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.sql",end:"^(\\2)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.sql",patterns:[{include:"source.sql"}]},{begin:"(<<<)\\s*'(JAVASCRIPT|JS)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.js",end:"^(\\2)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.js",patterns:[{include:"source.js"}]},{begin:"(<<<)\\s*'(JSON)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.json",end:"^(\\2)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.json",patterns:[{include:"source.json"}]},{begin:"(<<<)\\s*'(CSS)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.css",end:"^(\\2)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.css",patterns:[{include:"source.css"}]},{begin:"(<<<)\\s*'(REGEXP?)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"string.regexp.nowdoc.php",end:"^(\\2)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},patterns:[{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{captures:{1:{name:"punctuation.definition.arbitrary-repitition.php"},3:{name:"punctuation.definition.arbitrary-repitition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repitition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{match:"\\\\[\\\\'\\[\\]]",name:"constant.character.escape.php"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"},{begin:"(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{ff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",beginCaptures:{1:{name:"punctuation.definition.comment.php"}},end:"$",endCaptures:{0:{name:"punctuation.definition.comment.php"}},name:"comment.line.number-sign.php"}]},{begin:"(?i)(<<<)\\s*'([a-z_\\x{7f}-\\x{ff}]+[a-z0-9_\\x{7f}-\\x{ff}]*)'(\\s*)",beginCaptures:{1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},end:"^(\\2)\\b",endCaptures:{1:{name:"keyword.operator.nowdoc.php"}}}]},numbers:{patterns:[{match:"0[xX][0-9a-fA-F]+",name:"constant.numeric.hex.php"},{match:"0[bB][01]+",name:"constant.numeric.binary.php"},{match:"0[0-7]+",name:"constant.numeric.octal.php"},{captures:{1:{name:"punctuation.separator.decimal.period.php"},2:{name:"punctuation.separator.decimal.period.php"}},match:`(?x) +(?: +[0-9]*(\\.)[0-9]+(?:[eE][+-]?[0-9]+)?| +[0-9]+(\\.)[0-9]*(?:[eE][+-]?[0-9]+)?| +[0-9]+[eE][+-]?[0-9]+ +)`,name:"constant.numeric.decimal.php"},{match:"0|[1-9][0-9]*",name:"constant.numeric.decimal.php"}]},object:{patterns:[{begin:"(->)(\\$?{)",beginCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.variable.php"}},patterns:[{include:"#language"}]},{begin:"(?i)(->)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"entity.name.function.php"},3:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.method-call.php",patterns:[{include:"#language"}]},{captures:{1:{name:"keyword.operator.class.php"},2:{name:"variable.other.property.php"},3:{name:"punctuation.definition.variable.php"}},match:"(?i)(->)((\\$+)?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?"}]},"parameter-default-types":{patterns:[{include:"#strings"},{include:"#numbers"},{include:"#string-backtick"},{include:"#variables"},{match:"=>",name:"keyword.operator.key.php"},{match:"=",name:"keyword.operator.assignment.php"},{match:"&(?=\\s*\\$)",name:"storage.modifier.reference.php"},{begin:"(array)\\s*(\\()",beginCaptures:{1:{name:"support.function.construct.php"},2:{name:"punctuation.definition.array.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.array.php",patterns:[{include:"#parameter-default-types"}]},{include:"#instantiation"},{begin:`(?xi) +(?=[a-z0-9_\\x{7f}-\\x{ff}\\\\]+(::) +([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)? +)`,end:"(?i)(::)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?",endCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"constant.other.class.php"}},patterns:[{include:"#class-name"}]},{include:"#constants"}]},php_doc:{patterns:[{match:"^(?!\\s*\\*).*?(?:(?=\\*\\/)|$\\n?)",name:"invalid.illegal.missing-asterisk.phpdoc.php"},{captures:{1:{name:"keyword.other.phpdoc.php"},3:{name:"storage.modifier.php"},4:{name:"invalid.illegal.wrong-access-type.phpdoc.php"}},match:"^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$"},{captures:{1:{name:"keyword.other.phpdoc.php"},2:{name:"markup.underline.link.php"}},match:"(@xlink)\\s+(.+)\\s*$"},{begin:"(@(?:global|param|property(-(read|write))?|return|throws|var))\\s+(?=[A-Za-z_\\x{7f}-\\x{ff}\\\\]|\\()",beginCaptures:{1:{name:"keyword.other.phpdoc.php"}},contentName:"meta.other.type.phpdoc.php",end:"(?=\\s|\\*/)",patterns:[{include:"#php_doc_types_array_multiple"},{include:"#php_doc_types_array_single"},{include:"#php_doc_types"}]},{match:`(?x) +@ +( +api|abstract|author|category|copyright|example|global|inherit[Dd]oc|internal| +license|link|method|property(-(read|write))?|package|param|return|see|since|source| +static|subpackage|throws|todo|var|version|uses|deprecated|final|ignore +)\\b`,name:"keyword.other.phpdoc.php"},{captures:{1:{name:"keyword.other.phpdoc.php"}},match:"{(@(link|inherit[Dd]oc)).+?}",name:"meta.tag.inline.phpdoc.php"}]},php_doc_types:{captures:{0:{patterns:[{match:`(?x)\\b +(string|integer|int|boolean|bool|float|double|object|mixed +|array|resource|void|null|callback|false|true|self)\\b`,name:"keyword.other.type.php"},{include:"#class-name"},{match:"\\|",name:"punctuation.separator.delimiter.php"}]}},match:"(?i)[a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*(\\|[a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*)*"},php_doc_types_array_multiple:{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.type.begin.bracket.round.phpdoc.php"}},end:"(\\))(\\[\\])|(?=\\*/)",endCaptures:{1:{name:"punctuation.definition.type.end.bracket.round.phpdoc.php"},2:{name:"keyword.other.array.phpdoc.php"}},patterns:[{include:"#php_doc_types_array_multiple"},{include:"#php_doc_types_array_single"},{include:"#php_doc_types"},{match:"\\|",name:"punctuation.separator.delimiter.php"}]},php_doc_types_array_single:{captures:{1:{patterns:[{include:"#php_doc_types"}]},2:{name:"keyword.other.array.phpdoc.php"}},match:"(?i)([a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*)(\\[\\])"},"regex-double-quoted":{begin:'"/(?=(\\\\.|[^"/])++/[imsxeADSUXu]*")',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:'(/)([imsxeADSUXu]*)(")',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.regexp.double-quoted.php",patterns:[{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{include:"#interpolation"},{captures:{1:{name:"punctuation.definition.arbitrary-repetition.php"},3:{name:"punctuation.definition.arbitrary-repetition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{include:"#interpolation"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"regex-single-quoted":{begin:"'/(?=(\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:"(/)([imsxeADSUXu]*)(')",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.regexp.single-quoted.php",patterns:[{include:"#single_quote_regex_escape"},{captures:{1:{name:"punctuation.definition.arbitrary-repetition.php"},3:{name:"punctuation.definition.arbitrary-repetition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php"},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"scope-resolution":{patterns:[{captures:{1:{patterns:[{match:"\\b(self|static|parent)\\b",name:"storage.type.php"},{match:"\\w+",name:"entity.name.class.php"},{include:"#class-name"},{include:"#variable-name"}]}},match:"(?i)\\b([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(?=\\s*::)"},{begin:"(?i)(::)\\s*([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"entity.name.function.php"},3:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.method-call.static.php",patterns:[{include:"#language"}]},{captures:{1:{name:"keyword.operator.class.php"},2:{name:"keyword.other.class.php"}},match:"(?i)(::)\\s*(class)\\b"},{captures:{1:{name:"keyword.operator.class.php"},2:{name:"variable.other.class.php"},3:{name:"punctuation.definition.variable.php"},4:{name:"constant.other.class.php"}},match:`(?xi) +(::)\\s* +(?: +((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) +| +([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) +)?`}]},single_quote_regex_escape:{match:"\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)",name:"constant.character.escape.php"},"sql-string-double-quoted":{begin:'"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.sql.php",patterns:[{captures:{1:{name:"punctuation.definition.comment.sql"}},match:'(#)(\\\\"|[^"])*(?="|$)',name:"comment.line.number-sign.sql"},{captures:{1:{name:"punctuation.definition.comment.sql"}},match:'(--)(\\\\"|[^"])*(?="|$)',name:"comment.line.double-dash.sql"},{match:"\\\\[\\\\\"`']",name:"constant.character.escape.php"},{match:`'(?=((\\\\')|[^'"])*("|$))`,name:"string.quoted.single.unclosed.sql"},{match:'`(?=((\\\\`)|[^`"])*("|$))',name:"string.quoted.other.backtick.unclosed.sql"},{begin:"'",end:"'",name:"string.quoted.single.sql",patterns:[{include:"#interpolation"}]},{begin:"`",end:"`",name:"string.quoted.other.backtick.sql",patterns:[{include:"#interpolation"}]},{include:"#interpolation"},{include:"source.sql"}]},"sql-string-single-quoted":{begin:"'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.sql.php",patterns:[{captures:{1:{name:"punctuation.definition.comment.sql"}},match:"(#)(\\\\'|[^'])*(?='|$)",name:"comment.line.number-sign.sql"},{captures:{1:{name:"punctuation.definition.comment.sql"}},match:"(--)(\\\\'|[^'])*(?='|$)",name:"comment.line.double-dash.sql"},{match:"\\\\[\\\\'`\"]",name:"constant.character.escape.php"},{match:"`(?=((\\\\`)|[^`'])*('|$))",name:"string.quoted.other.backtick.unclosed.sql"},{match:`"(?=((\\\\")|[^"'])*('|$))`,name:"string.quoted.double.unclosed.sql"},{include:"source.sql"}]},"string-backtick":{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.interpolated.php",patterns:[{match:"\\\\.",name:"constant.character.escape.php"},{include:"#interpolation"}]},"string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.php",patterns:[{include:"#interpolation"}]},"string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.php",patterns:[{match:"\\\\[\\\\']",name:"constant.character.escape.php"}]},strings:{patterns:[{include:"#regex-double-quoted"},{include:"#sql-string-double-quoted"},{include:"#string-double-quoted"},{include:"#regex-single-quoted"},{include:"#sql-string-single-quoted"},{include:"#string-single-quoted"}]},support:{patterns:[{match:`(?xi) +\\b +apc_( +store|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?| +exists|fetch|load_constants|add|bin_(dump|load)(file)? +)\\b`,name:"support.function.apc.php"},{match:`(?xi)\\b +( +shuffle|sizeof|sort|next|nat(case)?sort|count|compact|current|in_array|usort|uksort|uasort| +pos|prev|end|each|extract|ksort|key(_exists)?|krsort|list|asort|arsort|rsort|reset|range| +array(_(shift|sum|splice|search|slice|chunk|change_key_case|count_values|column|combine| +(diff|intersect)(_(u)?(key|assoc))?|u(diff|intersect)(_(u)?assoc)?|unshift|unique| +pop|push|pad|product|values|keys|key_exists|filter|fill(_keys)?|flip|walk(_recursive)?| +reduce|replace(_recursive)?|reverse|rand|multisort|merge(_recursive)?|map)?) +)\\b`,name:"support.function.array.php"},{match:`(?xi)\\b +( +show_source|sys_getloadavg|sleep|highlight_(file|string)|constant|connection_(aborted|status)| +time_(nanosleep|sleep_until)|ignore_user_abort|die|define(d)?|usleep|uniqid|unpack|__halt_compiler| +php_(check_syntax|strip_whitespace)|pack|eval|exit|get_browser +)\\b`,name:"support.function.basic_functions.php"},{match:"(?i)\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\b",name:"support.function.bcmath.php"},{match:"(?i)\\bblenc_encrypt\\b",name:"support.function.blenc.php"},{match:"(?i)\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\b",name:"support.function.bz2.php"},{match:`(?xi)\\b +( +(French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd| +jdto(unix|jewish)|easter_(date|days)|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek) +)\\b`,name:"support.function.calendar.php"},{match:`(?xi)\\b +( +class_alias|all_user_method(_array)?|is_(a|subclass_of)|__autoload|(class|interface|method|property|trait)_exists| +get_(class(_(vars|methods))?|(called|parent)_class|object_vars|declared_(classes|interfaces|traits)) +)\\b`,name:"support.function.classobj.php"},{match:`(?xi)\\b +( +com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)| +variant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp| +pow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul) +)\\b`,name:"support.function.com.php"},{begin:"(?i)\\b(isset|unset|eval|empty|list)\\b",name:"support.function.construct.php"},{match:"(?i)\\b(print|echo)\\b",name:"support.function.construct.output.php"},{match:"(?i)\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\b",name:"support.function.ctype.php"},{match:`(?xi)\\b +curl_( +share_(close|init|setopt)|strerror|setopt(_array)?|copy_handle|close|init|unescape|pause|escape| +errno|error|exec|version|file_create|reset|getinfo| +multi_(strerror|setopt|select|close|init|info_read|(add|remove)_handle|getcontent|exec) +)\\b`,name:"support.function.curl.php"},{match:`(?xi)\\b +( +strtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate| +timezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)| +date(_(sun(rise|set)|sun_info|sub|create(_(immutable_)?from_format)?|timestamp_(get|set)|timezone_(get|set)|time_set| +isodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_(get|set)|date_set| +parse(_from_format)?|format|add|get_last_errors|modify))?| +localtime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime +)\\b`,name:"support.function.datetime.php"},{match:"(?i)\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\b",name:"support.function.dba.php"},{match:"(?i)\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\b",name:"support.function.dbx.php"},{match:"(?i)\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\b",name:"support.function.dir.php"},{match:`(?xi)\\b +eio_( +sync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)| +seek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll| +event_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath| +read(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy +)\\b`,name:"support.function.eio.php"},{match:`(?xi)\\b +enchant_( +dict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)| +broker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error) +)\\b`,name:"support.function.enchant.php"},{match:"(?i)\\bsplit(i)?|sql_regcase|ereg(i)?(_replace)?\\b",name:"support.function.ereg.php"},{match:"(?i)\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\b",name:"support.function.errorfunc.php"},{match:"(?i)\\bshell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec\\b",name:"support.function.exec.php"},{match:"(?i)\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\b",name:"support.function.exif.php"},{match:`(?xi)\\b +fann_( +(duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|(input|output)(_train_data)?)| +set_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)| +cascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)| +output_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)| +(max|min)_(cand|out)_epochs)| +callback|training_algorithm|train_(error|stop)_function|(input|output)_scaling_params|error_log| +quickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit| +activation_(function|steepness)(_(hidden|layer|output))?| +rprop_((decrease|increase)_factor|delta_(max|min|zero)))| +save(_train)?|num_(input|output)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)| +create_((sparse|shortcut|standard)(_array)?|train(_from_callback)?|from_file)| +test(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?| +print_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights| +get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)| +network_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?| +cascade_(num_(candidates|candidate_groups)|(candidate|output)_(change_fraction|limit|stagnation_epochs)| +weight_multiplier|activation_(functions|steepnesses)(_count)?|(max|min)_(cand|out)_epochs)| +total_(connections|neurons)|training_algorithm|train_(error|stop)_function|err(no|str)| +quickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)| +rprop_((decrease|increase)_factor|delta_(max|min|zero))) +)\\b`,name:"support.function.fann.php"},{match:`(?xi)\\b +( +symlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile| +is_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace| +dirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch| +fclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)| +f(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?| +rename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename +)\\b`,name:"support.function.file.php"},{match:"(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b",name:"support.function.fileinfo.php"},{match:"(?i)\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\b",name:"support.function.filter.php"},{match:"(?i)\\bfastcgi_finish_request\\b",name:"support.function.fpm.php"},{match:"(?i)\\b(call_user_(func|method)(_array)?|create_function|unregister_tick_function|forward_static_call(_array)?|function_exists|func_(num_args|get_arg(s)?)|register_(shutdown|tick)_function|get_defined_functions)\\b",name:"support.function.funchand.php"},{match:"(?i)\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\b",name:"support.function.gettext.php"},{match:`(?xi)\\b +gmp_( +scan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit| +intval|init|invert|import|or|div(exact)?|div_(q|qr|r)|jacobi|popcount|pow(m)?|perfect_square| +prob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range))?|gcd(ext)?|xor|mod|mul +)\\b`,name:"support.function.gmp.php"},{match:"(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\b",name:"support.function.hash.php"},{match:`(?xi)\\b +( +http_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head| +negotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle| +inflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)| +parse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?| +get(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))| +ob_(etag|deflate|inflate)handler +)\\b`,name:"support.function.http.php"},{match:"(?i)\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b",name:"support.function.iconv.php"},{match:"(?i)\\biis_((start|stop)_(service|server)|set_(script_map|server_rights|dir_security|app_settings)|(add|remove)_server|get_(script_map|service_state|server_(rights|by_(comment|path))|dir_security))\\b",name:"support.function.iisfunc.php"},{match:`(?xi)\\b +( +iptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?| +image(s[xy]|scale|(char|string)(up)?|set(style|thickness|tile|interpolation|pixel|brush)|savealpha| +convolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)| +color(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)| +crop(auto)?|create(truecolor|from(string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|xpm|xbm))?| +types|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg| +_type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon| +palette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder| +filled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect| +antialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd(2)?|gammacorrect| +grab(screen|window)|xbm) +)\\b`,name:"support.function.image.php"},{match:`(?xi)\\b +( +sys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_(get|set)_process_title| +ini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)| +php_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare| +assert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt| +get_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions| +magic_quotes_(gpc|runtime)|required_files|resources)| +get(env|lastmod|rusage|my(inode|[gup]id))| +memory_get_(peak_)?usage|main|magic_quotes_runtime +)\\b`,name:"support.function.info.php"},{match:`(?xi)\\b +ibase_( +set_event_handler|service_(attach|detach)|server_info|num_(fields|params)|name_result|connect| +commit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)| +execute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event| +add_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup| +blob_(cancel|close|create|import|info|open|echo|add|get) +)\\b`,name:"support.function.interbase.php"},{match:`(?xi)\\b +( +normalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)| +numfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?| +get_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))| +collator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort| +get_(strength|sort_key|error_(code|message)|locale|attribute))| +transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))| +intl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))| +datefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime| +get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))| +locale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http| +get_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))| +resourcebundle_(create|count|locales|get(_(error_(code|message)))?)| +grapheme_(str(i?str|r?i?pos|len)|substr|extract)| +msgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale)) +)\\b`,name:"support.function.intl.php"},{match:"(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b",name:"support.function.json.php"},{match:`(?xi)\\b +ldap_( +start|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)| +connect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61| +dn2ufn|delete|unbind|parse_(reference|result)|escape|errno|err2str|error|explode_dn|bind| +free_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?| +mod_(add|del|replace) +)\\b`,name:"support.function.ldap.php"},{match:"(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b",name:"support.function.libxml.php"},{match:"(?i)\\b(ezmlm_hash|mail)\\b",name:"support.function.mail.php"},{match:`(?xi)\\b +( +(a)?(cos|sin|tan)(h)?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad| +pi|pow|exp(m1)?|floor|fmod|lcg_value|log(1(p|0))?|atan2|abs|round|rand|rad2deg|getrandmax| +mt_(srand|rand|getrandmax)|max|min|bindec|base_convert +)\\b`,name:"support.function.math.php"},{match:`(?xi)\\b +mb_( +str(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos)| +substitute_character|substr(_count)?|split|send_mail|http_(input|output)|check_encoding| +convert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)| +detect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)| +ereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)| +list_encodings|language|regex_(set_options|encoding)|get_info +)\\b`,name:"support.function.mbstring.php"},{match:`(?xi)\\b +( +mcrypt_( +cfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?| +enc_(self_test|is_block_(algorithm|algorithm_mode|mode)| +get_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))| +get_(cipher_name|(block|iv|key)_size)| +module_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open| +get_(supported_key_sizes|algo_(block|key)_size)))| +mdecrypt_generic +)\\b`,name:"support.function.mcrypt.php"},{match:"(?i)\\bmemcache_debug\\b",name:"support.function.memcache.php"},{match:"(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b",name:"support.function.mhash.php"},{match:"(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b",name:"support.function.mongo.php"},{match:`(?xi)\\b +mysql_( +stat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string| +thread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping| +errno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)| +free_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string| +get_(client|host|proto|server)_info +)\\b`,name:"support.function.mysql.php"},{match:`(?xi)\\b +mysqli_( +ssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))| +stmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result| +attr_(get|set)|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))| +select_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit| +client_encoding|close|thread_safe|init|options|(enable|disable)_(reads_from_master|rpl_parse)| +dump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute| +embedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh| +fetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)| +release_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query| +get_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)| +master_query|bind_(param|result)|begin_transaction +)\\b`,name:"support.function.mysqli.php"},{match:"(?i)\\bmysqlnd_memcache_(set|get_config)\\b",name:"support.function.mysqlnd-memcache.php"},{match:"(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\b",name:"support.function.mysqlnd-ms.php"},{match:"(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|core_stats|cache_info|query_trace_log|available_handlers))\\b",name:"support.function.mysqlnd-qc.php"},{match:"(?i)\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\b",name:"support.function.mysqlnd-uh.php"},{match:`(?xi)\\b +( +syslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog| +headers_(list|sent)|header(_(register_callback|remove))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long| +openlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip| +get(servby(name|port)|host(name|by(name(l)?|addr))|protoby(name|number)|mxrr) +)\\b`,name:"support.function.network.php"},{match:"(?i)\\bnsapi_(virtual|response_headers|request_headers)\\b",name:"support.function.nsapi.php"},{match:`(?xi)\\b +( +oci(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon| +column(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit| +closelob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?| +free(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(on|off)|rowcount|rollback| +result|bindbyname)| +oci_(statement_type|set_(client_(info|identifier)|prefetch|edition|action|module_name)|server_version| +num_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel| +internal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name| +field_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?| +free_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset) +)\\b`,name:"support.function.oci8.php"},{match:"(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b",name:"support.function.opcache.php"},{match:`(?xi)\\b +openssl_( +sign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))| +cipher_iv_length|open|dh_compute_key|digest|decrypt|public_(decrypt|encrypt)|encrypt|error_string| +pkcs12_(export(_to_file)?|read)|pkcs7_(sign|decrypt|encrypt|verify)|verify|free_key|random_pseudo_bytes| +pkey_(new|export(_to_file)?|free|get_(details|public|private))|private_(decrypt|encrypt)|pbkdf2| +get_((cipher|md)_methods|cert_locations|(public|private)key)| +x509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read) +)\\b`,name:"support.function.openssl.php"},{match:`(?xi)\\b +( +output_(add_rewrite_var|reset_rewrite_vars)|flush| +ob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler| +get_(status|contents|clean|flush|length|level)) +)\\b`,name:"support.function.output.php"},{match:"(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b",name:"support.function.password.php"},{match:`(?xi)\\b +pcntl_( +strerror|signal(_dispatch)?|sig(timedwait|procmask|waitinfo)|setpriority|errno|exec|fork| +w(stopsig|termsig|if(stopped|signaled|exited))|wait(pid)?|alarm|getpriority|get_last_error +)\\b`,name:"support.function.pcntl.php"},{match:`(?xi)\\b +pg_( +socket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host| +num_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)| +client_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace| +unescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?| +escape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)| +field_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)| +fetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data| +lo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)| +)\\b`,name:"support.function.pgsql.php"},{match:"(?i)\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\b",name:"support.function.php_apache.php"},{match:"(?i)\\bdom_import_simplexml\\b",name:"support.function.php_dom.php"},{match:`(?xi)\\b +ftp_( +ssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close| +delete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir +)\\b`,name:"support.function.php_ftp.php"},{match:`(?xi)\\b +imap_( +(create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody| +num_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen| +8bit|unsubscribe|undelete|utf7_(decode|encode)|utf8|uid|ping|errors|expunge|qprint|gc| +fetch(structure|header|text|mime|body)|fetch_overview|lsub|list(scan|subscribed)|last_error| +rfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?| +msgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64 +)\\b`,name:"support.function.php_imap.php"},{match:`(?xi)\\b +mssql_( +select_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query| +field_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)| +rows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind +)\\b`,name:"support.function.php_mssql.php"},{match:`(?xi)\\b +odbc_( +statistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit| +cursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns| +prepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result| +fetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode +)\\b`,name:"support.function.php_odbc.php"},{match:"(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b",name:"support.function.php_pcre.php"},{match:"(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b",name:"support.function.php_spl.php"},{match:"(?i)\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\b",name:"support.function.php_zip.php"},{match:`(?xi)\\b +posix_( +strerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|access| +get(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)| +get_last_error|mknod|mkfifo +)\\b`,name:"support.function.posix.php"},{match:"(?i)\\bset(thread|proc)title\\b",name:"support.function.proctitle.php"},{match:`(?xi)\\b +pspell_( +store_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session| +config_(save_repl|create|ignore|(data|dict)_dir|personal|runtogether|repl|mode)|add_to_(session|personal) +)\\b`,name:"support.function.pspell.php"},{match:"(?i)\\breadline(_(completion_function|clear_history|callback_(handler_(install|remove)|read_char)|info|on_new_line|write_history|list_history|add_history|redisplay|read_history))?\\b",name:"support.function.readline.php"},{match:"(?i)\\brecode(_(string|file))?\\b",name:"support.function.recode.php"},{match:"(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\b",name:"support.function.rrd.php"},{match:`(?xi)\\b +( +shm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok| +msg_((get|remove|set|stat)_queue|send|queue_exists|receive) +)\\b`,name:"support.function.sem.php"},{match:`(?xi)\\b +session_( +status|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)| +is_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?| +regenerate_id|get_cookie_params|module_name +)\\b`,name:"support.function.session.php"},{match:"(?i)\\bshmop_(size|close|open|delete|write|read)\\b",name:"support.function.shmop.php"},{match:"(?i)\\bsimplexml_(import_dom|load_(string|file))\\b",name:"support.function.simplexml.php"},{match:`(?xi)\\b +( +snmp(walk(oid)?|realwalk|get(next)?|set)| +snmp_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib| +get_(valueretrieval|quick_print))| +snmp[23]_(set|walk|real_walk|get(next)?) +)\\b`,name:"support.function.snmp.php"},{match:"(?i)\\b(is_soap_fault|use_soap_error_handler)\\b",name:"support.function.soap.php"},{match:`(?xi)\\b +socket_( +shutdown|strerror|send(to|msg)?|set_((non)?block|option)|select|connect|close|clear_error|bind| +create(_(pair|listen))?|cmsg_space|import_stream|write|listen|last_error|accept|recv(from|msg)?| +read|get(peer|sock)name|get_option +)\\b`,name:"support.function.sockets.php"},{match:`(?xi)\\b +sqlite_( +single_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close| +create_(aggregate|function)|open|unbuffered_query|udf_(decode|encode)_binary|popen|prev| +escape_string|error_string|exec|valid|key|query|field_name|factory| +fetch_(string|single|column_types|object|all|array)|lib(encoding|version)| +last_(insert_rowid|error)|array_query|rewind|busy_timeout +)\\b`,name:"support.function.sqlite.php"},{match:`(?xi)\\b +sqlsrv_( +send_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit| +client_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?| +free_stmt|rows_affected|rollback|get_(config|field)|begin_transaction +)\\b`,name:"support.function.sqlsrv.php"},{match:`(?xi)\\b +stats_( +harmonic_mean|covariance|standard_deviation|skew| +cdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull| +logistic|laplace|gamma|binomial|beta)| +stat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)| +dens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f| +weibull|logistic|laplace|gamma|beta)| +den_uniform|variance|kurtosis|absolute_deviation| +rand_(setall|phrase_to_seeds|ranf|get_seeds| +gen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int| +i(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta)) +)\\b`,name:"support.function.stats.php"},{match:`(?xi)\\b +( +set_socket_blocking| +stream_(socket_(shutdown|sendto|server|client|pair|enable_crypto|accept|recvfrom|get_name)| +set_(chunk_size|timeout|(read|write)_buffer|blocking)|select|notification_callback|supports_lock| +context_(set_(option|default|params)|create|get_(options|default|params))|copy_to_stream|is_local| +encoding|filter_(append|prepend|register|remove)|wrapper_((un)?register|restore)| +resolve_include_path|register_wrapper|get_(contents|transports|filters|wrappers|line|meta_data)| +bucket_(new|prepend|append|make_writeable) +) +)\\b`,name:"support.function.streamsfuncs.php"},{match:`(?xi)\\b +( +money_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?| +str(str|c?spn|n(at)?(case)?cmp|chr|coll|(case)?cmp|to(upper|lower)|tok|tr|istr|pos|pbrk|len|rchr|ri?pos|rev)| +str_(getcsv|ireplace|pad|repeat|replace|rot13|shuffle|split|word_count)| +strip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale| +html(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo| +chop|chunk_split|chr|convert_(cyr_string|uu(decode|encode))|count_chars|crypt|crc32|trim|implode|ord| +uc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_(decode|encode)| +quotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table +)\\b`,name:"support.function.string.php"},{match:`(?xi)\\b +sybase_( +set_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek| +unbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result| +affected_rows|result|get_last_message|min_(client|error|message|server)_severity +)\\b`,name:"support.function.sybase.php"},{match:"(?i)\\b(taint|is_tainted|untaint)\\b",name:"support.function.taint.php"},{match:`(?xi)\\b +( +tidy_((get|set)opt|set_encoding|save_config|config_count|clean_repair|is_(xhtml|xml)|diagnose| +(access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)| +get_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))| +ob_tidyhandler +)\\b`,name:"support.function.tidy.php"},{match:"(?i)\\btoken_(name|get_all)\\b",name:"support.function.tokenizer.php"},{match:`(?xi)\\b +trader_( +stoch(f|r|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma| +ht_(sine|trend(line|mode)|dc(period|phase)|phasor)|natr|cci|cos(h)?|correl| +cdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines| +hikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall| +counterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer| +identical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river| +upsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)| +piercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji| +ladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite| +gravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu| +belthold|breakaway)| +ceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo| +plus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands| +linearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|ad|add|adx(r)?|apo|avgprice| +aroon(osc)?|rsi|roc|rocp|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]| +minmax(index)?|mid(point|price)|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)? +)\\b`,name:"support.function.trader.php"},{match:"(?i)\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\b",name:"support.function.uopz.php"},{match:"(?i)\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\b",name:"support.function.url.php"},{match:`(?xi)\\b +( +strval|settype|serialize|(bool|double|float)val|debug_zval_dump|intval|import_request_variables|isset| +is_(scalar|string|null|numeric|callable|int(eger)?|object|double|float|long|array|resource|real|bool)| +unset|unserialize|print_r|empty|var_(dump|export)|gettype|get_(defined_vars|resource_type) +)\\b`,name:"support.function.var.php"},{match:"(?i)\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\b",name:"support.function.wddx.php"},{match:"(?i)\\bxhprof_(sample_)?(disable|enable)\\b",name:"support.function.xhprof.php"},{match:`(?xi) +\\b +( +utf8_(decode|encode)| +xml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler| +(character_data|default|element|external_entity_ref|processing_instruction)_handler|object)| +parse(_into_struct)?|parser_((get|set)_option|create(_ns)?|free)|error_string| +get_(current_((column|line)_number|byte_index)|error_code)) +)\\b`,name:"support.function.xml.php"},{match:`(?xi)\\b +xmlrpc_( +server_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))| +is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|(get|set)_type +)\\b`,name:"support.function.xmlrpc.php"},{match:`(?xi)\\b +xmlwriter_( +(end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)| +(start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)| +full_end_element|flush| +)\\b`,name:"support.function.xmlwriter.php"},{match:`(?xi)\\b +( +zlib_(decode|encode|get_coding_type)|readgzfile| +gz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file| +write|rewind|read|getc|getss?) +)\\b`,name:"support.function.zlib.php"},{match:"(?i)\\bis_int(eger)?\\b",name:"support.function.alias.php"}]},switch_statement:{patterns:[{match:"\\s+(?=switch\\b)"},{begin:"\\bswitch\\b(?!\\s*\\(.*\\)\\s*:)",beginCaptures:{0:{name:"keyword.control.switch.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.section.switch-block.end.bracket.curly.php"}},name:"meta.switch-statement.php",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.switch-expression.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.switch-expression.end.bracket.round.php"}},patterns:[{include:"#language"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.section.switch-block.begin.bracket.curly.php"}},end:"(?=}|\\?>)",patterns:[{include:"#language"}]}]}]},"use-inner":{patterns:[{include:"#comments"},{begin:"(?i)\\b(as)\\s+",beginCaptures:{1:{name:"keyword.other.use-as.php"}},end:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",endCaptures:{0:{name:"entity.other.alias.php"}}},{include:"#class-name"},{match:",",name:"punctuation.separator.delimiter.php"}]},var_basic:{patterns:[{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(?i)(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\b",name:"variable.other.php"}]},var_global:{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b",name:"variable.other.global.php"},var_global_safer:{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))",name:"variable.other.global.safer.php"},var_language:{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(\\$)this\\b",name:"variable.language.this.php"},"variable-name":{patterns:[{include:"#var_global"},{include:"#var_global_safer"},{captures:{1:{name:"variable.other.php"},2:{name:"punctuation.definition.variable.php"},4:{name:"keyword.operator.class.php"},5:{name:"variable.other.property.php"},6:{name:"punctuation.section.array.begin.php"},7:{name:"constant.numeric.index.php"},8:{name:"variable.other.index.php"},9:{name:"punctuation.definition.variable.php"},10:{name:"string.unquoted.index.php"},11:{name:"punctuation.section.array.end.php"}},match:`(?xi) +((\\$)(?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)) +(?: +(->)(\\g) +| +(\\[)(?:(\\d+)|((\\$)\\g)|([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*))(\\]) +)?`},{captures:{1:{name:"variable.other.php"},2:{name:"punctuation.definition.variable.php"},4:{name:"punctuation.definition.variable.php"}},match:"(?i)((\\${)(?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(}))"}]},variables:{patterns:[{include:"#var_language"},{include:"#var_global"},{include:"#var_global_safer"},{include:"#var_basic"},{begin:"\\${(?=.*?})",beginCaptures:{0:{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.variable.php"}},patterns:[{include:"#language"}]}]}},scopeName:"text.html.php.blade",embeddedLangs:["html","xml","sql","javascript","json","css"]});var l=[...e,...n,...t,...a,...r,...i,p];export{l as default}; diff --git a/assets/chunks/c.RCJZWN-0.js b/assets/chunks/c.RCJZWN-0.js new file mode 100644 index 000000000..4bfa82916 --- /dev/null +++ b/assets/chunks/c.RCJZWN-0.js @@ -0,0 +1,81 @@ +const e=Object.freeze({displayName:"C",name:"c",patterns:[{include:"#preprocessor-rule-enabled"},{include:"#preprocessor-rule-disabled"},{include:"#preprocessor-rule-conditional"},{include:"#predefined_macros"},{include:"#comments"},{include:"#switch_statement"},{include:"#anon_pattern_1"},{include:"#storage_types"},{include:"#anon_pattern_2"},{include:"#anon_pattern_3"},{include:"#anon_pattern_4"},{include:"#anon_pattern_5"},{include:"#anon_pattern_6"},{include:"#anon_pattern_7"},{include:"#operators"},{include:"#numbers"},{include:"#strings"},{include:"#anon_pattern_range_1"},{include:"#anon_pattern_range_2"},{include:"#anon_pattern_range_3"},{include:"#pragma-mark"},{include:"#anon_pattern_range_4"},{include:"#anon_pattern_range_5"},{include:"#anon_pattern_range_6"},{include:"#anon_pattern_8"},{include:"#anon_pattern_9"},{include:"#anon_pattern_10"},{include:"#anon_pattern_11"},{include:"#anon_pattern_12"},{include:"#anon_pattern_13"},{include:"#block"},{include:"#parens"},{include:"#anon_pattern_range_7"},{include:"#line_continuation_character"},{include:"#anon_pattern_range_8"},{include:"#anon_pattern_range_9"},{include:"#anon_pattern_14"},{include:"#anon_pattern_15"}],repository:{"access-method":{begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",beginCaptures:{1:{name:"variable.object.c"},2:{name:"punctuation.separator.dot-access.c"},3:{name:"punctuation.separator.pointer-access.c"},4:{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.c"},{match:"->",name:"punctuation.separator.pointer-access.c"},{match:"[a-zA-Z_][a-zA-Z_0-9]*",name:"variable.object.c"},{match:".+",name:"everything.else.c"}]},5:{name:"entity.name.function.member.c"},6:{name:"punctuation.section.arguments.begin.bracket.round.function.member.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.member.c"}},name:"meta.function-call.member.c",patterns:[{include:"#function-call-innards"}]},anon_pattern_1:{match:"\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",name:"keyword.control.c"},anon_pattern_10:{match:`(?x) \\b +(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t +|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t +|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t +|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t +|uintmax_t|uintmax_t) +\\b`,name:"support.type.stdint.c"},anon_pattern_11:{match:"\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",name:"support.constant.mac-classic.c"},anon_pattern_12:{match:`(?x) \\b +(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam +|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr +|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber +|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64 +|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32 +|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr +|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char) +\\b`,name:"support.type.mac-classic.c"},anon_pattern_13:{match:"\\b([A-Za-z0-9_]+_t)\\b",name:"support.type.posix-reserved.c"},anon_pattern_14:{match:";",name:"punctuation.terminator.statement.c"},anon_pattern_15:{match:",",name:"punctuation.separator.delimiter.c"},anon_pattern_2:{match:"typedef",name:"keyword.other.typedef.c"},anon_pattern_3:{match:"\\b(const|extern|register|restrict|static|volatile|inline)\\b",name:"storage.modifier.c"},anon_pattern_4:{match:"\\bk[A-Z]\\w*\\b",name:"constant.other.variable.mac-classic.c"},anon_pattern_5:{match:"\\bg[A-Z]\\w*\\b",name:"variable.other.readwrite.global.mac-classic.c"},anon_pattern_6:{match:"\\bs[A-Z]\\w*\\b",name:"variable.other.readwrite.static.mac-classic.c"},anon_pattern_7:{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.c"},anon_pattern_8:{match:"\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",name:"support.type.sys-types.c"},anon_pattern_9:{match:"\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",name:"support.type.pthread.c"},anon_pattern_range_1:{begin:"((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\s+((?",endCaptures:{0:{name:"punctuation.definition.string.end.c"}},name:"string.quoted.other.lt-gt.include.c"}]},anon_pattern_range_4:{begin:"^\\s*((#)\\s*line)\\b",beginCaptures:{1:{name:"keyword.control.directive.line.c"},2:{name:"punctuation.definition.directive.c"}},end:"(?=(?://|/\\*))|(?=+!]+ | \\(\\) | \\[\\])) +) +\\s*(\\()`,beginCaptures:{1:{name:"variable.other.c"},2:{name:"punctuation.section.parens.begin.bracket.round.initialization.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.initialization.c"}},name:"meta.initialization.c",patterns:[{include:"#function-call-innards"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.c"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.c"}},patterns:[{include:"#block_innards"}]},{include:"#parens-block"},{include:"$self"}]},c_conditional_context:{patterns:[{include:"$self"},{include:"#block_innards"}]},c_function_call:{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\() +(?= +(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( +| +(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\( +)`,end:"(?<=\\))(?!\\w)",name:"meta.function-call.c",patterns:[{include:"#function-call-innards"}]},case_statement:{begin:"((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?\\s*)(\\/\\/[!\\/]+)",beginCaptures:{1:{name:"punctuation.definition.comment.documentation.c"}},end:"(?<=\\n)(?|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.c"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.italic.doxygen.c"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.bold.doxygen.c"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.inline.raw.string.c"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.c"}]},3:{name:"variable.parameter.c"}},match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc"}]},{captures:{1:{name:"punctuation.definition.comment.begin.documentation.c"},2:{patterns:[{match:'(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.c"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.italic.doxygen.c"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.bold.doxygen.c"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.inline.raw.string.c"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.c"}]},3:{name:"variable.parameter.c"}},match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc"}]},3:{name:"punctuation.definition.comment.end.documentation.c"}},match:"(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",name:"comment.block.documentation.c"},{begin:"((?>\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))",beginCaptures:{1:{name:"punctuation.definition.comment.begin.documentation.c"}},end:"([!*]*\\*\\/)",endCaptures:{1:{name:"punctuation.definition.comment.end.documentation.c"}},name:"comment.block.documentation.c",patterns:[{match:'(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.c"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.italic.doxygen.c"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.bold.doxygen.c"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.inline.raw.string.c"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.c"}]},3:{name:"variable.parameter.c"}},match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc"}]},{captures:{1:{name:"meta.toc-list.banner.block.c"}},match:"^\\/\\* =(\\s*.*?)\\s*= \\*\\/$\\n?",name:"comment.block.banner.c"},{begin:"(\\/\\*)",beginCaptures:{1:{name:"punctuation.definition.comment.begin.c"}},end:"(\\*\\/)",endCaptures:{1:{name:"punctuation.definition.comment.end.c"}},name:"comment.block.c"},{captures:{1:{name:"meta.toc-list.banner.line.c"}},match:"^\\/\\/ =(\\s*.*?)\\s*=$\\n?",name:"comment.line.banner.c"},{begin:"((?:^[ \\t]+)?)(?=\\/\\/)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.c"}},end:"(?!\\G)",patterns:[{begin:"(\\/\\/)",beginCaptures:{1:{name:"punctuation.definition.comment.c"}},end:"(?=\\n)",name:"comment.line.double-slash.c",patterns:[{include:"#line_continuation_character"}]}]}]},{include:"#block_comment"},{include:"#line_comment"}]},{include:"#block_comment"},{include:"#line_comment"}]},default_statement:{begin:"((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?=+!]+|\\(\\)|\\[\\])) +) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.c"},2:{name:"punctuation.section.arguments.begin.bracket.round.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.c"}},patterns:[{include:"#function-call-innards"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.c"}},patterns:[{include:"#function-call-innards"}]},{include:"#block_innards"}]},"function-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#operators"},{include:"#vararg_ellipses"},{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\() +( +(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ +| +(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\])) +) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.c"},2:{name:"punctuation.section.parameters.begin.bracket.round.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.c"}},name:"meta.function.definition.parameters.c",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.c"}},patterns:[{include:"#function-innards"}]},{include:"$self"}]},inline_comment:{patterns:[{patterns:[{captures:{1:{name:"comment.block.c punctuation.definition.comment.begin.c"},2:{name:"comment.block.c"},3:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}},match:"(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/))"},{captures:{1:{name:"comment.block.c punctuation.definition.comment.begin.c"},2:{name:"comment.block.c"},3:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}},match:"(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))"}]},{captures:{1:{name:"comment.block.c punctuation.definition.comment.begin.c"},2:{name:"comment.block.c"},3:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}},match:"(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))"}]},line_comment:{patterns:[{begin:"\\s*+(\\/\\/)",beginCaptures:{1:{name:"punctuation.definition.comment.c"}},end:"(?<=\\n)(?\\*|->)))"}]},5:{name:"variable.other.member.c"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|atomic_uintptr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintmax_t|pthread_mutex_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_attr_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_cond_t|pthread_once_t|uint_fast64_t|uint_fast16_t|atomic_size_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|pthread_key_t|atomic_ullong|atomic_ushort|uint_fast32_t|atomic_schar|atomic_short|uint_fast8_t|int_fast64_t|int_fast32_t|int_fast16_t|atomic_ulong|atomic_llong|int_least8_t|atomic_uchar|memory_order|suseconds_t|int_fast8_t|atomic_bool|atomic_char|atomic_uint|atomic_long|atomic_int|useconds_t|_Imaginary|blksize_t|pthread_t|in_addr_t|uintptr_t|in_port_t|uintmax_t|uintmax_t|blkcnt_t|uint16_t|unsigned|_Complex|uint32_t|intptr_t|intmax_t|intmax_t|uint64_t|u_quad_t|int64_t|int32_t|ssize_t|caddr_t|clock_t|uint8_t|u_short|swblk_t|segsz_t|int16_t|fixpt_t|daddr_t|nlink_t|qaddr_t|size_t|time_t|mode_t|signed|quad_t|ushort|u_long|u_char|double|int8_t|ino_t|uid_t|pid_t|_Bool|float|dev_t|div_t|short|gid_t|off_t|u_int|key_t|id_t|uint|long|void|char|bool|id_t|int)\\b)[a-zA-Z_]\\w*\\b(?!\\())"},method_access:{begin:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",beginCaptures:{1:{name:"variable.other.object.access.c"},2:{name:"punctuation.separator.dot-access.c"},3:{name:"punctuation.separator.pointer-access.c"},4:{patterns:[{include:"#member_access"},{include:"#method_access"},{captures:{1:{name:"variable.other.object.access.c"},2:{name:"punctuation.separator.dot-access.c"},3:{name:"punctuation.separator.pointer-access.c"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))"}]},5:{name:"entity.name.function.member.c"},6:{name:"punctuation.section.arguments.begin.bracket.round.function.member.c"}},contentName:"meta.function-call.member.c",end:"(\\))",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.function.member.c"}},patterns:[{include:"#function-call-innards"}]},numbers:{captures:{0:{patterns:[{begin:"(?=.)",end:"$",patterns:[{captures:{1:{name:"keyword.other.unit.hexadecimal.c"},2:{name:"constant.numeric.hexadecimal.c",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric"}]},3:{name:"punctuation.separator.constant.numeric"},4:{name:"constant.numeric.hexadecimal.c"},5:{name:"constant.numeric.hexadecimal.c",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric"}]},6:{name:"punctuation.separator.constant.numeric"},8:{name:"keyword.other.unit.exponent.hexadecimal.c"},9:{name:"keyword.operator.plus.exponent.hexadecimal.c"},10:{name:"keyword.operator.minus.exponent.hexadecimal.c"},11:{name:"constant.numeric.exponent.hexadecimal.c",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric"}]},12:{name:"keyword.other.unit.suffix.floating-point.c"}},match:"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.c"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.c"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.c"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.c"},{match:"&|\\||\\^|~",name:"keyword.operator.c"},{match:"=",name:"keyword.operator.assignment.c"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.c"},{begin:"(\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.c"}},end:"(:)",endCaptures:{1:{name:"keyword.operator.ternary.c"}},patterns:[{include:"#function-call-innards"},{include:"$self"}]}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.c"}},name:"meta.parens.c",patterns:[{include:"$self"}]},"parens-block":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.c"}},name:"meta.parens.block.c",patterns:[{include:"#block_innards"},{match:"(?-mix:(?=+!]+|\\(\\)|\\[\\]))\\s*\\( +)`,end:"(?<=\\))(?!\\w)|(?=+!]+|\\(\\)|\\[\\])) +) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.c"},2:{name:"punctuation.section.arguments.begin.bracket.round.c"}},end:"(\\))|(?\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))"},static_assert:{begin:"((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.c punctuation.definition.comment.begin.c"},3:{name:"comment.block.c"},4:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]},5:{name:"keyword.other.static_assert.c"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.c punctuation.definition.comment.begin.c"},8:{name:"comment.block.c"},9:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]},10:{name:"punctuation.section.arguments.begin.bracket.round.static_assert.c"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.static_assert.c"}},patterns:[{begin:'(,)\\s*(?=(?:L|u8|u|U\\s*\\")?)',beginCaptures:{1:{name:"punctuation.separator.delimiter.comma.c"}},end:"(?=\\))",name:"meta.static_assert.message.c",patterns:[{include:"#string_context"}]},{include:"#evaluation_context"}]},storage_types:{patterns:[{match:"(?-mix:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\n|$)"},{include:"#comments"},{begin:"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\()",beginCaptures:{1:{name:"punctuation.section.parens.begin.bracket.round.assembly.c"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.c punctuation.definition.comment.begin.c"},4:{name:"comment.block.c"},5:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.assembly.c"}},patterns:[{begin:'(R?)(")',beginCaptures:{1:{name:"meta.encoding.c"},2:{name:"punctuation.definition.string.begin.assembly.c"}},contentName:"meta.embedded.assembly.c",end:'(")',endCaptures:{1:{name:"punctuation.definition.string.end.assembly.c"}},name:"string.quoted.double.c",patterns:[{include:"source.asm"},{include:"source.x86"},{include:"source.x86_64"},{include:"source.arm"},{include:"#backslash_escapes"},{include:"#string_escaped_char"}]},{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.parens.begin.bracket.round.assembly.inner.c"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.assembly.inner.c"}},patterns:[{include:"#evaluation_context"}]},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.c punctuation.definition.comment.begin.c"},3:{name:"comment.block.c"},4:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]},5:{name:"variable.other.asm.label.c"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.c punctuation.definition.comment.begin.c"},8:{name:"comment.block.c"},9:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}},match:"\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))([a-zA-Z_]\\w*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]"},{match:":",name:"punctuation.separator.delimiter.colon.assembly.c"},{include:"#comments"}]}]}]},string_escaped_char:{patterns:[{match:`(?x)\\\\ ( +\\\\ | +[abefnprtv'"?] | +[0-3]\\d{,2} | +[4-7]\\d? | +x[a-fA-F0-9]{,2} | +u[a-fA-F0-9]{,4} | +U[a-fA-F0-9]{,8} )`,name:"constant.character.escape.c"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.c"}]},string_placeholder:{patterns:[{match:`(?x) % +(\\d+\\$)? +[#0\\- +']* +[,;:_]? +((-?\\d+)|\\*(-?\\d+\\$)?)? +(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? +(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? +[diouxXDOUeEfFgGaACcSspn%]`,name:"constant.other.placeholder.c"},{captures:{1:{name:"invalid.illegal.placeholder.c"}},match:'(%)(?!"\\s*(PRI|SCN))'}]},strings:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.c"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.c"}},name:"string.quoted.double.c",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.c"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.c"}},name:"string.quoted.single.c",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]}]},switch_conditional_parentheses:{begin:"((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.c punctuation.definition.comment.begin.c"},3:{name:"comment.block.c"},4:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]},5:{name:"punctuation.section.parens.begin.bracket.round.conditional.switch.c"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.conditional.switch.c"}},name:"meta.conditional.switch.c",patterns:[{include:"#evaluation_context"},{include:"#c_conditional_context"}]},switch_statement:{begin:"(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?|\\?\\?>)|(?=[;>\\[\\]=]))",name:"meta.block.switch.c",patterns:[{begin:"\\G ?",end:"((?:\\{|<%|\\?\\?<|(?=;)))",endCaptures:{1:{name:"punctuation.section.block.begin.bracket.curly.switch.c"}},name:"meta.head.switch.c",patterns:[{include:"#switch_conditional_parentheses"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"(\\}|%>|\\?\\?>)",endCaptures:{1:{name:"punctuation.section.block.end.bracket.curly.switch.c"}},name:"meta.body.switch.c",patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$self"},{include:"#block_innards"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s\\n]*",end:"[\\s\\n]*(?=;)",name:"meta.tail.switch.c",patterns:[{include:"$self"}]}]},vararg_ellipses:{match:"(?&|\\^~.])(:)(?![/=\\-+!*%<>&|\\^~.])\\s*",beginCaptures:{1:{name:"keyword.operator.function-result.cadence"}},end:"(?!\\G)(?=\\{|;)|$",name:"meta.function-result.cadence",patterns:[{include:"#type"}]},initializer:{begin:"(?|<|>=|<=",name:"keyword.operator.comparison.cadence"},{match:"\\?\\?",name:"keyword.operator.coalescing.cadence"},{match:"&&|\\|\\|",name:"keyword.operator.logical.cadence"},{match:"[?!]",name:"keyword.operator.type.optional.cadence"}]},"parameter-clause":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.cadence"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.cadence"}},name:"meta.parameter-clause.cadence",patterns:[{include:"#parameter-list"}]},"parameter-list":{patterns:[{captures:{1:{name:"entity.name.function.cadence"},2:{name:"variable.parameter.function.cadence"}},comment:"External parameter labels are considered part of the function name",match:"([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(?=\\s*:)"},{captures:{1:{name:"variable.parameter.function.cadence"},2:{name:"entity.name.function.cadence"}},comment:"If no external label is given, the name is both the external label and the internal variable name",match:"(([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*))(?=\\s*:)"},{begin:":\\s*(?!\\s)",end:"(?=[,)])",patterns:[{include:"#type"},{match:":",name:"invalid.illegal.extra-colon-in-parameter-list.cadence"}]}]},type:{patterns:[{include:"#comments"},{match:"([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)",name:"storage.type.cadence"}]},"var-let-declaration":{begin:"\\b(var|let)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)",beginCaptures:{1:{name:"storage.type.$1.cadence"},2:{name:"entity.name.type.$1.cadence"}},end:"=|<-|<-!|$",patterns:[{include:"#type"}]}},scopeName:"source.cadence",aliases:["cdc"]});var n=[e];export{n as default}; diff --git a/assets/chunks/catppuccin-frappe.CSPeAESR.js b/assets/chunks/catppuccin-frappe.CSPeAESR.js new file mode 100644 index 000000000..07b94dc34 --- /dev/null +++ b/assets/chunks/catppuccin-frappe.CSPeAESR.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBackground":"#00000000","activityBar.activeBorder":"#00000000","activityBar.activeFocusBorder":"#00000000","activityBar.background":"#232634","activityBar.border":"#00000000","activityBar.dropBorder":"#ca9ee633","activityBar.foreground":"#ca9ee6","activityBar.inactiveForeground":"#737994","activityBarBadge.background":"#ca9ee6","activityBarBadge.foreground":"#232634","activityBarTop.activeBorder":"#00000000","activityBarTop.dropBorder":"#ca9ee633","activityBarTop.foreground":"#ca9ee6","activityBarTop.inactiveForeground":"#737994","badge.background":"#51576d","badge.foreground":"#c6d0f5","banner.background":"#51576d","banner.foreground":"#c6d0f5","banner.iconForeground":"#c6d0f5","breadcrumb.activeSelectionForeground":"#ca9ee6","breadcrumb.background":"#303446","breadcrumb.focusForeground":"#ca9ee6","breadcrumb.foreground":"#c6d0f5cc","breadcrumbPicker.background":"#292c3c","button.background":"#ca9ee6","button.border":"#00000000","button.foreground":"#232634","button.hoverBackground":"#d9baed","button.secondaryBackground":"#626880","button.secondaryBorder":"#ca9ee6","button.secondaryForeground":"#c6d0f5","button.secondaryHoverBackground":"#727993","button.separator":"#00000000","charts.blue":"#8caaee","charts.foreground":"#c6d0f5","charts.green":"#a6d189","charts.lines":"#b5bfe2","charts.orange":"#ef9f76","charts.purple":"#ca9ee6","charts.red":"#e78284","charts.yellow":"#e5c890","checkbox.background":"#51576d","checkbox.border":"#00000000","checkbox.foreground":"#ca9ee6","commandCenter.activeBackground":"#62688033","commandCenter.activeBorder":"#ca9ee6","commandCenter.activeForeground":"#ca9ee6","commandCenter.background":"#292c3c","commandCenter.border":"#00000000","commandCenter.foreground":"#b5bfe2","commandCenter.inactiveBorder":"#00000000","commandCenter.inactiveForeground":"#b5bfe2","debugConsole.errorForeground":"#e78284","debugConsole.infoForeground":"#8caaee","debugConsole.sourceForeground":"#f2d5cf","debugConsole.warningForeground":"#ef9f76","debugConsoleInputIcon.foreground":"#c6d0f5","debugExceptionWidget.background":"#232634","debugExceptionWidget.border":"#ca9ee6","debugIcon.breakpointCurrentStackframeForeground":"#626880","debugIcon.breakpointDisabledForeground":"#e7828499","debugIcon.breakpointForeground":"#e78284","debugIcon.breakpointStackframeForeground":"#626880","debugIcon.breakpointUnverifiedForeground":"#a57582","debugIcon.continueForeground":"#a6d189","debugIcon.disconnectForeground":"#626880","debugIcon.pauseForeground":"#8caaee","debugIcon.restartForeground":"#81c8be","debugIcon.startForeground":"#a6d189","debugIcon.stepBackForeground":"#626880","debugIcon.stepIntoForeground":"#c6d0f5","debugIcon.stepOutForeground":"#c6d0f5","debugIcon.stepOverForeground":"#ca9ee6","debugIcon.stopForeground":"#e78284","debugTokenExpression.boolean":"#ca9ee6","debugTokenExpression.error":"#e78284","debugTokenExpression.number":"#ef9f76","debugTokenExpression.string":"#a6d189","debugToolBar.background":"#232634","debugToolBar.border":"#00000000",descriptionForeground:"#c6d0f5","diffEditor.border":"#626880","diffEditor.diagonalFill":"#62688099","diffEditor.insertedLineBackground":"#a6d18926","diffEditor.insertedTextBackground":"#a6d1891a","diffEditor.removedLineBackground":"#e7828426","diffEditor.removedTextBackground":"#e782841a","diffEditorOverview.insertedForeground":"#a6d189cc","diffEditorOverview.removedForeground":"#e78284cc",disabledForeground:"#a5adce","dropdown.background":"#292c3c","dropdown.border":"#ca9ee6","dropdown.foreground":"#c6d0f5","dropdown.listBackground":"#626880","editor.background":"#303446","editor.findMatchBackground":"#674b59","editor.findMatchBorder":"#e7828433","editor.findMatchHighlightBackground":"#506373","editor.findMatchHighlightBorder":"#99d1db33","editor.findRangeHighlightBackground":"#506373","editor.findRangeHighlightBorder":"#99d1db33","editor.focusedStackFrameHighlightBackground":"#a6d18926","editor.foldBackground":"#99d1db40","editor.foreground":"#c6d0f5","editor.hoverHighlightBackground":"#99d1db40","editor.lineHighlightBackground":"#c6d0f512","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#99d1db40","editor.rangeHighlightBorder":"#00000000","editor.selectionBackground":"#949cbb40","editor.selectionHighlightBackground":"#949cbb33","editor.selectionHighlightBorder":"#949cbb33","editor.stackFrameHighlightBackground":"#e5c89026","editor.wordHighlightBackground":"#949cbb33","editorBracketHighlight.foreground1":"#e78284","editorBracketHighlight.foreground2":"#ef9f76","editorBracketHighlight.foreground3":"#e5c890","editorBracketHighlight.foreground4":"#a6d189","editorBracketHighlight.foreground5":"#85c1dc","editorBracketHighlight.foreground6":"#ca9ee6","editorBracketHighlight.unexpectedBracket.foreground":"#ea999c","editorBracketMatch.background":"#949cbb1a","editorBracketMatch.border":"#949cbb","editorCodeLens.foreground":"#838ba7","editorCursor.background":"#303446","editorCursor.foreground":"#f2d5cf","editorError.background":"#00000000","editorError.border":"#00000000","editorError.foreground":"#e78284","editorGroup.border":"#626880","editorGroup.dropBackground":"#ca9ee633","editorGroup.emptyBackground":"#303446","editorGroupHeader.tabsBackground":"#232634","editorGutter.addedBackground":"#a6d189","editorGutter.background":"#303446","editorGutter.commentRangeForeground":"#949cbb","editorGutter.deletedBackground":"#e78284","editorGutter.foldingControlForeground":"#949cbb","editorGutter.modifiedBackground":"#e5c890","editorHoverWidget.background":"#292c3c","editorHoverWidget.border":"#626880","editorHoverWidget.foreground":"#c6d0f5","editorIndentGuide.activeBackground":"#626880","editorIndentGuide.background":"#51576d","editorInfo.background":"#00000000","editorInfo.border":"#00000000","editorInfo.foreground":"#8caaee","editorInlayHint.background":"#292c3cbf","editorInlayHint.foreground":"#626880","editorInlayHint.parameterBackground":"#292c3cbf","editorInlayHint.parameterForeground":"#a5adce","editorInlayHint.typeBackground":"#292c3cbf","editorInlayHint.typeForeground":"#b5bfe2","editorLightBulb.foreground":"#e5c890","editorLineNumber.activeForeground":"#ca9ee6","editorLineNumber.foreground":"#838ba7","editorLink.activeForeground":"#ca9ee6","editorMarkerNavigation.background":"#292c3c","editorMarkerNavigationError.background":"#e78284","editorMarkerNavigationInfo.background":"#8caaee","editorMarkerNavigationWarning.background":"#ef9f76","editorOverviewRuler.background":"#292c3c","editorOverviewRuler.border":"#c6d0f512","editorOverviewRuler.modifiedForeground":"#e5c890","editorRuler.foreground":"#626880","editorStickyScrollHover.background":"#414559","editorSuggestWidget.background":"#292c3c","editorSuggestWidget.border":"#626880","editorSuggestWidget.foreground":"#c6d0f5","editorSuggestWidget.highlightForeground":"#ca9ee6","editorSuggestWidget.selectedBackground":"#414559","editorWarning.background":"#00000000","editorWarning.border":"#00000000","editorWarning.foreground":"#ef9f76","editorWhitespace.foreground":"#949cbb66","editorWidget.background":"#292c3c","editorWidget.foreground":"#c6d0f5","editorWidget.resizeBorder":"#626880",errorForeground:"#e78284","errorLens.errorBackground":"#e7828426","errorLens.errorBackgroundLight":"#e7828426","errorLens.errorForeground":"#e78284","errorLens.errorForegroundLight":"#e78284","errorLens.errorMessageBackground":"#e7828426","errorLens.hintBackground":"#a6d18926","errorLens.hintBackgroundLight":"#a6d18926","errorLens.hintForeground":"#a6d189","errorLens.hintForegroundLight":"#a6d189","errorLens.hintMessageBackground":"#a6d18926","errorLens.infoBackground":"#8caaee26","errorLens.infoBackgroundLight":"#8caaee26","errorLens.infoForeground":"#8caaee","errorLens.infoForegroundLight":"#8caaee","errorLens.infoMessageBackground":"#8caaee26","errorLens.statusBarErrorForeground":"#e78284","errorLens.statusBarHintForeground":"#a6d189","errorLens.statusBarIconErrorForeground":"#e78284","errorLens.statusBarIconWarningForeground":"#ef9f76","errorLens.statusBarInfoForeground":"#8caaee","errorLens.statusBarWarningForeground":"#ef9f76","errorLens.warningBackground":"#ef9f7626","errorLens.warningBackgroundLight":"#ef9f7626","errorLens.warningForeground":"#ef9f76","errorLens.warningForegroundLight":"#ef9f76","errorLens.warningMessageBackground":"#ef9f7626","extensionBadge.remoteBackground":"#8caaee","extensionBadge.remoteForeground":"#232634","extensionButton.prominentBackground":"#ca9ee6","extensionButton.prominentForeground":"#232634","extensionButton.prominentHoverBackground":"#d9baed","extensionButton.separator":"#303446","extensionIcon.preReleaseForeground":"#626880","extensionIcon.sponsorForeground":"#f4b8e4","extensionIcon.starForeground":"#e5c890","extensionIcon.verifiedForeground":"#a6d189",focusBorder:"#ca9ee6",foreground:"#c6d0f5","gitDecoration.addedResourceForeground":"#a6d189","gitDecoration.conflictingResourceForeground":"#ca9ee6","gitDecoration.deletedResourceForeground":"#e78284","gitDecoration.ignoredResourceForeground":"#737994","gitDecoration.modifiedResourceForeground":"#e5c890","gitDecoration.stageDeletedResourceForeground":"#e78284","gitDecoration.stageModifiedResourceForeground":"#e5c890","gitDecoration.submoduleResourceForeground":"#8caaee","gitDecoration.untrackedResourceForeground":"#a6d189","gitlens.closedAutolinkedIssueIconColor":"#ca9ee6","gitlens.closedPullRequestIconColor":"#e78284","gitlens.decorations.branchAheadForegroundColor":"#a6d189","gitlens.decorations.branchBehindForegroundColor":"#ef9f76","gitlens.decorations.branchDivergedForegroundColor":"#e5c890","gitlens.decorations.branchMissingUpstreamForegroundColor":"#ef9f76","gitlens.decorations.branchUnpublishedForegroundColor":"#a6d189","gitlens.decorations.statusMergingOrRebasingConflictForegroundColor":"#ea999c","gitlens.decorations.statusMergingOrRebasingForegroundColor":"#e5c890","gitlens.decorations.workspaceCurrentForegroundColor":"#ca9ee6","gitlens.decorations.workspaceRepoMissingForegroundColor":"#a5adce","gitlens.decorations.workspaceRepoOpenForegroundColor":"#ca9ee6","gitlens.decorations.worktreeHasUncommittedChangesForegroundColor":"#ef9f76","gitlens.decorations.worktreeMissingForegroundColor":"#ea999c","gitlens.graphChangesColumnAddedColor":"#a6d189","gitlens.graphChangesColumnDeletedColor":"#e78284","gitlens.graphLane10Color":"#f4b8e4","gitlens.graphLane1Color":"#ca9ee6","gitlens.graphLane2Color":"#e5c890","gitlens.graphLane3Color":"#8caaee","gitlens.graphLane4Color":"#eebebe","gitlens.graphLane5Color":"#a6d189","gitlens.graphLane6Color":"#babbf1","gitlens.graphLane7Color":"#f2d5cf","gitlens.graphLane8Color":"#e78284","gitlens.graphLane9Color":"#81c8be","gitlens.graphMinimapMarkerHeadColor":"#a6d189","gitlens.graphMinimapMarkerHighlightsColor":"#e5c890","gitlens.graphMinimapMarkerLocalBranchesColor":"#8caaee","gitlens.graphMinimapMarkerRemoteBranchesColor":"#769aeb","gitlens.graphMinimapMarkerStashesColor":"#ca9ee6","gitlens.graphMinimapMarkerTagsColor":"#eebebe","gitlens.graphMinimapMarkerUpstreamColor":"#98ca77","gitlens.graphScrollMarkerHeadColor":"#a6d189","gitlens.graphScrollMarkerHighlightsColor":"#e5c890","gitlens.graphScrollMarkerLocalBranchesColor":"#8caaee","gitlens.graphScrollMarkerRemoteBranchesColor":"#769aeb","gitlens.graphScrollMarkerStashesColor":"#ca9ee6","gitlens.graphScrollMarkerTagsColor":"#eebebe","gitlens.graphScrollMarkerUpstreamColor":"#98ca77","gitlens.gutterBackgroundColor":"#4145594d","gitlens.gutterForegroundColor":"#c6d0f5","gitlens.gutterUncommittedForegroundColor":"#ca9ee6","gitlens.lineHighlightBackgroundColor":"#ca9ee626","gitlens.lineHighlightOverviewRulerColor":"#ca9ee6cc","gitlens.mergedPullRequestIconColor":"#ca9ee6","gitlens.openAutolinkedIssueIconColor":"#a6d189","gitlens.openPullRequestIconColor":"#a6d189","gitlens.trailingLineBackgroundColor":"#00000000","gitlens.trailingLineForegroundColor":"#c6d0f54d","gitlens.unpublishedChangesIconColor":"#a6d189","gitlens.unpublishedCommitIconColor":"#a6d189","gitlens.unpulledChangesIconColor":"#ef9f76","icon.foreground":"#ca9ee6","input.background":"#414559","input.border":"#00000000","input.foreground":"#c6d0f5","input.placeholderForeground":"#c6d0f573","inputOption.activeBackground":"#626880","inputOption.activeBorder":"#ca9ee6","inputOption.activeForeground":"#c6d0f5","inputValidation.errorBackground":"#e78284","inputValidation.errorBorder":"#23263433","inputValidation.errorForeground":"#232634","inputValidation.infoBackground":"#8caaee","inputValidation.infoBorder":"#23263433","inputValidation.infoForeground":"#232634","inputValidation.warningBackground":"#ef9f76","inputValidation.warningBorder":"#23263433","inputValidation.warningForeground":"#232634","issues.closed":"#ca9ee6","issues.newIssueDecoration":"#f2d5cf","issues.open":"#a6d189","list.activeSelectionBackground":"#414559","list.activeSelectionForeground":"#c6d0f5","list.dropBackground":"#ca9ee633","list.focusAndSelectionBackground":"#51576d","list.focusBackground":"#414559","list.focusForeground":"#c6d0f5","list.focusOutline":"#00000000","list.highlightForeground":"#ca9ee6","list.hoverBackground":"#41455980","list.hoverForeground":"#c6d0f5","list.inactiveSelectionBackground":"#414559","list.inactiveSelectionForeground":"#c6d0f5","list.warningForeground":"#ef9f76","listFilterWidget.background":"#51576d","listFilterWidget.noMatchesOutline":"#e78284","listFilterWidget.outline":"#00000000","menu.background":"#303446","menu.border":"#30344680","menu.foreground":"#c6d0f5","menu.selectionBackground":"#626880","menu.selectionBorder":"#00000000","menu.selectionForeground":"#c6d0f5","menu.separatorBackground":"#626880","menubar.selectionBackground":"#51576d","menubar.selectionForeground":"#c6d0f5","merge.commonContentBackground":"#51576d","merge.commonHeaderBackground":"#626880","merge.currentContentBackground":"#a6d18933","merge.currentHeaderBackground":"#a6d18966","merge.incomingContentBackground":"#8caaee33","merge.incomingHeaderBackground":"#8caaee66","minimap.background":"#292c3c80","minimap.errorHighlight":"#e78284bf","minimap.findMatchHighlight":"#99d1db4d","minimap.selectionHighlight":"#626880bf","minimap.selectionOccurrenceHighlight":"#626880bf","minimap.warningHighlight":"#ef9f76bf","minimapGutter.addedBackground":"#a6d189bf","minimapGutter.deletedBackground":"#e78284bf","minimapGutter.modifiedBackground":"#e5c890bf","minimapSlider.activeBackground":"#ca9ee699","minimapSlider.background":"#ca9ee633","minimapSlider.hoverBackground":"#ca9ee666","notificationCenter.border":"#ca9ee6","notificationCenterHeader.background":"#292c3c","notificationCenterHeader.foreground":"#c6d0f5","notificationLink.foreground":"#8caaee","notificationToast.border":"#ca9ee6","notifications.background":"#292c3c","notifications.border":"#ca9ee6","notifications.foreground":"#c6d0f5","notificationsErrorIcon.foreground":"#e78284","notificationsInfoIcon.foreground":"#8caaee","notificationsWarningIcon.foreground":"#ef9f76","panel.background":"#303446","panel.border":"#626880","panelSection.border":"#626880","panelSection.dropBackground":"#ca9ee633","panelTitle.activeBorder":"#ca9ee6","panelTitle.activeForeground":"#c6d0f5","panelTitle.inactiveForeground":"#a5adce","peekView.border":"#ca9ee6","peekViewEditor.background":"#292c3c","peekViewEditor.matchHighlightBackground":"#99d1db4d","peekViewEditor.matchHighlightBorder":"#00000000","peekViewEditorGutter.background":"#292c3c","peekViewResult.background":"#292c3c","peekViewResult.fileForeground":"#c6d0f5","peekViewResult.lineForeground":"#c6d0f5","peekViewResult.matchHighlightBackground":"#99d1db4d","peekViewResult.selectionBackground":"#414559","peekViewResult.selectionForeground":"#c6d0f5","peekViewTitle.background":"#303446","peekViewTitleDescription.foreground":"#b5bfe2b3","peekViewTitleLabel.foreground":"#c6d0f5","pickerGroup.border":"#ca9ee6","pickerGroup.foreground":"#ca9ee6","problemsErrorIcon.foreground":"#e78284","problemsInfoIcon.foreground":"#8caaee","problemsWarningIcon.foreground":"#ef9f76","progressBar.background":"#ca9ee6","pullRequests.closed":"#e78284","pullRequests.draft":"#949cbb","pullRequests.merged":"#ca9ee6","pullRequests.notification":"#c6d0f5","pullRequests.open":"#a6d189","sash.hoverBorder":"#ca9ee6","scrollbar.shadow":"#232634","scrollbarSlider.activeBackground":"#41455966","scrollbarSlider.background":"#62688080","scrollbarSlider.hoverBackground":"#737994","selection.background":"#ca9ee666","settings.dropdownBackground":"#51576d","settings.dropdownListBorder":"#00000000","settings.focusedRowBackground":"#62688033","settings.headerForeground":"#c6d0f5","settings.modifiedItemIndicator":"#ca9ee6","settings.numberInputBackground":"#51576d","settings.numberInputBorder":"#00000000","settings.textInputBackground":"#51576d","settings.textInputBorder":"#00000000","sideBar.background":"#292c3c","sideBar.border":"#00000000","sideBar.dropBackground":"#ca9ee633","sideBar.foreground":"#c6d0f5","sideBarSectionHeader.background":"#292c3c","sideBarSectionHeader.foreground":"#c6d0f5","sideBarTitle.foreground":"#ca9ee6","statusBar.background":"#232634","statusBar.border":"#00000000","statusBar.debuggingBackground":"#ef9f76","statusBar.debuggingBorder":"#00000000","statusBar.debuggingForeground":"#232634","statusBar.foreground":"#c6d0f5","statusBar.noFolderBackground":"#232634","statusBar.noFolderBorder":"#00000000","statusBar.noFolderForeground":"#c6d0f5","statusBarItem.activeBackground":"#62688066","statusBarItem.errorBackground":"#00000000","statusBarItem.errorForeground":"#e78284","statusBarItem.hoverBackground":"#62688033","statusBarItem.prominentBackground":"#00000000","statusBarItem.prominentForeground":"#ca9ee6","statusBarItem.prominentHoverBackground":"#62688033","statusBarItem.remoteBackground":"#8caaee","statusBarItem.remoteForeground":"#232634","statusBarItem.warningBackground":"#00000000","statusBarItem.warningForeground":"#ef9f76","symbolIcon.arrayForeground":"#ef9f76","symbolIcon.booleanForeground":"#ca9ee6","symbolIcon.classForeground":"#e5c890","symbolIcon.colorForeground":"#f4b8e4","symbolIcon.constantForeground":"#ef9f76","symbolIcon.constructorForeground":"#babbf1","symbolIcon.enumeratorForeground":"#e5c890","symbolIcon.enumeratorMemberForeground":"#e5c890","symbolIcon.eventForeground":"#f4b8e4","symbolIcon.fieldForeground":"#c6d0f5","symbolIcon.fileForeground":"#ca9ee6","symbolIcon.folderForeground":"#ca9ee6","symbolIcon.functionForeground":"#8caaee","symbolIcon.interfaceForeground":"#e5c890","symbolIcon.keyForeground":"#81c8be","symbolIcon.keywordForeground":"#ca9ee6","symbolIcon.methodForeground":"#8caaee","symbolIcon.moduleForeground":"#c6d0f5","symbolIcon.namespaceForeground":"#e5c890","symbolIcon.nullForeground":"#ea999c","symbolIcon.numberForeground":"#ef9f76","symbolIcon.objectForeground":"#e5c890","symbolIcon.operatorForeground":"#81c8be","symbolIcon.packageForeground":"#eebebe","symbolIcon.propertyForeground":"#ea999c","symbolIcon.referenceForeground":"#e5c890","symbolIcon.snippetForeground":"#eebebe","symbolIcon.stringForeground":"#a6d189","symbolIcon.structForeground":"#81c8be","symbolIcon.textForeground":"#c6d0f5","symbolIcon.typeParameterForeground":"#ea999c","symbolIcon.unitForeground":"#c6d0f5","symbolIcon.variableForeground":"#c6d0f5","tab.activeBackground":"#303446","tab.activeBorder":"#00000000","tab.activeBorderTop":"#ca9ee6","tab.activeForeground":"#ca9ee6","tab.activeModifiedBorder":"#e5c890","tab.border":"#292c3c","tab.hoverBackground":"#3a3f55","tab.hoverBorder":"#00000000","tab.hoverForeground":"#ca9ee6","tab.inactiveBackground":"#292c3c","tab.inactiveForeground":"#737994","tab.inactiveModifiedBorder":"#e5c8904d","tab.lastPinnedBorder":"#ca9ee6","tab.unfocusedActiveBackground":"#292c3c","tab.unfocusedActiveBorder":"#00000000","tab.unfocusedActiveBorderTop":"#ca9ee64d","tab.unfocusedInactiveBackground":"#1f212d","table.headerBackground":"#414559","table.headerForeground":"#c6d0f5","terminal.ansiBlack":"#a5adce","terminal.ansiBlue":"#8caaee","terminal.ansiBrightBlack":"#626880","terminal.ansiBrightBlue":"#8caaee","terminal.ansiBrightCyan":"#99d1db","terminal.ansiBrightGreen":"#a6d189","terminal.ansiBrightMagenta":"#f4b8e4","terminal.ansiBrightRed":"#e78284","terminal.ansiBrightWhite":"#51576d","terminal.ansiBrightYellow":"#e5c890","terminal.ansiCyan":"#99d1db","terminal.ansiGreen":"#a6d189","terminal.ansiMagenta":"#f4b8e4","terminal.ansiRed":"#e78284","terminal.ansiWhite":"#b5bfe2","terminal.ansiYellow":"#e5c890","terminal.border":"#626880","terminal.dropBackground":"#ca9ee633","terminal.foreground":"#c6d0f5","terminal.inactiveSelectionBackground":"#62688080","terminal.selectionBackground":"#626880","terminal.tab.activeBorder":"#ca9ee6","terminalCommandDecoration.defaultBackground":"#626880","terminalCommandDecoration.errorBackground":"#e78284","terminalCommandDecoration.successBackground":"#a6d189","terminalCursor.background":"#303446","terminalCursor.foreground":"#f2d5cf","textBlockQuote.background":"#292c3c","textBlockQuote.border":"#232634","textCodeBlock.background":"#303446","textLink.activeForeground":"#99d1db","textLink.foreground":"#8caaee","textPreformat.foreground":"#c6d0f5","textSeparator.foreground":"#ca9ee6","titleBar.activeBackground":"#232634","titleBar.activeForeground":"#c6d0f5","titleBar.border":"#00000000","titleBar.inactiveBackground":"#232634","titleBar.inactiveForeground":"#c6d0f580","tree.inactiveIndentGuidesStroke":"#51576d","tree.indentGuidesStroke":"#949cbb","walkThrough.embeddedEditorBackground":"#3034464d","welcomePage.progress.background":"#232634","welcomePage.progress.foreground":"#ca9ee6","welcomePage.tileBackground":"#292c3c","widget.shadow":"#292c3c80","window.activeBorder":"#00000000","window.inactiveBorder":"#00000000"},displayName:"Catppuccin Frappé",name:"catppuccin-frappe",semanticHighlighting:!0,semanticTokenColors:{boolean:{foreground:"#ef9f76"},"builtinAttribute.attribute.library:rust":{foreground:"#8caaee"},"class.builtin:python":{foreground:"#ca9ee6"},"class:python":{foreground:"#e5c890"},"constant.builtin.readonly:nix":{foreground:"#ca9ee6"},enumMember:{foreground:"#81c8be"},"function.decorator:python":{foreground:"#ef9f76"},"generic.attribute:rust":{foreground:"#c6d0f5"},heading:{foreground:"#e78284"},number:{foreground:"#ef9f76"},pol:{foreground:"#eebebe"},"property.readonly:javascript":{foreground:"#c6d0f5"},"property.readonly:javascriptreact":{foreground:"#c6d0f5"},"property.readonly:typescript":{foreground:"#c6d0f5"},"property.readonly:typescriptreact":{foreground:"#c6d0f5"},selfKeyword:{foreground:"#e78284"},"text.emph":{fontStyle:"italic",foreground:"#e78284"},"text.math":{foreground:"#eebebe"},"text.strong":{fontStyle:"bold",foreground:"#e78284"},tomlArrayKey:{fontStyle:"",foreground:"#8caaee"},tomlTableKey:{fontStyle:"",foreground:"#8caaee"},"type.defaultLibrary:go":{foreground:"#ca9ee6"},"variable.defaultLibrary":{foreground:"#ea999c"},"variable.readonly.defaultLibrary:go":{foreground:"#ca9ee6"},"variable.readonly:javascript":{foreground:"#c6d0f5"},"variable.readonly:javascriptreact":{foreground:"#c6d0f5"},"variable.readonly:scala":{foreground:"#c6d0f5"},"variable.readonly:typescript":{foreground:"#c6d0f5"},"variable.readonly:typescriptreact":{foreground:"#c6d0f5"},"variable.typeHint:python":{foreground:"#e5c890"}},tokenColors:[{scope:["text","source","variable.other.readwrite","punctuation.definition.variable"],settings:{foreground:"#c6d0f5"}},{scope:"punctuation",settings:{fontStyle:"",foreground:"#949cbb"}},{scope:["comment","punctuation.definition.comment"],settings:{fontStyle:"italic",foreground:"#737994"}},{scope:["string","punctuation.definition.string"],settings:{foreground:"#a6d189"}},{scope:"constant.character.escape",settings:{foreground:"#f4b8e4"}},{scope:["constant.numeric","variable.other.constant","entity.name.constant","constant.language.boolean","constant.language.false","constant.language.true","keyword.other.unit.user-defined","keyword.other.unit.suffix.floating-point"],settings:{foreground:"#ef9f76"}},{scope:["keyword","keyword.operator.word","keyword.operator.new","variable.language.super","support.type.primitive","storage.type","storage.modifier","punctuation.definition.keyword"],settings:{fontStyle:"",foreground:"#ca9ee6"}},{scope:"entity.name.tag.documentation",settings:{foreground:"#ca9ee6"}},{scope:["keyword.operator","punctuation.accessor","punctuation.definition.generic","meta.function.closure punctuation.section.parameters","punctuation.definition.tag","punctuation.separator.key-value"],settings:{foreground:"#81c8be"}},{scope:["entity.name.function","meta.function-call.method","support.function","support.function.misc","variable.function"],settings:{fontStyle:"italic",foreground:"#8caaee"}},{scope:["entity.name.class","entity.other.inherited-class","support.class","meta.function-call.constructor","entity.name.struct"],settings:{fontStyle:"italic",foreground:"#e5c890"}},{scope:"entity.name.enum",settings:{fontStyle:"italic",foreground:"#e5c890"}},{scope:["meta.enum variable.other.readwrite","variable.other.enummember"],settings:{foreground:"#81c8be"}},{scope:"meta.property.object",settings:{foreground:"#81c8be"}},{scope:["meta.type","meta.type-alias","support.type","entity.name.type"],settings:{fontStyle:"italic",foreground:"#e5c890"}},{scope:["meta.annotation variable.function","meta.annotation variable.annotation.function","meta.annotation punctuation.definition.annotation","meta.decorator","punctuation.decorator"],settings:{foreground:"#ef9f76"}},{scope:["variable.parameter","meta.function.parameters"],settings:{fontStyle:"italic",foreground:"#ea999c"}},{scope:["constant.language","support.function.builtin"],settings:{foreground:"#e78284"}},{scope:"entity.other.attribute-name.documentation",settings:{foreground:"#e78284"}},{scope:["keyword.control.directive","punctuation.definition.directive"],settings:{foreground:"#e5c890"}},{scope:"punctuation.definition.typeparameters",settings:{foreground:"#99d1db"}},{scope:"entity.name.namespace",settings:{foreground:"#e5c890"}},{scope:"support.type.property-name.css",settings:{fontStyle:"",foreground:"#8caaee"}},{scope:["variable.language.this","variable.language.this punctuation.definition.variable"],settings:{foreground:"#e78284"}},{scope:"variable.object.property",settings:{foreground:"#c6d0f5"}},{scope:["string.template variable","string variable"],settings:{foreground:"#c6d0f5"}},{scope:"keyword.operator.new",settings:{fontStyle:"bold"}},{scope:"storage.modifier.specifier.extern.cpp",settings:{foreground:"#ca9ee6"}},{scope:["entity.name.scope-resolution.template.call.cpp","entity.name.scope-resolution.parameter.cpp","entity.name.scope-resolution.cpp","entity.name.scope-resolution.function.definition.cpp"],settings:{foreground:"#e5c890"}},{scope:"storage.type.class.doxygen",settings:{fontStyle:""}},{scope:["storage.modifier.reference.cpp"],settings:{foreground:"#81c8be"}},{scope:"meta.interpolation.cs",settings:{foreground:"#c6d0f5"}},{scope:"comment.block.documentation.cs",settings:{foreground:"#c6d0f5"}},{scope:["source.css entity.other.attribute-name.class.css","entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css"],settings:{foreground:"#e5c890"}},{scope:"punctuation.separator.operator.css",settings:{foreground:"#81c8be"}},{scope:"source.css entity.other.attribute-name.pseudo-class",settings:{foreground:"#81c8be"}},{scope:"source.css constant.other.unicode-range",settings:{foreground:"#ef9f76"}},{scope:"source.css variable.parameter.url",settings:{fontStyle:"",foreground:"#a6d189"}},{scope:["support.type.vendored.property-name"],settings:{foreground:"#99d1db"}},{scope:["source.css meta.property-value variable","source.css meta.property-value variable.other.less","source.css meta.property-value variable.other.less punctuation.definition.variable.less","meta.definition.variable.scss"],settings:{foreground:"#ea999c"}},{scope:["source.css meta.property-list variable","meta.property-list variable.other.less","meta.property-list variable.other.less punctuation.definition.variable.less"],settings:{foreground:"#8caaee"}},{scope:"keyword.other.unit.percentage.css",settings:{foreground:"#ef9f76"}},{scope:"source.css meta.attribute-selector",settings:{foreground:"#a6d189"}},{scope:["keyword.other.definition.ini","punctuation.support.type.property-name.json","support.type.property-name.json","punctuation.support.type.property-name.toml","support.type.property-name.toml","entity.name.tag.yaml","punctuation.support.type.property-name.yaml","support.type.property-name.yaml"],settings:{fontStyle:"",foreground:"#8caaee"}},{scope:["constant.language.json","constant.language.yaml"],settings:{foreground:"#ef9f76"}},{scope:["entity.name.type.anchor.yaml","variable.other.alias.yaml"],settings:{fontStyle:"",foreground:"#e5c890"}},{scope:["support.type.property-name.table","entity.name.section.group-title.ini"],settings:{foreground:"#e5c890"}},{scope:"constant.other.time.datetime.offset.toml",settings:{foreground:"#f4b8e4"}},{scope:["punctuation.definition.anchor.yaml","punctuation.definition.alias.yaml"],settings:{foreground:"#f4b8e4"}},{scope:"entity.other.document.begin.yaml",settings:{foreground:"#f4b8e4"}},{scope:"markup.changed.diff",settings:{foreground:"#ef9f76"}},{scope:["meta.diff.header.from-file","meta.diff.header.to-file","punctuation.definition.from-file.diff","punctuation.definition.to-file.diff"],settings:{foreground:"#8caaee"}},{scope:"markup.inserted.diff",settings:{foreground:"#a6d189"}},{scope:"markup.deleted.diff",settings:{foreground:"#e78284"}},{scope:["variable.other.env"],settings:{foreground:"#8caaee"}},{scope:["string.quoted variable.other.env"],settings:{foreground:"#c6d0f5"}},{scope:"support.function.builtin.gdscript",settings:{foreground:"#8caaee"}},{scope:"constant.language.gdscript",settings:{foreground:"#ef9f76"}},{scope:"comment meta.annotation.go",settings:{foreground:"#ea999c"}},{scope:"comment meta.annotation.parameters.go",settings:{foreground:"#ef9f76"}},{scope:"constant.language.go",settings:{foreground:"#ef9f76"}},{scope:"variable.graphql",settings:{foreground:"#c6d0f5"}},{scope:"string.unquoted.alias.graphql",settings:{foreground:"#eebebe"}},{scope:"constant.character.enum.graphql",settings:{foreground:"#81c8be"}},{scope:"meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql",settings:{foreground:"#eebebe"}},{scope:["keyword.other.doctype","meta.tag.sgml.doctype punctuation.definition.tag","meta.tag.metadata.doctype entity.name.tag","meta.tag.metadata.doctype punctuation.definition.tag"],settings:{foreground:"#ca9ee6"}},{scope:["entity.name.tag"],settings:{fontStyle:"",foreground:"#8caaee"}},{scope:["text.html constant.character.entity","text.html constant.character.entity punctuation","constant.character.entity.xml","constant.character.entity.xml punctuation","constant.character.entity.js.jsx","constant.charactger.entity.js.jsx punctuation","constant.character.entity.tsx","constant.character.entity.tsx punctuation"],settings:{foreground:"#e78284"}},{scope:["entity.other.attribute-name"],settings:{foreground:"#e5c890"}},{scope:["support.class.component","support.class.component.jsx","support.class.component.tsx","support.class.component.vue"],settings:{fontStyle:"",foreground:"#f4b8e4"}},{scope:["punctuation.definition.annotation","storage.type.annotation"],settings:{foreground:"#ef9f76"}},{scope:"constant.other.enum.java",settings:{foreground:"#81c8be"}},{scope:"storage.modifier.import.java",settings:{foreground:"#c6d0f5"}},{scope:"comment.block.javadoc.java keyword.other.documentation.javadoc.java",settings:{fontStyle:""}},{scope:"meta.export variable.other.readwrite.js",settings:{foreground:"#ea999c"}},{scope:["variable.other.constant.js","variable.other.constant.ts","variable.other.property.js","variable.other.property.ts"],settings:{foreground:"#c6d0f5"}},{scope:["variable.other.jsdoc","comment.block.documentation variable.other"],settings:{fontStyle:"",foreground:"#ea999c"}},{scope:"storage.type.class.jsdoc",settings:{fontStyle:""}},{scope:"support.type.object.console.js",settings:{foreground:"#c6d0f5"}},{scope:["support.constant.node","support.type.object.module.js"],settings:{foreground:"#ca9ee6"}},{scope:"storage.modifier.implements",settings:{foreground:"#ca9ee6"}},{scope:["constant.language.null.js","constant.language.null.ts","constant.language.undefined.js","constant.language.undefined.ts","support.type.builtin.ts"],settings:{foreground:"#ca9ee6"}},{scope:"variable.parameter.generic",settings:{foreground:"#e5c890"}},{scope:["keyword.declaration.function.arrow.js","storage.type.function.arrow.ts"],settings:{foreground:"#81c8be"}},{scope:"punctuation.decorator.ts",settings:{fontStyle:"italic",foreground:"#8caaee"}},{scope:["keyword.operator.expression.in.js","keyword.operator.expression.in.ts","keyword.operator.expression.infer.ts","keyword.operator.expression.instanceof.js","keyword.operator.expression.instanceof.ts","keyword.operator.expression.is","keyword.operator.expression.keyof.ts","keyword.operator.expression.of.js","keyword.operator.expression.of.ts","keyword.operator.expression.typeof.ts"],settings:{foreground:"#ca9ee6"}},{scope:"support.function.macro.julia",settings:{fontStyle:"italic",foreground:"#81c8be"}},{scope:"constant.language.julia",settings:{foreground:"#ef9f76"}},{scope:"constant.other.symbol.julia",settings:{foreground:"#ea999c"}},{scope:"text.tex keyword.control.preamble",settings:{foreground:"#81c8be"}},{scope:"text.tex support.function.be",settings:{foreground:"#99d1db"}},{scope:"constant.other.general.math.tex",settings:{foreground:"#eebebe"}},{scope:"comment.line.double-dash.documentation.lua storage.type.annotation.lua",settings:{fontStyle:"",foreground:"#ca9ee6"}},{scope:["comment.line.double-dash.documentation.lua entity.name.variable.lua","comment.line.double-dash.documentation.lua variable.lua"],settings:{foreground:"#c6d0f5"}},{scope:["heading.1.markdown punctuation.definition.heading.markdown","heading.1.markdown","heading.1.quarto punctuation.definition.heading.quarto","heading.1.quarto","markup.heading.atx.1.mdx","markup.heading.atx.1.mdx punctuation.definition.heading.mdx","markup.heading.setext.1.markdown","markup.heading.heading-0.asciidoc"],settings:{foreground:"#e78284"}},{scope:["heading.2.markdown punctuation.definition.heading.markdown","heading.2.markdown","heading.2.quarto punctuation.definition.heading.quarto","heading.2.quarto","markup.heading.atx.2.mdx","markup.heading.atx.2.mdx punctuation.definition.heading.mdx","markup.heading.setext.2.markdown","markup.heading.heading-1.asciidoc"],settings:{foreground:"#ef9f76"}},{scope:["heading.3.markdown punctuation.definition.heading.markdown","heading.3.markdown","heading.3.quarto punctuation.definition.heading.quarto","heading.3.quarto","markup.heading.atx.3.mdx","markup.heading.atx.3.mdx punctuation.definition.heading.mdx","markup.heading.heading-2.asciidoc"],settings:{foreground:"#e5c890"}},{scope:["heading.4.markdown punctuation.definition.heading.markdown","heading.4.markdown","heading.4.quarto punctuation.definition.heading.quarto","heading.4.quarto","markup.heading.atx.4.mdx","markup.heading.atx.4.mdx punctuation.definition.heading.mdx","markup.heading.heading-3.asciidoc"],settings:{foreground:"#a6d189"}},{scope:["heading.5.markdown punctuation.definition.heading.markdown","heading.5.markdown","heading.5.quarto punctuation.definition.heading.quarto","heading.5.quarto","markup.heading.atx.5.mdx","markup.heading.atx.5.mdx punctuation.definition.heading.mdx","markup.heading.heading-4.asciidoc"],settings:{foreground:"#8caaee"}},{scope:["heading.6.markdown punctuation.definition.heading.markdown","heading.6.markdown","heading.6.quarto punctuation.definition.heading.quarto","heading.6.quarto","markup.heading.atx.6.mdx","markup.heading.atx.6.mdx punctuation.definition.heading.mdx","markup.heading.heading-5.asciidoc"],settings:{foreground:"#ca9ee6"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#e78284"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#e78284"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough",foreground:"#a5adce"}},{scope:["punctuation.definition.link","markup.underline.link"],settings:{foreground:"#8caaee"}},{scope:["text.html.markdown punctuation.definition.link.title","text.html.quarto punctuation.definition.link.title","string.other.link.title.markdown","string.other.link.title.quarto","markup.link","punctuation.definition.constant.markdown","punctuation.definition.constant.quarto","constant.other.reference.link.markdown","constant.other.reference.link.quarto","markup.substitution.attribute-reference"],settings:{foreground:"#babbf1"}},{scope:["punctuation.definition.raw.markdown","punctuation.definition.raw.quarto","markup.inline.raw.string.markdown","markup.inline.raw.string.quarto","markup.raw.block.markdown","markup.raw.block.quarto"],settings:{foreground:"#a6d189"}},{scope:"fenced_code.block.language",settings:{foreground:"#99d1db"}},{scope:["markup.fenced_code.block punctuation.definition","markup.raw support.asciidoc"],settings:{foreground:"#949cbb"}},{scope:["markup.quote","punctuation.definition.quote.begin"],settings:{foreground:"#f4b8e4"}},{scope:"meta.separator.markdown",settings:{foreground:"#81c8be"}},{scope:["punctuation.definition.list.begin.markdown","punctuation.definition.list.begin.quarto","markup.list.bullet"],settings:{foreground:"#81c8be"}},{scope:"markup.heading.quarto",settings:{fontStyle:"bold"}},{scope:["entity.other.attribute-name.multipart.nix","entity.other.attribute-name.single.nix"],settings:{foreground:"#8caaee"}},{scope:"variable.parameter.name.nix",settings:{fontStyle:"",foreground:"#c6d0f5"}},{scope:"meta.embedded variable.parameter.name.nix",settings:{fontStyle:"",foreground:"#babbf1"}},{scope:"string.unquoted.path.nix",settings:{fontStyle:"",foreground:"#f4b8e4"}},{scope:["support.attribute.builtin","meta.attribute.php"],settings:{foreground:"#e5c890"}},{scope:"meta.function.parameters.php punctuation.definition.variable.php",settings:{foreground:"#ea999c"}},{scope:"constant.language.php",settings:{foreground:"#ca9ee6"}},{scope:"text.html.php support.function",settings:{foreground:"#99d1db"}},{scope:"keyword.other.phpdoc.php",settings:{fontStyle:""}},{scope:["support.variable.magic.python","meta.function-call.arguments.python"],settings:{foreground:"#c6d0f5"}},{scope:["support.function.magic.python"],settings:{fontStyle:"italic",foreground:"#99d1db"}},{scope:["variable.parameter.function.language.special.self.python","variable.language.special.self.python"],settings:{fontStyle:"italic",foreground:"#e78284"}},{scope:["keyword.control.flow.python","keyword.operator.logical.python"],settings:{foreground:"#ca9ee6"}},{scope:"storage.type.function.python",settings:{foreground:"#ca9ee6"}},{scope:["support.token.decorator.python","meta.function.decorator.identifier.python"],settings:{foreground:"#99d1db"}},{scope:["meta.function-call.python"],settings:{foreground:"#8caaee"}},{scope:["entity.name.function.decorator.python","punctuation.definition.decorator.python"],settings:{fontStyle:"italic",foreground:"#ef9f76"}},{scope:"constant.character.format.placeholder.other.python",settings:{foreground:"#f4b8e4"}},{scope:["support.type.exception.python","support.function.builtin.python"],settings:{foreground:"#ef9f76"}},{scope:["support.type.python"],settings:{foreground:"#ef9f76"}},{scope:"constant.language.python",settings:{foreground:"#ca9ee6"}},{scope:["meta.indexed-name.python","meta.item-access.python"],settings:{fontStyle:"italic",foreground:"#ea999c"}},{scope:"storage.type.string.python",settings:{fontStyle:"italic",foreground:"#a6d189"}},{scope:"meta.function.parameters.python",settings:{fontStyle:""}},{scope:["string.regexp punctuation.definition.string.begin","string.regexp punctuation.definition.string.end"],settings:{foreground:"#f4b8e4"}},{scope:"keyword.control.anchor.regexp",settings:{foreground:"#ca9ee6"}},{scope:"string.regexp.ts",settings:{foreground:"#c6d0f5"}},{scope:["punctuation.definition.group.regexp","keyword.other.back-reference.regexp"],settings:{foreground:"#a6d189"}},{scope:"punctuation.definition.character-class.regexp",settings:{foreground:"#e5c890"}},{scope:"constant.other.character-class.regexp",settings:{foreground:"#f4b8e4"}},{scope:"constant.other.character-class.range.regexp",settings:{foreground:"#f2d5cf"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#81c8be"}},{scope:"constant.character.numeric.regexp",settings:{foreground:"#ef9f76"}},{scope:["punctuation.definition.group.no-capture.regexp","meta.assertion.look-ahead.regexp","meta.assertion.negative-look-ahead.regexp"],settings:{foreground:"#8caaee"}},{scope:["meta.annotation.rust","meta.annotation.rust punctuation","meta.attribute.rust","punctuation.definition.attribute.rust"],settings:{fontStyle:"italic",foreground:"#e5c890"}},{scope:["meta.attribute.rust string.quoted.double.rust","meta.attribute.rust string.quoted.single.char.rust"],settings:{fontStyle:""}},{scope:["entity.name.function.macro.rules.rust","storage.type.module.rust","storage.modifier.rust","storage.type.struct.rust","storage.type.enum.rust","storage.type.trait.rust","storage.type.union.rust","storage.type.impl.rust","storage.type.rust","storage.type.function.rust","storage.type.type.rust"],settings:{fontStyle:"",foreground:"#ca9ee6"}},{scope:"entity.name.type.numeric.rust",settings:{fontStyle:"",foreground:"#ca9ee6"}},{scope:"meta.generic.rust",settings:{foreground:"#ef9f76"}},{scope:"entity.name.impl.rust",settings:{fontStyle:"italic",foreground:"#e5c890"}},{scope:"entity.name.module.rust",settings:{foreground:"#ef9f76"}},{scope:"entity.name.trait.rust",settings:{fontStyle:"italic",foreground:"#e5c890"}},{scope:"storage.type.source.rust",settings:{foreground:"#e5c890"}},{scope:"entity.name.union.rust",settings:{foreground:"#e5c890"}},{scope:"meta.enum.rust storage.type.source.rust",settings:{foreground:"#81c8be"}},{scope:["support.macro.rust","meta.macro.rust support.function.rust","entity.name.function.macro.rust"],settings:{fontStyle:"italic",foreground:"#8caaee"}},{scope:["storage.modifier.lifetime.rust","entity.name.type.lifetime"],settings:{fontStyle:"italic",foreground:"#8caaee"}},{scope:"string.quoted.double.rust constant.other.placeholder.rust",settings:{foreground:"#f4b8e4"}},{scope:"meta.function.return-type.rust meta.generic.rust storage.type.rust",settings:{foreground:"#c6d0f5"}},{scope:"meta.function.call.rust",settings:{foreground:"#8caaee"}},{scope:"punctuation.brackets.angle.rust",settings:{foreground:"#99d1db"}},{scope:"constant.other.caps.rust",settings:{foreground:"#ef9f76"}},{scope:["meta.function.definition.rust variable.other.rust"],settings:{foreground:"#ea999c"}},{scope:"meta.function.call.rust variable.other.rust",settings:{foreground:"#c6d0f5"}},{scope:"variable.language.self.rust",settings:{foreground:"#e78284"}},{scope:["variable.other.metavariable.name.rust","meta.macro.metavariable.rust keyword.operator.macro.dollar.rust"],settings:{foreground:"#f4b8e4"}},{scope:["comment.line.shebang","comment.line.shebang punctuation.definition.comment","comment.line.shebang","punctuation.definition.comment.shebang.shell","meta.shebang.shell"],settings:{fontStyle:"italic",foreground:"#f4b8e4"}},{scope:"comment.line.shebang constant.language",settings:{fontStyle:"italic",foreground:"#81c8be"}},{scope:["meta.function-call.arguments.shell punctuation.definition.variable.shell","meta.function-call.arguments.shell punctuation.section.interpolation","meta.function-call.arguments.shell punctuation.definition.variable.shell","meta.function-call.arguments.shell punctuation.section.interpolation"],settings:{foreground:"#e78284"}},{scope:"meta.string meta.interpolation.parameter.shell variable.other.readwrite",settings:{fontStyle:"italic",foreground:"#ef9f76"}},{scope:["source.shell punctuation.section.interpolation","punctuation.definition.evaluation.backticks.shell"],settings:{foreground:"#81c8be"}},{scope:"entity.name.tag.heredoc.shell",settings:{foreground:"#ca9ee6"}},{scope:"string.quoted.double.shell variable.other.normal.shell",settings:{foreground:"#c6d0f5"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/catppuccin-latte.BYdKNJ10.js b/assets/chunks/catppuccin-latte.BYdKNJ10.js new file mode 100644 index 000000000..c5d9dc675 --- /dev/null +++ b/assets/chunks/catppuccin-latte.BYdKNJ10.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBackground":"#00000000","activityBar.activeBorder":"#00000000","activityBar.activeFocusBorder":"#00000000","activityBar.background":"#dce0e8","activityBar.border":"#00000000","activityBar.dropBorder":"#8839ef33","activityBar.foreground":"#8839ef","activityBar.inactiveForeground":"#9ca0b0","activityBarBadge.background":"#8839ef","activityBarBadge.foreground":"#dce0e8","activityBarTop.activeBorder":"#00000000","activityBarTop.dropBorder":"#8839ef33","activityBarTop.foreground":"#8839ef","activityBarTop.inactiveForeground":"#9ca0b0","badge.background":"#bcc0cc","badge.foreground":"#4c4f69","banner.background":"#bcc0cc","banner.foreground":"#4c4f69","banner.iconForeground":"#4c4f69","breadcrumb.activeSelectionForeground":"#8839ef","breadcrumb.background":"#eff1f5","breadcrumb.focusForeground":"#8839ef","breadcrumb.foreground":"#4c4f69cc","breadcrumbPicker.background":"#e6e9ef","button.background":"#8839ef","button.border":"#00000000","button.foreground":"#dce0e8","button.hoverBackground":"#9c5af2","button.secondaryBackground":"#acb0be","button.secondaryBorder":"#8839ef","button.secondaryForeground":"#4c4f69","button.secondaryHoverBackground":"#c0c3ce","button.separator":"#00000000","charts.blue":"#1e66f5","charts.foreground":"#4c4f69","charts.green":"#40a02b","charts.lines":"#5c5f77","charts.orange":"#fe640b","charts.purple":"#8839ef","charts.red":"#d20f39","charts.yellow":"#df8e1d","checkbox.background":"#bcc0cc","checkbox.border":"#00000000","checkbox.foreground":"#8839ef","commandCenter.activeBackground":"#acb0be33","commandCenter.activeBorder":"#8839ef","commandCenter.activeForeground":"#8839ef","commandCenter.background":"#e6e9ef","commandCenter.border":"#00000000","commandCenter.foreground":"#5c5f77","commandCenter.inactiveBorder":"#00000000","commandCenter.inactiveForeground":"#5c5f77","debugConsole.errorForeground":"#d20f39","debugConsole.infoForeground":"#1e66f5","debugConsole.sourceForeground":"#dc8a78","debugConsole.warningForeground":"#fe640b","debugConsoleInputIcon.foreground":"#4c4f69","debugExceptionWidget.background":"#dce0e8","debugExceptionWidget.border":"#8839ef","debugIcon.breakpointCurrentStackframeForeground":"#acb0be","debugIcon.breakpointDisabledForeground":"#d20f3999","debugIcon.breakpointForeground":"#d20f39","debugIcon.breakpointStackframeForeground":"#acb0be","debugIcon.breakpointUnverifiedForeground":"#bf607c","debugIcon.continueForeground":"#40a02b","debugIcon.disconnectForeground":"#acb0be","debugIcon.pauseForeground":"#1e66f5","debugIcon.restartForeground":"#179299","debugIcon.startForeground":"#40a02b","debugIcon.stepBackForeground":"#acb0be","debugIcon.stepIntoForeground":"#4c4f69","debugIcon.stepOutForeground":"#4c4f69","debugIcon.stepOverForeground":"#8839ef","debugIcon.stopForeground":"#d20f39","debugTokenExpression.boolean":"#8839ef","debugTokenExpression.error":"#d20f39","debugTokenExpression.number":"#fe640b","debugTokenExpression.string":"#40a02b","debugToolBar.background":"#dce0e8","debugToolBar.border":"#00000000",descriptionForeground:"#4c4f69","diffEditor.border":"#acb0be","diffEditor.diagonalFill":"#acb0be99","diffEditor.insertedLineBackground":"#40a02b26","diffEditor.insertedTextBackground":"#40a02b1a","diffEditor.removedLineBackground":"#d20f3926","diffEditor.removedTextBackground":"#d20f391a","diffEditorOverview.insertedForeground":"#40a02bcc","diffEditorOverview.removedForeground":"#d20f39cc",disabledForeground:"#6c6f85","dropdown.background":"#e6e9ef","dropdown.border":"#8839ef","dropdown.foreground":"#4c4f69","dropdown.listBackground":"#acb0be","editor.background":"#eff1f5","editor.findMatchBackground":"#e6adbd","editor.findMatchBorder":"#d20f3933","editor.findMatchHighlightBackground":"#a9daf0","editor.findMatchHighlightBorder":"#04a5e533","editor.findRangeHighlightBackground":"#a9daf0","editor.findRangeHighlightBorder":"#04a5e533","editor.focusedStackFrameHighlightBackground":"#40a02b26","editor.foldBackground":"#04a5e540","editor.foreground":"#4c4f69","editor.hoverHighlightBackground":"#04a5e540","editor.lineHighlightBackground":"#4c4f6912","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#04a5e540","editor.rangeHighlightBorder":"#00000000","editor.selectionBackground":"#7c7f934d","editor.selectionHighlightBackground":"#7c7f9333","editor.selectionHighlightBorder":"#7c7f9333","editor.stackFrameHighlightBackground":"#df8e1d26","editor.wordHighlightBackground":"#7c7f9333","editorBracketHighlight.foreground1":"#d20f39","editorBracketHighlight.foreground2":"#fe640b","editorBracketHighlight.foreground3":"#df8e1d","editorBracketHighlight.foreground4":"#40a02b","editorBracketHighlight.foreground5":"#209fb5","editorBracketHighlight.foreground6":"#8839ef","editorBracketHighlight.unexpectedBracket.foreground":"#e64553","editorBracketMatch.background":"#7c7f931a","editorBracketMatch.border":"#7c7f93","editorCodeLens.foreground":"#8c8fa1","editorCursor.background":"#eff1f5","editorCursor.foreground":"#dc8a78","editorError.background":"#00000000","editorError.border":"#00000000","editorError.foreground":"#d20f39","editorGroup.border":"#acb0be","editorGroup.dropBackground":"#8839ef33","editorGroup.emptyBackground":"#eff1f5","editorGroupHeader.tabsBackground":"#dce0e8","editorGutter.addedBackground":"#40a02b","editorGutter.background":"#eff1f5","editorGutter.commentRangeForeground":"#7c7f93","editorGutter.deletedBackground":"#d20f39","editorGutter.foldingControlForeground":"#7c7f93","editorGutter.modifiedBackground":"#df8e1d","editorHoverWidget.background":"#e6e9ef","editorHoverWidget.border":"#acb0be","editorHoverWidget.foreground":"#4c4f69","editorIndentGuide.activeBackground":"#acb0be","editorIndentGuide.background":"#bcc0cc","editorInfo.background":"#00000000","editorInfo.border":"#00000000","editorInfo.foreground":"#1e66f5","editorInlayHint.background":"#e6e9efbf","editorInlayHint.foreground":"#acb0be","editorInlayHint.parameterBackground":"#e6e9efbf","editorInlayHint.parameterForeground":"#6c6f85","editorInlayHint.typeBackground":"#e6e9efbf","editorInlayHint.typeForeground":"#5c5f77","editorLightBulb.foreground":"#df8e1d","editorLineNumber.activeForeground":"#8839ef","editorLineNumber.foreground":"#8c8fa1","editorLink.activeForeground":"#8839ef","editorMarkerNavigation.background":"#e6e9ef","editorMarkerNavigationError.background":"#d20f39","editorMarkerNavigationInfo.background":"#1e66f5","editorMarkerNavigationWarning.background":"#fe640b","editorOverviewRuler.background":"#e6e9ef","editorOverviewRuler.border":"#4c4f6912","editorOverviewRuler.modifiedForeground":"#df8e1d","editorRuler.foreground":"#acb0be","editorStickyScrollHover.background":"#ccd0da","editorSuggestWidget.background":"#e6e9ef","editorSuggestWidget.border":"#acb0be","editorSuggestWidget.foreground":"#4c4f69","editorSuggestWidget.highlightForeground":"#8839ef","editorSuggestWidget.selectedBackground":"#ccd0da","editorWarning.background":"#00000000","editorWarning.border":"#00000000","editorWarning.foreground":"#fe640b","editorWhitespace.foreground":"#7c7f9366","editorWidget.background":"#e6e9ef","editorWidget.foreground":"#4c4f69","editorWidget.resizeBorder":"#acb0be",errorForeground:"#d20f39","errorLens.errorBackground":"#d20f3926","errorLens.errorBackgroundLight":"#d20f3926","errorLens.errorForeground":"#d20f39","errorLens.errorForegroundLight":"#d20f39","errorLens.errorMessageBackground":"#d20f3926","errorLens.hintBackground":"#40a02b26","errorLens.hintBackgroundLight":"#40a02b26","errorLens.hintForeground":"#40a02b","errorLens.hintForegroundLight":"#40a02b","errorLens.hintMessageBackground":"#40a02b26","errorLens.infoBackground":"#1e66f526","errorLens.infoBackgroundLight":"#1e66f526","errorLens.infoForeground":"#1e66f5","errorLens.infoForegroundLight":"#1e66f5","errorLens.infoMessageBackground":"#1e66f526","errorLens.statusBarErrorForeground":"#d20f39","errorLens.statusBarHintForeground":"#40a02b","errorLens.statusBarIconErrorForeground":"#d20f39","errorLens.statusBarIconWarningForeground":"#fe640b","errorLens.statusBarInfoForeground":"#1e66f5","errorLens.statusBarWarningForeground":"#fe640b","errorLens.warningBackground":"#fe640b26","errorLens.warningBackgroundLight":"#fe640b26","errorLens.warningForeground":"#fe640b","errorLens.warningForegroundLight":"#fe640b","errorLens.warningMessageBackground":"#fe640b26","extensionBadge.remoteBackground":"#1e66f5","extensionBadge.remoteForeground":"#dce0e8","extensionButton.prominentBackground":"#8839ef","extensionButton.prominentForeground":"#dce0e8","extensionButton.prominentHoverBackground":"#9c5af2","extensionButton.separator":"#eff1f5","extensionIcon.preReleaseForeground":"#acb0be","extensionIcon.sponsorForeground":"#ea76cb","extensionIcon.starForeground":"#df8e1d","extensionIcon.verifiedForeground":"#40a02b",focusBorder:"#8839ef",foreground:"#4c4f69","gitDecoration.addedResourceForeground":"#40a02b","gitDecoration.conflictingResourceForeground":"#8839ef","gitDecoration.deletedResourceForeground":"#d20f39","gitDecoration.ignoredResourceForeground":"#9ca0b0","gitDecoration.modifiedResourceForeground":"#df8e1d","gitDecoration.stageDeletedResourceForeground":"#d20f39","gitDecoration.stageModifiedResourceForeground":"#df8e1d","gitDecoration.submoduleResourceForeground":"#1e66f5","gitDecoration.untrackedResourceForeground":"#40a02b","gitlens.closedAutolinkedIssueIconColor":"#8839ef","gitlens.closedPullRequestIconColor":"#d20f39","gitlens.decorations.branchAheadForegroundColor":"#40a02b","gitlens.decorations.branchBehindForegroundColor":"#fe640b","gitlens.decorations.branchDivergedForegroundColor":"#df8e1d","gitlens.decorations.branchMissingUpstreamForegroundColor":"#fe640b","gitlens.decorations.branchUnpublishedForegroundColor":"#40a02b","gitlens.decorations.statusMergingOrRebasingConflictForegroundColor":"#e64553","gitlens.decorations.statusMergingOrRebasingForegroundColor":"#df8e1d","gitlens.decorations.workspaceCurrentForegroundColor":"#8839ef","gitlens.decorations.workspaceRepoMissingForegroundColor":"#6c6f85","gitlens.decorations.workspaceRepoOpenForegroundColor":"#8839ef","gitlens.decorations.worktreeHasUncommittedChangesForegroundColor":"#fe640b","gitlens.decorations.worktreeMissingForegroundColor":"#e64553","gitlens.graphChangesColumnAddedColor":"#40a02b","gitlens.graphChangesColumnDeletedColor":"#d20f39","gitlens.graphLane10Color":"#ea76cb","gitlens.graphLane1Color":"#8839ef","gitlens.graphLane2Color":"#df8e1d","gitlens.graphLane3Color":"#1e66f5","gitlens.graphLane4Color":"#dd7878","gitlens.graphLane5Color":"#40a02b","gitlens.graphLane6Color":"#7287fd","gitlens.graphLane7Color":"#dc8a78","gitlens.graphLane8Color":"#d20f39","gitlens.graphLane9Color":"#179299","gitlens.graphMinimapMarkerHeadColor":"#40a02b","gitlens.graphMinimapMarkerHighlightsColor":"#df8e1d","gitlens.graphMinimapMarkerLocalBranchesColor":"#1e66f5","gitlens.graphMinimapMarkerRemoteBranchesColor":"#0b57ef","gitlens.graphMinimapMarkerStashesColor":"#8839ef","gitlens.graphMinimapMarkerTagsColor":"#dd7878","gitlens.graphMinimapMarkerUpstreamColor":"#388c26","gitlens.graphScrollMarkerHeadColor":"#40a02b","gitlens.graphScrollMarkerHighlightsColor":"#df8e1d","gitlens.graphScrollMarkerLocalBranchesColor":"#1e66f5","gitlens.graphScrollMarkerRemoteBranchesColor":"#0b57ef","gitlens.graphScrollMarkerStashesColor":"#8839ef","gitlens.graphScrollMarkerTagsColor":"#dd7878","gitlens.graphScrollMarkerUpstreamColor":"#388c26","gitlens.gutterBackgroundColor":"#ccd0da4d","gitlens.gutterForegroundColor":"#4c4f69","gitlens.gutterUncommittedForegroundColor":"#8839ef","gitlens.lineHighlightBackgroundColor":"#8839ef26","gitlens.lineHighlightOverviewRulerColor":"#8839efcc","gitlens.mergedPullRequestIconColor":"#8839ef","gitlens.openAutolinkedIssueIconColor":"#40a02b","gitlens.openPullRequestIconColor":"#40a02b","gitlens.trailingLineBackgroundColor":"#00000000","gitlens.trailingLineForegroundColor":"#4c4f694d","gitlens.unpublishedChangesIconColor":"#40a02b","gitlens.unpublishedCommitIconColor":"#40a02b","gitlens.unpulledChangesIconColor":"#fe640b","icon.foreground":"#8839ef","input.background":"#ccd0da","input.border":"#00000000","input.foreground":"#4c4f69","input.placeholderForeground":"#4c4f6973","inputOption.activeBackground":"#acb0be","inputOption.activeBorder":"#8839ef","inputOption.activeForeground":"#4c4f69","inputValidation.errorBackground":"#d20f39","inputValidation.errorBorder":"#dce0e833","inputValidation.errorForeground":"#dce0e8","inputValidation.infoBackground":"#1e66f5","inputValidation.infoBorder":"#dce0e833","inputValidation.infoForeground":"#dce0e8","inputValidation.warningBackground":"#fe640b","inputValidation.warningBorder":"#dce0e833","inputValidation.warningForeground":"#dce0e8","issues.closed":"#8839ef","issues.newIssueDecoration":"#dc8a78","issues.open":"#40a02b","list.activeSelectionBackground":"#ccd0da","list.activeSelectionForeground":"#4c4f69","list.dropBackground":"#8839ef33","list.focusAndSelectionBackground":"#bcc0cc","list.focusBackground":"#ccd0da","list.focusForeground":"#4c4f69","list.focusOutline":"#00000000","list.highlightForeground":"#8839ef","list.hoverBackground":"#ccd0da80","list.hoverForeground":"#4c4f69","list.inactiveSelectionBackground":"#ccd0da","list.inactiveSelectionForeground":"#4c4f69","list.warningForeground":"#fe640b","listFilterWidget.background":"#bcc0cc","listFilterWidget.noMatchesOutline":"#d20f39","listFilterWidget.outline":"#00000000","menu.background":"#eff1f5","menu.border":"#eff1f580","menu.foreground":"#4c4f69","menu.selectionBackground":"#acb0be","menu.selectionBorder":"#00000000","menu.selectionForeground":"#4c4f69","menu.separatorBackground":"#acb0be","menubar.selectionBackground":"#bcc0cc","menubar.selectionForeground":"#4c4f69","merge.commonContentBackground":"#bcc0cc","merge.commonHeaderBackground":"#acb0be","merge.currentContentBackground":"#40a02b33","merge.currentHeaderBackground":"#40a02b66","merge.incomingContentBackground":"#1e66f533","merge.incomingHeaderBackground":"#1e66f566","minimap.background":"#e6e9ef80","minimap.errorHighlight":"#d20f39bf","minimap.findMatchHighlight":"#04a5e54d","minimap.selectionHighlight":"#acb0bebf","minimap.selectionOccurrenceHighlight":"#acb0bebf","minimap.warningHighlight":"#fe640bbf","minimapGutter.addedBackground":"#40a02bbf","minimapGutter.deletedBackground":"#d20f39bf","minimapGutter.modifiedBackground":"#df8e1dbf","minimapSlider.activeBackground":"#8839ef99","minimapSlider.background":"#8839ef33","minimapSlider.hoverBackground":"#8839ef66","notificationCenter.border":"#8839ef","notificationCenterHeader.background":"#e6e9ef","notificationCenterHeader.foreground":"#4c4f69","notificationLink.foreground":"#1e66f5","notificationToast.border":"#8839ef","notifications.background":"#e6e9ef","notifications.border":"#8839ef","notifications.foreground":"#4c4f69","notificationsErrorIcon.foreground":"#d20f39","notificationsInfoIcon.foreground":"#1e66f5","notificationsWarningIcon.foreground":"#fe640b","panel.background":"#eff1f5","panel.border":"#acb0be","panelSection.border":"#acb0be","panelSection.dropBackground":"#8839ef33","panelTitle.activeBorder":"#8839ef","panelTitle.activeForeground":"#4c4f69","panelTitle.inactiveForeground":"#6c6f85","peekView.border":"#8839ef","peekViewEditor.background":"#e6e9ef","peekViewEditor.matchHighlightBackground":"#04a5e54d","peekViewEditor.matchHighlightBorder":"#00000000","peekViewEditorGutter.background":"#e6e9ef","peekViewResult.background":"#e6e9ef","peekViewResult.fileForeground":"#4c4f69","peekViewResult.lineForeground":"#4c4f69","peekViewResult.matchHighlightBackground":"#04a5e54d","peekViewResult.selectionBackground":"#ccd0da","peekViewResult.selectionForeground":"#4c4f69","peekViewTitle.background":"#eff1f5","peekViewTitleDescription.foreground":"#5c5f77b3","peekViewTitleLabel.foreground":"#4c4f69","pickerGroup.border":"#8839ef","pickerGroup.foreground":"#8839ef","problemsErrorIcon.foreground":"#d20f39","problemsInfoIcon.foreground":"#1e66f5","problemsWarningIcon.foreground":"#fe640b","progressBar.background":"#8839ef","pullRequests.closed":"#d20f39","pullRequests.draft":"#7c7f93","pullRequests.merged":"#8839ef","pullRequests.notification":"#4c4f69","pullRequests.open":"#40a02b","sash.hoverBorder":"#8839ef","scrollbar.shadow":"#dce0e8","scrollbarSlider.activeBackground":"#ccd0da66","scrollbarSlider.background":"#acb0be80","scrollbarSlider.hoverBackground":"#9ca0b0","selection.background":"#8839ef66","settings.dropdownBackground":"#bcc0cc","settings.dropdownListBorder":"#00000000","settings.focusedRowBackground":"#acb0be33","settings.headerForeground":"#4c4f69","settings.modifiedItemIndicator":"#8839ef","settings.numberInputBackground":"#bcc0cc","settings.numberInputBorder":"#00000000","settings.textInputBackground":"#bcc0cc","settings.textInputBorder":"#00000000","sideBar.background":"#e6e9ef","sideBar.border":"#00000000","sideBar.dropBackground":"#8839ef33","sideBar.foreground":"#4c4f69","sideBarSectionHeader.background":"#e6e9ef","sideBarSectionHeader.foreground":"#4c4f69","sideBarTitle.foreground":"#8839ef","statusBar.background":"#dce0e8","statusBar.border":"#00000000","statusBar.debuggingBackground":"#fe640b","statusBar.debuggingBorder":"#00000000","statusBar.debuggingForeground":"#dce0e8","statusBar.foreground":"#4c4f69","statusBar.noFolderBackground":"#dce0e8","statusBar.noFolderBorder":"#00000000","statusBar.noFolderForeground":"#4c4f69","statusBarItem.activeBackground":"#acb0be66","statusBarItem.errorBackground":"#00000000","statusBarItem.errorForeground":"#d20f39","statusBarItem.hoverBackground":"#acb0be33","statusBarItem.prominentBackground":"#00000000","statusBarItem.prominentForeground":"#8839ef","statusBarItem.prominentHoverBackground":"#acb0be33","statusBarItem.remoteBackground":"#1e66f5","statusBarItem.remoteForeground":"#dce0e8","statusBarItem.warningBackground":"#00000000","statusBarItem.warningForeground":"#fe640b","symbolIcon.arrayForeground":"#fe640b","symbolIcon.booleanForeground":"#8839ef","symbolIcon.classForeground":"#df8e1d","symbolIcon.colorForeground":"#ea76cb","symbolIcon.constantForeground":"#fe640b","symbolIcon.constructorForeground":"#7287fd","symbolIcon.enumeratorForeground":"#df8e1d","symbolIcon.enumeratorMemberForeground":"#df8e1d","symbolIcon.eventForeground":"#ea76cb","symbolIcon.fieldForeground":"#4c4f69","symbolIcon.fileForeground":"#8839ef","symbolIcon.folderForeground":"#8839ef","symbolIcon.functionForeground":"#1e66f5","symbolIcon.interfaceForeground":"#df8e1d","symbolIcon.keyForeground":"#179299","symbolIcon.keywordForeground":"#8839ef","symbolIcon.methodForeground":"#1e66f5","symbolIcon.moduleForeground":"#4c4f69","symbolIcon.namespaceForeground":"#df8e1d","symbolIcon.nullForeground":"#e64553","symbolIcon.numberForeground":"#fe640b","symbolIcon.objectForeground":"#df8e1d","symbolIcon.operatorForeground":"#179299","symbolIcon.packageForeground":"#dd7878","symbolIcon.propertyForeground":"#e64553","symbolIcon.referenceForeground":"#df8e1d","symbolIcon.snippetForeground":"#dd7878","symbolIcon.stringForeground":"#40a02b","symbolIcon.structForeground":"#179299","symbolIcon.textForeground":"#4c4f69","symbolIcon.typeParameterForeground":"#e64553","symbolIcon.unitForeground":"#4c4f69","symbolIcon.variableForeground":"#4c4f69","tab.activeBackground":"#eff1f5","tab.activeBorder":"#00000000","tab.activeBorderTop":"#8839ef","tab.activeForeground":"#8839ef","tab.activeModifiedBorder":"#df8e1d","tab.border":"#e6e9ef","tab.hoverBackground":"#ffffff","tab.hoverBorder":"#00000000","tab.hoverForeground":"#8839ef","tab.inactiveBackground":"#e6e9ef","tab.inactiveForeground":"#9ca0b0","tab.inactiveModifiedBorder":"#df8e1d4d","tab.lastPinnedBorder":"#8839ef","tab.unfocusedActiveBackground":"#e6e9ef","tab.unfocusedActiveBorder":"#00000000","tab.unfocusedActiveBorderTop":"#8839ef4d","tab.unfocusedInactiveBackground":"#d6dbe5","table.headerBackground":"#ccd0da","table.headerForeground":"#4c4f69","terminal.ansiBlack":"#bcc0cc","terminal.ansiBlue":"#1e66f5","terminal.ansiBrightBlack":"#6c6f85","terminal.ansiBrightBlue":"#1e66f5","terminal.ansiBrightCyan":"#04a5e5","terminal.ansiBrightGreen":"#40a02b","terminal.ansiBrightMagenta":"#ea76cb","terminal.ansiBrightRed":"#d20f39","terminal.ansiBrightWhite":"#5c5f77","terminal.ansiBrightYellow":"#df8e1d","terminal.ansiCyan":"#04a5e5","terminal.ansiGreen":"#40a02b","terminal.ansiMagenta":"#ea76cb","terminal.ansiRed":"#d20f39","terminal.ansiWhite":"#acb0be","terminal.ansiYellow":"#df8e1d","terminal.border":"#acb0be","terminal.dropBackground":"#8839ef33","terminal.foreground":"#4c4f69","terminal.inactiveSelectionBackground":"#acb0be80","terminal.selectionBackground":"#acb0be","terminal.tab.activeBorder":"#8839ef","terminalCommandDecoration.defaultBackground":"#acb0be","terminalCommandDecoration.errorBackground":"#d20f39","terminalCommandDecoration.successBackground":"#40a02b","terminalCursor.background":"#eff1f5","terminalCursor.foreground":"#dc8a78","textBlockQuote.background":"#e6e9ef","textBlockQuote.border":"#dce0e8","textCodeBlock.background":"#eff1f5","textLink.activeForeground":"#04a5e5","textLink.foreground":"#1e66f5","textPreformat.foreground":"#4c4f69","textSeparator.foreground":"#8839ef","titleBar.activeBackground":"#dce0e8","titleBar.activeForeground":"#4c4f69","titleBar.border":"#00000000","titleBar.inactiveBackground":"#dce0e8","titleBar.inactiveForeground":"#4c4f6980","tree.inactiveIndentGuidesStroke":"#bcc0cc","tree.indentGuidesStroke":"#7c7f93","walkThrough.embeddedEditorBackground":"#eff1f54d","welcomePage.progress.background":"#dce0e8","welcomePage.progress.foreground":"#8839ef","welcomePage.tileBackground":"#e6e9ef","widget.shadow":"#e6e9ef80","window.activeBorder":"#00000000","window.inactiveBorder":"#00000000"},displayName:"Catppuccin Latte",name:"catppuccin-latte",semanticHighlighting:!0,semanticTokenColors:{boolean:{foreground:"#fe640b"},"builtinAttribute.attribute.library:rust":{foreground:"#1e66f5"},"class.builtin:python":{foreground:"#8839ef"},"class:python":{foreground:"#df8e1d"},"constant.builtin.readonly:nix":{foreground:"#8839ef"},enumMember:{foreground:"#179299"},"function.decorator:python":{foreground:"#fe640b"},"generic.attribute:rust":{foreground:"#4c4f69"},heading:{foreground:"#d20f39"},number:{foreground:"#fe640b"},pol:{foreground:"#dd7878"},"property.readonly:javascript":{foreground:"#4c4f69"},"property.readonly:javascriptreact":{foreground:"#4c4f69"},"property.readonly:typescript":{foreground:"#4c4f69"},"property.readonly:typescriptreact":{foreground:"#4c4f69"},selfKeyword:{foreground:"#d20f39"},"text.emph":{fontStyle:"italic",foreground:"#d20f39"},"text.math":{foreground:"#dd7878"},"text.strong":{fontStyle:"bold",foreground:"#d20f39"},tomlArrayKey:{fontStyle:"",foreground:"#1e66f5"},tomlTableKey:{fontStyle:"",foreground:"#1e66f5"},"type.defaultLibrary:go":{foreground:"#8839ef"},"variable.defaultLibrary":{foreground:"#e64553"},"variable.readonly.defaultLibrary:go":{foreground:"#8839ef"},"variable.readonly:javascript":{foreground:"#4c4f69"},"variable.readonly:javascriptreact":{foreground:"#4c4f69"},"variable.readonly:scala":{foreground:"#4c4f69"},"variable.readonly:typescript":{foreground:"#4c4f69"},"variable.readonly:typescriptreact":{foreground:"#4c4f69"},"variable.typeHint:python":{foreground:"#df8e1d"}},tokenColors:[{scope:["text","source","variable.other.readwrite","punctuation.definition.variable"],settings:{foreground:"#4c4f69"}},{scope:"punctuation",settings:{fontStyle:"",foreground:"#7c7f93"}},{scope:["comment","punctuation.definition.comment"],settings:{fontStyle:"italic",foreground:"#9ca0b0"}},{scope:["string","punctuation.definition.string"],settings:{foreground:"#40a02b"}},{scope:"constant.character.escape",settings:{foreground:"#ea76cb"}},{scope:["constant.numeric","variable.other.constant","entity.name.constant","constant.language.boolean","constant.language.false","constant.language.true","keyword.other.unit.user-defined","keyword.other.unit.suffix.floating-point"],settings:{foreground:"#fe640b"}},{scope:["keyword","keyword.operator.word","keyword.operator.new","variable.language.super","support.type.primitive","storage.type","storage.modifier","punctuation.definition.keyword"],settings:{fontStyle:"",foreground:"#8839ef"}},{scope:"entity.name.tag.documentation",settings:{foreground:"#8839ef"}},{scope:["keyword.operator","punctuation.accessor","punctuation.definition.generic","meta.function.closure punctuation.section.parameters","punctuation.definition.tag","punctuation.separator.key-value"],settings:{foreground:"#179299"}},{scope:["entity.name.function","meta.function-call.method","support.function","support.function.misc","variable.function"],settings:{fontStyle:"italic",foreground:"#1e66f5"}},{scope:["entity.name.class","entity.other.inherited-class","support.class","meta.function-call.constructor","entity.name.struct"],settings:{fontStyle:"italic",foreground:"#df8e1d"}},{scope:"entity.name.enum",settings:{fontStyle:"italic",foreground:"#df8e1d"}},{scope:["meta.enum variable.other.readwrite","variable.other.enummember"],settings:{foreground:"#179299"}},{scope:"meta.property.object",settings:{foreground:"#179299"}},{scope:["meta.type","meta.type-alias","support.type","entity.name.type"],settings:{fontStyle:"italic",foreground:"#df8e1d"}},{scope:["meta.annotation variable.function","meta.annotation variable.annotation.function","meta.annotation punctuation.definition.annotation","meta.decorator","punctuation.decorator"],settings:{foreground:"#fe640b"}},{scope:["variable.parameter","meta.function.parameters"],settings:{fontStyle:"italic",foreground:"#e64553"}},{scope:["constant.language","support.function.builtin"],settings:{foreground:"#d20f39"}},{scope:"entity.other.attribute-name.documentation",settings:{foreground:"#d20f39"}},{scope:["keyword.control.directive","punctuation.definition.directive"],settings:{foreground:"#df8e1d"}},{scope:"punctuation.definition.typeparameters",settings:{foreground:"#04a5e5"}},{scope:"entity.name.namespace",settings:{foreground:"#df8e1d"}},{scope:"support.type.property-name.css",settings:{fontStyle:"",foreground:"#1e66f5"}},{scope:["variable.language.this","variable.language.this punctuation.definition.variable"],settings:{foreground:"#d20f39"}},{scope:"variable.object.property",settings:{foreground:"#4c4f69"}},{scope:["string.template variable","string variable"],settings:{foreground:"#4c4f69"}},{scope:"keyword.operator.new",settings:{fontStyle:"bold"}},{scope:"storage.modifier.specifier.extern.cpp",settings:{foreground:"#8839ef"}},{scope:["entity.name.scope-resolution.template.call.cpp","entity.name.scope-resolution.parameter.cpp","entity.name.scope-resolution.cpp","entity.name.scope-resolution.function.definition.cpp"],settings:{foreground:"#df8e1d"}},{scope:"storage.type.class.doxygen",settings:{fontStyle:""}},{scope:["storage.modifier.reference.cpp"],settings:{foreground:"#179299"}},{scope:"meta.interpolation.cs",settings:{foreground:"#4c4f69"}},{scope:"comment.block.documentation.cs",settings:{foreground:"#4c4f69"}},{scope:["source.css entity.other.attribute-name.class.css","entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css"],settings:{foreground:"#df8e1d"}},{scope:"punctuation.separator.operator.css",settings:{foreground:"#179299"}},{scope:"source.css entity.other.attribute-name.pseudo-class",settings:{foreground:"#179299"}},{scope:"source.css constant.other.unicode-range",settings:{foreground:"#fe640b"}},{scope:"source.css variable.parameter.url",settings:{fontStyle:"",foreground:"#40a02b"}},{scope:["support.type.vendored.property-name"],settings:{foreground:"#04a5e5"}},{scope:["source.css meta.property-value variable","source.css meta.property-value variable.other.less","source.css meta.property-value variable.other.less punctuation.definition.variable.less","meta.definition.variable.scss"],settings:{foreground:"#e64553"}},{scope:["source.css meta.property-list variable","meta.property-list variable.other.less","meta.property-list variable.other.less punctuation.definition.variable.less"],settings:{foreground:"#1e66f5"}},{scope:"keyword.other.unit.percentage.css",settings:{foreground:"#fe640b"}},{scope:"source.css meta.attribute-selector",settings:{foreground:"#40a02b"}},{scope:["keyword.other.definition.ini","punctuation.support.type.property-name.json","support.type.property-name.json","punctuation.support.type.property-name.toml","support.type.property-name.toml","entity.name.tag.yaml","punctuation.support.type.property-name.yaml","support.type.property-name.yaml"],settings:{fontStyle:"",foreground:"#1e66f5"}},{scope:["constant.language.json","constant.language.yaml"],settings:{foreground:"#fe640b"}},{scope:["entity.name.type.anchor.yaml","variable.other.alias.yaml"],settings:{fontStyle:"",foreground:"#df8e1d"}},{scope:["support.type.property-name.table","entity.name.section.group-title.ini"],settings:{foreground:"#df8e1d"}},{scope:"constant.other.time.datetime.offset.toml",settings:{foreground:"#ea76cb"}},{scope:["punctuation.definition.anchor.yaml","punctuation.definition.alias.yaml"],settings:{foreground:"#ea76cb"}},{scope:"entity.other.document.begin.yaml",settings:{foreground:"#ea76cb"}},{scope:"markup.changed.diff",settings:{foreground:"#fe640b"}},{scope:["meta.diff.header.from-file","meta.diff.header.to-file","punctuation.definition.from-file.diff","punctuation.definition.to-file.diff"],settings:{foreground:"#1e66f5"}},{scope:"markup.inserted.diff",settings:{foreground:"#40a02b"}},{scope:"markup.deleted.diff",settings:{foreground:"#d20f39"}},{scope:["variable.other.env"],settings:{foreground:"#1e66f5"}},{scope:["string.quoted variable.other.env"],settings:{foreground:"#4c4f69"}},{scope:"support.function.builtin.gdscript",settings:{foreground:"#1e66f5"}},{scope:"constant.language.gdscript",settings:{foreground:"#fe640b"}},{scope:"comment meta.annotation.go",settings:{foreground:"#e64553"}},{scope:"comment meta.annotation.parameters.go",settings:{foreground:"#fe640b"}},{scope:"constant.language.go",settings:{foreground:"#fe640b"}},{scope:"variable.graphql",settings:{foreground:"#4c4f69"}},{scope:"string.unquoted.alias.graphql",settings:{foreground:"#dd7878"}},{scope:"constant.character.enum.graphql",settings:{foreground:"#179299"}},{scope:"meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql",settings:{foreground:"#dd7878"}},{scope:["keyword.other.doctype","meta.tag.sgml.doctype punctuation.definition.tag","meta.tag.metadata.doctype entity.name.tag","meta.tag.metadata.doctype punctuation.definition.tag"],settings:{foreground:"#8839ef"}},{scope:["entity.name.tag"],settings:{fontStyle:"",foreground:"#1e66f5"}},{scope:["text.html constant.character.entity","text.html constant.character.entity punctuation","constant.character.entity.xml","constant.character.entity.xml punctuation","constant.character.entity.js.jsx","constant.charactger.entity.js.jsx punctuation","constant.character.entity.tsx","constant.character.entity.tsx punctuation"],settings:{foreground:"#d20f39"}},{scope:["entity.other.attribute-name"],settings:{foreground:"#df8e1d"}},{scope:["support.class.component","support.class.component.jsx","support.class.component.tsx","support.class.component.vue"],settings:{fontStyle:"",foreground:"#ea76cb"}},{scope:["punctuation.definition.annotation","storage.type.annotation"],settings:{foreground:"#fe640b"}},{scope:"constant.other.enum.java",settings:{foreground:"#179299"}},{scope:"storage.modifier.import.java",settings:{foreground:"#4c4f69"}},{scope:"comment.block.javadoc.java keyword.other.documentation.javadoc.java",settings:{fontStyle:""}},{scope:"meta.export variable.other.readwrite.js",settings:{foreground:"#e64553"}},{scope:["variable.other.constant.js","variable.other.constant.ts","variable.other.property.js","variable.other.property.ts"],settings:{foreground:"#4c4f69"}},{scope:["variable.other.jsdoc","comment.block.documentation variable.other"],settings:{fontStyle:"",foreground:"#e64553"}},{scope:"storage.type.class.jsdoc",settings:{fontStyle:""}},{scope:"support.type.object.console.js",settings:{foreground:"#4c4f69"}},{scope:["support.constant.node","support.type.object.module.js"],settings:{foreground:"#8839ef"}},{scope:"storage.modifier.implements",settings:{foreground:"#8839ef"}},{scope:["constant.language.null.js","constant.language.null.ts","constant.language.undefined.js","constant.language.undefined.ts","support.type.builtin.ts"],settings:{foreground:"#8839ef"}},{scope:"variable.parameter.generic",settings:{foreground:"#df8e1d"}},{scope:["keyword.declaration.function.arrow.js","storage.type.function.arrow.ts"],settings:{foreground:"#179299"}},{scope:"punctuation.decorator.ts",settings:{fontStyle:"italic",foreground:"#1e66f5"}},{scope:["keyword.operator.expression.in.js","keyword.operator.expression.in.ts","keyword.operator.expression.infer.ts","keyword.operator.expression.instanceof.js","keyword.operator.expression.instanceof.ts","keyword.operator.expression.is","keyword.operator.expression.keyof.ts","keyword.operator.expression.of.js","keyword.operator.expression.of.ts","keyword.operator.expression.typeof.ts"],settings:{foreground:"#8839ef"}},{scope:"support.function.macro.julia",settings:{fontStyle:"italic",foreground:"#179299"}},{scope:"constant.language.julia",settings:{foreground:"#fe640b"}},{scope:"constant.other.symbol.julia",settings:{foreground:"#e64553"}},{scope:"text.tex keyword.control.preamble",settings:{foreground:"#179299"}},{scope:"text.tex support.function.be",settings:{foreground:"#04a5e5"}},{scope:"constant.other.general.math.tex",settings:{foreground:"#dd7878"}},{scope:"comment.line.double-dash.documentation.lua storage.type.annotation.lua",settings:{fontStyle:"",foreground:"#8839ef"}},{scope:["comment.line.double-dash.documentation.lua entity.name.variable.lua","comment.line.double-dash.documentation.lua variable.lua"],settings:{foreground:"#4c4f69"}},{scope:["heading.1.markdown punctuation.definition.heading.markdown","heading.1.markdown","heading.1.quarto punctuation.definition.heading.quarto","heading.1.quarto","markup.heading.atx.1.mdx","markup.heading.atx.1.mdx punctuation.definition.heading.mdx","markup.heading.setext.1.markdown","markup.heading.heading-0.asciidoc"],settings:{foreground:"#d20f39"}},{scope:["heading.2.markdown punctuation.definition.heading.markdown","heading.2.markdown","heading.2.quarto punctuation.definition.heading.quarto","heading.2.quarto","markup.heading.atx.2.mdx","markup.heading.atx.2.mdx punctuation.definition.heading.mdx","markup.heading.setext.2.markdown","markup.heading.heading-1.asciidoc"],settings:{foreground:"#fe640b"}},{scope:["heading.3.markdown punctuation.definition.heading.markdown","heading.3.markdown","heading.3.quarto punctuation.definition.heading.quarto","heading.3.quarto","markup.heading.atx.3.mdx","markup.heading.atx.3.mdx punctuation.definition.heading.mdx","markup.heading.heading-2.asciidoc"],settings:{foreground:"#df8e1d"}},{scope:["heading.4.markdown punctuation.definition.heading.markdown","heading.4.markdown","heading.4.quarto punctuation.definition.heading.quarto","heading.4.quarto","markup.heading.atx.4.mdx","markup.heading.atx.4.mdx punctuation.definition.heading.mdx","markup.heading.heading-3.asciidoc"],settings:{foreground:"#40a02b"}},{scope:["heading.5.markdown punctuation.definition.heading.markdown","heading.5.markdown","heading.5.quarto punctuation.definition.heading.quarto","heading.5.quarto","markup.heading.atx.5.mdx","markup.heading.atx.5.mdx punctuation.definition.heading.mdx","markup.heading.heading-4.asciidoc"],settings:{foreground:"#1e66f5"}},{scope:["heading.6.markdown punctuation.definition.heading.markdown","heading.6.markdown","heading.6.quarto punctuation.definition.heading.quarto","heading.6.quarto","markup.heading.atx.6.mdx","markup.heading.atx.6.mdx punctuation.definition.heading.mdx","markup.heading.heading-5.asciidoc"],settings:{foreground:"#8839ef"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#d20f39"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#d20f39"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough",foreground:"#6c6f85"}},{scope:["punctuation.definition.link","markup.underline.link"],settings:{foreground:"#1e66f5"}},{scope:["text.html.markdown punctuation.definition.link.title","text.html.quarto punctuation.definition.link.title","string.other.link.title.markdown","string.other.link.title.quarto","markup.link","punctuation.definition.constant.markdown","punctuation.definition.constant.quarto","constant.other.reference.link.markdown","constant.other.reference.link.quarto","markup.substitution.attribute-reference"],settings:{foreground:"#7287fd"}},{scope:["punctuation.definition.raw.markdown","punctuation.definition.raw.quarto","markup.inline.raw.string.markdown","markup.inline.raw.string.quarto","markup.raw.block.markdown","markup.raw.block.quarto"],settings:{foreground:"#40a02b"}},{scope:"fenced_code.block.language",settings:{foreground:"#04a5e5"}},{scope:["markup.fenced_code.block punctuation.definition","markup.raw support.asciidoc"],settings:{foreground:"#7c7f93"}},{scope:["markup.quote","punctuation.definition.quote.begin"],settings:{foreground:"#ea76cb"}},{scope:"meta.separator.markdown",settings:{foreground:"#179299"}},{scope:["punctuation.definition.list.begin.markdown","punctuation.definition.list.begin.quarto","markup.list.bullet"],settings:{foreground:"#179299"}},{scope:"markup.heading.quarto",settings:{fontStyle:"bold"}},{scope:["entity.other.attribute-name.multipart.nix","entity.other.attribute-name.single.nix"],settings:{foreground:"#1e66f5"}},{scope:"variable.parameter.name.nix",settings:{fontStyle:"",foreground:"#4c4f69"}},{scope:"meta.embedded variable.parameter.name.nix",settings:{fontStyle:"",foreground:"#7287fd"}},{scope:"string.unquoted.path.nix",settings:{fontStyle:"",foreground:"#ea76cb"}},{scope:["support.attribute.builtin","meta.attribute.php"],settings:{foreground:"#df8e1d"}},{scope:"meta.function.parameters.php punctuation.definition.variable.php",settings:{foreground:"#e64553"}},{scope:"constant.language.php",settings:{foreground:"#8839ef"}},{scope:"text.html.php support.function",settings:{foreground:"#04a5e5"}},{scope:"keyword.other.phpdoc.php",settings:{fontStyle:""}},{scope:["support.variable.magic.python","meta.function-call.arguments.python"],settings:{foreground:"#4c4f69"}},{scope:["support.function.magic.python"],settings:{fontStyle:"italic",foreground:"#04a5e5"}},{scope:["variable.parameter.function.language.special.self.python","variable.language.special.self.python"],settings:{fontStyle:"italic",foreground:"#d20f39"}},{scope:["keyword.control.flow.python","keyword.operator.logical.python"],settings:{foreground:"#8839ef"}},{scope:"storage.type.function.python",settings:{foreground:"#8839ef"}},{scope:["support.token.decorator.python","meta.function.decorator.identifier.python"],settings:{foreground:"#04a5e5"}},{scope:["meta.function-call.python"],settings:{foreground:"#1e66f5"}},{scope:["entity.name.function.decorator.python","punctuation.definition.decorator.python"],settings:{fontStyle:"italic",foreground:"#fe640b"}},{scope:"constant.character.format.placeholder.other.python",settings:{foreground:"#ea76cb"}},{scope:["support.type.exception.python","support.function.builtin.python"],settings:{foreground:"#fe640b"}},{scope:["support.type.python"],settings:{foreground:"#fe640b"}},{scope:"constant.language.python",settings:{foreground:"#8839ef"}},{scope:["meta.indexed-name.python","meta.item-access.python"],settings:{fontStyle:"italic",foreground:"#e64553"}},{scope:"storage.type.string.python",settings:{fontStyle:"italic",foreground:"#40a02b"}},{scope:"meta.function.parameters.python",settings:{fontStyle:""}},{scope:["string.regexp punctuation.definition.string.begin","string.regexp punctuation.definition.string.end"],settings:{foreground:"#ea76cb"}},{scope:"keyword.control.anchor.regexp",settings:{foreground:"#8839ef"}},{scope:"string.regexp.ts",settings:{foreground:"#4c4f69"}},{scope:["punctuation.definition.group.regexp","keyword.other.back-reference.regexp"],settings:{foreground:"#40a02b"}},{scope:"punctuation.definition.character-class.regexp",settings:{foreground:"#df8e1d"}},{scope:"constant.other.character-class.regexp",settings:{foreground:"#ea76cb"}},{scope:"constant.other.character-class.range.regexp",settings:{foreground:"#dc8a78"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#179299"}},{scope:"constant.character.numeric.regexp",settings:{foreground:"#fe640b"}},{scope:["punctuation.definition.group.no-capture.regexp","meta.assertion.look-ahead.regexp","meta.assertion.negative-look-ahead.regexp"],settings:{foreground:"#1e66f5"}},{scope:["meta.annotation.rust","meta.annotation.rust punctuation","meta.attribute.rust","punctuation.definition.attribute.rust"],settings:{fontStyle:"italic",foreground:"#df8e1d"}},{scope:["meta.attribute.rust string.quoted.double.rust","meta.attribute.rust string.quoted.single.char.rust"],settings:{fontStyle:""}},{scope:["entity.name.function.macro.rules.rust","storage.type.module.rust","storage.modifier.rust","storage.type.struct.rust","storage.type.enum.rust","storage.type.trait.rust","storage.type.union.rust","storage.type.impl.rust","storage.type.rust","storage.type.function.rust","storage.type.type.rust"],settings:{fontStyle:"",foreground:"#8839ef"}},{scope:"entity.name.type.numeric.rust",settings:{fontStyle:"",foreground:"#8839ef"}},{scope:"meta.generic.rust",settings:{foreground:"#fe640b"}},{scope:"entity.name.impl.rust",settings:{fontStyle:"italic",foreground:"#df8e1d"}},{scope:"entity.name.module.rust",settings:{foreground:"#fe640b"}},{scope:"entity.name.trait.rust",settings:{fontStyle:"italic",foreground:"#df8e1d"}},{scope:"storage.type.source.rust",settings:{foreground:"#df8e1d"}},{scope:"entity.name.union.rust",settings:{foreground:"#df8e1d"}},{scope:"meta.enum.rust storage.type.source.rust",settings:{foreground:"#179299"}},{scope:["support.macro.rust","meta.macro.rust support.function.rust","entity.name.function.macro.rust"],settings:{fontStyle:"italic",foreground:"#1e66f5"}},{scope:["storage.modifier.lifetime.rust","entity.name.type.lifetime"],settings:{fontStyle:"italic",foreground:"#1e66f5"}},{scope:"string.quoted.double.rust constant.other.placeholder.rust",settings:{foreground:"#ea76cb"}},{scope:"meta.function.return-type.rust meta.generic.rust storage.type.rust",settings:{foreground:"#4c4f69"}},{scope:"meta.function.call.rust",settings:{foreground:"#1e66f5"}},{scope:"punctuation.brackets.angle.rust",settings:{foreground:"#04a5e5"}},{scope:"constant.other.caps.rust",settings:{foreground:"#fe640b"}},{scope:["meta.function.definition.rust variable.other.rust"],settings:{foreground:"#e64553"}},{scope:"meta.function.call.rust variable.other.rust",settings:{foreground:"#4c4f69"}},{scope:"variable.language.self.rust",settings:{foreground:"#d20f39"}},{scope:["variable.other.metavariable.name.rust","meta.macro.metavariable.rust keyword.operator.macro.dollar.rust"],settings:{foreground:"#ea76cb"}},{scope:["comment.line.shebang","comment.line.shebang punctuation.definition.comment","comment.line.shebang","punctuation.definition.comment.shebang.shell","meta.shebang.shell"],settings:{fontStyle:"italic",foreground:"#ea76cb"}},{scope:"comment.line.shebang constant.language",settings:{fontStyle:"italic",foreground:"#179299"}},{scope:["meta.function-call.arguments.shell punctuation.definition.variable.shell","meta.function-call.arguments.shell punctuation.section.interpolation","meta.function-call.arguments.shell punctuation.definition.variable.shell","meta.function-call.arguments.shell punctuation.section.interpolation"],settings:{foreground:"#d20f39"}},{scope:"meta.string meta.interpolation.parameter.shell variable.other.readwrite",settings:{fontStyle:"italic",foreground:"#fe640b"}},{scope:["source.shell punctuation.section.interpolation","punctuation.definition.evaluation.backticks.shell"],settings:{foreground:"#179299"}},{scope:"entity.name.tag.heredoc.shell",settings:{foreground:"#8839ef"}},{scope:"string.quoted.double.shell variable.other.normal.shell",settings:{foreground:"#4c4f69"}}],type:"light"});export{e as default}; diff --git a/assets/chunks/catppuccin-macchiato.DVLwECkk.js b/assets/chunks/catppuccin-macchiato.DVLwECkk.js new file mode 100644 index 000000000..897bca650 --- /dev/null +++ b/assets/chunks/catppuccin-macchiato.DVLwECkk.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBackground":"#00000000","activityBar.activeBorder":"#00000000","activityBar.activeFocusBorder":"#00000000","activityBar.background":"#181926","activityBar.border":"#00000000","activityBar.dropBorder":"#c6a0f633","activityBar.foreground":"#c6a0f6","activityBar.inactiveForeground":"#6e738d","activityBarBadge.background":"#c6a0f6","activityBarBadge.foreground":"#181926","activityBarTop.activeBorder":"#00000000","activityBarTop.dropBorder":"#c6a0f633","activityBarTop.foreground":"#c6a0f6","activityBarTop.inactiveForeground":"#6e738d","badge.background":"#494d64","badge.foreground":"#cad3f5","banner.background":"#494d64","banner.foreground":"#cad3f5","banner.iconForeground":"#cad3f5","breadcrumb.activeSelectionForeground":"#c6a0f6","breadcrumb.background":"#24273a","breadcrumb.focusForeground":"#c6a0f6","breadcrumb.foreground":"#cad3f5cc","breadcrumbPicker.background":"#1e2030","button.background":"#c6a0f6","button.border":"#00000000","button.foreground":"#181926","button.hoverBackground":"#dac1f9","button.secondaryBackground":"#5b6078","button.secondaryBorder":"#c6a0f6","button.secondaryForeground":"#cad3f5","button.secondaryHoverBackground":"#6a708c","button.separator":"#00000000","charts.blue":"#8aadf4","charts.foreground":"#cad3f5","charts.green":"#a6da95","charts.lines":"#b8c0e0","charts.orange":"#f5a97f","charts.purple":"#c6a0f6","charts.red":"#ed8796","charts.yellow":"#eed49f","checkbox.background":"#494d64","checkbox.border":"#00000000","checkbox.foreground":"#c6a0f6","commandCenter.activeBackground":"#5b607833","commandCenter.activeBorder":"#c6a0f6","commandCenter.activeForeground":"#c6a0f6","commandCenter.background":"#1e2030","commandCenter.border":"#00000000","commandCenter.foreground":"#b8c0e0","commandCenter.inactiveBorder":"#00000000","commandCenter.inactiveForeground":"#b8c0e0","debugConsole.errorForeground":"#ed8796","debugConsole.infoForeground":"#8aadf4","debugConsole.sourceForeground":"#f4dbd6","debugConsole.warningForeground":"#f5a97f","debugConsoleInputIcon.foreground":"#cad3f5","debugExceptionWidget.background":"#181926","debugExceptionWidget.border":"#c6a0f6","debugIcon.breakpointCurrentStackframeForeground":"#5b6078","debugIcon.breakpointDisabledForeground":"#ed879699","debugIcon.breakpointForeground":"#ed8796","debugIcon.breakpointStackframeForeground":"#5b6078","debugIcon.breakpointUnverifiedForeground":"#a47487","debugIcon.continueForeground":"#a6da95","debugIcon.disconnectForeground":"#5b6078","debugIcon.pauseForeground":"#8aadf4","debugIcon.restartForeground":"#8bd5ca","debugIcon.startForeground":"#a6da95","debugIcon.stepBackForeground":"#5b6078","debugIcon.stepIntoForeground":"#cad3f5","debugIcon.stepOutForeground":"#cad3f5","debugIcon.stepOverForeground":"#c6a0f6","debugIcon.stopForeground":"#ed8796","debugTokenExpression.boolean":"#c6a0f6","debugTokenExpression.error":"#ed8796","debugTokenExpression.number":"#f5a97f","debugTokenExpression.string":"#a6da95","debugToolBar.background":"#181926","debugToolBar.border":"#00000000",descriptionForeground:"#cad3f5","diffEditor.border":"#5b6078","diffEditor.diagonalFill":"#5b607899","diffEditor.insertedLineBackground":"#a6da9526","diffEditor.insertedTextBackground":"#a6da951a","diffEditor.removedLineBackground":"#ed879626","diffEditor.removedTextBackground":"#ed87961a","diffEditorOverview.insertedForeground":"#a6da95cc","diffEditorOverview.removedForeground":"#ed8796cc",disabledForeground:"#a5adcb","dropdown.background":"#1e2030","dropdown.border":"#c6a0f6","dropdown.foreground":"#cad3f5","dropdown.listBackground":"#5b6078","editor.background":"#24273a","editor.findMatchBackground":"#604456","editor.findMatchBorder":"#ed879633","editor.findMatchHighlightBackground":"#455c6d","editor.findMatchHighlightBorder":"#91d7e333","editor.findRangeHighlightBackground":"#455c6d","editor.findRangeHighlightBorder":"#91d7e333","editor.focusedStackFrameHighlightBackground":"#a6da9526","editor.foldBackground":"#91d7e340","editor.foreground":"#cad3f5","editor.hoverHighlightBackground":"#91d7e340","editor.lineHighlightBackground":"#cad3f512","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#91d7e340","editor.rangeHighlightBorder":"#00000000","editor.selectionBackground":"#939ab740","editor.selectionHighlightBackground":"#939ab733","editor.selectionHighlightBorder":"#939ab733","editor.stackFrameHighlightBackground":"#eed49f26","editor.wordHighlightBackground":"#939ab733","editorBracketHighlight.foreground1":"#ed8796","editorBracketHighlight.foreground2":"#f5a97f","editorBracketHighlight.foreground3":"#eed49f","editorBracketHighlight.foreground4":"#a6da95","editorBracketHighlight.foreground5":"#7dc4e4","editorBracketHighlight.foreground6":"#c6a0f6","editorBracketHighlight.unexpectedBracket.foreground":"#ee99a0","editorBracketMatch.background":"#939ab71a","editorBracketMatch.border":"#939ab7","editorCodeLens.foreground":"#8087a2","editorCursor.background":"#24273a","editorCursor.foreground":"#f4dbd6","editorError.background":"#00000000","editorError.border":"#00000000","editorError.foreground":"#ed8796","editorGroup.border":"#5b6078","editorGroup.dropBackground":"#c6a0f633","editorGroup.emptyBackground":"#24273a","editorGroupHeader.tabsBackground":"#181926","editorGutter.addedBackground":"#a6da95","editorGutter.background":"#24273a","editorGutter.commentRangeForeground":"#939ab7","editorGutter.deletedBackground":"#ed8796","editorGutter.foldingControlForeground":"#939ab7","editorGutter.modifiedBackground":"#eed49f","editorHoverWidget.background":"#1e2030","editorHoverWidget.border":"#5b6078","editorHoverWidget.foreground":"#cad3f5","editorIndentGuide.activeBackground":"#5b6078","editorIndentGuide.background":"#494d64","editorInfo.background":"#00000000","editorInfo.border":"#00000000","editorInfo.foreground":"#8aadf4","editorInlayHint.background":"#1e2030bf","editorInlayHint.foreground":"#5b6078","editorInlayHint.parameterBackground":"#1e2030bf","editorInlayHint.parameterForeground":"#a5adcb","editorInlayHint.typeBackground":"#1e2030bf","editorInlayHint.typeForeground":"#b8c0e0","editorLightBulb.foreground":"#eed49f","editorLineNumber.activeForeground":"#c6a0f6","editorLineNumber.foreground":"#8087a2","editorLink.activeForeground":"#c6a0f6","editorMarkerNavigation.background":"#1e2030","editorMarkerNavigationError.background":"#ed8796","editorMarkerNavigationInfo.background":"#8aadf4","editorMarkerNavigationWarning.background":"#f5a97f","editorOverviewRuler.background":"#1e2030","editorOverviewRuler.border":"#cad3f512","editorOverviewRuler.modifiedForeground":"#eed49f","editorRuler.foreground":"#5b6078","editorStickyScrollHover.background":"#363a4f","editorSuggestWidget.background":"#1e2030","editorSuggestWidget.border":"#5b6078","editorSuggestWidget.foreground":"#cad3f5","editorSuggestWidget.highlightForeground":"#c6a0f6","editorSuggestWidget.selectedBackground":"#363a4f","editorWarning.background":"#00000000","editorWarning.border":"#00000000","editorWarning.foreground":"#f5a97f","editorWhitespace.foreground":"#939ab766","editorWidget.background":"#1e2030","editorWidget.foreground":"#cad3f5","editorWidget.resizeBorder":"#5b6078",errorForeground:"#ed8796","errorLens.errorBackground":"#ed879626","errorLens.errorBackgroundLight":"#ed879626","errorLens.errorForeground":"#ed8796","errorLens.errorForegroundLight":"#ed8796","errorLens.errorMessageBackground":"#ed879626","errorLens.hintBackground":"#a6da9526","errorLens.hintBackgroundLight":"#a6da9526","errorLens.hintForeground":"#a6da95","errorLens.hintForegroundLight":"#a6da95","errorLens.hintMessageBackground":"#a6da9526","errorLens.infoBackground":"#8aadf426","errorLens.infoBackgroundLight":"#8aadf426","errorLens.infoForeground":"#8aadf4","errorLens.infoForegroundLight":"#8aadf4","errorLens.infoMessageBackground":"#8aadf426","errorLens.statusBarErrorForeground":"#ed8796","errorLens.statusBarHintForeground":"#a6da95","errorLens.statusBarIconErrorForeground":"#ed8796","errorLens.statusBarIconWarningForeground":"#f5a97f","errorLens.statusBarInfoForeground":"#8aadf4","errorLens.statusBarWarningForeground":"#f5a97f","errorLens.warningBackground":"#f5a97f26","errorLens.warningBackgroundLight":"#f5a97f26","errorLens.warningForeground":"#f5a97f","errorLens.warningForegroundLight":"#f5a97f","errorLens.warningMessageBackground":"#f5a97f26","extensionBadge.remoteBackground":"#8aadf4","extensionBadge.remoteForeground":"#181926","extensionButton.prominentBackground":"#c6a0f6","extensionButton.prominentForeground":"#181926","extensionButton.prominentHoverBackground":"#dac1f9","extensionButton.separator":"#24273a","extensionIcon.preReleaseForeground":"#5b6078","extensionIcon.sponsorForeground":"#f5bde6","extensionIcon.starForeground":"#eed49f","extensionIcon.verifiedForeground":"#a6da95",focusBorder:"#c6a0f6",foreground:"#cad3f5","gitDecoration.addedResourceForeground":"#a6da95","gitDecoration.conflictingResourceForeground":"#c6a0f6","gitDecoration.deletedResourceForeground":"#ed8796","gitDecoration.ignoredResourceForeground":"#6e738d","gitDecoration.modifiedResourceForeground":"#eed49f","gitDecoration.stageDeletedResourceForeground":"#ed8796","gitDecoration.stageModifiedResourceForeground":"#eed49f","gitDecoration.submoduleResourceForeground":"#8aadf4","gitDecoration.untrackedResourceForeground":"#a6da95","gitlens.closedAutolinkedIssueIconColor":"#c6a0f6","gitlens.closedPullRequestIconColor":"#ed8796","gitlens.decorations.branchAheadForegroundColor":"#a6da95","gitlens.decorations.branchBehindForegroundColor":"#f5a97f","gitlens.decorations.branchDivergedForegroundColor":"#eed49f","gitlens.decorations.branchMissingUpstreamForegroundColor":"#f5a97f","gitlens.decorations.branchUnpublishedForegroundColor":"#a6da95","gitlens.decorations.statusMergingOrRebasingConflictForegroundColor":"#ee99a0","gitlens.decorations.statusMergingOrRebasingForegroundColor":"#eed49f","gitlens.decorations.workspaceCurrentForegroundColor":"#c6a0f6","gitlens.decorations.workspaceRepoMissingForegroundColor":"#a5adcb","gitlens.decorations.workspaceRepoOpenForegroundColor":"#c6a0f6","gitlens.decorations.worktreeHasUncommittedChangesForegroundColor":"#f5a97f","gitlens.decorations.worktreeMissingForegroundColor":"#ee99a0","gitlens.graphChangesColumnAddedColor":"#a6da95","gitlens.graphChangesColumnDeletedColor":"#ed8796","gitlens.graphLane10Color":"#f5bde6","gitlens.graphLane1Color":"#c6a0f6","gitlens.graphLane2Color":"#eed49f","gitlens.graphLane3Color":"#8aadf4","gitlens.graphLane4Color":"#f0c6c6","gitlens.graphLane5Color":"#a6da95","gitlens.graphLane6Color":"#b7bdf8","gitlens.graphLane7Color":"#f4dbd6","gitlens.graphLane8Color":"#ed8796","gitlens.graphLane9Color":"#8bd5ca","gitlens.graphMinimapMarkerHeadColor":"#a6da95","gitlens.graphMinimapMarkerHighlightsColor":"#eed49f","gitlens.graphMinimapMarkerLocalBranchesColor":"#8aadf4","gitlens.graphMinimapMarkerRemoteBranchesColor":"#739df2","gitlens.graphMinimapMarkerStashesColor":"#c6a0f6","gitlens.graphMinimapMarkerTagsColor":"#f0c6c6","gitlens.graphMinimapMarkerUpstreamColor":"#96d382","gitlens.graphScrollMarkerHeadColor":"#a6da95","gitlens.graphScrollMarkerHighlightsColor":"#eed49f","gitlens.graphScrollMarkerLocalBranchesColor":"#8aadf4","gitlens.graphScrollMarkerRemoteBranchesColor":"#739df2","gitlens.graphScrollMarkerStashesColor":"#c6a0f6","gitlens.graphScrollMarkerTagsColor":"#f0c6c6","gitlens.graphScrollMarkerUpstreamColor":"#96d382","gitlens.gutterBackgroundColor":"#363a4f4d","gitlens.gutterForegroundColor":"#cad3f5","gitlens.gutterUncommittedForegroundColor":"#c6a0f6","gitlens.lineHighlightBackgroundColor":"#c6a0f626","gitlens.lineHighlightOverviewRulerColor":"#c6a0f6cc","gitlens.mergedPullRequestIconColor":"#c6a0f6","gitlens.openAutolinkedIssueIconColor":"#a6da95","gitlens.openPullRequestIconColor":"#a6da95","gitlens.trailingLineBackgroundColor":"#00000000","gitlens.trailingLineForegroundColor":"#cad3f54d","gitlens.unpublishedChangesIconColor":"#a6da95","gitlens.unpublishedCommitIconColor":"#a6da95","gitlens.unpulledChangesIconColor":"#f5a97f","icon.foreground":"#c6a0f6","input.background":"#363a4f","input.border":"#00000000","input.foreground":"#cad3f5","input.placeholderForeground":"#cad3f573","inputOption.activeBackground":"#5b6078","inputOption.activeBorder":"#c6a0f6","inputOption.activeForeground":"#cad3f5","inputValidation.errorBackground":"#ed8796","inputValidation.errorBorder":"#18192633","inputValidation.errorForeground":"#181926","inputValidation.infoBackground":"#8aadf4","inputValidation.infoBorder":"#18192633","inputValidation.infoForeground":"#181926","inputValidation.warningBackground":"#f5a97f","inputValidation.warningBorder":"#18192633","inputValidation.warningForeground":"#181926","issues.closed":"#c6a0f6","issues.newIssueDecoration":"#f4dbd6","issues.open":"#a6da95","list.activeSelectionBackground":"#363a4f","list.activeSelectionForeground":"#cad3f5","list.dropBackground":"#c6a0f633","list.focusAndSelectionBackground":"#494d64","list.focusBackground":"#363a4f","list.focusForeground":"#cad3f5","list.focusOutline":"#00000000","list.highlightForeground":"#c6a0f6","list.hoverBackground":"#363a4f80","list.hoverForeground":"#cad3f5","list.inactiveSelectionBackground":"#363a4f","list.inactiveSelectionForeground":"#cad3f5","list.warningForeground":"#f5a97f","listFilterWidget.background":"#494d64","listFilterWidget.noMatchesOutline":"#ed8796","listFilterWidget.outline":"#00000000","menu.background":"#24273a","menu.border":"#24273a80","menu.foreground":"#cad3f5","menu.selectionBackground":"#5b6078","menu.selectionBorder":"#00000000","menu.selectionForeground":"#cad3f5","menu.separatorBackground":"#5b6078","menubar.selectionBackground":"#494d64","menubar.selectionForeground":"#cad3f5","merge.commonContentBackground":"#494d64","merge.commonHeaderBackground":"#5b6078","merge.currentContentBackground":"#a6da9533","merge.currentHeaderBackground":"#a6da9566","merge.incomingContentBackground":"#8aadf433","merge.incomingHeaderBackground":"#8aadf466","minimap.background":"#1e203080","minimap.errorHighlight":"#ed8796bf","minimap.findMatchHighlight":"#91d7e34d","minimap.selectionHighlight":"#5b6078bf","minimap.selectionOccurrenceHighlight":"#5b6078bf","minimap.warningHighlight":"#f5a97fbf","minimapGutter.addedBackground":"#a6da95bf","minimapGutter.deletedBackground":"#ed8796bf","minimapGutter.modifiedBackground":"#eed49fbf","minimapSlider.activeBackground":"#c6a0f699","minimapSlider.background":"#c6a0f633","minimapSlider.hoverBackground":"#c6a0f666","notificationCenter.border":"#c6a0f6","notificationCenterHeader.background":"#1e2030","notificationCenterHeader.foreground":"#cad3f5","notificationLink.foreground":"#8aadf4","notificationToast.border":"#c6a0f6","notifications.background":"#1e2030","notifications.border":"#c6a0f6","notifications.foreground":"#cad3f5","notificationsErrorIcon.foreground":"#ed8796","notificationsInfoIcon.foreground":"#8aadf4","notificationsWarningIcon.foreground":"#f5a97f","panel.background":"#24273a","panel.border":"#5b6078","panelSection.border":"#5b6078","panelSection.dropBackground":"#c6a0f633","panelTitle.activeBorder":"#c6a0f6","panelTitle.activeForeground":"#cad3f5","panelTitle.inactiveForeground":"#a5adcb","peekView.border":"#c6a0f6","peekViewEditor.background":"#1e2030","peekViewEditor.matchHighlightBackground":"#91d7e34d","peekViewEditor.matchHighlightBorder":"#00000000","peekViewEditorGutter.background":"#1e2030","peekViewResult.background":"#1e2030","peekViewResult.fileForeground":"#cad3f5","peekViewResult.lineForeground":"#cad3f5","peekViewResult.matchHighlightBackground":"#91d7e34d","peekViewResult.selectionBackground":"#363a4f","peekViewResult.selectionForeground":"#cad3f5","peekViewTitle.background":"#24273a","peekViewTitleDescription.foreground":"#b8c0e0b3","peekViewTitleLabel.foreground":"#cad3f5","pickerGroup.border":"#c6a0f6","pickerGroup.foreground":"#c6a0f6","problemsErrorIcon.foreground":"#ed8796","problemsInfoIcon.foreground":"#8aadf4","problemsWarningIcon.foreground":"#f5a97f","progressBar.background":"#c6a0f6","pullRequests.closed":"#ed8796","pullRequests.draft":"#939ab7","pullRequests.merged":"#c6a0f6","pullRequests.notification":"#cad3f5","pullRequests.open":"#a6da95","sash.hoverBorder":"#c6a0f6","scrollbar.shadow":"#181926","scrollbarSlider.activeBackground":"#363a4f66","scrollbarSlider.background":"#5b607880","scrollbarSlider.hoverBackground":"#6e738d","selection.background":"#c6a0f666","settings.dropdownBackground":"#494d64","settings.dropdownListBorder":"#00000000","settings.focusedRowBackground":"#5b607833","settings.headerForeground":"#cad3f5","settings.modifiedItemIndicator":"#c6a0f6","settings.numberInputBackground":"#494d64","settings.numberInputBorder":"#00000000","settings.textInputBackground":"#494d64","settings.textInputBorder":"#00000000","sideBar.background":"#1e2030","sideBar.border":"#00000000","sideBar.dropBackground":"#c6a0f633","sideBar.foreground":"#cad3f5","sideBarSectionHeader.background":"#1e2030","sideBarSectionHeader.foreground":"#cad3f5","sideBarTitle.foreground":"#c6a0f6","statusBar.background":"#181926","statusBar.border":"#00000000","statusBar.debuggingBackground":"#f5a97f","statusBar.debuggingBorder":"#00000000","statusBar.debuggingForeground":"#181926","statusBar.foreground":"#cad3f5","statusBar.noFolderBackground":"#181926","statusBar.noFolderBorder":"#00000000","statusBar.noFolderForeground":"#cad3f5","statusBarItem.activeBackground":"#5b607866","statusBarItem.errorBackground":"#00000000","statusBarItem.errorForeground":"#ed8796","statusBarItem.hoverBackground":"#5b607833","statusBarItem.prominentBackground":"#00000000","statusBarItem.prominentForeground":"#c6a0f6","statusBarItem.prominentHoverBackground":"#5b607833","statusBarItem.remoteBackground":"#8aadf4","statusBarItem.remoteForeground":"#181926","statusBarItem.warningBackground":"#00000000","statusBarItem.warningForeground":"#f5a97f","symbolIcon.arrayForeground":"#f5a97f","symbolIcon.booleanForeground":"#c6a0f6","symbolIcon.classForeground":"#eed49f","symbolIcon.colorForeground":"#f5bde6","symbolIcon.constantForeground":"#f5a97f","symbolIcon.constructorForeground":"#b7bdf8","symbolIcon.enumeratorForeground":"#eed49f","symbolIcon.enumeratorMemberForeground":"#eed49f","symbolIcon.eventForeground":"#f5bde6","symbolIcon.fieldForeground":"#cad3f5","symbolIcon.fileForeground":"#c6a0f6","symbolIcon.folderForeground":"#c6a0f6","symbolIcon.functionForeground":"#8aadf4","symbolIcon.interfaceForeground":"#eed49f","symbolIcon.keyForeground":"#8bd5ca","symbolIcon.keywordForeground":"#c6a0f6","symbolIcon.methodForeground":"#8aadf4","symbolIcon.moduleForeground":"#cad3f5","symbolIcon.namespaceForeground":"#eed49f","symbolIcon.nullForeground":"#ee99a0","symbolIcon.numberForeground":"#f5a97f","symbolIcon.objectForeground":"#eed49f","symbolIcon.operatorForeground":"#8bd5ca","symbolIcon.packageForeground":"#f0c6c6","symbolIcon.propertyForeground":"#ee99a0","symbolIcon.referenceForeground":"#eed49f","symbolIcon.snippetForeground":"#f0c6c6","symbolIcon.stringForeground":"#a6da95","symbolIcon.structForeground":"#8bd5ca","symbolIcon.textForeground":"#cad3f5","symbolIcon.typeParameterForeground":"#ee99a0","symbolIcon.unitForeground":"#cad3f5","symbolIcon.variableForeground":"#cad3f5","tab.activeBackground":"#24273a","tab.activeBorder":"#00000000","tab.activeBorderTop":"#c6a0f6","tab.activeForeground":"#c6a0f6","tab.activeModifiedBorder":"#eed49f","tab.border":"#1e2030","tab.hoverBackground":"#2e324a","tab.hoverBorder":"#00000000","tab.hoverForeground":"#c6a0f6","tab.inactiveBackground":"#1e2030","tab.inactiveForeground":"#6e738d","tab.inactiveModifiedBorder":"#eed49f4d","tab.lastPinnedBorder":"#c6a0f6","tab.unfocusedActiveBackground":"#1e2030","tab.unfocusedActiveBorder":"#00000000","tab.unfocusedActiveBorderTop":"#c6a0f64d","tab.unfocusedInactiveBackground":"#141620","table.headerBackground":"#363a4f","table.headerForeground":"#cad3f5","terminal.ansiBlack":"#a5adcb","terminal.ansiBlue":"#8aadf4","terminal.ansiBrightBlack":"#5b6078","terminal.ansiBrightBlue":"#8aadf4","terminal.ansiBrightCyan":"#91d7e3","terminal.ansiBrightGreen":"#a6da95","terminal.ansiBrightMagenta":"#f5bde6","terminal.ansiBrightRed":"#ed8796","terminal.ansiBrightWhite":"#494d64","terminal.ansiBrightYellow":"#eed49f","terminal.ansiCyan":"#91d7e3","terminal.ansiGreen":"#a6da95","terminal.ansiMagenta":"#f5bde6","terminal.ansiRed":"#ed8796","terminal.ansiWhite":"#b8c0e0","terminal.ansiYellow":"#eed49f","terminal.border":"#5b6078","terminal.dropBackground":"#c6a0f633","terminal.foreground":"#cad3f5","terminal.inactiveSelectionBackground":"#5b607880","terminal.selectionBackground":"#5b6078","terminal.tab.activeBorder":"#c6a0f6","terminalCommandDecoration.defaultBackground":"#5b6078","terminalCommandDecoration.errorBackground":"#ed8796","terminalCommandDecoration.successBackground":"#a6da95","terminalCursor.background":"#24273a","terminalCursor.foreground":"#f4dbd6","textBlockQuote.background":"#1e2030","textBlockQuote.border":"#181926","textCodeBlock.background":"#24273a","textLink.activeForeground":"#91d7e3","textLink.foreground":"#8aadf4","textPreformat.foreground":"#cad3f5","textSeparator.foreground":"#c6a0f6","titleBar.activeBackground":"#181926","titleBar.activeForeground":"#cad3f5","titleBar.border":"#00000000","titleBar.inactiveBackground":"#181926","titleBar.inactiveForeground":"#cad3f580","tree.inactiveIndentGuidesStroke":"#494d64","tree.indentGuidesStroke":"#939ab7","walkThrough.embeddedEditorBackground":"#24273a4d","welcomePage.progress.background":"#181926","welcomePage.progress.foreground":"#c6a0f6","welcomePage.tileBackground":"#1e2030","widget.shadow":"#1e203080","window.activeBorder":"#00000000","window.inactiveBorder":"#00000000"},displayName:"Catppuccin Macchiato",name:"catppuccin-macchiato",semanticHighlighting:!0,semanticTokenColors:{boolean:{foreground:"#f5a97f"},"builtinAttribute.attribute.library:rust":{foreground:"#8aadf4"},"class.builtin:python":{foreground:"#c6a0f6"},"class:python":{foreground:"#eed49f"},"constant.builtin.readonly:nix":{foreground:"#c6a0f6"},enumMember:{foreground:"#8bd5ca"},"function.decorator:python":{foreground:"#f5a97f"},"generic.attribute:rust":{foreground:"#cad3f5"},heading:{foreground:"#ed8796"},number:{foreground:"#f5a97f"},pol:{foreground:"#f0c6c6"},"property.readonly:javascript":{foreground:"#cad3f5"},"property.readonly:javascriptreact":{foreground:"#cad3f5"},"property.readonly:typescript":{foreground:"#cad3f5"},"property.readonly:typescriptreact":{foreground:"#cad3f5"},selfKeyword:{foreground:"#ed8796"},"text.emph":{fontStyle:"italic",foreground:"#ed8796"},"text.math":{foreground:"#f0c6c6"},"text.strong":{fontStyle:"bold",foreground:"#ed8796"},tomlArrayKey:{fontStyle:"",foreground:"#8aadf4"},tomlTableKey:{fontStyle:"",foreground:"#8aadf4"},"type.defaultLibrary:go":{foreground:"#c6a0f6"},"variable.defaultLibrary":{foreground:"#ee99a0"},"variable.readonly.defaultLibrary:go":{foreground:"#c6a0f6"},"variable.readonly:javascript":{foreground:"#cad3f5"},"variable.readonly:javascriptreact":{foreground:"#cad3f5"},"variable.readonly:scala":{foreground:"#cad3f5"},"variable.readonly:typescript":{foreground:"#cad3f5"},"variable.readonly:typescriptreact":{foreground:"#cad3f5"},"variable.typeHint:python":{foreground:"#eed49f"}},tokenColors:[{scope:["text","source","variable.other.readwrite","punctuation.definition.variable"],settings:{foreground:"#cad3f5"}},{scope:"punctuation",settings:{fontStyle:"",foreground:"#939ab7"}},{scope:["comment","punctuation.definition.comment"],settings:{fontStyle:"italic",foreground:"#6e738d"}},{scope:["string","punctuation.definition.string"],settings:{foreground:"#a6da95"}},{scope:"constant.character.escape",settings:{foreground:"#f5bde6"}},{scope:["constant.numeric","variable.other.constant","entity.name.constant","constant.language.boolean","constant.language.false","constant.language.true","keyword.other.unit.user-defined","keyword.other.unit.suffix.floating-point"],settings:{foreground:"#f5a97f"}},{scope:["keyword","keyword.operator.word","keyword.operator.new","variable.language.super","support.type.primitive","storage.type","storage.modifier","punctuation.definition.keyword"],settings:{fontStyle:"",foreground:"#c6a0f6"}},{scope:"entity.name.tag.documentation",settings:{foreground:"#c6a0f6"}},{scope:["keyword.operator","punctuation.accessor","punctuation.definition.generic","meta.function.closure punctuation.section.parameters","punctuation.definition.tag","punctuation.separator.key-value"],settings:{foreground:"#8bd5ca"}},{scope:["entity.name.function","meta.function-call.method","support.function","support.function.misc","variable.function"],settings:{fontStyle:"italic",foreground:"#8aadf4"}},{scope:["entity.name.class","entity.other.inherited-class","support.class","meta.function-call.constructor","entity.name.struct"],settings:{fontStyle:"italic",foreground:"#eed49f"}},{scope:"entity.name.enum",settings:{fontStyle:"italic",foreground:"#eed49f"}},{scope:["meta.enum variable.other.readwrite","variable.other.enummember"],settings:{foreground:"#8bd5ca"}},{scope:"meta.property.object",settings:{foreground:"#8bd5ca"}},{scope:["meta.type","meta.type-alias","support.type","entity.name.type"],settings:{fontStyle:"italic",foreground:"#eed49f"}},{scope:["meta.annotation variable.function","meta.annotation variable.annotation.function","meta.annotation punctuation.definition.annotation","meta.decorator","punctuation.decorator"],settings:{foreground:"#f5a97f"}},{scope:["variable.parameter","meta.function.parameters"],settings:{fontStyle:"italic",foreground:"#ee99a0"}},{scope:["constant.language","support.function.builtin"],settings:{foreground:"#ed8796"}},{scope:"entity.other.attribute-name.documentation",settings:{foreground:"#ed8796"}},{scope:["keyword.control.directive","punctuation.definition.directive"],settings:{foreground:"#eed49f"}},{scope:"punctuation.definition.typeparameters",settings:{foreground:"#91d7e3"}},{scope:"entity.name.namespace",settings:{foreground:"#eed49f"}},{scope:"support.type.property-name.css",settings:{fontStyle:"",foreground:"#8aadf4"}},{scope:["variable.language.this","variable.language.this punctuation.definition.variable"],settings:{foreground:"#ed8796"}},{scope:"variable.object.property",settings:{foreground:"#cad3f5"}},{scope:["string.template variable","string variable"],settings:{foreground:"#cad3f5"}},{scope:"keyword.operator.new",settings:{fontStyle:"bold"}},{scope:"storage.modifier.specifier.extern.cpp",settings:{foreground:"#c6a0f6"}},{scope:["entity.name.scope-resolution.template.call.cpp","entity.name.scope-resolution.parameter.cpp","entity.name.scope-resolution.cpp","entity.name.scope-resolution.function.definition.cpp"],settings:{foreground:"#eed49f"}},{scope:"storage.type.class.doxygen",settings:{fontStyle:""}},{scope:["storage.modifier.reference.cpp"],settings:{foreground:"#8bd5ca"}},{scope:"meta.interpolation.cs",settings:{foreground:"#cad3f5"}},{scope:"comment.block.documentation.cs",settings:{foreground:"#cad3f5"}},{scope:["source.css entity.other.attribute-name.class.css","entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css"],settings:{foreground:"#eed49f"}},{scope:"punctuation.separator.operator.css",settings:{foreground:"#8bd5ca"}},{scope:"source.css entity.other.attribute-name.pseudo-class",settings:{foreground:"#8bd5ca"}},{scope:"source.css constant.other.unicode-range",settings:{foreground:"#f5a97f"}},{scope:"source.css variable.parameter.url",settings:{fontStyle:"",foreground:"#a6da95"}},{scope:["support.type.vendored.property-name"],settings:{foreground:"#91d7e3"}},{scope:["source.css meta.property-value variable","source.css meta.property-value variable.other.less","source.css meta.property-value variable.other.less punctuation.definition.variable.less","meta.definition.variable.scss"],settings:{foreground:"#ee99a0"}},{scope:["source.css meta.property-list variable","meta.property-list variable.other.less","meta.property-list variable.other.less punctuation.definition.variable.less"],settings:{foreground:"#8aadf4"}},{scope:"keyword.other.unit.percentage.css",settings:{foreground:"#f5a97f"}},{scope:"source.css meta.attribute-selector",settings:{foreground:"#a6da95"}},{scope:["keyword.other.definition.ini","punctuation.support.type.property-name.json","support.type.property-name.json","punctuation.support.type.property-name.toml","support.type.property-name.toml","entity.name.tag.yaml","punctuation.support.type.property-name.yaml","support.type.property-name.yaml"],settings:{fontStyle:"",foreground:"#8aadf4"}},{scope:["constant.language.json","constant.language.yaml"],settings:{foreground:"#f5a97f"}},{scope:["entity.name.type.anchor.yaml","variable.other.alias.yaml"],settings:{fontStyle:"",foreground:"#eed49f"}},{scope:["support.type.property-name.table","entity.name.section.group-title.ini"],settings:{foreground:"#eed49f"}},{scope:"constant.other.time.datetime.offset.toml",settings:{foreground:"#f5bde6"}},{scope:["punctuation.definition.anchor.yaml","punctuation.definition.alias.yaml"],settings:{foreground:"#f5bde6"}},{scope:"entity.other.document.begin.yaml",settings:{foreground:"#f5bde6"}},{scope:"markup.changed.diff",settings:{foreground:"#f5a97f"}},{scope:["meta.diff.header.from-file","meta.diff.header.to-file","punctuation.definition.from-file.diff","punctuation.definition.to-file.diff"],settings:{foreground:"#8aadf4"}},{scope:"markup.inserted.diff",settings:{foreground:"#a6da95"}},{scope:"markup.deleted.diff",settings:{foreground:"#ed8796"}},{scope:["variable.other.env"],settings:{foreground:"#8aadf4"}},{scope:["string.quoted variable.other.env"],settings:{foreground:"#cad3f5"}},{scope:"support.function.builtin.gdscript",settings:{foreground:"#8aadf4"}},{scope:"constant.language.gdscript",settings:{foreground:"#f5a97f"}},{scope:"comment meta.annotation.go",settings:{foreground:"#ee99a0"}},{scope:"comment meta.annotation.parameters.go",settings:{foreground:"#f5a97f"}},{scope:"constant.language.go",settings:{foreground:"#f5a97f"}},{scope:"variable.graphql",settings:{foreground:"#cad3f5"}},{scope:"string.unquoted.alias.graphql",settings:{foreground:"#f0c6c6"}},{scope:"constant.character.enum.graphql",settings:{foreground:"#8bd5ca"}},{scope:"meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql",settings:{foreground:"#f0c6c6"}},{scope:["keyword.other.doctype","meta.tag.sgml.doctype punctuation.definition.tag","meta.tag.metadata.doctype entity.name.tag","meta.tag.metadata.doctype punctuation.definition.tag"],settings:{foreground:"#c6a0f6"}},{scope:["entity.name.tag"],settings:{fontStyle:"",foreground:"#8aadf4"}},{scope:["text.html constant.character.entity","text.html constant.character.entity punctuation","constant.character.entity.xml","constant.character.entity.xml punctuation","constant.character.entity.js.jsx","constant.charactger.entity.js.jsx punctuation","constant.character.entity.tsx","constant.character.entity.tsx punctuation"],settings:{foreground:"#ed8796"}},{scope:["entity.other.attribute-name"],settings:{foreground:"#eed49f"}},{scope:["support.class.component","support.class.component.jsx","support.class.component.tsx","support.class.component.vue"],settings:{fontStyle:"",foreground:"#f5bde6"}},{scope:["punctuation.definition.annotation","storage.type.annotation"],settings:{foreground:"#f5a97f"}},{scope:"constant.other.enum.java",settings:{foreground:"#8bd5ca"}},{scope:"storage.modifier.import.java",settings:{foreground:"#cad3f5"}},{scope:"comment.block.javadoc.java keyword.other.documentation.javadoc.java",settings:{fontStyle:""}},{scope:"meta.export variable.other.readwrite.js",settings:{foreground:"#ee99a0"}},{scope:["variable.other.constant.js","variable.other.constant.ts","variable.other.property.js","variable.other.property.ts"],settings:{foreground:"#cad3f5"}},{scope:["variable.other.jsdoc","comment.block.documentation variable.other"],settings:{fontStyle:"",foreground:"#ee99a0"}},{scope:"storage.type.class.jsdoc",settings:{fontStyle:""}},{scope:"support.type.object.console.js",settings:{foreground:"#cad3f5"}},{scope:["support.constant.node","support.type.object.module.js"],settings:{foreground:"#c6a0f6"}},{scope:"storage.modifier.implements",settings:{foreground:"#c6a0f6"}},{scope:["constant.language.null.js","constant.language.null.ts","constant.language.undefined.js","constant.language.undefined.ts","support.type.builtin.ts"],settings:{foreground:"#c6a0f6"}},{scope:"variable.parameter.generic",settings:{foreground:"#eed49f"}},{scope:["keyword.declaration.function.arrow.js","storage.type.function.arrow.ts"],settings:{foreground:"#8bd5ca"}},{scope:"punctuation.decorator.ts",settings:{fontStyle:"italic",foreground:"#8aadf4"}},{scope:["keyword.operator.expression.in.js","keyword.operator.expression.in.ts","keyword.operator.expression.infer.ts","keyword.operator.expression.instanceof.js","keyword.operator.expression.instanceof.ts","keyword.operator.expression.is","keyword.operator.expression.keyof.ts","keyword.operator.expression.of.js","keyword.operator.expression.of.ts","keyword.operator.expression.typeof.ts"],settings:{foreground:"#c6a0f6"}},{scope:"support.function.macro.julia",settings:{fontStyle:"italic",foreground:"#8bd5ca"}},{scope:"constant.language.julia",settings:{foreground:"#f5a97f"}},{scope:"constant.other.symbol.julia",settings:{foreground:"#ee99a0"}},{scope:"text.tex keyword.control.preamble",settings:{foreground:"#8bd5ca"}},{scope:"text.tex support.function.be",settings:{foreground:"#91d7e3"}},{scope:"constant.other.general.math.tex",settings:{foreground:"#f0c6c6"}},{scope:"comment.line.double-dash.documentation.lua storage.type.annotation.lua",settings:{fontStyle:"",foreground:"#c6a0f6"}},{scope:["comment.line.double-dash.documentation.lua entity.name.variable.lua","comment.line.double-dash.documentation.lua variable.lua"],settings:{foreground:"#cad3f5"}},{scope:["heading.1.markdown punctuation.definition.heading.markdown","heading.1.markdown","heading.1.quarto punctuation.definition.heading.quarto","heading.1.quarto","markup.heading.atx.1.mdx","markup.heading.atx.1.mdx punctuation.definition.heading.mdx","markup.heading.setext.1.markdown","markup.heading.heading-0.asciidoc"],settings:{foreground:"#ed8796"}},{scope:["heading.2.markdown punctuation.definition.heading.markdown","heading.2.markdown","heading.2.quarto punctuation.definition.heading.quarto","heading.2.quarto","markup.heading.atx.2.mdx","markup.heading.atx.2.mdx punctuation.definition.heading.mdx","markup.heading.setext.2.markdown","markup.heading.heading-1.asciidoc"],settings:{foreground:"#f5a97f"}},{scope:["heading.3.markdown punctuation.definition.heading.markdown","heading.3.markdown","heading.3.quarto punctuation.definition.heading.quarto","heading.3.quarto","markup.heading.atx.3.mdx","markup.heading.atx.3.mdx punctuation.definition.heading.mdx","markup.heading.heading-2.asciidoc"],settings:{foreground:"#eed49f"}},{scope:["heading.4.markdown punctuation.definition.heading.markdown","heading.4.markdown","heading.4.quarto punctuation.definition.heading.quarto","heading.4.quarto","markup.heading.atx.4.mdx","markup.heading.atx.4.mdx punctuation.definition.heading.mdx","markup.heading.heading-3.asciidoc"],settings:{foreground:"#a6da95"}},{scope:["heading.5.markdown punctuation.definition.heading.markdown","heading.5.markdown","heading.5.quarto punctuation.definition.heading.quarto","heading.5.quarto","markup.heading.atx.5.mdx","markup.heading.atx.5.mdx punctuation.definition.heading.mdx","markup.heading.heading-4.asciidoc"],settings:{foreground:"#8aadf4"}},{scope:["heading.6.markdown punctuation.definition.heading.markdown","heading.6.markdown","heading.6.quarto punctuation.definition.heading.quarto","heading.6.quarto","markup.heading.atx.6.mdx","markup.heading.atx.6.mdx punctuation.definition.heading.mdx","markup.heading.heading-5.asciidoc"],settings:{foreground:"#c6a0f6"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#ed8796"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#ed8796"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough",foreground:"#a5adcb"}},{scope:["punctuation.definition.link","markup.underline.link"],settings:{foreground:"#8aadf4"}},{scope:["text.html.markdown punctuation.definition.link.title","text.html.quarto punctuation.definition.link.title","string.other.link.title.markdown","string.other.link.title.quarto","markup.link","punctuation.definition.constant.markdown","punctuation.definition.constant.quarto","constant.other.reference.link.markdown","constant.other.reference.link.quarto","markup.substitution.attribute-reference"],settings:{foreground:"#b7bdf8"}},{scope:["punctuation.definition.raw.markdown","punctuation.definition.raw.quarto","markup.inline.raw.string.markdown","markup.inline.raw.string.quarto","markup.raw.block.markdown","markup.raw.block.quarto"],settings:{foreground:"#a6da95"}},{scope:"fenced_code.block.language",settings:{foreground:"#91d7e3"}},{scope:["markup.fenced_code.block punctuation.definition","markup.raw support.asciidoc"],settings:{foreground:"#939ab7"}},{scope:["markup.quote","punctuation.definition.quote.begin"],settings:{foreground:"#f5bde6"}},{scope:"meta.separator.markdown",settings:{foreground:"#8bd5ca"}},{scope:["punctuation.definition.list.begin.markdown","punctuation.definition.list.begin.quarto","markup.list.bullet"],settings:{foreground:"#8bd5ca"}},{scope:"markup.heading.quarto",settings:{fontStyle:"bold"}},{scope:["entity.other.attribute-name.multipart.nix","entity.other.attribute-name.single.nix"],settings:{foreground:"#8aadf4"}},{scope:"variable.parameter.name.nix",settings:{fontStyle:"",foreground:"#cad3f5"}},{scope:"meta.embedded variable.parameter.name.nix",settings:{fontStyle:"",foreground:"#b7bdf8"}},{scope:"string.unquoted.path.nix",settings:{fontStyle:"",foreground:"#f5bde6"}},{scope:["support.attribute.builtin","meta.attribute.php"],settings:{foreground:"#eed49f"}},{scope:"meta.function.parameters.php punctuation.definition.variable.php",settings:{foreground:"#ee99a0"}},{scope:"constant.language.php",settings:{foreground:"#c6a0f6"}},{scope:"text.html.php support.function",settings:{foreground:"#91d7e3"}},{scope:"keyword.other.phpdoc.php",settings:{fontStyle:""}},{scope:["support.variable.magic.python","meta.function-call.arguments.python"],settings:{foreground:"#cad3f5"}},{scope:["support.function.magic.python"],settings:{fontStyle:"italic",foreground:"#91d7e3"}},{scope:["variable.parameter.function.language.special.self.python","variable.language.special.self.python"],settings:{fontStyle:"italic",foreground:"#ed8796"}},{scope:["keyword.control.flow.python","keyword.operator.logical.python"],settings:{foreground:"#c6a0f6"}},{scope:"storage.type.function.python",settings:{foreground:"#c6a0f6"}},{scope:["support.token.decorator.python","meta.function.decorator.identifier.python"],settings:{foreground:"#91d7e3"}},{scope:["meta.function-call.python"],settings:{foreground:"#8aadf4"}},{scope:["entity.name.function.decorator.python","punctuation.definition.decorator.python"],settings:{fontStyle:"italic",foreground:"#f5a97f"}},{scope:"constant.character.format.placeholder.other.python",settings:{foreground:"#f5bde6"}},{scope:["support.type.exception.python","support.function.builtin.python"],settings:{foreground:"#f5a97f"}},{scope:["support.type.python"],settings:{foreground:"#f5a97f"}},{scope:"constant.language.python",settings:{foreground:"#c6a0f6"}},{scope:["meta.indexed-name.python","meta.item-access.python"],settings:{fontStyle:"italic",foreground:"#ee99a0"}},{scope:"storage.type.string.python",settings:{fontStyle:"italic",foreground:"#a6da95"}},{scope:"meta.function.parameters.python",settings:{fontStyle:""}},{scope:["string.regexp punctuation.definition.string.begin","string.regexp punctuation.definition.string.end"],settings:{foreground:"#f5bde6"}},{scope:"keyword.control.anchor.regexp",settings:{foreground:"#c6a0f6"}},{scope:"string.regexp.ts",settings:{foreground:"#cad3f5"}},{scope:["punctuation.definition.group.regexp","keyword.other.back-reference.regexp"],settings:{foreground:"#a6da95"}},{scope:"punctuation.definition.character-class.regexp",settings:{foreground:"#eed49f"}},{scope:"constant.other.character-class.regexp",settings:{foreground:"#f5bde6"}},{scope:"constant.other.character-class.range.regexp",settings:{foreground:"#f4dbd6"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#8bd5ca"}},{scope:"constant.character.numeric.regexp",settings:{foreground:"#f5a97f"}},{scope:["punctuation.definition.group.no-capture.regexp","meta.assertion.look-ahead.regexp","meta.assertion.negative-look-ahead.regexp"],settings:{foreground:"#8aadf4"}},{scope:["meta.annotation.rust","meta.annotation.rust punctuation","meta.attribute.rust","punctuation.definition.attribute.rust"],settings:{fontStyle:"italic",foreground:"#eed49f"}},{scope:["meta.attribute.rust string.quoted.double.rust","meta.attribute.rust string.quoted.single.char.rust"],settings:{fontStyle:""}},{scope:["entity.name.function.macro.rules.rust","storage.type.module.rust","storage.modifier.rust","storage.type.struct.rust","storage.type.enum.rust","storage.type.trait.rust","storage.type.union.rust","storage.type.impl.rust","storage.type.rust","storage.type.function.rust","storage.type.type.rust"],settings:{fontStyle:"",foreground:"#c6a0f6"}},{scope:"entity.name.type.numeric.rust",settings:{fontStyle:"",foreground:"#c6a0f6"}},{scope:"meta.generic.rust",settings:{foreground:"#f5a97f"}},{scope:"entity.name.impl.rust",settings:{fontStyle:"italic",foreground:"#eed49f"}},{scope:"entity.name.module.rust",settings:{foreground:"#f5a97f"}},{scope:"entity.name.trait.rust",settings:{fontStyle:"italic",foreground:"#eed49f"}},{scope:"storage.type.source.rust",settings:{foreground:"#eed49f"}},{scope:"entity.name.union.rust",settings:{foreground:"#eed49f"}},{scope:"meta.enum.rust storage.type.source.rust",settings:{foreground:"#8bd5ca"}},{scope:["support.macro.rust","meta.macro.rust support.function.rust","entity.name.function.macro.rust"],settings:{fontStyle:"italic",foreground:"#8aadf4"}},{scope:["storage.modifier.lifetime.rust","entity.name.type.lifetime"],settings:{fontStyle:"italic",foreground:"#8aadf4"}},{scope:"string.quoted.double.rust constant.other.placeholder.rust",settings:{foreground:"#f5bde6"}},{scope:"meta.function.return-type.rust meta.generic.rust storage.type.rust",settings:{foreground:"#cad3f5"}},{scope:"meta.function.call.rust",settings:{foreground:"#8aadf4"}},{scope:"punctuation.brackets.angle.rust",settings:{foreground:"#91d7e3"}},{scope:"constant.other.caps.rust",settings:{foreground:"#f5a97f"}},{scope:["meta.function.definition.rust variable.other.rust"],settings:{foreground:"#ee99a0"}},{scope:"meta.function.call.rust variable.other.rust",settings:{foreground:"#cad3f5"}},{scope:"variable.language.self.rust",settings:{foreground:"#ed8796"}},{scope:["variable.other.metavariable.name.rust","meta.macro.metavariable.rust keyword.operator.macro.dollar.rust"],settings:{foreground:"#f5bde6"}},{scope:["comment.line.shebang","comment.line.shebang punctuation.definition.comment","comment.line.shebang","punctuation.definition.comment.shebang.shell","meta.shebang.shell"],settings:{fontStyle:"italic",foreground:"#f5bde6"}},{scope:"comment.line.shebang constant.language",settings:{fontStyle:"italic",foreground:"#8bd5ca"}},{scope:["meta.function-call.arguments.shell punctuation.definition.variable.shell","meta.function-call.arguments.shell punctuation.section.interpolation","meta.function-call.arguments.shell punctuation.definition.variable.shell","meta.function-call.arguments.shell punctuation.section.interpolation"],settings:{foreground:"#ed8796"}},{scope:"meta.string meta.interpolation.parameter.shell variable.other.readwrite",settings:{fontStyle:"italic",foreground:"#f5a97f"}},{scope:["source.shell punctuation.section.interpolation","punctuation.definition.evaluation.backticks.shell"],settings:{foreground:"#8bd5ca"}},{scope:"entity.name.tag.heredoc.shell",settings:{foreground:"#c6a0f6"}},{scope:"string.quoted.double.shell variable.other.normal.shell",settings:{foreground:"#cad3f5"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/catppuccin-mocha.CEfge3mM.js b/assets/chunks/catppuccin-mocha.CEfge3mM.js new file mode 100644 index 000000000..0d1fd4f73 --- /dev/null +++ b/assets/chunks/catppuccin-mocha.CEfge3mM.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBackground":"#00000000","activityBar.activeBorder":"#00000000","activityBar.activeFocusBorder":"#00000000","activityBar.background":"#11111b","activityBar.border":"#00000000","activityBar.dropBorder":"#cba6f733","activityBar.foreground":"#cba6f7","activityBar.inactiveForeground":"#6c7086","activityBarBadge.background":"#cba6f7","activityBarBadge.foreground":"#11111b","activityBarTop.activeBorder":"#00000000","activityBarTop.dropBorder":"#cba6f733","activityBarTop.foreground":"#cba6f7","activityBarTop.inactiveForeground":"#6c7086","badge.background":"#45475a","badge.foreground":"#cdd6f4","banner.background":"#45475a","banner.foreground":"#cdd6f4","banner.iconForeground":"#cdd6f4","breadcrumb.activeSelectionForeground":"#cba6f7","breadcrumb.background":"#1e1e2e","breadcrumb.focusForeground":"#cba6f7","breadcrumb.foreground":"#cdd6f4cc","breadcrumbPicker.background":"#181825","button.background":"#cba6f7","button.border":"#00000000","button.foreground":"#11111b","button.hoverBackground":"#dec7fa","button.secondaryBackground":"#585b70","button.secondaryBorder":"#cba6f7","button.secondaryForeground":"#cdd6f4","button.secondaryHoverBackground":"#686b84","button.separator":"#00000000","charts.blue":"#89b4fa","charts.foreground":"#cdd6f4","charts.green":"#a6e3a1","charts.lines":"#bac2de","charts.orange":"#fab387","charts.purple":"#cba6f7","charts.red":"#f38ba8","charts.yellow":"#f9e2af","checkbox.background":"#45475a","checkbox.border":"#00000000","checkbox.foreground":"#cba6f7","commandCenter.activeBackground":"#585b7033","commandCenter.activeBorder":"#cba6f7","commandCenter.activeForeground":"#cba6f7","commandCenter.background":"#181825","commandCenter.border":"#00000000","commandCenter.foreground":"#bac2de","commandCenter.inactiveBorder":"#00000000","commandCenter.inactiveForeground":"#bac2de","debugConsole.errorForeground":"#f38ba8","debugConsole.infoForeground":"#89b4fa","debugConsole.sourceForeground":"#f5e0dc","debugConsole.warningForeground":"#fab387","debugConsoleInputIcon.foreground":"#cdd6f4","debugExceptionWidget.background":"#11111b","debugExceptionWidget.border":"#cba6f7","debugIcon.breakpointCurrentStackframeForeground":"#585b70","debugIcon.breakpointDisabledForeground":"#f38ba899","debugIcon.breakpointForeground":"#f38ba8","debugIcon.breakpointStackframeForeground":"#585b70","debugIcon.breakpointUnverifiedForeground":"#a6738c","debugIcon.continueForeground":"#a6e3a1","debugIcon.disconnectForeground":"#585b70","debugIcon.pauseForeground":"#89b4fa","debugIcon.restartForeground":"#94e2d5","debugIcon.startForeground":"#a6e3a1","debugIcon.stepBackForeground":"#585b70","debugIcon.stepIntoForeground":"#cdd6f4","debugIcon.stepOutForeground":"#cdd6f4","debugIcon.stepOverForeground":"#cba6f7","debugIcon.stopForeground":"#f38ba8","debugTokenExpression.boolean":"#cba6f7","debugTokenExpression.error":"#f38ba8","debugTokenExpression.number":"#fab387","debugTokenExpression.string":"#a6e3a1","debugToolBar.background":"#11111b","debugToolBar.border":"#00000000",descriptionForeground:"#cdd6f4","diffEditor.border":"#585b70","diffEditor.diagonalFill":"#585b7099","diffEditor.insertedLineBackground":"#a6e3a126","diffEditor.insertedTextBackground":"#a6e3a11a","diffEditor.removedLineBackground":"#f38ba826","diffEditor.removedTextBackground":"#f38ba81a","diffEditorOverview.insertedForeground":"#a6e3a1cc","diffEditorOverview.removedForeground":"#f38ba8cc",disabledForeground:"#a6adc8","dropdown.background":"#181825","dropdown.border":"#cba6f7","dropdown.foreground":"#cdd6f4","dropdown.listBackground":"#585b70","editor.background":"#1e1e2e","editor.findMatchBackground":"#5e3f53","editor.findMatchBorder":"#f38ba833","editor.findMatchHighlightBackground":"#3e5767","editor.findMatchHighlightBorder":"#89dceb33","editor.findRangeHighlightBackground":"#3e5767","editor.findRangeHighlightBorder":"#89dceb33","editor.focusedStackFrameHighlightBackground":"#a6e3a126","editor.foldBackground":"#89dceb40","editor.foreground":"#cdd6f4","editor.hoverHighlightBackground":"#89dceb40","editor.lineHighlightBackground":"#cdd6f412","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#89dceb40","editor.rangeHighlightBorder":"#00000000","editor.selectionBackground":"#9399b240","editor.selectionHighlightBackground":"#9399b233","editor.selectionHighlightBorder":"#9399b233","editor.stackFrameHighlightBackground":"#f9e2af26","editor.wordHighlightBackground":"#9399b233","editorBracketHighlight.foreground1":"#f38ba8","editorBracketHighlight.foreground2":"#fab387","editorBracketHighlight.foreground3":"#f9e2af","editorBracketHighlight.foreground4":"#a6e3a1","editorBracketHighlight.foreground5":"#74c7ec","editorBracketHighlight.foreground6":"#cba6f7","editorBracketHighlight.unexpectedBracket.foreground":"#eba0ac","editorBracketMatch.background":"#9399b21a","editorBracketMatch.border":"#9399b2","editorCodeLens.foreground":"#7f849c","editorCursor.background":"#1e1e2e","editorCursor.foreground":"#f5e0dc","editorError.background":"#00000000","editorError.border":"#00000000","editorError.foreground":"#f38ba8","editorGroup.border":"#585b70","editorGroup.dropBackground":"#cba6f733","editorGroup.emptyBackground":"#1e1e2e","editorGroupHeader.tabsBackground":"#11111b","editorGutter.addedBackground":"#a6e3a1","editorGutter.background":"#1e1e2e","editorGutter.commentRangeForeground":"#9399b2","editorGutter.deletedBackground":"#f38ba8","editorGutter.foldingControlForeground":"#9399b2","editorGutter.modifiedBackground":"#f9e2af","editorHoverWidget.background":"#181825","editorHoverWidget.border":"#585b70","editorHoverWidget.foreground":"#cdd6f4","editorIndentGuide.activeBackground":"#585b70","editorIndentGuide.background":"#45475a","editorInfo.background":"#00000000","editorInfo.border":"#00000000","editorInfo.foreground":"#89b4fa","editorInlayHint.background":"#181825bf","editorInlayHint.foreground":"#585b70","editorInlayHint.parameterBackground":"#181825bf","editorInlayHint.parameterForeground":"#a6adc8","editorInlayHint.typeBackground":"#181825bf","editorInlayHint.typeForeground":"#bac2de","editorLightBulb.foreground":"#f9e2af","editorLineNumber.activeForeground":"#cba6f7","editorLineNumber.foreground":"#7f849c","editorLink.activeForeground":"#cba6f7","editorMarkerNavigation.background":"#181825","editorMarkerNavigationError.background":"#f38ba8","editorMarkerNavigationInfo.background":"#89b4fa","editorMarkerNavigationWarning.background":"#fab387","editorOverviewRuler.background":"#181825","editorOverviewRuler.border":"#cdd6f412","editorOverviewRuler.modifiedForeground":"#f9e2af","editorRuler.foreground":"#585b70","editorStickyScrollHover.background":"#313244","editorSuggestWidget.background":"#181825","editorSuggestWidget.border":"#585b70","editorSuggestWidget.foreground":"#cdd6f4","editorSuggestWidget.highlightForeground":"#cba6f7","editorSuggestWidget.selectedBackground":"#313244","editorWarning.background":"#00000000","editorWarning.border":"#00000000","editorWarning.foreground":"#fab387","editorWhitespace.foreground":"#9399b266","editorWidget.background":"#181825","editorWidget.foreground":"#cdd6f4","editorWidget.resizeBorder":"#585b70",errorForeground:"#f38ba8","errorLens.errorBackground":"#f38ba826","errorLens.errorBackgroundLight":"#f38ba826","errorLens.errorForeground":"#f38ba8","errorLens.errorForegroundLight":"#f38ba8","errorLens.errorMessageBackground":"#f38ba826","errorLens.hintBackground":"#a6e3a126","errorLens.hintBackgroundLight":"#a6e3a126","errorLens.hintForeground":"#a6e3a1","errorLens.hintForegroundLight":"#a6e3a1","errorLens.hintMessageBackground":"#a6e3a126","errorLens.infoBackground":"#89b4fa26","errorLens.infoBackgroundLight":"#89b4fa26","errorLens.infoForeground":"#89b4fa","errorLens.infoForegroundLight":"#89b4fa","errorLens.infoMessageBackground":"#89b4fa26","errorLens.statusBarErrorForeground":"#f38ba8","errorLens.statusBarHintForeground":"#a6e3a1","errorLens.statusBarIconErrorForeground":"#f38ba8","errorLens.statusBarIconWarningForeground":"#fab387","errorLens.statusBarInfoForeground":"#89b4fa","errorLens.statusBarWarningForeground":"#fab387","errorLens.warningBackground":"#fab38726","errorLens.warningBackgroundLight":"#fab38726","errorLens.warningForeground":"#fab387","errorLens.warningForegroundLight":"#fab387","errorLens.warningMessageBackground":"#fab38726","extensionBadge.remoteBackground":"#89b4fa","extensionBadge.remoteForeground":"#11111b","extensionButton.prominentBackground":"#cba6f7","extensionButton.prominentForeground":"#11111b","extensionButton.prominentHoverBackground":"#dec7fa","extensionButton.separator":"#1e1e2e","extensionIcon.preReleaseForeground":"#585b70","extensionIcon.sponsorForeground":"#f5c2e7","extensionIcon.starForeground":"#f9e2af","extensionIcon.verifiedForeground":"#a6e3a1",focusBorder:"#cba6f7",foreground:"#cdd6f4","gitDecoration.addedResourceForeground":"#a6e3a1","gitDecoration.conflictingResourceForeground":"#cba6f7","gitDecoration.deletedResourceForeground":"#f38ba8","gitDecoration.ignoredResourceForeground":"#6c7086","gitDecoration.modifiedResourceForeground":"#f9e2af","gitDecoration.stageDeletedResourceForeground":"#f38ba8","gitDecoration.stageModifiedResourceForeground":"#f9e2af","gitDecoration.submoduleResourceForeground":"#89b4fa","gitDecoration.untrackedResourceForeground":"#a6e3a1","gitlens.closedAutolinkedIssueIconColor":"#cba6f7","gitlens.closedPullRequestIconColor":"#f38ba8","gitlens.decorations.branchAheadForegroundColor":"#a6e3a1","gitlens.decorations.branchBehindForegroundColor":"#fab387","gitlens.decorations.branchDivergedForegroundColor":"#f9e2af","gitlens.decorations.branchMissingUpstreamForegroundColor":"#fab387","gitlens.decorations.branchUnpublishedForegroundColor":"#a6e3a1","gitlens.decorations.statusMergingOrRebasingConflictForegroundColor":"#eba0ac","gitlens.decorations.statusMergingOrRebasingForegroundColor":"#f9e2af","gitlens.decorations.workspaceCurrentForegroundColor":"#cba6f7","gitlens.decorations.workspaceRepoMissingForegroundColor":"#a6adc8","gitlens.decorations.workspaceRepoOpenForegroundColor":"#cba6f7","gitlens.decorations.worktreeHasUncommittedChangesForegroundColor":"#fab387","gitlens.decorations.worktreeMissingForegroundColor":"#eba0ac","gitlens.graphChangesColumnAddedColor":"#a6e3a1","gitlens.graphChangesColumnDeletedColor":"#f38ba8","gitlens.graphLane10Color":"#f5c2e7","gitlens.graphLane1Color":"#cba6f7","gitlens.graphLane2Color":"#f9e2af","gitlens.graphLane3Color":"#89b4fa","gitlens.graphLane4Color":"#f2cdcd","gitlens.graphLane5Color":"#a6e3a1","gitlens.graphLane6Color":"#b4befe","gitlens.graphLane7Color":"#f5e0dc","gitlens.graphLane8Color":"#f38ba8","gitlens.graphLane9Color":"#94e2d5","gitlens.graphMinimapMarkerHeadColor":"#a6e3a1","gitlens.graphMinimapMarkerHighlightsColor":"#f9e2af","gitlens.graphMinimapMarkerLocalBranchesColor":"#89b4fa","gitlens.graphMinimapMarkerRemoteBranchesColor":"#71a4f9","gitlens.graphMinimapMarkerStashesColor":"#cba6f7","gitlens.graphMinimapMarkerTagsColor":"#f2cdcd","gitlens.graphMinimapMarkerUpstreamColor":"#93dd8d","gitlens.graphScrollMarkerHeadColor":"#a6e3a1","gitlens.graphScrollMarkerHighlightsColor":"#f9e2af","gitlens.graphScrollMarkerLocalBranchesColor":"#89b4fa","gitlens.graphScrollMarkerRemoteBranchesColor":"#71a4f9","gitlens.graphScrollMarkerStashesColor":"#cba6f7","gitlens.graphScrollMarkerTagsColor":"#f2cdcd","gitlens.graphScrollMarkerUpstreamColor":"#93dd8d","gitlens.gutterBackgroundColor":"#3132444d","gitlens.gutterForegroundColor":"#cdd6f4","gitlens.gutterUncommittedForegroundColor":"#cba6f7","gitlens.lineHighlightBackgroundColor":"#cba6f726","gitlens.lineHighlightOverviewRulerColor":"#cba6f7cc","gitlens.mergedPullRequestIconColor":"#cba6f7","gitlens.openAutolinkedIssueIconColor":"#a6e3a1","gitlens.openPullRequestIconColor":"#a6e3a1","gitlens.trailingLineBackgroundColor":"#00000000","gitlens.trailingLineForegroundColor":"#cdd6f44d","gitlens.unpublishedChangesIconColor":"#a6e3a1","gitlens.unpublishedCommitIconColor":"#a6e3a1","gitlens.unpulledChangesIconColor":"#fab387","icon.foreground":"#cba6f7","input.background":"#313244","input.border":"#00000000","input.foreground":"#cdd6f4","input.placeholderForeground":"#cdd6f473","inputOption.activeBackground":"#585b70","inputOption.activeBorder":"#cba6f7","inputOption.activeForeground":"#cdd6f4","inputValidation.errorBackground":"#f38ba8","inputValidation.errorBorder":"#11111b33","inputValidation.errorForeground":"#11111b","inputValidation.infoBackground":"#89b4fa","inputValidation.infoBorder":"#11111b33","inputValidation.infoForeground":"#11111b","inputValidation.warningBackground":"#fab387","inputValidation.warningBorder":"#11111b33","inputValidation.warningForeground":"#11111b","issues.closed":"#cba6f7","issues.newIssueDecoration":"#f5e0dc","issues.open":"#a6e3a1","list.activeSelectionBackground":"#313244","list.activeSelectionForeground":"#cdd6f4","list.dropBackground":"#cba6f733","list.focusAndSelectionBackground":"#45475a","list.focusBackground":"#313244","list.focusForeground":"#cdd6f4","list.focusOutline":"#00000000","list.highlightForeground":"#cba6f7","list.hoverBackground":"#31324480","list.hoverForeground":"#cdd6f4","list.inactiveSelectionBackground":"#313244","list.inactiveSelectionForeground":"#cdd6f4","list.warningForeground":"#fab387","listFilterWidget.background":"#45475a","listFilterWidget.noMatchesOutline":"#f38ba8","listFilterWidget.outline":"#00000000","menu.background":"#1e1e2e","menu.border":"#1e1e2e80","menu.foreground":"#cdd6f4","menu.selectionBackground":"#585b70","menu.selectionBorder":"#00000000","menu.selectionForeground":"#cdd6f4","menu.separatorBackground":"#585b70","menubar.selectionBackground":"#45475a","menubar.selectionForeground":"#cdd6f4","merge.commonContentBackground":"#45475a","merge.commonHeaderBackground":"#585b70","merge.currentContentBackground":"#a6e3a133","merge.currentHeaderBackground":"#a6e3a166","merge.incomingContentBackground":"#89b4fa33","merge.incomingHeaderBackground":"#89b4fa66","minimap.background":"#18182580","minimap.errorHighlight":"#f38ba8bf","minimap.findMatchHighlight":"#89dceb4d","minimap.selectionHighlight":"#585b70bf","minimap.selectionOccurrenceHighlight":"#585b70bf","minimap.warningHighlight":"#fab387bf","minimapGutter.addedBackground":"#a6e3a1bf","minimapGutter.deletedBackground":"#f38ba8bf","minimapGutter.modifiedBackground":"#f9e2afbf","minimapSlider.activeBackground":"#cba6f799","minimapSlider.background":"#cba6f733","minimapSlider.hoverBackground":"#cba6f766","notificationCenter.border":"#cba6f7","notificationCenterHeader.background":"#181825","notificationCenterHeader.foreground":"#cdd6f4","notificationLink.foreground":"#89b4fa","notificationToast.border":"#cba6f7","notifications.background":"#181825","notifications.border":"#cba6f7","notifications.foreground":"#cdd6f4","notificationsErrorIcon.foreground":"#f38ba8","notificationsInfoIcon.foreground":"#89b4fa","notificationsWarningIcon.foreground":"#fab387","panel.background":"#1e1e2e","panel.border":"#585b70","panelSection.border":"#585b70","panelSection.dropBackground":"#cba6f733","panelTitle.activeBorder":"#cba6f7","panelTitle.activeForeground":"#cdd6f4","panelTitle.inactiveForeground":"#a6adc8","peekView.border":"#cba6f7","peekViewEditor.background":"#181825","peekViewEditor.matchHighlightBackground":"#89dceb4d","peekViewEditor.matchHighlightBorder":"#00000000","peekViewEditorGutter.background":"#181825","peekViewResult.background":"#181825","peekViewResult.fileForeground":"#cdd6f4","peekViewResult.lineForeground":"#cdd6f4","peekViewResult.matchHighlightBackground":"#89dceb4d","peekViewResult.selectionBackground":"#313244","peekViewResult.selectionForeground":"#cdd6f4","peekViewTitle.background":"#1e1e2e","peekViewTitleDescription.foreground":"#bac2deb3","peekViewTitleLabel.foreground":"#cdd6f4","pickerGroup.border":"#cba6f7","pickerGroup.foreground":"#cba6f7","problemsErrorIcon.foreground":"#f38ba8","problemsInfoIcon.foreground":"#89b4fa","problemsWarningIcon.foreground":"#fab387","progressBar.background":"#cba6f7","pullRequests.closed":"#f38ba8","pullRequests.draft":"#9399b2","pullRequests.merged":"#cba6f7","pullRequests.notification":"#cdd6f4","pullRequests.open":"#a6e3a1","sash.hoverBorder":"#cba6f7","scrollbar.shadow":"#11111b","scrollbarSlider.activeBackground":"#31324466","scrollbarSlider.background":"#585b7080","scrollbarSlider.hoverBackground":"#6c7086","selection.background":"#cba6f766","settings.dropdownBackground":"#45475a","settings.dropdownListBorder":"#00000000","settings.focusedRowBackground":"#585b7033","settings.headerForeground":"#cdd6f4","settings.modifiedItemIndicator":"#cba6f7","settings.numberInputBackground":"#45475a","settings.numberInputBorder":"#00000000","settings.textInputBackground":"#45475a","settings.textInputBorder":"#00000000","sideBar.background":"#181825","sideBar.border":"#00000000","sideBar.dropBackground":"#cba6f733","sideBar.foreground":"#cdd6f4","sideBarSectionHeader.background":"#181825","sideBarSectionHeader.foreground":"#cdd6f4","sideBarTitle.foreground":"#cba6f7","statusBar.background":"#11111b","statusBar.border":"#00000000","statusBar.debuggingBackground":"#fab387","statusBar.debuggingBorder":"#00000000","statusBar.debuggingForeground":"#11111b","statusBar.foreground":"#cdd6f4","statusBar.noFolderBackground":"#11111b","statusBar.noFolderBorder":"#00000000","statusBar.noFolderForeground":"#cdd6f4","statusBarItem.activeBackground":"#585b7066","statusBarItem.errorBackground":"#00000000","statusBarItem.errorForeground":"#f38ba8","statusBarItem.hoverBackground":"#585b7033","statusBarItem.prominentBackground":"#00000000","statusBarItem.prominentForeground":"#cba6f7","statusBarItem.prominentHoverBackground":"#585b7033","statusBarItem.remoteBackground":"#89b4fa","statusBarItem.remoteForeground":"#11111b","statusBarItem.warningBackground":"#00000000","statusBarItem.warningForeground":"#fab387","symbolIcon.arrayForeground":"#fab387","symbolIcon.booleanForeground":"#cba6f7","symbolIcon.classForeground":"#f9e2af","symbolIcon.colorForeground":"#f5c2e7","symbolIcon.constantForeground":"#fab387","symbolIcon.constructorForeground":"#b4befe","symbolIcon.enumeratorForeground":"#f9e2af","symbolIcon.enumeratorMemberForeground":"#f9e2af","symbolIcon.eventForeground":"#f5c2e7","symbolIcon.fieldForeground":"#cdd6f4","symbolIcon.fileForeground":"#cba6f7","symbolIcon.folderForeground":"#cba6f7","symbolIcon.functionForeground":"#89b4fa","symbolIcon.interfaceForeground":"#f9e2af","symbolIcon.keyForeground":"#94e2d5","symbolIcon.keywordForeground":"#cba6f7","symbolIcon.methodForeground":"#89b4fa","symbolIcon.moduleForeground":"#cdd6f4","symbolIcon.namespaceForeground":"#f9e2af","symbolIcon.nullForeground":"#eba0ac","symbolIcon.numberForeground":"#fab387","symbolIcon.objectForeground":"#f9e2af","symbolIcon.operatorForeground":"#94e2d5","symbolIcon.packageForeground":"#f2cdcd","symbolIcon.propertyForeground":"#eba0ac","symbolIcon.referenceForeground":"#f9e2af","symbolIcon.snippetForeground":"#f2cdcd","symbolIcon.stringForeground":"#a6e3a1","symbolIcon.structForeground":"#94e2d5","symbolIcon.textForeground":"#cdd6f4","symbolIcon.typeParameterForeground":"#eba0ac","symbolIcon.unitForeground":"#cdd6f4","symbolIcon.variableForeground":"#cdd6f4","tab.activeBackground":"#1e1e2e","tab.activeBorder":"#00000000","tab.activeBorderTop":"#cba6f7","tab.activeForeground":"#cba6f7","tab.activeModifiedBorder":"#f9e2af","tab.border":"#181825","tab.hoverBackground":"#28283d","tab.hoverBorder":"#00000000","tab.hoverForeground":"#cba6f7","tab.inactiveBackground":"#181825","tab.inactiveForeground":"#6c7086","tab.inactiveModifiedBorder":"#f9e2af4d","tab.lastPinnedBorder":"#cba6f7","tab.unfocusedActiveBackground":"#181825","tab.unfocusedActiveBorder":"#00000000","tab.unfocusedActiveBorderTop":"#cba6f74d","tab.unfocusedInactiveBackground":"#0e0e16","table.headerBackground":"#313244","table.headerForeground":"#cdd6f4","terminal.ansiBlack":"#a6adc8","terminal.ansiBlue":"#89b4fa","terminal.ansiBrightBlack":"#585b70","terminal.ansiBrightBlue":"#89b4fa","terminal.ansiBrightCyan":"#89dceb","terminal.ansiBrightGreen":"#a6e3a1","terminal.ansiBrightMagenta":"#f5c2e7","terminal.ansiBrightRed":"#f38ba8","terminal.ansiBrightWhite":"#45475a","terminal.ansiBrightYellow":"#f9e2af","terminal.ansiCyan":"#89dceb","terminal.ansiGreen":"#a6e3a1","terminal.ansiMagenta":"#f5c2e7","terminal.ansiRed":"#f38ba8","terminal.ansiWhite":"#bac2de","terminal.ansiYellow":"#f9e2af","terminal.border":"#585b70","terminal.dropBackground":"#cba6f733","terminal.foreground":"#cdd6f4","terminal.inactiveSelectionBackground":"#585b7080","terminal.selectionBackground":"#585b70","terminal.tab.activeBorder":"#cba6f7","terminalCommandDecoration.defaultBackground":"#585b70","terminalCommandDecoration.errorBackground":"#f38ba8","terminalCommandDecoration.successBackground":"#a6e3a1","terminalCursor.background":"#1e1e2e","terminalCursor.foreground":"#f5e0dc","textBlockQuote.background":"#181825","textBlockQuote.border":"#11111b","textCodeBlock.background":"#1e1e2e","textLink.activeForeground":"#89dceb","textLink.foreground":"#89b4fa","textPreformat.foreground":"#cdd6f4","textSeparator.foreground":"#cba6f7","titleBar.activeBackground":"#11111b","titleBar.activeForeground":"#cdd6f4","titleBar.border":"#00000000","titleBar.inactiveBackground":"#11111b","titleBar.inactiveForeground":"#cdd6f480","tree.inactiveIndentGuidesStroke":"#45475a","tree.indentGuidesStroke":"#9399b2","walkThrough.embeddedEditorBackground":"#1e1e2e4d","welcomePage.progress.background":"#11111b","welcomePage.progress.foreground":"#cba6f7","welcomePage.tileBackground":"#181825","widget.shadow":"#18182580","window.activeBorder":"#00000000","window.inactiveBorder":"#00000000"},displayName:"Catppuccin Mocha",name:"catppuccin-mocha",semanticHighlighting:!0,semanticTokenColors:{boolean:{foreground:"#fab387"},"builtinAttribute.attribute.library:rust":{foreground:"#89b4fa"},"class.builtin:python":{foreground:"#cba6f7"},"class:python":{foreground:"#f9e2af"},"constant.builtin.readonly:nix":{foreground:"#cba6f7"},enumMember:{foreground:"#94e2d5"},"function.decorator:python":{foreground:"#fab387"},"generic.attribute:rust":{foreground:"#cdd6f4"},heading:{foreground:"#f38ba8"},number:{foreground:"#fab387"},pol:{foreground:"#f2cdcd"},"property.readonly:javascript":{foreground:"#cdd6f4"},"property.readonly:javascriptreact":{foreground:"#cdd6f4"},"property.readonly:typescript":{foreground:"#cdd6f4"},"property.readonly:typescriptreact":{foreground:"#cdd6f4"},selfKeyword:{foreground:"#f38ba8"},"text.emph":{fontStyle:"italic",foreground:"#f38ba8"},"text.math":{foreground:"#f2cdcd"},"text.strong":{fontStyle:"bold",foreground:"#f38ba8"},tomlArrayKey:{fontStyle:"",foreground:"#89b4fa"},tomlTableKey:{fontStyle:"",foreground:"#89b4fa"},"type.defaultLibrary:go":{foreground:"#cba6f7"},"variable.defaultLibrary":{foreground:"#eba0ac"},"variable.readonly.defaultLibrary:go":{foreground:"#cba6f7"},"variable.readonly:javascript":{foreground:"#cdd6f4"},"variable.readonly:javascriptreact":{foreground:"#cdd6f4"},"variable.readonly:scala":{foreground:"#cdd6f4"},"variable.readonly:typescript":{foreground:"#cdd6f4"},"variable.readonly:typescriptreact":{foreground:"#cdd6f4"},"variable.typeHint:python":{foreground:"#f9e2af"}},tokenColors:[{scope:["text","source","variable.other.readwrite","punctuation.definition.variable"],settings:{foreground:"#cdd6f4"}},{scope:"punctuation",settings:{fontStyle:"",foreground:"#9399b2"}},{scope:["comment","punctuation.definition.comment"],settings:{fontStyle:"italic",foreground:"#6c7086"}},{scope:["string","punctuation.definition.string"],settings:{foreground:"#a6e3a1"}},{scope:"constant.character.escape",settings:{foreground:"#f5c2e7"}},{scope:["constant.numeric","variable.other.constant","entity.name.constant","constant.language.boolean","constant.language.false","constant.language.true","keyword.other.unit.user-defined","keyword.other.unit.suffix.floating-point"],settings:{foreground:"#fab387"}},{scope:["keyword","keyword.operator.word","keyword.operator.new","variable.language.super","support.type.primitive","storage.type","storage.modifier","punctuation.definition.keyword"],settings:{fontStyle:"",foreground:"#cba6f7"}},{scope:"entity.name.tag.documentation",settings:{foreground:"#cba6f7"}},{scope:["keyword.operator","punctuation.accessor","punctuation.definition.generic","meta.function.closure punctuation.section.parameters","punctuation.definition.tag","punctuation.separator.key-value"],settings:{foreground:"#94e2d5"}},{scope:["entity.name.function","meta.function-call.method","support.function","support.function.misc","variable.function"],settings:{fontStyle:"italic",foreground:"#89b4fa"}},{scope:["entity.name.class","entity.other.inherited-class","support.class","meta.function-call.constructor","entity.name.struct"],settings:{fontStyle:"italic",foreground:"#f9e2af"}},{scope:"entity.name.enum",settings:{fontStyle:"italic",foreground:"#f9e2af"}},{scope:["meta.enum variable.other.readwrite","variable.other.enummember"],settings:{foreground:"#94e2d5"}},{scope:"meta.property.object",settings:{foreground:"#94e2d5"}},{scope:["meta.type","meta.type-alias","support.type","entity.name.type"],settings:{fontStyle:"italic",foreground:"#f9e2af"}},{scope:["meta.annotation variable.function","meta.annotation variable.annotation.function","meta.annotation punctuation.definition.annotation","meta.decorator","punctuation.decorator"],settings:{foreground:"#fab387"}},{scope:["variable.parameter","meta.function.parameters"],settings:{fontStyle:"italic",foreground:"#eba0ac"}},{scope:["constant.language","support.function.builtin"],settings:{foreground:"#f38ba8"}},{scope:"entity.other.attribute-name.documentation",settings:{foreground:"#f38ba8"}},{scope:["keyword.control.directive","punctuation.definition.directive"],settings:{foreground:"#f9e2af"}},{scope:"punctuation.definition.typeparameters",settings:{foreground:"#89dceb"}},{scope:"entity.name.namespace",settings:{foreground:"#f9e2af"}},{scope:"support.type.property-name.css",settings:{fontStyle:"",foreground:"#89b4fa"}},{scope:["variable.language.this","variable.language.this punctuation.definition.variable"],settings:{foreground:"#f38ba8"}},{scope:"variable.object.property",settings:{foreground:"#cdd6f4"}},{scope:["string.template variable","string variable"],settings:{foreground:"#cdd6f4"}},{scope:"keyword.operator.new",settings:{fontStyle:"bold"}},{scope:"storage.modifier.specifier.extern.cpp",settings:{foreground:"#cba6f7"}},{scope:["entity.name.scope-resolution.template.call.cpp","entity.name.scope-resolution.parameter.cpp","entity.name.scope-resolution.cpp","entity.name.scope-resolution.function.definition.cpp"],settings:{foreground:"#f9e2af"}},{scope:"storage.type.class.doxygen",settings:{fontStyle:""}},{scope:["storage.modifier.reference.cpp"],settings:{foreground:"#94e2d5"}},{scope:"meta.interpolation.cs",settings:{foreground:"#cdd6f4"}},{scope:"comment.block.documentation.cs",settings:{foreground:"#cdd6f4"}},{scope:["source.css entity.other.attribute-name.class.css","entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css"],settings:{foreground:"#f9e2af"}},{scope:"punctuation.separator.operator.css",settings:{foreground:"#94e2d5"}},{scope:"source.css entity.other.attribute-name.pseudo-class",settings:{foreground:"#94e2d5"}},{scope:"source.css constant.other.unicode-range",settings:{foreground:"#fab387"}},{scope:"source.css variable.parameter.url",settings:{fontStyle:"",foreground:"#a6e3a1"}},{scope:["support.type.vendored.property-name"],settings:{foreground:"#89dceb"}},{scope:["source.css meta.property-value variable","source.css meta.property-value variable.other.less","source.css meta.property-value variable.other.less punctuation.definition.variable.less","meta.definition.variable.scss"],settings:{foreground:"#eba0ac"}},{scope:["source.css meta.property-list variable","meta.property-list variable.other.less","meta.property-list variable.other.less punctuation.definition.variable.less"],settings:{foreground:"#89b4fa"}},{scope:"keyword.other.unit.percentage.css",settings:{foreground:"#fab387"}},{scope:"source.css meta.attribute-selector",settings:{foreground:"#a6e3a1"}},{scope:["keyword.other.definition.ini","punctuation.support.type.property-name.json","support.type.property-name.json","punctuation.support.type.property-name.toml","support.type.property-name.toml","entity.name.tag.yaml","punctuation.support.type.property-name.yaml","support.type.property-name.yaml"],settings:{fontStyle:"",foreground:"#89b4fa"}},{scope:["constant.language.json","constant.language.yaml"],settings:{foreground:"#fab387"}},{scope:["entity.name.type.anchor.yaml","variable.other.alias.yaml"],settings:{fontStyle:"",foreground:"#f9e2af"}},{scope:["support.type.property-name.table","entity.name.section.group-title.ini"],settings:{foreground:"#f9e2af"}},{scope:"constant.other.time.datetime.offset.toml",settings:{foreground:"#f5c2e7"}},{scope:["punctuation.definition.anchor.yaml","punctuation.definition.alias.yaml"],settings:{foreground:"#f5c2e7"}},{scope:"entity.other.document.begin.yaml",settings:{foreground:"#f5c2e7"}},{scope:"markup.changed.diff",settings:{foreground:"#fab387"}},{scope:["meta.diff.header.from-file","meta.diff.header.to-file","punctuation.definition.from-file.diff","punctuation.definition.to-file.diff"],settings:{foreground:"#89b4fa"}},{scope:"markup.inserted.diff",settings:{foreground:"#a6e3a1"}},{scope:"markup.deleted.diff",settings:{foreground:"#f38ba8"}},{scope:["variable.other.env"],settings:{foreground:"#89b4fa"}},{scope:["string.quoted variable.other.env"],settings:{foreground:"#cdd6f4"}},{scope:"support.function.builtin.gdscript",settings:{foreground:"#89b4fa"}},{scope:"constant.language.gdscript",settings:{foreground:"#fab387"}},{scope:"comment meta.annotation.go",settings:{foreground:"#eba0ac"}},{scope:"comment meta.annotation.parameters.go",settings:{foreground:"#fab387"}},{scope:"constant.language.go",settings:{foreground:"#fab387"}},{scope:"variable.graphql",settings:{foreground:"#cdd6f4"}},{scope:"string.unquoted.alias.graphql",settings:{foreground:"#f2cdcd"}},{scope:"constant.character.enum.graphql",settings:{foreground:"#94e2d5"}},{scope:"meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql",settings:{foreground:"#f2cdcd"}},{scope:["keyword.other.doctype","meta.tag.sgml.doctype punctuation.definition.tag","meta.tag.metadata.doctype entity.name.tag","meta.tag.metadata.doctype punctuation.definition.tag"],settings:{foreground:"#cba6f7"}},{scope:["entity.name.tag"],settings:{fontStyle:"",foreground:"#89b4fa"}},{scope:["text.html constant.character.entity","text.html constant.character.entity punctuation","constant.character.entity.xml","constant.character.entity.xml punctuation","constant.character.entity.js.jsx","constant.charactger.entity.js.jsx punctuation","constant.character.entity.tsx","constant.character.entity.tsx punctuation"],settings:{foreground:"#f38ba8"}},{scope:["entity.other.attribute-name"],settings:{foreground:"#f9e2af"}},{scope:["support.class.component","support.class.component.jsx","support.class.component.tsx","support.class.component.vue"],settings:{fontStyle:"",foreground:"#f5c2e7"}},{scope:["punctuation.definition.annotation","storage.type.annotation"],settings:{foreground:"#fab387"}},{scope:"constant.other.enum.java",settings:{foreground:"#94e2d5"}},{scope:"storage.modifier.import.java",settings:{foreground:"#cdd6f4"}},{scope:"comment.block.javadoc.java keyword.other.documentation.javadoc.java",settings:{fontStyle:""}},{scope:"meta.export variable.other.readwrite.js",settings:{foreground:"#eba0ac"}},{scope:["variable.other.constant.js","variable.other.constant.ts","variable.other.property.js","variable.other.property.ts"],settings:{foreground:"#cdd6f4"}},{scope:["variable.other.jsdoc","comment.block.documentation variable.other"],settings:{fontStyle:"",foreground:"#eba0ac"}},{scope:"storage.type.class.jsdoc",settings:{fontStyle:""}},{scope:"support.type.object.console.js",settings:{foreground:"#cdd6f4"}},{scope:["support.constant.node","support.type.object.module.js"],settings:{foreground:"#cba6f7"}},{scope:"storage.modifier.implements",settings:{foreground:"#cba6f7"}},{scope:["constant.language.null.js","constant.language.null.ts","constant.language.undefined.js","constant.language.undefined.ts","support.type.builtin.ts"],settings:{foreground:"#cba6f7"}},{scope:"variable.parameter.generic",settings:{foreground:"#f9e2af"}},{scope:["keyword.declaration.function.arrow.js","storage.type.function.arrow.ts"],settings:{foreground:"#94e2d5"}},{scope:"punctuation.decorator.ts",settings:{fontStyle:"italic",foreground:"#89b4fa"}},{scope:["keyword.operator.expression.in.js","keyword.operator.expression.in.ts","keyword.operator.expression.infer.ts","keyword.operator.expression.instanceof.js","keyword.operator.expression.instanceof.ts","keyword.operator.expression.is","keyword.operator.expression.keyof.ts","keyword.operator.expression.of.js","keyword.operator.expression.of.ts","keyword.operator.expression.typeof.ts"],settings:{foreground:"#cba6f7"}},{scope:"support.function.macro.julia",settings:{fontStyle:"italic",foreground:"#94e2d5"}},{scope:"constant.language.julia",settings:{foreground:"#fab387"}},{scope:"constant.other.symbol.julia",settings:{foreground:"#eba0ac"}},{scope:"text.tex keyword.control.preamble",settings:{foreground:"#94e2d5"}},{scope:"text.tex support.function.be",settings:{foreground:"#89dceb"}},{scope:"constant.other.general.math.tex",settings:{foreground:"#f2cdcd"}},{scope:"comment.line.double-dash.documentation.lua storage.type.annotation.lua",settings:{fontStyle:"",foreground:"#cba6f7"}},{scope:["comment.line.double-dash.documentation.lua entity.name.variable.lua","comment.line.double-dash.documentation.lua variable.lua"],settings:{foreground:"#cdd6f4"}},{scope:["heading.1.markdown punctuation.definition.heading.markdown","heading.1.markdown","heading.1.quarto punctuation.definition.heading.quarto","heading.1.quarto","markup.heading.atx.1.mdx","markup.heading.atx.1.mdx punctuation.definition.heading.mdx","markup.heading.setext.1.markdown","markup.heading.heading-0.asciidoc"],settings:{foreground:"#f38ba8"}},{scope:["heading.2.markdown punctuation.definition.heading.markdown","heading.2.markdown","heading.2.quarto punctuation.definition.heading.quarto","heading.2.quarto","markup.heading.atx.2.mdx","markup.heading.atx.2.mdx punctuation.definition.heading.mdx","markup.heading.setext.2.markdown","markup.heading.heading-1.asciidoc"],settings:{foreground:"#fab387"}},{scope:["heading.3.markdown punctuation.definition.heading.markdown","heading.3.markdown","heading.3.quarto punctuation.definition.heading.quarto","heading.3.quarto","markup.heading.atx.3.mdx","markup.heading.atx.3.mdx punctuation.definition.heading.mdx","markup.heading.heading-2.asciidoc"],settings:{foreground:"#f9e2af"}},{scope:["heading.4.markdown punctuation.definition.heading.markdown","heading.4.markdown","heading.4.quarto punctuation.definition.heading.quarto","heading.4.quarto","markup.heading.atx.4.mdx","markup.heading.atx.4.mdx punctuation.definition.heading.mdx","markup.heading.heading-3.asciidoc"],settings:{foreground:"#a6e3a1"}},{scope:["heading.5.markdown punctuation.definition.heading.markdown","heading.5.markdown","heading.5.quarto punctuation.definition.heading.quarto","heading.5.quarto","markup.heading.atx.5.mdx","markup.heading.atx.5.mdx punctuation.definition.heading.mdx","markup.heading.heading-4.asciidoc"],settings:{foreground:"#89b4fa"}},{scope:["heading.6.markdown punctuation.definition.heading.markdown","heading.6.markdown","heading.6.quarto punctuation.definition.heading.quarto","heading.6.quarto","markup.heading.atx.6.mdx","markup.heading.atx.6.mdx punctuation.definition.heading.mdx","markup.heading.heading-5.asciidoc"],settings:{foreground:"#cba6f7"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#f38ba8"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#f38ba8"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough",foreground:"#a6adc8"}},{scope:["punctuation.definition.link","markup.underline.link"],settings:{foreground:"#89b4fa"}},{scope:["text.html.markdown punctuation.definition.link.title","text.html.quarto punctuation.definition.link.title","string.other.link.title.markdown","string.other.link.title.quarto","markup.link","punctuation.definition.constant.markdown","punctuation.definition.constant.quarto","constant.other.reference.link.markdown","constant.other.reference.link.quarto","markup.substitution.attribute-reference"],settings:{foreground:"#b4befe"}},{scope:["punctuation.definition.raw.markdown","punctuation.definition.raw.quarto","markup.inline.raw.string.markdown","markup.inline.raw.string.quarto","markup.raw.block.markdown","markup.raw.block.quarto"],settings:{foreground:"#a6e3a1"}},{scope:"fenced_code.block.language",settings:{foreground:"#89dceb"}},{scope:["markup.fenced_code.block punctuation.definition","markup.raw support.asciidoc"],settings:{foreground:"#9399b2"}},{scope:["markup.quote","punctuation.definition.quote.begin"],settings:{foreground:"#f5c2e7"}},{scope:"meta.separator.markdown",settings:{foreground:"#94e2d5"}},{scope:["punctuation.definition.list.begin.markdown","punctuation.definition.list.begin.quarto","markup.list.bullet"],settings:{foreground:"#94e2d5"}},{scope:"markup.heading.quarto",settings:{fontStyle:"bold"}},{scope:["entity.other.attribute-name.multipart.nix","entity.other.attribute-name.single.nix"],settings:{foreground:"#89b4fa"}},{scope:"variable.parameter.name.nix",settings:{fontStyle:"",foreground:"#cdd6f4"}},{scope:"meta.embedded variable.parameter.name.nix",settings:{fontStyle:"",foreground:"#b4befe"}},{scope:"string.unquoted.path.nix",settings:{fontStyle:"",foreground:"#f5c2e7"}},{scope:["support.attribute.builtin","meta.attribute.php"],settings:{foreground:"#f9e2af"}},{scope:"meta.function.parameters.php punctuation.definition.variable.php",settings:{foreground:"#eba0ac"}},{scope:"constant.language.php",settings:{foreground:"#cba6f7"}},{scope:"text.html.php support.function",settings:{foreground:"#89dceb"}},{scope:"keyword.other.phpdoc.php",settings:{fontStyle:""}},{scope:["support.variable.magic.python","meta.function-call.arguments.python"],settings:{foreground:"#cdd6f4"}},{scope:["support.function.magic.python"],settings:{fontStyle:"italic",foreground:"#89dceb"}},{scope:["variable.parameter.function.language.special.self.python","variable.language.special.self.python"],settings:{fontStyle:"italic",foreground:"#f38ba8"}},{scope:["keyword.control.flow.python","keyword.operator.logical.python"],settings:{foreground:"#cba6f7"}},{scope:"storage.type.function.python",settings:{foreground:"#cba6f7"}},{scope:["support.token.decorator.python","meta.function.decorator.identifier.python"],settings:{foreground:"#89dceb"}},{scope:["meta.function-call.python"],settings:{foreground:"#89b4fa"}},{scope:["entity.name.function.decorator.python","punctuation.definition.decorator.python"],settings:{fontStyle:"italic",foreground:"#fab387"}},{scope:"constant.character.format.placeholder.other.python",settings:{foreground:"#f5c2e7"}},{scope:["support.type.exception.python","support.function.builtin.python"],settings:{foreground:"#fab387"}},{scope:["support.type.python"],settings:{foreground:"#fab387"}},{scope:"constant.language.python",settings:{foreground:"#cba6f7"}},{scope:["meta.indexed-name.python","meta.item-access.python"],settings:{fontStyle:"italic",foreground:"#eba0ac"}},{scope:"storage.type.string.python",settings:{fontStyle:"italic",foreground:"#a6e3a1"}},{scope:"meta.function.parameters.python",settings:{fontStyle:""}},{scope:["string.regexp punctuation.definition.string.begin","string.regexp punctuation.definition.string.end"],settings:{foreground:"#f5c2e7"}},{scope:"keyword.control.anchor.regexp",settings:{foreground:"#cba6f7"}},{scope:"string.regexp.ts",settings:{foreground:"#cdd6f4"}},{scope:["punctuation.definition.group.regexp","keyword.other.back-reference.regexp"],settings:{foreground:"#a6e3a1"}},{scope:"punctuation.definition.character-class.regexp",settings:{foreground:"#f9e2af"}},{scope:"constant.other.character-class.regexp",settings:{foreground:"#f5c2e7"}},{scope:"constant.other.character-class.range.regexp",settings:{foreground:"#f5e0dc"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#94e2d5"}},{scope:"constant.character.numeric.regexp",settings:{foreground:"#fab387"}},{scope:["punctuation.definition.group.no-capture.regexp","meta.assertion.look-ahead.regexp","meta.assertion.negative-look-ahead.regexp"],settings:{foreground:"#89b4fa"}},{scope:["meta.annotation.rust","meta.annotation.rust punctuation","meta.attribute.rust","punctuation.definition.attribute.rust"],settings:{fontStyle:"italic",foreground:"#f9e2af"}},{scope:["meta.attribute.rust string.quoted.double.rust","meta.attribute.rust string.quoted.single.char.rust"],settings:{fontStyle:""}},{scope:["entity.name.function.macro.rules.rust","storage.type.module.rust","storage.modifier.rust","storage.type.struct.rust","storage.type.enum.rust","storage.type.trait.rust","storage.type.union.rust","storage.type.impl.rust","storage.type.rust","storage.type.function.rust","storage.type.type.rust"],settings:{fontStyle:"",foreground:"#cba6f7"}},{scope:"entity.name.type.numeric.rust",settings:{fontStyle:"",foreground:"#cba6f7"}},{scope:"meta.generic.rust",settings:{foreground:"#fab387"}},{scope:"entity.name.impl.rust",settings:{fontStyle:"italic",foreground:"#f9e2af"}},{scope:"entity.name.module.rust",settings:{foreground:"#fab387"}},{scope:"entity.name.trait.rust",settings:{fontStyle:"italic",foreground:"#f9e2af"}},{scope:"storage.type.source.rust",settings:{foreground:"#f9e2af"}},{scope:"entity.name.union.rust",settings:{foreground:"#f9e2af"}},{scope:"meta.enum.rust storage.type.source.rust",settings:{foreground:"#94e2d5"}},{scope:["support.macro.rust","meta.macro.rust support.function.rust","entity.name.function.macro.rust"],settings:{fontStyle:"italic",foreground:"#89b4fa"}},{scope:["storage.modifier.lifetime.rust","entity.name.type.lifetime"],settings:{fontStyle:"italic",foreground:"#89b4fa"}},{scope:"string.quoted.double.rust constant.other.placeholder.rust",settings:{foreground:"#f5c2e7"}},{scope:"meta.function.return-type.rust meta.generic.rust storage.type.rust",settings:{foreground:"#cdd6f4"}},{scope:"meta.function.call.rust",settings:{foreground:"#89b4fa"}},{scope:"punctuation.brackets.angle.rust",settings:{foreground:"#89dceb"}},{scope:"constant.other.caps.rust",settings:{foreground:"#fab387"}},{scope:["meta.function.definition.rust variable.other.rust"],settings:{foreground:"#eba0ac"}},{scope:"meta.function.call.rust variable.other.rust",settings:{foreground:"#cdd6f4"}},{scope:"variable.language.self.rust",settings:{foreground:"#f38ba8"}},{scope:["variable.other.metavariable.name.rust","meta.macro.metavariable.rust keyword.operator.macro.dollar.rust"],settings:{foreground:"#f5c2e7"}},{scope:["comment.line.shebang","comment.line.shebang punctuation.definition.comment","comment.line.shebang","punctuation.definition.comment.shebang.shell","meta.shebang.shell"],settings:{fontStyle:"italic",foreground:"#f5c2e7"}},{scope:"comment.line.shebang constant.language",settings:{fontStyle:"italic",foreground:"#94e2d5"}},{scope:["meta.function-call.arguments.shell punctuation.definition.variable.shell","meta.function-call.arguments.shell punctuation.section.interpolation","meta.function-call.arguments.shell punctuation.definition.variable.shell","meta.function-call.arguments.shell punctuation.section.interpolation"],settings:{foreground:"#f38ba8"}},{scope:"meta.string meta.interpolation.parameter.shell variable.other.readwrite",settings:{fontStyle:"italic",foreground:"#fab387"}},{scope:["source.shell punctuation.section.interpolation","punctuation.definition.evaluation.backticks.shell"],settings:{foreground:"#94e2d5"}},{scope:"entity.name.tag.heredoc.shell",settings:{foreground:"#cba6f7"}},{scope:"string.quoted.double.shell variable.other.normal.shell",settings:{foreground:"#cdd6f4"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/clarity.CIekO_uJ.js b/assets/chunks/clarity.CIekO_uJ.js new file mode 100644 index 000000000..550fdb865 --- /dev/null +++ b/assets/chunks/clarity.CIekO_uJ.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Clarity",name:"clarity",patterns:[{include:"#expression"},{include:"#define-constant"},{include:"#define-data-var"},{include:"#define-map"},{include:"#define-function"},{include:"#define-fungible-token"},{include:"#define-non-fungible-token"},{include:"#define-trait"},{include:"#use-trait"}],repository:{"built-in-func":{begin:"(?x) (\\() \\s* (\\-|\\+|<\\=|>\\=|<|>|\\*|/|and|append|as-contract|as-max-len\\?|asserts!|at-block|begin|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|buff-to-int-be|buff-to-int-le|buff-to-uint-be|buff-to-uint-le|concat|contract-call\\?|contract-of|default-to|element-at|element-at\\?|filter|fold|from-consensus-buff\\?|ft-burn\\?|ft-get-balance|ft-get-supply|ft-mint\\?|ft-transfer\\?|get-block-info\\?|get-burn-block-info\\?|hash160|if|impl-trait|index-of|index-of\\?|int-to-ascii|int-to-utf8|is-eq|is-err|is-none|is-ok|is-some|is-standard|keccak256|len|log2|map|match|merge|mod|nft-burn\\?|nft-get-owner\\?|nft-mint\\?|nft-transfer\\?|not|or|pow|principal-construct\\?|principal-destruct\\?|principal-of\\?|print|replace-at\\?|secp256k1-recover\\?|secp256k1-verify|sha256|sha512|sha512/256|slice\\?|sqrti|string-to-int\\?|string-to-uint\\?|stx-account|stx-burn\\?|stx-get-balance|stx-transfer-memo\\?|stx-transfer\\?|to-consensus-buff\\?|to-int|to-uint|try!|unwrap!|unwrap-err!|unwrap-err-panic|unwrap-panic|xor) \\s+",beginCaptures:{1:{name:"punctuation.built-in-function.start.clarity"},2:{name:"keyword.declaration.built-in-function.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.built-in-function.end.clarity"}},name:"meta.built-in-function",patterns:[{include:"#expression"},{include:"#user-func"}]},comment:{match:"(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) (;) .* $",name:"comment.line.semicolon.clarity"},"data-type":{patterns:[{include:"#comment"},{comment:"numerics",match:"\\b(uint|int)\\b",name:"entity.name.type.numeric.clarity"},{comment:"principal",match:"\\b(principal)\\b",name:"entity.name.type.principal.clarity"},{comment:"bool",match:"\\b(bool)\\b",name:"entity.name.type.bool.clarity"},{captures:{1:{name:"punctuation.string_type-def.start.clarity"},2:{name:"entity.name.type.string_type.clarity"},3:{name:"constant.numeric.string_type-len.clarity"},4:{name:"punctuation.string_type-def.end.clarity"}},match:"(?x) (\\() \\s* (?:(string-ascii|string-utf8)\\s+(\\d+)) \\s* (\\))"},{captures:{1:{name:"punctuation.buff-def.start.clarity"},2:{name:"entity.name.type.buff.clarity"},3:{name:"constant.numeric.buf-len.clarity"},4:{name:"punctuation.buff-def.end.clarity"}},match:"(?x) (\\() \\s* (buff)\\s+(\\d+)\\s* (\\))"},{begin:"(?x) (\\() \\s* (optional)\\s+",beginCaptures:{1:{name:"punctuation.optional-def.start.clarity"},2:{name:"storage.type.modifier"}},comment:"optional",end:"(\\))",endCaptures:{1:{name:"punctuation.optional-def.end.clarity"}},name:"meta.optional-def",patterns:[{include:"#data-type"}]},{begin:"(?x) (\\() \\s* (response)\\s+",beginCaptures:{1:{name:"punctuation.response-def.start.clarity"},2:{name:"storage.type.modifier"}},comment:"response",end:"(\\))",endCaptures:{1:{name:"punctuation.response-def.end.clarity"}},name:"meta.response-def",patterns:[{include:"#data-type"}]},{begin:"(?x) (\\() \\s* (list) \\s+ (\\d+) \\s+",beginCaptures:{1:{name:"punctuation.list-def.start.clarity"},2:{name:"entity.name.type.list.clarity"},3:{name:"constant.numeric.list-len.clarity"}},comment:"list",end:"(\\))",endCaptures:{1:{name:"punctuation.list-def.end.clarity"}},name:"meta.list-def",patterns:[{include:"#data-type"}]},{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.tuple-def.start.clarity"}},end:"(\\})",endCaptures:{1:{name:"punctuation.tuple-def.end.clarity"}},name:"meta.tuple-def",patterns:[{match:"([a-zA-Z][\\w\\?\\!\\-]*)(?=:)",name:"entity.name.tag.tuple-data-type-key.clarity"},{include:"#data-type"}]}]},"define-constant":{begin:"(?x) (\\() \\s* (define-constant) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+",beginCaptures:{1:{name:"punctuation.define-constant.start.clarity"},2:{name:"keyword.declaration.define-constant.clarity"},3:{name:"entity.name.constant-name.clarity variable.other.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.define-constant.end.clarity"}},name:"meta.define-constant",patterns:[{include:"#expression"}]},"define-data-var":{begin:"(?x) (\\() \\s* (define-data-var) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+",beginCaptures:{1:{name:"punctuation.define-data-var.start.clarity"},2:{name:"keyword.declaration.define-data-var.clarity"},3:{name:"entity.name.data-var-name.clarity variable.other.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.define-data-var.end.clarity"}},name:"meta.define-data-var",patterns:[{include:"#data-type"},{include:"#expression"}]},"define-function":{begin:"(?x) (\\() \\s* (define-(?:public|private|read-only)) \\s+",beginCaptures:{1:{name:"punctuation.define-function.start.clarity"},2:{name:"keyword.declaration.define-function.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.define-function.end.clarity"}},name:"meta.define-function",patterns:[{include:"#expression"},{begin:"(?x) (\\() \\s* ([a-zA-Z][\\w\\?\\!\\-]*) \\s*",beginCaptures:{1:{name:"punctuation.function-signature.start.clarity"},2:{name:"entity.name.function.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.function-signature.end.clarity"}},name:"meta.define-function-signature",patterns:[{begin:"(?x) (\\() \\s* ([a-zA-Z][\\w\\?\\!\\-]*) \\s+",beginCaptures:{1:{name:"punctuation.function-argument.start.clarity"},2:{name:"variable.parameter.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.function-argument.end.clarity"}},name:"meta.function-argument",patterns:[{include:"#data-type"}]}]},{include:"#user-func"}]},"define-fungible-token":{captures:{1:{name:"punctuation.define-fungible-token.start.clarity"},2:{name:"keyword.declaration.define-fungible-token.clarity"},3:{name:"entity.name.fungible-token-name.clarity variable.other.clarity"},4:{name:"constant.numeric.fungible-token-total-supply.clarity"},5:{name:"punctuation.define-fungible-token.end.clarity"}},match:"(?x) (\\() \\s* (define-fungible-token) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) (?:\\s+(u\\d+))?"},"define-map":{begin:"(?x) (\\() \\s* (define-map) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+",beginCaptures:{1:{name:"punctuation.define-map.start.clarity"},2:{name:"keyword.declaration.define-map.clarity"},3:{name:"entity.name.map-name.clarity variable.other.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.define-map.end.clarity"}},name:"meta.define-map",patterns:[{include:"#data-type"},{include:"#expression"}]},"define-non-fungible-token":{begin:"(?x) (\\() \\s* (define-non-fungible-token) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+",beginCaptures:{1:{name:"punctuation.define-non-fungible-token.start.clarity"},2:{name:"keyword.declaration.define-non-fungible-token.clarity"},3:{name:"entity.name.non-fungible-token-name.clarity variable.other.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.define-non-fungible-token.end.clarity"}},name:"meta.define-non-fungible-token",patterns:[{include:"#data-type"}]},"define-trait":{begin:"(?x) (\\() \\s* (define-trait) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+",beginCaptures:{1:{name:"punctuation.define-trait.start.clarity"},2:{name:"keyword.declaration.define-trait.clarity"},3:{name:"entity.name.trait-name.clarity variable.other.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.define-trait.end.clarity"}},name:"meta.define-trait",patterns:[{begin:"(?x) (\\() \\s*",beginCaptures:{1:{name:"punctuation.define-trait-body.start.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.define-trait-body.end.clarity"}},name:"meta.define-trait-body",patterns:[{include:"#expression"},{begin:"(?x) (\\() \\s* ([a-zA-Z][\\w\\!\\?\\-]*) \\s+",beginCaptures:{1:{name:"punctuation.trait-function.start.clarity"},2:{name:"entity.name.function.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.trait-function.end.clarity"}},name:"meta.trait-function",patterns:[{include:"#data-type"},{begin:"(?x) (\\() \\s*",beginCaptures:{1:{name:"punctuation.trait-function-args.start.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.trait-function-args.end.clarity"}},name:"meta.trait-function-args",patterns:[{include:"#data-type"}]}]}]}]},expression:{patterns:[{include:"#comment"},{include:"#keyword"},{include:"#literal"},{include:"#let-func"},{include:"#built-in-func"},{include:"#get-set-func"}]},"get-set-func":{begin:"(?x) (\\() \\s* (var-get|var-set|map-get\\?|map-set|map-insert|map-delete|get) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s*",beginCaptures:{1:{name:"punctuation.get-set-func.start.clarity"},2:{name:"keyword.control.clarity"},3:{name:"variable.other.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.get-set-func.end.clarity"}},name:"meta.get-set-func",patterns:[{include:"#expression"}]},keyword:{match:"(?\\<\\!\\?\\d]+\\*",name:"meta.symbol.dynamic.clojure"},keyfn:{patterns:[{match:"(?<=(\\s|\\(|\\[|\\{))(if(-[-\\p{Ll}\\?]*)?|when(-[-\\p{Ll}]*)?|for(-[-\\p{Ll}]*)?|cond|do|let(-[-\\p{Ll}\\?]*)?|binding|loop|recur|fn|throw[\\p{Ll}\\-]*|try|catch|finally|([\\p{Ll}]*case))(?=(\\s|\\)|\\]|\\}))",name:"storage.control.clojure"},{match:"(?<=(\\s|\\(|\\[|\\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[\\p{Ll}\\-]*))(?=(\\s|\\)|\\]|\\}))",name:"keyword.control.clojure"}]},keyword:{match:"(?<=(\\s|\\(|\\[|\\{)):[\\w\\#\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}|\\,))",name:"constant.keyword.clojure"},map:{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.section.map.begin.clojure"}},end:"(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",endCaptures:{1:{name:"punctuation.section.map.end.trailing.clojure"},2:{name:"punctuation.section.map.end.clojure"}},name:"meta.map.clojure",patterns:[{include:"$self"}]},metadata:{patterns:[{begin:"(\\^\\{)",beginCaptures:{1:{name:"punctuation.section.metadata.map.begin.clojure"}},end:"(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",endCaptures:{1:{name:"punctuation.section.metadata.map.end.trailing.clojure"},2:{name:"punctuation.section.metadata.map.end.clojure"}},name:"meta.metadata.map.clojure",patterns:[{include:"$self"}]},{begin:"(\\^)",end:"(\\s)",name:"meta.metadata.simple.clojure",patterns:[{include:"#keyword"},{include:"$self"}]}]},"namespace-symbol":{patterns:[{captures:{1:{name:"meta.symbol.namespace.clojure"}},match:"([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)/"}]},"quoted-sexp":{begin:"(['``]\\()",beginCaptures:{1:{name:"punctuation.section.expression.begin.clojure"}},end:"(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))",endCaptures:{1:{name:"punctuation.section.expression.end.trailing.clojure"},2:{name:"punctuation.section.expression.end.trailing.clojure"},3:{name:"punctuation.section.expression.end.clojure"}},name:"meta.quoted-expression.clojure",patterns:[{include:"$self"}]},regexp:{begin:'#"',beginCaptures:{0:{name:"punctuation.definition.regexp.begin.clojure"}},end:'"',endCaptures:{0:{name:"punctuation.definition.regexp.end.clojure"}},name:"string.regexp.clojure",patterns:[{include:"#regexp_escaped_char"}]},regexp_escaped_char:{match:"\\\\.",name:"constant.character.escape.clojure"},set:{begin:"(\\#\\{)",beginCaptures:{1:{name:"punctuation.section.set.begin.clojure"}},end:"(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",endCaptures:{1:{name:"punctuation.section.set.end.trailing.clojure"},2:{name:"punctuation.section.set.end.clojure"}},name:"meta.set.clojure",patterns:[{include:"$self"}]},sexp:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.expression.begin.clojure"}},end:"(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))",endCaptures:{1:{name:"punctuation.section.expression.end.trailing.clojure"},2:{name:"punctuation.section.expression.end.trailing.clojure"},3:{name:"punctuation.section.expression.end.clojure"}},name:"meta.expression.clojure",patterns:[{begin:"(?<=\\()(ns|declare|def[\\w\\d._:+=>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)",name:"entity.global.clojure"},{include:"$self"}]},{include:"#keyfn"},{include:"#constants"},{include:"#vector"},{include:"#map"},{include:"#set"},{include:"#sexp"},{captures:{1:{name:"entity.name.function.clojure"}},match:"(?<=\\()(.+?)(?=\\s|\\))",patterns:[{include:"$self"}]},{include:"$self"}]},"shebang-comment":{begin:"^(#!)",beginCaptures:{1:{name:"punctuation.definition.comment.shebang.clojure"}},end:"$",name:"comment.line.shebang.clojure"},string:{begin:'(?\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)",name:"meta.symbol.clojure"}]},var:{match:"(?<=(\\s|\\(|\\[|\\{)\\#)'[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))",name:"meta.var.clojure"},vector:{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.section.vector.begin.clojure"}},end:"(\\](?=[\\}\\]\\)\\s]*(?:;|$)))|(\\])",endCaptures:{1:{name:"punctuation.section.vector.end.trailing.clojure"},2:{name:"punctuation.section.vector.end.clojure"}},name:"meta.vector.clojure",patterns:[{include:"$self"}]}},scopeName:"source.clojure",aliases:["clj"]});var n=[e];export{n as default}; diff --git a/assets/chunks/cmake.DXZpi2gR.js b/assets/chunks/cmake.DXZpi2gR.js new file mode 100644 index 000000000..7d2d51ed1 --- /dev/null +++ b/assets/chunks/cmake.DXZpi2gR.js @@ -0,0 +1 @@ +const _=Object.freeze({displayName:"CMake",fileTypes:["cmake","CMakeLists.txt"],name:"cmake",patterns:[{comment:"Variables That Describe the System",match:"\\b(?i:APPLE|BORLAND|(CMAKE_)?(CL_64|COMPILER_2005|HOST_APPLE|HOST_SYSTEM|HOST_SYSTEM_NAME|HOST_SYSTEM_PROCESSOR|HOST_SYSTEM_VERSION|HOST_UNIX|HOST_WIN32|LIBRARY_ARCHITECTURE|LIBRARY_ARCHITECTURE_REGEX|OBJECT_PATH_MAX|SYSTEM|SYSTEM_NAME|SYSTEM_PROCESSOR|SYSTEM_VERSION)|CYGWIN|MSVC|MSVC80|MSVC_IDE|MSVC_VERSION|UNIX|WIN32|XCODE_VERSION|MSVC60|MSVC70|MSVC90|MSVC71)\\b",name:"constant.source.cmake"},{comment:"cmakeOperators",match:"\\b(?i:ABSOLUTE|AND|BOOL|CACHE|COMMAND|COMMENT|DEFINED|DOC|EQUAL|EXISTS|EXT|FALSE|GREATER|GREATER_EQUAL|INTERNAL|IN_LIST|IS_ABSOLUTE|IS_DIRECTORY|IS_NEWER_THAN|IS_SYMLINK|LESS|LESS_EQUAL|MATCHES|NAME|NAMES|NAME_WE|NOT|OFF|ON|OR|PATH|PATHS|POLICY|PROGRAM|STREQUAL|STRGREATER|STRGREATER_EQUAL|STRING|STRLESS|STRLESS_EQUAL|TARGET|TEST|TRUE|VERSION_EQUAL|VERSION_GREATER|VERSION_GREATER_EQUAL|VERSION_LESS)\\b",name:"keyword.cmake"},{comment:"Commands",match:"^\\s*\\b(?i:add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_libraries|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)\\b",name:"keyword.cmake"},{comment:"Variables That Change Behavior",match:"\\b(?i:BUILD_SHARED_LIBS|(CMAKE_)?(ABSOLUTE_DESTINATION_FILES|AUTOMOC_RELAXED_MODE|BACKWARDS_COMPATIBILITY|BUILD_TYPE|COLOR_MAKEFILE|CONFIGURATION_TYPES|DEBUG_TARGET_PROPERTIES|DISABLE_FIND_PACKAGE_\\w+|FIND_LIBRARY_PREFIXES|FIND_LIBRARY_SUFFIXES|IGNORE_PATH|INCLUDE_PATH|INSTALL_DEFAULT_COMPONENT_NAME|INSTALL_PREFIX|LIBRARY_PATH|MFC_FLAG|MODULE_PATH|NOT_USING_CONFIG_FLAGS|POLICY_DEFAULT_CMP\\w+|PREFIX_PATH|PROGRAM_PATH|SKIP_INSTALL_ALL_DEPENDENCY|SYSTEM_IGNORE_PATH|SYSTEM_INCLUDE_PATH|SYSTEM_LIBRARY_PATH|SYSTEM_PREFIX_PATH|SYSTEM_PROGRAM_PATH|USER_MAKE_RULES_OVERRIDE|WARN_ON_ABSOLUTE_INSTALL_DESTINATION))\\b",name:"variable.source.cmake"},{match:"\\$\\{\\w+\\}",name:"storage.source.cmake"},{match:"\\$ENV\\{\\w+\\}",name:"storage.source.cmake"},{comment:"Variables that Control the Build",match:"\\b(?i:(CMAKE_)?(\\w+_POSTFIX|ARCHIVE_OUTPUT_DIRECTORY|AUTOMOC|AUTOMOC_MOC_OPTIONS|BUILD_WITH_INSTALL_RPATH|DEBUG_POSTFIX|EXE_LINKER_FLAGS|EXE_LINKER_FLAGS_\\w+|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GNUtoMS|INCLUDE_CURRENT_DIR|INCLUDE_CURRENT_DIR_IN_INTERFACE|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_PATH_FLAG|LINK_DEF_FILE_FLAG|LINK_DEPENDS_NO_SHARED|LINK_INTERFACE_LIBRARIES|LINK_LIBRARY_FILE_FLAG|LINK_LIBRARY_FLAG|MACOSX_BUNDLE|NO_BUILTIN_CHRPATH|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|RUNTIME_OUTPUT_DIRECTORY|SKIP_BUILD_RPATH|SKIP_INSTALL_RPATH|TRY_COMPILE_CONFIGURATION|USE_RELATIVE_PATHS|WIN32_EXECUTABLE)|EXECUTABLE_OUTPUT_PATH|LIBRARY_OUTPUT_PATH)\\b",name:"variable.source.cmake"},{comment:"Variables that Provide Information",match:"\\b(?i:CMAKE_(AR|ARGC|ARGV0|BINARY_DIR|BUILD_TOOL|CACHEFILE_DIR|CACHE_MAJOR_VERSION|CACHE_MINOR_VERSION|CACHE_PATCH_VERSION|CFG_INTDIR|COMMAND|CROSSCOMPILING|CTEST_COMMAND|CURRENT_BINARY_DIR|CURRENT_LIST_DIR|CURRENT_LIST_FILE|CURRENT_LIST_LINE|CURRENT_SOURCE_DIR|DL_LIBS|EDIT_COMMAND|EXECUTABLE_SUFFIX|EXTRA_GENERATOR|EXTRA_SHARED_LIBRARY_SUFFIXES|GENERATOR|HOME_DIRECTORY|IMPORT_LIBRARY_PREFIX|IMPORT_LIBRARY_SUFFIX|LINK_LIBRARY_SUFFIX|MAJOR_VERSION|MAKE_PROGRAM|MINOR_VERSION|PARENT_LIST_FILE|PATCH_VERSION|PROJECT_NAME|RANLIB|ROOT|SCRIPT_MODE_FILE|SHARED_LIBRARY_PREFIX|SHARED_LIBRARY_SUFFIX|SHARED_MODULE_PREFIX|SHARED_MODULE_SUFFIX|SIZEOF_VOID_P|SKIP_RPATH|SOURCE_DIR|STANDARD_LIBRARIES|STATIC_LIBRARY_PREFIX|STATIC_LIBRARY_SUFFIX|TWEAK_VERSION|USING_VC_FREE_TOOLS|VERBOSE_MAKEFILE|VERSION)|PROJECT_BINARY_DIR|PROJECT_NAME|PROJECT_SOURCE_DIR|\\w+_BINARY_DIR|\\w+__SOURCE_DIR)\\b",name:"variable.source.cmake"},{begin:"#\\[(=*)\\[",comment:"BracketArgs",end:"\\]\\1\\]",name:"comment.source.cmake",patterns:[{match:"\\\\(.|$)",name:"constant.character.escape"}]},{begin:"\\[(=*)\\[",comment:"BracketArgs",end:"\\]\\1\\]",name:"argument.source.cmake",patterns:[{match:"\\\\(.|$)",name:"constant.character.escape"}]},{match:"#+.*$",name:"comment.source.cmake"},{comment:"Properties on Cache Entries",match:"\\b(?i:ADVANCED|HELPSTRING|MODIFIED|STRINGS|TYPE|VALUE)\\b",name:"entity.source.cmake"},{comment:"Properties on Source Files",match:"\\b(?i:ABSTRACT|COMPILE_DEFINITIONS|COMPILE_DEFINITIONS_|COMPILE_FLAGS|EXTERNAL_OBJECT|Fortran_FORMAT|GENERATED|HEADER_FILE_ONLY|KEEP_EXTENSION|LABELS|LANGUAGE|LOCATION|MACOSX_PACKAGE_LOCATION|OBJECT_DEPENDS|OBJECT_OUTPUTS|SYMBOLIC|WRAP_EXCLUDE)\\b",name:"entity.source.cmake"},{comment:"Properties on Tests",match:"\\b(?i:ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|COST|DEPENDS|ENVIRONMENT|FAIL_REGULAR_EXPRESSION|LABELS|MEASUREMENT|PASS_REGULAR_EXPRESSION|PROCESSORS|REQUIRED_FILES|RESOURCE_LOCK|RUN_SERIAL|TIMEOUT|WILL_FAIL|WORKING_DIRECTORY)\\b",name:"entity.source.cmake"},{comment:"Properties on Directories",match:"\\b(?i:ADDITIONAL_MAKE_CLEAN_FILES|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMPILE_DEFINITIONS|COMPILE_DEFINITIONS_\\w+|DEFINITIONS|EXCLUDE_FROM_ALL|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INTERPROCEDURAL_OPTIMIZATION|INTERPROCEDURAL_OPTIMIZATION_\\w+|LINK_DIRECTORIES|LISTFILE_STACK|MACROS|PARENT_DIRECTORY|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|TEST_INCLUDE_FILE|VARIABLES|VS_GLOBAL_SECTION_POST_\\w+|VS_GLOBAL_SECTION_PRE_\\w+)\\b",name:"entity.source.cmake"},{comment:"Properties of Global Scope",match:"\\b(?i:ALLOW_DUPLICATE_CUSTOM_TARGETS|DEBUG_CONFIGURATIONS|DISABLED_FEATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|IN_TRY_COMPILE|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PREDEFINED_TARGETS_FOLDER|REPORT_UNDEFINED_PROPERTIES|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_SUPPORTS_SHARED_LIBS|USE_FOLDERS|__CMAKE_DELETE_CACHE_CHANGE_VARS_)\\b",name:"entity.source.cmake"},{comment:"Properties on Targets",match:"\\b(?i:\\w+_(OUTPUT_NAME|POSTFIX)|ARCHIVE_OUTPUT_(DIRECTORY(_\\w+)?|NAME(_\\w+)?)|AUTOMOC(_MOC_OPTIONS)?|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE(_EXTENSION)?|COMPATIBLE_INTERFACE_BOOL|COMPATIBLE_INTERFACE_STRING|COMPILE_(DEFINITIONS(_\\w+)?|FLAGS)|DEBUG_POSTFIX|DEFINE_SYMBOL|ENABLE_EXPORTS|EXCLUDE_FROM_ALL|EchoString|FOLDER|FRAMEWORK|Fortran_(FORMAT|MODULE_DIRECTORY)|GENERATOR_FILE_NAME|GNUtoMS|HAS_CXX|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(CONFIGURATIONS|IMPLIB(_\\w+)?|LINK_DEPENDENT_LIBRARIES(_\\w+)?|LINK_INTERFACE_LANGUAGES(_\\w+)?|LINK_INTERFACE_LIBRARIES(_\\w+)?|LINK_INTERFACE_MULTIPLICITY(_\\w+)?|LOCATION(_\\w+)?|NO_SONAME(_\\w+)?|SONAME(_\\w+)?)|IMPORT_PREFIX|IMPORT_SUFFIX|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE|INTERFACE_COMPILE_DEFINITIONS|INTERFACE_INCLUDE_DIRECTORIES|INTERPROCEDURAL_OPTIMIZATION|INTERPROCEDURAL_OPTIMIZATION_\\w+|LABELS|LIBRARY_OUTPUT_DIRECTORY(_\\w+)?|LIBRARY_OUTPUT_NAME(_\\w+)?|LINKER_LANGUAGE|LINK_DEPENDS|LINK_FLAGS(_\\w+)?|LINK_INTERFACE_LIBRARIES(_\\w+)?|LINK_INTERFACE_MULTIPLICITY(_\\w+)?|LINK_LIBRARIES|LINK_SEARCH_END_STATIC|LINK_SEARCH_START_STATIC|LOCATION(_\\w+)?|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MAP_IMPORTED_CONFIG_\\w+|NO_SONAME|OSX_ARCHITECTURES(_\\w+)?|OUTPUT_NAME(_\\w+)?|PDB_NAME(_\\w+)?|POST_INSTALL_SCRIPT|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE|PRIVATE_HEADER|PROJECT_LABEL|PUBLIC|PUBLIC_HEADER|RESOURCE|RULE_LAUNCH_(COMPILE|CUSTOM|LINK)|RUNTIME_OUTPUT_(DIRECTORY(_\\w+)?|NAME(_\\w+)?)|SKIP_BUILD_RPATH|SOURCES|SOVERSION|STATIC_LIBRARY_FLAGS(_\\w+)?|SUFFIX|TYPE|VERSION|VS_DOTNET_REFERENCES|VS_GLOBAL_(\\w+|KEYWORD|PROJECT_TYPES)|VS_KEYWORD|VS_SCC_(AUXPATH|LOCALPATH|PROJECTNAME|PROVIDER)|VS_WINRT_EXTENSIONS|VS_WINRT_REFERENCES|WIN32_EXECUTABLE|XCODE_ATTRIBUTE_\\w+)\\b",name:"entity.source.cmake"},{begin:'\\\\"',comment:"Escaped Strings",end:'\\\\"',name:"string.source.cmake",patterns:[{match:"\\\\(.|$)",name:"constant.character.escape"}]},{begin:'"',comment:"Normal Strings",end:'"',name:"string.source.cmake",patterns:[{match:"\\\\(.|$)",name:"constant.character.escape"}]},{comment:"Derecated keyword",match:"\\bBUILD_NAME\\b",name:"invalid.deprecated.source.cmake"},{comment:"Compiler Flags",match:"\\b(?i:(CMAKE_)?(CXX_FLAGS|CMAKE_CXX_FLAGS_DEBUG|CMAKE_CXX_FLAGS_MINSIZEREL|CMAKE_CXX_FLAGS_RELEASE|CMAKE_CXX_FLAGS_RELWITHDEBINFO))\\b",name:"variable.source.cmake"}],repository:{},scopeName:"source.cmake"});var E=[_];export{E as default}; diff --git a/assets/chunks/cobol.Be8n44jy.js b/assets/chunks/cobol.Be8n44jy.js new file mode 100644 index 000000000..a6cf7534a --- /dev/null +++ b/assets/chunks/cobol.Be8n44jy.js @@ -0,0 +1 @@ +import e from"./sql.DbK06e1c.js";import t from"./html.CuK0VrWf.js";import n from"./java.ClXEvkw9.js";import"./javascript.Dch3xQiY.js";import"./css.CbYhyuC0.js";const o=Object.freeze({displayName:"COBOL",fileTypes:["ccp","scbl","cobol","cbl","cblle","cblsrce","cblcpy","lks","pdv","cpy","copybook","cobcopy","fd","sel","scb","scbl","sqlcblle","cob","dds","def","src","ss","wks","bib","pco"],name:"cobol",patterns:[{match:"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])([dD]\\s.*$)",name:"token.info-token.cobol"},{captures:{1:{name:"constant.numeric.cobol"},2:{name:"comment.line.cobol.newpage"}},match:"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\/.*$)"},{captures:{1:{name:"constant.numeric.cobol"},2:{name:"comment.line.cobol.fixed"}},match:"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\*.*$)"},{captures:{1:{name:"constant.numeric.cobol"},2:{name:"comment.line.cobol.newpage"}},match:"(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\/.*$)"},{match:"^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s]$",name:"constant.numeric.cobol"},{captures:{1:{name:"constant.numeric.cobol"},2:{name:"comment.line.cobol.fixed"}},match:"(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\*.*$)"},{captures:{1:{name:"constant.cobol"},2:{name:"comment.line.cobol.fixed"}},match:"(^[0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ])(\\*.*$)"},{captures:{1:{name:"constant.numeric.cobol"},2:{name:"variable.other.constant"}},match:"^\\s+(78)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)"},{captures:{1:{name:"constant.numeric.cobol"},2:{name:"variable.other.constant"},3:{name:"keyword.identifers.cobol"}},match:"^\\s+([0-9]+)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)\\s+((?i:constant))"},{captures:{1:{name:"constant.cobol"},2:{name:"comment.line.cobol.newpage"}},match:"(^[0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@])(\\/.*$)"},{match:"^\\*.*$",name:"comment.line.cobol.fixed"},{captures:{1:{name:"keyword.control.directive.conditional.cobol"},2:{name:"entity.name.function.preprocessor.cobol"},3:{name:"entity.name.function.cobol"},4:{name:"keyword.control.directive.conditional.cobol"}},match:"((?:^|\\s+)(?i:\\$set)\\s+)((?i:constant)\\s+)([0-9a-zA-Z][a-zA-Z\\-0-9]+\\s*)([a-zA-Z\\-0-9]*)"},{captures:{1:{name:"entity.name.function.preprocessor.cobol"},2:{name:"storage.modifier.import.cobol"},3:{name:"punctuation.begin.bracket.round.cobol"},4:{name:"string.quoted.other.cobol"},5:{name:"punctuation.end.bracket.round.cobol"}},match:"((?i:\\$\\s*set\\s+)(ilusing)(\\()(.*)(\\)))"},{captures:{1:{name:"entity.name.function.preprocessor.cobol"},2:{name:"storage.modifier.import.cobol"},3:{name:"punctuation.definition.string.begin.cobol"},4:{name:"string.quoted.other.cobol"},5:{name:"punctuation.definition.string.begin.cobol"}},match:'((?i:\\$\\s*set\\s+)(ilusing)(")(.*)("))'},{captures:{1:{name:"keyword.control.directive.conditional.cobol"},2:{name:"entity.name.function.preprocessor.cobol"},3:{name:"punctuation.definition.string.begin.cobol"},4:{name:"string.quoted.other.cobol"},5:{name:"punctuation.definition.string.begin.cobol"}},match:'((?i:\\$set))\\s+(\\w+)\\s*(")(\\w*)(")'},{captures:{1:{name:"keyword.control.directive.conditional.cobol"},2:{name:"entity.name.function.preprocessor.cobol"},3:{name:"punctuation.begin.bracket.round.cobol"},4:{name:"string.quoted.other.cobol"},5:{name:"punctuation.end.bracket.round.cobol"}},match:"((?i:\\$set))\\s+(\\w+)\\s*(\\()(.*)(\\))"},{captures:{0:{name:"keyword.control.directive.conditional.cobol"},1:{name:"invalid.illegal.directive"},2:{name:"comment.line.set.cobol"}},match:"(?:^|\\s+)(?i:\\$\\s*set\\s)((?i:01SHUFFLE|64KPARA|64KSECT|AUXOPT|CHIP|DATALIT|EANIM|EXPANDDATA|FIXING|FLAG-CHIP|MASM|MODEL|OPTSIZE|OPTSPEED|PARAS|PROTMODE|REGPARM|SEGCROSS|SEGSIZE|SIGNCOMPARE|SMALLDD|TABLESEGCROSS|TRICKLECHECK|\\s)+).*$"},{captures:{1:{name:"keyword.control.directive.cobol"},2:{name:"entity.other.attribute-name.preprocessor.cobol"}},match:"(\\$region|\\$end-region)(.*$)"},{begin:"\\$(?i:doc)(.*$)",end:"\\$(?i:end-doc)(.*$)",name:"invalid.illegal.iscobol"},{match:">>\\s*(?i:turn|page|listing|leap-seconds|d)\\s+.*$",name:"invalid.illegal.meta.preprocessor.cobolit"},{match:"(?i:substitute-case|substitute)\\s+",name:"invalid.illegal.functions.cobolit"},{captures:{1:{name:"invalid.illegal.keyword.control.directive.conditional.cobol"},2:{name:"invalid.illegal.entity.name.function.preprocessor.cobol"},3:{name:"invalid.illegal.entity.name.function.preprocessor.cobol"}},match:"((((>>|\\$)[\\s]*)(?i:elif))(.*$))"},{captures:{1:{name:"keyword.control.directive.conditional.cobol"},2:{name:"entity.name.function.preprocessor.cobol"},3:{name:"entity.name.function.preprocessor.cobol"}},match:"((((>>|\\$)[\\s]*)(?i:if|else|elif|end-if|end-evaluate|end|define|evaluate|when|display|call-convention|set))(.*$))"},{captures:{1:{name:"comment.line.scantoken.cobol"},2:{name:"keyword.cobol"},3:{name:"string.cobol"}},match:"(\\*>)\\s+(@[0-9a-zA-Z][a-zA-Z\\-0-9]+)\\s+(.*$)"},{match:"(\\*>.*$)",name:"comment.line.modern"},{match:"(>>.*)$",name:"strong comment.line.set.acucobol"},{match:"([nNuU][xX]|[hHxX])'\\h*'",name:"constant.numeric.integer.hexadecimal.cobol"},{match:"([nNuU][xX]|[hHxX])'.*'",name:"invalid.illegal.hexadecimal.cobol"},{match:'([nNuU][xX]|[hHxX])"\\h*"',name:"constant.numeric.integer.hexadecimal.cobol"},{match:'([nNuU][xX]|[hHxX])".*"',name:"invalid.illegal.hexadecimal.cobol"},{match:'[bB]"[0-1]"',name:"constant.numeric.integer.boolean.cobol"},{match:"[bB]'[0-1]'",name:"constant.numeric.integer.boolean.cobol"},{match:'[oO]"[0-7]*"',name:"constant.numeric.integer.octal.cobol"},{match:'[oO]".*"',name:"invalid.illegal.octal.cobol"},{match:"(#)([0-9a-zA-Z][a-zA-Z\\-0-9]+)",name:"meta.symbol.cobol.forced"},{begin:"((?.*$)",name:"comment.line.modern"},{match:"(\\:([0-9a-zA-Z\\-_])*)",name:"variable.cobol"},{include:"source.sql"}]},{begin:"(?i:exec\\s+cics)",contentName:"meta.embedded.block.cics",end:"(?i:end\\-exec)",name:"keyword.verb.cobol",patterns:[{match:"(\\()",name:"meta.symbol.cobol"},{include:"#cics-keywords"},{include:"#string-double-quoted-constant"},{include:"#string-quoted-constant"},{include:"#number-complex-constant"},{include:"#number-simple-constant"},{match:"([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))",name:"variable.cobol"}]},{begin:"(?i:exec\\s+dli)",contentName:"meta.embedded.block.dli",end:"(?i:end\\-exec)",name:"keyword.verb.cobol",patterns:[{match:"(\\()",name:"meta.symbol.cobol"},{include:"#dli-keywords"},{include:"#dli-options"},{include:"#string-double-quoted-constant"},{include:"#string-quoted-constant"},{include:"#number-complex-constant"},{include:"#number-simple-constant"},{match:"([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))",name:"variable.cobol"}]},{begin:"(?i:exec\\s+sqlims)",contentName:"meta.embedded.block.sql",end:"(?i:end\\-exec)",name:"keyword.verb.cobol",patterns:[{match:"(\\*>.*$)",name:"comment.line.modern"},{match:"(\\:([a-zA-Z\\-])*)",name:"variable.cobol"},{include:"source.sql"}]},{begin:"(?i:exec\\s+ado)",contentName:"meta.embedded.block.sql",end:"(?i:end\\-exec)",name:"keyword.verb.cobol",patterns:[{match:"(--.*$)",name:"comment.line.sql"},{match:"(\\*>.*$)",name:"comment.line.modern"},{match:"(\\:([a-zA-Z\\-])*)",name:"variable.cobol"},{include:"source.sql"}]},{begin:"(?i:exec\\s+html)",contentName:"meta.embedded.block.html",end:"(?i:end\\-exec)",name:"keyword.verb.cobol",patterns:[{include:"text.html.basic"}]},{begin:"(?i:exec\\s+java)",contentName:"meta.embedded.block.java",end:"(?i:end\\-exec)",name:"keyword.verb.cobol",patterns:[{include:"source.java"}]},{captures:{1:{name:"punctuation.definition.string.begin.cobol"},2:{name:"support.function.cobol"},3:{name:"punctuation.definition.string.end.cobol"}},match:'(")(CBL_.*)(")'},{captures:{1:{name:"punctuation.definition.string.begin.cobol"},2:{name:"support.function.cobol"},3:{name:"punctuation.definition.string.end.cobol"}},match:'(")(PC_.*)(")'},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.cobol"}},end:'("|$)',endCaptures:{0:{name:"punctuation.definition.string.end.cobol"}},name:"string.quoted.double.cobol"},{captures:{1:{name:"punctuation.definition.string.begin.cobol"},2:{name:"support.function.cobol"},3:{name:"punctuation.definition.string.end.cobol"}},match:"(\\')(CBL_.*)(\\')"},{captures:{1:{name:"punctuation.definition.string.begin.cobol"},2:{name:"support.function.cobol"},3:{name:"punctuation.definition.string.end.cobol"}},match:"(\\')(PC_.*)(\\')"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.cobol"}},end:"('|$)",endCaptures:{0:{name:"punctuation.definition.string.end.cobol"}},name:"string.quoted.single.cobol"},{begin:'(?|<=|>=|<>|\\+|\\-|\\*|\\/|(?",name:"punctuation.anglebracket.close.ql"},"close-brace":{match:"(?x)\\}",name:"punctuation.curlybrace.close.ql"},"close-bracket":{match:"(?x)\\]",name:"punctuation.squarebracket.close.ql"},"close-paren":{match:"(?x)\\)",name:"punctuation.parenthesis.close.ql"},comma:{match:"(?x),",name:"punctuation.separator.comma.ql"},comment:{patterns:[{begin:"(?x)/\\*\\*",end:"(?x)\\*/",name:"comment.block.documentation.ql",patterns:[{begin:"(?x)(?<=/\\*\\*)([^*]|\\*(?!/))*$",patterns:[{match:"(?x)\\G\\s* (@\\S+)",name:"keyword.tag.ql"}],while:"(?x)(^|\\G)\\s*([^*]|\\*(?!/))(?=([^*]|[*](?!/))*$)"}]},{begin:"(?x)/\\*",end:"(?x)\\*/",name:"comment.block.ql"},{match:"(?x)//.*$",name:"comment.line.double-slash.ql"}]},"comment-start":{match:"(?x)// | /\\*"},"comparison-operator":{match:"(?x)=|\\!\\=",name:"keyword.operator.comparison.ql"},concat:{match:"(?x)\\b(?:concat)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.concat.ql"},count:{match:"(?x)\\b(?:count)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.count.ql"},date:{match:"(?x)\\b(?:date)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.date.ql"},default:{match:"(?x)\\b(?:default)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.default.ql"},deprecated:{match:"(?x)\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.deprecated.ql"},desc:{match:"(?x)\\b(?:desc)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.order.desc.ql"},"dont-care":{match:"(?x)\\b(?:_)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.dont-care.ql"},dot:{match:"(?x)\\.",name:"punctuation.accessor.ql"},dotdot:{match:"(?x)\\.\\.",name:"punctuation.operator.range.ql"},else:{match:"(?x)\\b(?:else)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.else.ql"},"end-of-as-clause":{match:"(?x)(?: (?<=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?)|[A-Za-z0-9_]) (?!\\s*(\\.|\\:\\:|\\,|(?:<)))",name:"meta.block.import-directive.ql",patterns:[{include:"#instantiation-args"},{include:"#non-context-sensitive"},{match:"(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.type.namespace.ql"}]},in:{match:"(?x)\\b(?:in)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.in.ql"},instanceof:{match:"(?x)\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.instanceof.ql"},"instantiation-args":{begin:"(?x)((?:<))",beginCaptures:{1:{patterns:[{include:"#open-angle"}]}},end:"(?x)((?:>))",endCaptures:{1:{patterns:[{include:"#close-angle"}]}},name:"meta.type.parameters.ql",patterns:[{include:"#instantiation-args"},{include:"#non-context-sensitive"},{match:"(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.type.namespace.ql"}]},int:{match:"(?x)\\b(?:int)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.int.ql"},"int-literal":{match:"(?x)-?[0-9]+(?![0-9])",name:"constant.numeric.decimal.ql"},keyword:{patterns:[{include:"#dont-care"},{include:"#and"},{include:"#any"},{include:"#as"},{include:"#asc"},{include:"#avg"},{include:"#boolean"},{include:"#by"},{include:"#class"},{include:"#concat"},{include:"#count"},{include:"#date"},{include:"#desc"},{include:"#else"},{include:"#exists"},{include:"#extends"},{include:"#false"},{include:"#float"},{include:"#forall"},{include:"#forex"},{include:"#from"},{include:"#if"},{include:"#implies"},{include:"#import"},{include:"#in"},{include:"#instanceof"},{include:"#int"},{include:"#max"},{include:"#min"},{include:"#module"},{include:"#newtype"},{include:"#none"},{include:"#not"},{include:"#or"},{include:"#order"},{include:"#predicate"},{include:"#rank"},{include:"#result"},{include:"#select"},{include:"#strictconcat"},{include:"#strictcount"},{include:"#strictsum"},{include:"#string"},{include:"#sum"},{include:"#super"},{include:"#then"},{include:"#this"},{include:"#true"},{include:"#unique"},{include:"#where"}]},language:{match:"(?x)\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.language.ql"},"language-annotation":{begin:"(?x)((?:\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{1:{patterns:[{include:"#language"}]}},end:"(?x)(?! (?:\\s | $ | (?:// | /\\*)) | \\[ ) | (?<=\\])",name:"meta.block.language-annotation.ql",patterns:[{include:"#language-annotation-body"},{include:"#non-context-sensitive"}]},"language-annotation-body":{begin:"(?x)((?:\\[))",beginCaptures:{1:{patterns:[{include:"#open-bracket"}]}},end:"(?x)((?:\\]))",endCaptures:{1:{patterns:[{include:"#close-bracket"}]}},name:"meta.block.language-annotation-body.ql",patterns:[{include:"#non-context-sensitive"},{match:"(?x)\\b(?:monotonicAggregates)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.ql"}]},library:{match:"(?x)\\b(?:library)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.library.ql"},literal:{patterns:[{include:"#float-literal"},{include:"#int-literal"},{include:"#string-literal"}]},"lower-id":{match:"(?x)\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"},max:{match:"(?x)\\b(?:max)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.max.ql"},min:{match:"(?x)\\b(?:min)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.min.ql"},module:{match:"(?x)\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.module.ql"},"module-body":{begin:"(?x)((?:\\{))",beginCaptures:{1:{patterns:[{include:"#open-brace"}]}},end:"(?x)((?:\\}))",endCaptures:{1:{patterns:[{include:"#close-brace"}]}},name:"meta.block.module-body.ql",patterns:[{include:"#module-member"}]},"module-declaration":{begin:"(?x)((?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{1:{patterns:[{include:"#module"}]}},end:"(?x)(?<=\\}|;)",name:"meta.block.module-declaration.ql",patterns:[{include:"#module-body"},{include:"#implements-clause"},{include:"#non-context-sensitive"},{match:"(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.type.namespace.ql"}]},"module-member":{patterns:[{include:"#import-directive"},{include:"#import-as-clause"},{include:"#module-declaration"},{include:"#newtype-declaration"},{include:"#newtype-branch-name-with-prefix"},{include:"#predicate-parameter-list"},{include:"#predicate-body"},{include:"#class-declaration"},{include:"#select-clause"},{include:"#predicate-or-field-declaration"},{include:"#non-context-sensitive"},{include:"#annotation"}]},"module-qualifier":{match:"(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) (?=\\s*\\:\\:)",name:"entity.name.type.namespace.ql"},newtype:{match:"(?x)\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.newtype.ql"},"newtype-branch-name-with-prefix":{begin:"(?x)\\= | (?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))",beginCaptures:{0:{patterns:[{include:"#or"},{include:"#comparison-operator"}]}},end:"(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",endCaptures:{0:{name:"entity.name.type.ql"}},name:"meta.block.newtype-branch-name-with-prefix.ql",patterns:[{include:"#non-context-sensitive"}]},"newtype-declaration":{begin:"(?x)((?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{1:{patterns:[{include:"#newtype"}]}},end:"(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",endCaptures:{0:{name:"entity.name.type.ql"}},name:"meta.block.newtype-declaration.ql",patterns:[{include:"#non-context-sensitive"}]},"non-context-sensitive":{patterns:[{include:"#comment"},{include:"#literal"},{include:"#operator-or-punctuation"},{include:"#keyword"}]},none:{match:"(?x)\\b(?:none)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.quantifier.none.ql"},not:{match:"(?x)\\b(?:not)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.not.ql"},"open-angle":{match:"(?x)<",name:"punctuation.anglebracket.open.ql"},"open-brace":{match:"(?x)\\{",name:"punctuation.curlybrace.open.ql"},"open-bracket":{match:"(?x)\\[",name:"punctuation.squarebracket.open.ql"},"open-paren":{match:"(?x)\\(",name:"punctuation.parenthesis.open.ql"},"operator-or-punctuation":{patterns:[{include:"#relational-operator"},{include:"#comparison-operator"},{include:"#arithmetic-operator"},{include:"#comma"},{include:"#semicolon"},{include:"#dot"},{include:"#dotdot"},{include:"#pipe"},{include:"#open-paren"},{include:"#close-paren"},{include:"#open-brace"},{include:"#close-brace"},{include:"#open-bracket"},{include:"#close-bracket"},{include:"#open-angle"},{include:"#close-angle"}]},or:{match:"(?x)\\b(?:or)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.or.ql"},order:{match:"(?x)\\b(?:order)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.order.order.ql"},override:{match:"(?x)\\b(?:override)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.override.ql"},pipe:{match:"(?x)\\|",name:"punctuation.separator.pipe.ql"},pragma:{match:"(?x)\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.pragma.ql"},"pragma-annotation":{begin:"(?x)((?:\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{1:{patterns:[{include:"#pragma"}]}},end:"(?x)(?! (?:\\s | $ | (?:// | /\\*)) | \\[ ) | (?<=\\])",name:"meta.block.pragma-annotation.ql",patterns:[{include:"#pragma-annotation-body"},{include:"#non-context-sensitive"}]},"pragma-annotation-body":{begin:"(?x)((?:\\[))",beginCaptures:{1:{patterns:[{include:"#open-bracket"}]}},end:"(?x)((?:\\]))",endCaptures:{1:{patterns:[{include:"#close-bracket"}]}},name:"meta.block.pragma-annotation-body.ql",patterns:[{match:"(?x)\\b(?:inline|noinline|nomagic|noopt)\\b",name:"storage.modifier.ql"}]},predicate:{match:"(?x)\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.predicate.ql"},"predicate-body":{begin:"(?x)((?:\\{))",beginCaptures:{1:{patterns:[{include:"#open-brace"}]}},end:"(?x)((?:\\}))",endCaptures:{1:{patterns:[{include:"#close-brace"}]}},name:"meta.block.predicate-body.ql",patterns:[{include:"#predicate-body-contents"}]},"predicate-body-contents":{patterns:[{include:"#expr-as-clause"},{include:"#non-context-sensitive"},{include:"#module-qualifier"},{match:"(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))\\s*(?:\\*|\\+)?\\s*(?=\\()",name:"entity.name.function.ql"},{match:"(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"variable.other.ql"},{match:"(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.type.ql"}]},"predicate-or-field-declaration":{begin:"(?x)(?:(?=(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))))(?!(?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:unique)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))|(?:(?:(?:\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:additional)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:cached)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:default)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:external)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:final)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:language)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:library)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:override)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:private)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:query)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:signature)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))))))) | (?=(?:(?:(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))))) | (?=(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))))",end:"(?x)(?<=\\}|;)",name:"meta.block.predicate-or-field-declaration.ql",patterns:[{include:"#predicate-parameter-list"},{include:"#predicate-body"},{include:"#non-context-sensitive"},{include:"#module-qualifier"},{match:"(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*;)",name:"variable.field.ql"},{match:"(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.function.ql"},{match:"(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.type.ql"}]},"predicate-parameter-list":{begin:"(?x)((?:\\())",beginCaptures:{1:{patterns:[{include:"#open-paren"}]}},end:"(?x)((?:\\)))",endCaptures:{1:{patterns:[{include:"#close-paren"}]}},name:"meta.block.predicate-parameter-list.ql",patterns:[{include:"#non-context-sensitive"},{match:"(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*(?:,|\\)))",name:"variable.parameter.ql"},{include:"#module-qualifier"},{match:"(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.type.ql"},{match:"(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"variable.parameter.ql"}]},"predicate-start-keyword":{patterns:[{include:"#boolean"},{include:"#date"},{include:"#float"},{include:"#int"},{include:"#predicate"},{include:"#string"}]},private:{match:"(?x)\\b(?:private)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.private.ql"},query:{match:"(?x)\\b(?:query)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.query.ql"},rank:{match:"(?x)\\b(?:rank)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.rank.ql"},"relational-operator":{match:"(?x)<=|<|>=|>",name:"keyword.operator.relational.ql"},result:{match:"(?x)\\b(?:result)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.result.ql"},select:{match:"(?x)\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.query.select.ql"},"select-as-clause":{begin:"(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{1:{patterns:[{include:"#as"}]}},end:"(?x)(?<=(?:[0-9A-Za-z_])(?:(?!(?:[0-9A-Za-z_]))))",match:"(?x)meta.block.select-as-clause.ql",patterns:[{include:"#non-context-sensitive"},{match:"(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"variable.other.ql"}]},"select-clause":{begin:"(?x)(?=(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",end:"(?x)(?!(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",name:"meta.block.select-clause.ql",patterns:[{include:"#from-section"},{include:"#where-section"},{include:"#select-section"}]},"select-section":{begin:"(?x)((?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{1:{patterns:[{include:"#select"}]}},end:"(?x)(?=\\n)",name:"meta.block.select-section.ql",patterns:[{include:"#predicate-body-contents"},{include:"#select-as-clause"}]},semicolon:{match:"(?x);",name:"punctuation.separator.statement.ql"},signature:{match:"(?x)\\b(?:signature)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.signature.ql"},"simple-id":{match:"(?x)\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"},strictconcat:{match:"(?x)\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.strictconcat.ql"},strictcount:{match:"(?x)\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.strictcount.ql"},strictsum:{match:"(?x)\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.strictsum.ql"},string:{match:"(?x)\\b(?:string)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.string.ql"},"string-escape":{match:'(?x)\\\\["\\\\nrt]',name:"constant.character.escape.ql"},"string-literal":{begin:'(?x)"',beginCaptures:{0:{name:"punctuation.definition.string.begin.ql"}},end:'(?x)(") | ((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.ql"},2:{name:"invalid.illegal.newline.ql"}},name:"string.quoted.double.ql",patterns:[{include:"#string-escape"}]},sum:{match:"(?x)\\b(?:sum)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.sum.ql"},super:{match:"(?x)\\b(?:super)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.super.ql"},then:{match:"(?x)\\b(?:then)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.then.ql"},this:{match:"(?x)\\b(?:this)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.this.ql"},transient:{match:"(?x)\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.transient.ql"},true:{match:"(?x)\\b(?:true)(?:(?!(?:[0-9A-Za-z_])))",name:"constant.language.boolean.true.ql"},unique:{match:"(?x)\\b(?:unique)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.unique.ql"},"upper-id":{match:"(?x)\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"},where:{match:"(?x)\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.query.where.ql"},"where-section":{begin:"(?x)((?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{1:{patterns:[{include:"#where"}]}},end:"(?x)(?=(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",name:"meta.block.where-section.ql",patterns:[{include:"#predicate-body-contents"}]},"whitespace-or-comment-start":{match:"(?x)\\s | $ | (?:// | /\\*)"}},scopeName:"source.ql",aliases:["ql"]});var a=[e];export{a as default}; diff --git a/assets/chunks/coffee.t_LrLW_f.js b/assets/chunks/coffee.t_LrLW_f.js new file mode 100644 index 000000000..89a5cbbcf --- /dev/null +++ b/assets/chunks/coffee.t_LrLW_f.js @@ -0,0 +1,100 @@ +import e from"./javascript.Dch3xQiY.js";const t=Object.freeze({displayName:"CoffeeScript",name:"coffee",patterns:[{include:"#jsx"},{captures:{1:{name:"keyword.operator.new.coffee"},2:{name:"storage.type.class.coffee"},3:{name:"entity.name.type.instance.coffee"},4:{name:"entity.name.type.instance.coffee"}},match:"(new)\\s+(?:(?:(class)\\s+(\\w+(?:\\.\\w*)*)?)|(\\w+(?:\\.\\w*)*))",name:"meta.class.instance.constructor.coffee"},{begin:"'''",beginCaptures:{0:{name:"punctuation.definition.string.begin.coffee"}},end:"'''",endCaptures:{0:{name:"punctuation.definition.string.end.coffee"}},name:"string.quoted.single.heredoc.coffee",patterns:[{captures:{1:{name:"punctuation.definition.escape.backslash.coffee"}},match:"(\\\\).",name:"constant.character.escape.backslash.coffee"}]},{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.coffee"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.coffee"}},name:"string.quoted.double.heredoc.coffee",patterns:[{captures:{1:{name:"punctuation.definition.escape.backslash.coffee"}},match:"(\\\\).",name:"constant.character.escape.backslash.coffee"},{include:"#interpolated_coffee"}]},{captures:{1:{name:"punctuation.definition.string.begin.coffee"},2:{name:"source.js.embedded.coffee",patterns:[{include:"source.js"}]},3:{name:"punctuation.definition.string.end.coffee"}},match:"(`)(.*)(`)",name:"string.quoted.script.coffee"},{begin:"(?)`,beginCaptures:{1:{name:"entity.name.function.coffee"},2:{name:"variable.other.readwrite.instance.coffee"},3:{name:"keyword.operator.assignment.coffee"}},end:"[=-]>",endCaptures:{0:{name:"storage.type.function.coffee"}},name:"meta.function.coffee",patterns:[{include:"#function_params"}]},{begin:`(?x) +(?<=\\s|^)(?:((')([^']*?)('))|((")([^"]*?)("))) +\\s*([:=])\\s* +(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)`,beginCaptures:{1:{name:"string.quoted.single.coffee"},2:{name:"punctuation.definition.string.begin.coffee"},3:{name:"entity.name.function.coffee"},4:{name:"punctuation.definition.string.end.coffee"},5:{name:"string.quoted.double.coffee"},6:{name:"punctuation.definition.string.begin.coffee"},7:{name:"entity.name.function.coffee"},8:{name:"punctuation.definition.string.end.coffee"},9:{name:"keyword.operator.assignment.coffee"}},end:"[=-]>",endCaptures:{0:{name:"storage.type.function.coffee"}},name:"meta.function.coffee",patterns:[{include:"#function_params"}]},{begin:"(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)",end:"[=-]>",endCaptures:{0:{name:"storage.type.function.coffee"}},name:"meta.function.inline.coffee",patterns:[{include:"#function_params"}]},{begin:`(?<=\\s|^)({)(?=[^'"#]+?}[\\s\\]}]*=)`,beginCaptures:{1:{name:"punctuation.definition.destructuring.begin.bracket.curly.coffee"}},end:"}",endCaptures:{0:{name:"punctuation.definition.destructuring.end.bracket.curly.coffee"}},name:"meta.variable.assignment.destructured.object.coffee",patterns:[{include:"$self"},{match:"[a-zA-Z$_]\\w*",name:"variable.assignment.coffee"}]},{begin:`(?<=\\s|^)(\\[)(?=[^'"#]+?\\][\\s\\]}]*=)`,beginCaptures:{1:{name:"punctuation.definition.destructuring.begin.bracket.square.coffee"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.destructuring.end.bracket.square.coffee"}},name:"meta.variable.assignment.destructured.array.coffee",patterns:[{include:"$self"},{match:"[a-zA-Z$_]\\w*",name:"variable.assignment.coffee"}]},{match:"\\b(?|\\-\\d|\\[|{|"|'))`,end:"(?=\\s*(?|\\-\\d|\\[|{|"|')))`,beginCaptures:{1:{name:"variable.other.readwrite.instance.coffee"},2:{patterns:[{include:"#function_names"}]}},end:"(?=\\s*(?)",name:"meta.tag.coffee"}]},"jsx-expression":{begin:"{",beginCaptures:{0:{name:"meta.brace.curly.coffee"}},end:"}",endCaptures:{0:{name:"meta.brace.curly.coffee"}},patterns:[{include:"#double_quoted_string"},{include:"$self"}]},"jsx-tag":{patterns:[{begin:"(<)([-\\w\\.]+)",beginCaptures:{1:{name:"punctuation.definition.tag.coffee"},2:{name:"entity.name.tag.coffee"}},end:"(/?>)",name:"meta.tag.coffee",patterns:[{include:"#jsx-attribute"}]}]},method_calls:{patterns:[{begin:"(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\()",beginCaptures:{1:{name:"punctuation.separator.method.period.coffee"},2:{name:"keyword.operator.prototype.coffee"},3:{patterns:[{include:"#method_names"}]}},end:"(?<=\\))",name:"meta.method-call.coffee",patterns:[{include:"#arguments"}]},{begin:`(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\s+(?!(?|\\-\\d|\\[|{|"|')))`,beginCaptures:{1:{name:"punctuation.separator.method.period.coffee"},2:{name:"keyword.operator.prototype.coffee"},3:{patterns:[{include:"#method_names"}]}},end:"(?=\\s*(?>=|>>>=|\\|=)"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.coffee"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.coffee"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.coffee"},{match:"&|\\||\\^|~",name:"keyword.operator.bitwise.coffee"},{captures:{1:{name:"variable.assignment.coffee"},2:{name:"keyword.operator.assignment.coffee"}},match:"([a-zA-Z$_][\\w$]*)?\\s*(=|:(?!:))(?![>=])"},{match:"--",name:"keyword.operator.decrement.coffee"},{match:"\\+\\+",name:"keyword.operator.increment.coffee"},{match:"\\.\\.\\.",name:"keyword.operator.splat.coffee"},{match:"\\?",name:"keyword.operator.existential.coffee"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.coffee"},{captures:{1:{name:"keyword.operator.logical.coffee"},2:{name:"keyword.operator.comparison.coffee"}},match:`(?x) +\\b(?\\~\\!\\?\\[\\]\\{\\}\\.]+) +\\s* +((,@|,\\.|,)?) +([#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?) +| +((,@|,\\.|,)?) +([#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?) +) +(?=(\\s|\\(|\\)))`},{captures:{1:{name:"storage.type.function.defname.commonlisp"},2:{name:"entity.name.type.commonlisp"}},match:`(?xi) +(?<=^|\\s|\\() +(deftype|defpackage|define-condition|defclass) +\\s+ +([#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?) +(?=(\\s|\\(|\\)))`},{captures:{1:{name:"storage.type.function.defname.commonlisp"},2:{patterns:[{include:"#package"},{match:"\\S+?",name:"variable.other.constant.defname.commonlisp"}]}},match:`(?xi) +(?<=^|\\s|\\() +(defconstant) +\\s+ +([#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?) +(?=(\\s|\\(|\\)))`},{captures:{1:{name:"storage.type.function.defname.commonlisp"}},match:`(?xi) +(?<=^|\\s|\\() +(defvar|defparameter) +\\s+ +(?=(\\s|\\(|\\)))`},{captures:{1:{name:"storage.type.function.defname.commonlisp"},2:{name:"entity.name.type.commonlisp"}},match:`(?xi) +(?<=^|\\s|\\() +(defstruct) +\\s+\\(?\\s* +([#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?) +(?=(\\s|\\(|\\)))`},{captures:{1:{name:"keyword.control.commonlisp"},2:{patterns:[{include:"#package"},{match:"\\S+?",name:"entity.name.function.commonlisp"}]}},match:`(?xi) +(?<=^|\\s|\\() +(macrolet|labels|flet) +\\s+\\(\\s*\\(\\s* +([#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?) +(?=(\\s|\\(|\\)))`}]},escape:{match:`(?xi) +(?<=^|\\s|\\() +(?:\\#\\\\\\S+?) +(?=(\\s|\\(|\\)))`,name:"constant.character.escape.commonlisp"},function:{patterns:[{match:`(?xi) +(?<=^|\\s|\\(|\\#') +(?:values|third|tenth|symbol-value|symbol-plist|symbol-function|svref|subseq|sixth|seventh|second|schar|sbit|row-major-aref| +rest|readtable-case|nth|ninth|mask-field|macro-function|logical-pathname-translations|ldb|gethash|getf|get|fourth|first| +find-class|fill-pointer|fifth|fdefinition|elt|eighth|compiler-macro-function|char|cdr|cddr|cdddr|cddddr|cdddar|cddar|cddadr| +cddaar|cdar|cdadr|cdaddr|cdadar|cdaar|cdaadr|cdaaar|car|cadr|caddr|cadddr|caddar|cadar|cadadr|cadaar|caar|caadr|caaddr|caadar| +caaar|caaadr|caaaar|bit|aref) +(?=(\\s|\\(|\\)))`,name:"support.function.accessor.commonlisp"},{match:`(?xi) +(?<=^|\\s|\\(|\\#') +(?:yes-or-no-p|y-or-n-p|write-sequence|write-char|write-byte|warn|vector-pop|use-value|use-package|unuse-package|union|unintern| +unexport|terpri|tailp|substitute-if-not|substitute-if|substitute|subst-if-not|subst-if|subst|sublis|string-upcase|string-downcase| +string-capitalize|store-value|sleep|signal|shadowing-import|shadow|set-syntax-from-char|set-macro-character|set-exclusive-or| +set-dispatch-macro-character|set-difference|set|rplacd|rplaca|room|reverse|revappend|require|replace|remprop|remove-if-not|remove-if| +remove-duplicates|remove|remhash|read-sequence|read-byte|random|provide|pprint-tabular|pprint-newline|pprint-linear|pprint-fill| +nunion|nsubstitute-if-not|nsubstitute-if|nsubstitute|nsubst-if-not|nsubst-if|nsubst|nsublis|nstring-upcase|nstring-downcase|nstring-capitalize| +nset-exclusive-or|nset-difference|nreverse|nreconc|nintersection|nconc|muffle-warning|method-combination-error|maphash|makunbound|ldiff| +invoke-restart-interactively|invoke-restart|invoke-debugger|invalid-method-error|intersection|inspect|import|get-output-stream-string| +get-macro-character|get-dispatch-macro-character|gentemp|gensym|fresh-line|fill|file-position|export|describe|delete-if-not|delete-if| +delete-duplicates|delete|continue|clrhash|close|clear-input|break|abort) +(?=(\\s|\\(|\\)))`,name:"support.function.f.sideeffects.commonlisp"},{match:`(?xi) +(?<=^|\\s|\\(|\\#') +(?:zerop|write-to-string|write-string|write-line|write|wild-pathname-p|vectorp|vector-push-extend|vector-push|vector|values-list| +user-homedir-pathname|upper-case-p|upgraded-complex-part-type|upgraded-array-element-type|unread-char|unbound-slot-instance|typep|type-of| +type-error-expected-type|type-error-datum|two-way-stream-output-stream|two-way-stream-input-stream|truncate|truename|tree-equal|translate-pathname| +translate-logical-pathname|tanh|tan|synonym-stream-symbol|symbolp|symbol-package|symbol-name|sxhash|subtypep|subsetp|stringp|string>=|string>| +string=|string<=|string<|string\\/=|string-trim|string-right-trim|string-not-lessp|string-not-greaterp|string-not-equal|string-lessp| +string-left-trim|string-greaterp|string-equal|string|streamp|stream-external-format|stream-error-stream|stream-element-type|standard-char-p| +stable-sort|sqrt|special-operator-p|sort|some|software-version|software-type|slot-value|slot-makunbound|slot-exists-p|slot-boundp|sinh|sin| +simple-vector-p|simple-string-p|simple-condition-format-control|simple-condition-format-arguments|simple-bit-vector-p|signum|short-site-name| +set-pprint-dispatch|search|scale-float|round|restart-name|rename-package|rename-file|rem|reduce|realpart|realp|readtablep| +read-preserving-whitespace|read-line|read-from-string|read-delimited-list|read-char-no-hang|read-char|read|rationalp|rationalize| +rational|rassoc-if-not|rassoc-if|rassoc|random-state-p|proclaim|probe-file|print-not-readable-object|print|princ-to-string|princ| +prin1-to-string|prin1|pprint-tab|pprint-indent|pprint-dispatch|pprint|position-if-not|position-if|position|plusp|phase|peek-char|pathnamep| +pathname-version|pathname-type|pathname-name|pathname-match-p|pathname-host|pathname-directory|pathname-device|pathname|parse-namestring| +parse-integer|pairlis|packagep|package-used-by-list|package-use-list|package-shadowing-symbols|package-nicknames|package-name|package-error-package| +output-stream-p|open-stream-p|open|oddp|numerator|numberp|null|nthcdr|notevery|notany|not|next-method-p|nbutlast|namestring|name-char|mod|mismatch| +minusp|min|merge-pathnames|merge|member-if-not|member-if|member|max|maplist|mapl|mapcon|mapcar|mapcan|mapc|map-into|map|make-two-way-stream| +make-synonym-stream|make-symbol|make-string-output-stream|make-string-input-stream|make-string|make-sequence|make-random-state|make-pathname| +make-package|make-load-form-saving-slots|make-list|make-hash-table|make-echo-stream|make-dispatch-macro-character|make-condition| +make-concatenated-stream|make-broadcast-stream|make-array|macroexpand-1|macroexpand|machine-version|machine-type|machine-instance|lower-case-p| +long-site-name|logxor|logtest|logorc2|logorc1|lognot|lognor|lognand|logior|logical-pathname|logeqv|logcount|logbitp|logandc2|logandc1|logand| +log|load-logical-pathname-translations|load|listp|listen|list-length|list-all-packages|list\\*|list|lisp-implementation-version| +lisp-implementation-type|length|ldb-test|lcm|last|keywordp|isqrt|intern|interactive-stream-p|integerp|integer-length|integer-decode-float| +input-stream-p|imagpart|identity|host-namestring|hash-table-test|hash-table-size|hash-table-rehash-threshold|hash-table-rehash-size|hash-table-p| +hash-table-count|graphic-char-p|get-universal-time|get-setf-expansion|get-properties|get-internal-run-time|get-internal-real-time| +get-decoded-time|gcd|functionp|function-lambda-expression|funcall|ftruncate|fround|format|force-output|fmakunbound|floor|floatp|float-sign| +float-radix|float-precision|float-digits|float|finish-output|find-symbol|find-restart|find-package|find-if-not|find-if|find-all-symbols|find| +file-write-date|file-string-length|file-namestring|file-length|file-error-pathname|file-author|ffloor|fceiling|fboundp|expt|exp|every|evenp| +eval|equalp|equal|eql|eq|ensure-generic-function|ensure-directories-exist|enough-namestring|endp|encode-universal-time|ed|echo-stream-output-stream| +echo-stream-input-stream|dribble|dpb|disassemble|directory-namestring|directory|digit-char-p|digit-char|deposit-field|denominator|delete-package| +delete-file|decode-universal-time|decode-float|count-if-not|count-if|count|cosh|cos|copy-tree|copy-symbol|copy-structure|copy-seq|copy-readtable| +copy-pprint-dispatch|copy-list|copy-alist|constantp|constantly|consp|cons|conjugate|concatenated-stream-streams|concatenate|compute-restarts| +complexp|complex|complement|compiled-function-p|compile-file-pathname|compile-file|compile|coerce|code-char|clear-output|class-of|cis|characterp| +character|char>=|char>|char=|char<=|char<|char\\/=|char-upcase|char-not-lessp|char-not-greaterp|char-not-equal|char-name|char-lessp|char-int| +char-greaterp|char-equal|char-downcase|char-code|cerror|cell-error-name|ceiling|call-next-method|byte-size|byte-position|byte|butlast| +broadcast-stream-streams|boundp|both-case-p|boole|bit-xor|bit-vector-p|bit-orc2|bit-orc1|bit-not|bit-nor|bit-nand|bit-ior|bit-eqv|bit-andc2| +bit-andc1|bit-and|atom|atanh|atan|assoc-if-not|assoc-if|assoc|asinh|asin|ash|arrayp|array-total-size|array-row-major-index|array-rank| +array-in-bounds-p|array-has-fill-pointer-p|array-element-type|array-displacement|array-dimensions|array-dimension|arithmetic-error-operation| +arithmetic-error-operands|apropos-list|apropos|apply|append|alphanumericp|alpha-char-p|adjustable-array-p|adjust-array|adjoin|acosh|acos|acons| +abs|>=|>|=|<=|<|1-|1\\+|\\/=|\\/|-|\\+|\\*) +(?=(\\s|\\(|\\)))`,name:"support.function.f.sideeffects.commonlisp"},{match:`(?xi) +(?<=^|\\s|\\(|\\#') +(?:variable|update-instance-for-redefined-class|update-instance-for-different-class|structure|slot-unbound|slot-missing|shared-initialize| +remove-method|print-object|no-next-method|no-applicable-method|method-qualifiers|make-load-form|make-instances-obsolete|make-instance| +initialize-instance|function-keywords|find-method|documentation|describe-object|compute-applicable-methods|compiler-macro|class-name| +change-class|allocate-instance|add-method) +(?=(\\s|\\(|\\)))`,name:"support.function.sgf.nosideeffects.commonlisp"},{match:`(?xi) +(?<=^|\\s|\\(|\\#') +(?:reinitialize-instance) +(?=(\\s|\\(|\\)))`,name:"support.function.sgf.sideeffects.commonlisp"},{match:`(?xi) +(?<=^|\\s|\\(|\\#') +(?:satisfies) +(?=(\\s|\\(|\\)))`,name:"support.function.typespecifier.commonlisp"}]},"lambda-list":{match:`(?xi) +(?<=^|\\s|\\() +(?:&[#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?|&whole|&rest|&optional|&key|&environment|&body|&aux|&allow-other-keys) +(?=(\\s|\\(|\\)))`,name:"keyword.other.lambdalist.commonlisp"},macro:{patterns:[{match:`(?xi) +(?<=^|\\s|\\() +(?:with-standard-io-syntax|with-slots|with-simple-restart|with-package-iterator|with-hash-table-iterator|with-condition-restarts| +with-compilation-unit|with-accessors|when|unless|typecase|time|step|shiftf|setf|rotatef|return|restart-case|restart-bind|psetf|prog2|prog1| +prog\\*|prog|print-unreadable-object|pprint-logical-block|pprint-exit-if-list-exhausted|or|nth-value|multiple-value-setq|multiple-value-list| +multiple-value-bind|make-method|loop|lambda|ignore-errors|handler-case|handler-bind|formatter|etypecase|dotimes|dolist|do-symbols|do-external-symbols| +do-all-symbols|do\\*|do|destructuring-bind|defun|deftype|defstruct|defsetf|defpackage|defmethod|defmacro|define-symbol-macro|define-setf-expander| +define-condition|define-compiler-macro|defgeneric|defconstant|defclass|declaim|ctypecase|cond|call-method|assert|and) +(?=(\\s|\\(|\\)))`,name:"storage.type.function.m.nosideeffects.commonlisp"},{match:`(?xi) +(?<=^|\\s|\\() +(?:with-output-to-string|with-open-stream|with-open-file|with-input-from-string|untrace|trace|remf|pushnew|push|psetq|pprint-pop|pop| +otherwise|loop-finish|incf|in-package|ecase|defvar|defparameter|define-modify-macro|define-method-combination|decf|check-type|ccase|case) +(?=(\\s|\\(|\\)))`,name:"storage.type.function.m.sideeffects.commonlisp"},{match:`(?xi) +(?<=^|\\s|\\() +(?:setq) +(?=(\\s|\\(|\\)))`,name:"storage.type.function.specialform.commonlisp"}]},package:{patterns:[{captures:{2:{name:"support.type.package.commonlisp"},3:{name:"support.type.package.commonlisp"}},match:`(?xi) +(?<=^|\\s|\\(|,@|,\\.|,) +( +([A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?) +| +(\\#) +) +(?=\\:\\:|\\:)`}]},punctuation:{patterns:[{match:`(?xi) +(?<=^|\\s|\\(|,@|,\\.|,) +('|\`) +(?=\\S)`,name:"variable.other.constant.singlequote.commonlisp"},{match:`(?xi) +(?<=^|\\s|\\(|,@|,\\.|,) +(?:\\:[#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?) +(?=(\\s|\\(|\\)))`,name:"entity.name.variable.commonlisp"},{captures:{1:{name:"variable.other.constant.sharpsign.commonlisp"},2:{name:"constant.numeric.commonlisp"}},match:`(?xi) +(?<=^|\\s|\\(|,@|,\\.|,) +(\\#)([0-9]*) +(?=\\()`},{captures:{1:{name:"variable.other.constant.sharpsign.commonlisp"},2:{name:"constant.numeric.commonlisp"},3:{name:"variable.other.constant.sharpsign.commonlisp"}},match:`(?xi) +(?<=^|\\s|\\(|,@|,\\.|,) +(\\#) +([0-9]*) +(\\*) +(?=0|1)`},{match:`(?xi) +(?<=^|\\s|\\(|,@|,\\.|,) +(\\#\\*|\\#0\\*) +(?=(\\s|\\(|\\)))`,name:"variable.other.constant.sharpsign.commonlisp"},{captures:{1:{name:"variable.other.constant.sharpsign.commonlisp"},2:{name:"constant.numeric.commonlisp"},3:{name:"variable.other.constant.sharpsign.commonlisp"}},match:`(?xi) +(?<=^|\\s|\\(|,@|,\\.|,) +(\\#) +([0-9]+) +(a|A) +(?=.)`},{captures:{1:{name:"variable.other.constant.sharpsign.commonlisp"},2:{name:"constant.numeric.commonlisp"},3:{name:"variable.other.constant.sharpsign.commonlisp"}},match:`(?xi) +(?<=^|\\s|\\(|,@|,\\.|,) +(\\#) +([0-9]+) +(=) +(?=.)`},{captures:{1:{name:"variable.other.constant.sharpsign.commonlisp"},2:{name:"constant.numeric.commonlisp"},3:{name:"variable.other.constant.sharpsign.commonlisp"}},match:`(?xi) +(?<=^|\\s|\\(|,@|,\\.|,) +(\\#) +([0-9]+) +(\\#) +(?=.)`},{match:`(?xi) +(?<=^|\\s|\\(|,@|,\\.|,) +(\\#(\\+|-)) +(?=\\S)`,name:"variable.other.constant.sharpsign.commonlisp"},{match:`(?xi) +(?<=^|\\s|\\(|,@|,\\.|,) +(\\#('|,|\\.|c|C|s|S|p|P)) +(?=\\S)`,name:"variable.other.constant.sharpsign.commonlisp"},{captures:{1:{name:"support.type.package.commonlisp"}},match:`(?xi) +(?<=^|\\s|\\(|,@|,\\.|,) +(\\#) +(:) +(?=\\S)`},{captures:{2:{name:"variable.other.constant.backquote.commonlisp"},3:{name:"variable.other.constant.backquote.commonlisp"},4:{name:"variable.other.constant.backquote.commonlisp"},5:{name:"variable.other.constant.backquote.commonlisp"}},match:`(?xi) +(?<=^|\\s|\\() +( +(\`\\#) +| +(\`)(,@|,\\.|,)? +| +(,@|,\\.|,) +) +(?=\\S)`}]},"special-operator":{captures:{2:{name:"keyword.control.commonlisp"}},match:`(?xi) +(\\(\\s*) +(unwind-protect|throw|the|tagbody|symbol-macrolet|return-from|quote|progv|progn|multiple-value-prog1|multiple-value-call| +macrolet|locally|load-time-value|let\\*|let|labels|if|go|function|flet|eval-when|catch|block) +(?=(\\s|\\(|\\)))`},string:{begin:'(")',beginCaptures:{1:{name:"punctuation.definition.string.begin.commonlisp"}},end:'(")',endCaptures:{1:{name:"punctuation.definition.string.end.commonlisp"}},name:"string.quoted.double.commonlisp",patterns:[{match:"\\\\.",name:"constant.character.escape.commonlisp"},{captures:{1:{name:"storage.type.function.formattedstring.commonlisp"},2:{name:"variable.other.constant.formattedstring.commonlisp"},8:{name:"storage.type.function.formattedstring.commonlisp"},10:{name:"storage.type.function.formattedstring.commonlisp"}},match:`(?xi) + +(~) +( +( +(([+-]?[0-9]+)|('.)|V|\\#)*? +(,)? +) +*?) +( +(:@|@:|:|@) +?) +(\\(|\\)|\\[|\\]|;|{|}|<|>|\\^)`},{captures:{1:{name:"entity.name.variable.commonlisp"},2:{name:"variable.other.constant.formattedstring.commonlisp"},8:{name:"entity.name.variable.commonlisp"},10:{name:"entity.name.variable.commonlisp"}},match:`(?xi) + +(~) +( +( +(([+-]?[0-9]+)|('.)|V|\\#)*? +(,)? +) +*?) +( +(:@|@:|:|@) +?) +(A|S|D|B|O|X|R|P|C|F|E|G|\\$|%|\\&|\\||~|T|\\*|\\?|_|W|I)`},{captures:{1:{name:"entity.name.variable.commonlisp"},2:{name:"variable.other.constant.formattedstring.commonlisp"},8:{name:"entity.name.variable.commonlisp"},10:{name:"entity.name.variable.commonlisp"},11:{name:"entity.name.variable.commonlisp"},12:{name:"entity.name.variable.commonlisp"}},match:`(?xi) + +(~) +( +( +(([+-]?[0-9]+)|('.)|V|\\#)*? +(,)? +) +*?) +( +(:@|@:|:|@) +?) +(\\/) +([#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?) +(\\/)`},{match:"(~\\n)",name:"variable.other.constant.formattedstring.commonlisp"}]},"style-guide":{patterns:[{captures:{3:{name:"source.commonlisp"}},match:`(?xi) +(?<=^'|\\s'|\\('|,@'|,\\.'|,') +(\\S+?) +(\\:\\:|\\:) +((\\+[^\\s\\+]+\\+)|(\\*[^\\s\\*]+\\*)) +(?=(\\s|\\(|\\)))`},{match:`(?xi) +(?<=\\S:|^|\\s|\\() +(\\+[^\\s\\+]+\\+) +(?=(\\s|\\(|\\)))`,name:"variable.other.constant.earmuffsplus.commonlisp"},{match:`(?xi) +(?<=\\S:|^|\\s|\\() +(\\*[^\\s\\*]+\\*) +(?=(\\s|\\(|\\)))`,name:"string.regexp.earmuffsasterisk.commonlisp"}]},symbol:{match:`(?xi) +(?<=^|\\s|\\() +(?:method-combination|declare) +(?=(\\s|\\(|\\)))`,name:"storage.type.function.symbol.commonlisp"},type:{match:`(?xi) +(?<=^|\\s|\\() +(?:unsigned-byte|standard-char|standard|single-float|simple-vector|simple-string|simple-bit-vector|simple-base-string|simple-array| +signed-byte|short-float|long-float|keyword|fixnum|extended-char|double-float|compiled-function|boolean|bignum|base-string|base-char) +(?=(\\s|\\(|\\)))`,name:"support.type.t.commonlisp"},variable:{patterns:[{match:`(?xi) +(?<=^|\\s|\\() +(?:\\*trace-output\\*|\\*terminal-io\\*|\\*standard-output\\*|\\*standard-input\\*|\\*readtable\\*|\\*read-suppress\\*|\\*read-eval\\*| +\\*read-default-float-format\\*|\\*read-base\\*|\\*random-state\\*|\\*query-io\\*|\\*print-right-margin\\*|\\*print-readably\\*|\\*print-radix\\*|\\*print-pretty\\*| +\\*print-pprint-dispatch\\*|\\*print-miser-width\\*|\\*print-lines\\*|\\*print-level\\*|\\*print-length\\*|\\*print-gensym\\*|\\*print-escape\\*|\\*print-circle\\*| +\\*print-case\\*|\\*print-base\\*|\\*print-array\\*|\\*package\\*|\\*modules\\*|\\*macroexpand-hook\\*|\\*load-verbose\\*|\\*load-truename\\*|\\*load-print\\*| +\\*load-pathname\\*|\\*gensym-counter\\*|\\*features\\*|\\*error-output\\*|\\*default-pathname-defaults\\*|\\*debugger-hook\\*|\\*debug-io\\*|\\*compile-verbose\\*| +\\*compile-print\\*|\\*compile-file-truename\\*|\\*compile-file-pathname\\*|\\*break-on-signals\\*) +(?=(\\s|\\(|\\)))`,name:"string.regexp.earmuffsasterisk.commonlisp"},{match:`(?xi) +(?<=^|\\s|\\() +(?:\\*\\*\\*|\\*\\*|\\+\\+\\+|\\+\\+|\\/\\/\\/|\\/\\/) +(?=(\\s|\\(|\\)))`,name:"variable.other.repl.commonlisp"}]}},scopeName:"source.commonlisp",aliases:["lisp"]});var n=[e];export{n as default}; diff --git a/assets/chunks/cpp.BnO_O5bK.js b/assets/chunks/cpp.BnO_O5bK.js new file mode 100644 index 000000000..acc35fbf8 --- /dev/null +++ b/assets/chunks/cpp.BnO_O5bK.js @@ -0,0 +1,186 @@ +import e from"./glsl.-GlVTnW0.js";import n from"./sql.DbK06e1c.js";import"./c.RCJZWN-0.js";const t=Object.freeze({displayName:"C++",name:"cpp-macro",patterns:[{include:"#ever_present_context"},{include:"#constructor_root"},{include:"#destructor_root"},{include:"#function_definition"},{include:"#operator_overload"},{include:"#using_namespace"},{include:"source.cpp#type_alias"},{include:"source.cpp#using_name"},{include:"source.cpp#namespace_alias"},{include:"#namespace_block"},{include:"#extern_block"},{include:"#typedef_class"},{include:"#typedef_struct"},{include:"#typedef_union"},{include:"source.cpp#misc_keywords"},{include:"source.cpp#standard_declares"},{include:"#class_block"},{include:"#struct_block"},{include:"#union_block"},{include:"#enum_block"},{include:"source.cpp#template_isolated_definition"},{include:"#template_definition"},{include:"source.cpp#template_explicit_instantiation"},{include:"source.cpp#access_control_keywords"},{include:"#block"},{include:"#static_assert"},{include:"#assembly"},{include:"#function_pointer"},{include:"#evaluation_context"}],repository:{alignas_attribute:{begin:"alignas\\(",beginCaptures:{0:{name:"punctuation.section.attribute.begin.cpp"}},end:`\\)|(?=(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.italic.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.bold.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.inline.raw.string.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cpp"}]},3:{patterns:[{match:"(?|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.italic.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.bold.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.inline.raw.string.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cpp"}]},3:{patterns:[{match:"(?|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.italic.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.bold.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.inline.raw.string.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cpp"}]},3:{patterns:[{match:"(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()`,beginCaptures:{1:{name:"entity.name.function.call.initializer.cpp"},2:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},3:{},4:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},5:{name:"comment.block.cpp"},6:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},7:{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},contentName:"meta.parameter.initialization",end:`\\)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()`,beginCaptures:{1:{name:"entity.name.function.call.initializer.cpp"},2:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},3:{},4:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},5:{name:"comment.block.cpp"},6:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},7:{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},contentName:"meta.parameter.initialization",end:`\\)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\{)`,beginCaptures:{1:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(::))?(?:\\s+)?((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()`,beginCaptures:{1:{patterns:[{include:"source.cpp#scope_resolution_function_call_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.function.call.cpp"},6:{patterns:[{include:"source.cpp#inline_comment"}]},7:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},8:{name:"comment.block.cpp"},9:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},10:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},11:{},12:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},13:{name:"comment.block.cpp"},14:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},15:{name:"punctuation.section.arguments.begin.bracket.round.function.call.cpp"}},end:`\\)|(?=(?|\\*\\/))\\s*+(?:((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|(?=(?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))`},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:`\\}|%>|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()`,beginCaptures:{1:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?|(?=(?]|\\n)(?!\\()|(?=(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()`,beginCaptures:{1:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?|(?=(?]|\\n)(?!\\()|(?=(?|(?=(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))`}]},lambdas:{begin:'(?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))(?:\\s+)?(\\[(?!\\[| *+"| *+\\d))((?:[^\\[\\]]|((??)++\\]))*+)(\\](?!((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))[\\[\\];=]))',beginCaptures:{1:{name:"punctuation.definition.capture.begin.lambda.cpp"},2:{name:"meta.lambda.capture.cpp",patterns:[{include:"source.cpp#the_this_keyword"},{captures:{1:{name:"variable.parameter.capture.cpp"},2:{patterns:[{include:"source.cpp#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"punctuation.separator.delimiter.comma.cpp"},7:{name:"keyword.operator.assignment.cpp"}},match:"((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))"},{include:"#evaluation_context"}]},3:{},4:{name:"punctuation.definition.capture.end.lambda.cpp"},5:{patterns:[{include:"source.cpp#inline_comment"}]},6:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},7:{name:"comment.block.cpp"},8:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},end:`(?<=[;}])|(?=(?",beginCaptures:{0:{name:"punctuation.definition.lambda.return-type.cpp"}},end:`(?=\\{)|(?=(?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\()",beginCaptures:{1:{patterns:[{include:"source.cpp#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},5:{name:"variable.language.this.cpp"},6:{name:"variable.other.object.access.cpp"},7:{name:"punctuation.separator.dot-access.cpp"},8:{name:"punctuation.separator.pointer-access.cpp"},9:{patterns:[{captures:{1:{patterns:[{include:"source.cpp#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},5:{name:"variable.language.this.cpp"},6:{name:"variable.other.object.property.cpp"},7:{name:"punctuation.separator.dot-access.cpp"},8:{name:"punctuation.separator.pointer-access.cpp"}},match:"(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))"},{captures:{1:{patterns:[{include:"source.cpp#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},5:{name:"variable.language.this.cpp"},6:{name:"variable.other.object.access.cpp"},7:{name:"punctuation.separator.dot-access.cpp"},8:{name:"punctuation.separator.pointer-access.cpp"}},match:"(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))"},{include:"source.cpp#member_access"},{include:"#method_access"}]},10:{name:"entity.name.function.member.cpp"},11:{name:"punctuation.section.arguments.begin.bracket.round.function.member.cpp"}},end:`\\)|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(operator)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.cpp"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.cpp"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.cpp"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.cpp"},{match:"&|\\||\\^|~",name:"keyword.operator.bitwise.cpp"},{include:"source.cpp#assignment_operator"},{match:"%|\\*|\\/|-|\\+",name:"keyword.operator.arithmetic.cpp"},{include:"#ternary_operator"}]},parameter:{begin:"((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\w)",beginCaptures:{1:{patterns:[{include:"source.cpp#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},end:`(?:(?=\\))|(,))|(?=(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|(?=(?|(?=(?|(?=(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()`,beginCaptures:{1:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?|(?=(?]|\\n)(?!\\()|(?=(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",beginCaptures:{},end:`[\\s]*(?=;)|(?=(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)?((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.class.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.class.cpp"}},name:"meta.head.class.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.class.cpp"}},name:"meta.body.class.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.class.cpp",patterns:[{include:"$self"}]}]},class_declare:{captures:{1:{name:"storage.type.class.declare.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},4:{name:"entity.name.type.class.cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},12:{name:"variable.other.object.declare.cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]}},match:"((?|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.italic.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.bold.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.inline.raw.string.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cpp"}]},3:{patterns:[{match:"(?|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.italic.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.bold.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.inline.raw.string.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cpp"}]},3:{patterns:[{match:"(?|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.italic.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.bold.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.inline.raw.string.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cpp"}]},3:{patterns:[{match:"(?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.function.definition.special.constructor.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.head.function.definition.special.constructor.cpp",patterns:[{include:"#ever_present_context"},{captures:{1:{name:"keyword.operator.assignment.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"keyword.other.default.function.cpp keyword.other.default.constructor.cpp"},7:{name:"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"}},match:"(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))"},{include:"#functional_specifiers_pre_parameters"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.initializers.cpp"}},end:"(?=\\{)",endCaptures:{},patterns:[{begin:`((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()`,beginCaptures:{1:{name:"entity.name.function.call.initializer.cpp"},2:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},3:{},4:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},5:{name:"comment.block.cpp"},6:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},7:{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},contentName:"meta.parameter.initialization",end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},patterns:[{include:"#evaluation_context"}]},{begin:"((?|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.body.function.definition.special.constructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.function.definition.special.constructor.cpp",patterns:[{include:"$self"}]}]},constructor_root:{begin:`\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.function.definition.special.constructor.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.head.function.definition.special.constructor.cpp",patterns:[{include:"#ever_present_context"},{captures:{1:{name:"keyword.operator.assignment.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"keyword.other.default.function.cpp keyword.other.default.constructor.cpp"},7:{name:"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"}},match:"(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))"},{include:"#functional_specifiers_pre_parameters"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.initializers.cpp"}},end:"(?=\\{)",endCaptures:{},patterns:[{begin:`((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()`,beginCaptures:{1:{name:"entity.name.function.call.initializer.cpp"},2:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},3:{},4:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},5:{name:"comment.block.cpp"},6:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},7:{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},contentName:"meta.parameter.initialization",end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},patterns:[{include:"#evaluation_context"}]},{begin:"((?|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.body.function.definition.special.constructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.function.definition.special.constructor.cpp",patterns:[{include:"$self"}]}]},control_flow_keywords:{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},3:{name:"keyword.control.$3.cpp"}},match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\{)`,beginCaptures:{1:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},5:{name:"comment.block.cpp"},6:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\")[^\\"]*(\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))(?:\\s+)?(;?)',name:"meta.preprocessor.import.cpp"},d9bc4796b0b_preprocessor_number_literal:{captures:{0:{patterns:[{begin:"(?=.)",beginCaptures:{},end:"$",endCaptures:{},patterns:[{captures:{1:{name:"keyword.other.unit.hexadecimal.cpp"},2:{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},3:{name:"punctuation.separator.constant.numeric.cpp"},4:{name:"constant.numeric.hexadecimal.cpp"},5:{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},6:{name:"punctuation.separator.constant.numeric.cpp"},7:{name:"keyword.other.unit.exponent.hexadecimal.cpp"},8:{name:"keyword.operator.plus.exponent.hexadecimal.cpp"},9:{name:"keyword.operator.minus.exponent.hexadecimal.cpp"},10:{name:"constant.numeric.exponent.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},11:{name:"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp"}},match:"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.function.definition.special.member.destructor.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.head.function.definition.special.member.destructor.cpp",patterns:[{include:"#ever_present_context"},{captures:{1:{name:"keyword.operator.assignment.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"},7:{name:"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"}},match:"(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"}},contentName:"meta.function.definition.parameters.special.member.destructor",end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"}},patterns:[]},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.body.function.definition.special.member.destructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.function.definition.special.member.destructor.cpp",patterns:[{include:"$self"}]}]},destructor_root:{begin:`((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.function.definition.special.member.destructor.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.head.function.definition.special.member.destructor.cpp",patterns:[{include:"#ever_present_context"},{captures:{1:{name:"keyword.operator.assignment.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"},7:{name:"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"}},match:"(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"}},contentName:"meta.function.definition.parameters.special.member.destructor",end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"}},patterns:[]},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.body.function.definition.special.member.destructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.function.definition.special.member.destructor.cpp",patterns:[{include:"$self"}]}]},diagnostic:{begin:"(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:error|warning)))\\b(?:\\s+)?",beginCaptures:{1:{name:"keyword.control.directive.diagnostic.$7.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"punctuation.definition.directive.cpp"},7:{}},end:"(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(::))?(?:\\s+)?((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.enum.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.enum.cpp"}},name:"meta.head.enum.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.enum.cpp"}},name:"meta.body.enum.cpp",patterns:[{include:"#ever_present_context"},{include:"#enumerator_list"},{include:"#comments"},{include:"#comma"},{include:"#semicolon"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.enum.cpp",patterns:[{include:"$self"}]}]},enum_declare:{captures:{1:{name:"storage.type.enum.declare.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},4:{name:"entity.name.type.enum.cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},12:{name:"variable.other.object.declare.cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]}},match:"((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.extern.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.extern.cpp"}},name:"meta.head.extern.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.extern.cpp"}},name:"meta.body.extern.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.extern.cpp",patterns:[{include:"$self"}]},{include:"$self"}]},function_body_context:{patterns:[{include:"#ever_present_context"},{include:"#using_namespace"},{include:"#type_alias"},{include:"#using_name"},{include:"#namespace_alias"},{include:"#typedef_class"},{include:"#typedef_struct"},{include:"#typedef_union"},{include:"#misc_keywords"},{include:"#standard_declares"},{include:"#class_block"},{include:"#struct_block"},{include:"#union_block"},{include:"#enum_block"},{include:"#access_control_keywords"},{include:"#block"},{include:"#static_assert"},{include:"#assembly"},{include:"#function_pointer"},{include:"#switch_statement"},{include:"#goto_statement"},{include:"#evaluation_context"},{include:"#label"}]},function_call:{begin:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()`,beginCaptures:{1:{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.function.call.cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},8:{name:"comment.block.cpp"},9:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},10:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},11:{},12:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},13:{name:"comment.block.cpp"},14:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},15:{name:"punctuation.section.arguments.begin.bracket.round.function.call.cpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.call.cpp"}},patterns:[{include:"#evaluation_context"}]},function_definition:{begin:`(?:(?:^|\\G|(?<=;|\\}))|(?<=>|\\*\\/))\\s*+(?:((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},14:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},15:{patterns:[{include:"#inline_comment"}]},16:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},17:{name:"comment.block.cpp"},18:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},19:{patterns:[{include:"#inline_comment"}]},20:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},21:{name:"comment.block.cpp"},22:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},23:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.function.definition.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.cpp"}},name:"meta.head.function.definition.cpp",patterns:[{include:"#ever_present_context"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parameters.begin.bracket.round.cpp"}},contentName:"meta.function.definition.parameters",end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.cpp"}},patterns:[{include:"#ever_present_context"},{include:"#parameter_or_maybe_value"},{include:"#comma"},{include:"#evaluation_context"}]},{captures:{1:{name:"punctuation.definition.function.return-type.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},7:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},8:{patterns:[{include:"#inline_comment"}]},9:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},10:{name:"comment.block.cpp"},11:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},12:{patterns:[{include:"#inline_comment"}]},13:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},14:{name:"comment.block.cpp"},15:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},16:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))`},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.cpp"}},name:"meta.body.function.definition.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.function.definition.cpp",patterns:[{include:"$self"}]}]},function_parameter_context:{patterns:[{include:"#ever_present_context"},{include:"#parameter"},{include:"#comma"}]},function_pointer:{begin:`(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()`,beginCaptures:{1:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},5:{name:"comment.block.cpp"},6:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?]|\\n)(?!\\()",endCaptures:{1:{name:"punctuation.section.parameters.end.bracket.round.function.pointer.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},patterns:[{include:"#function_parameter_context"}]},function_pointer_parameter:{begin:`(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()`,beginCaptures:{1:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},5:{name:"comment.block.cpp"},6:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?]|\\n)(?!\\()",endCaptures:{1:{name:"punctuation.section.parameters.end.bracket.round.function.pointer.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},patterns:[{include:"#function_parameter_context"}]},functional_specifiers_pre_parameters:{match:"(?]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\")[^\\"]*(\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))',name:"meta.preprocessor.include.cpp"},inheritance_context:{patterns:[{include:"#ever_present_context"},{match:",",name:"punctuation.separator.delimiter.comma.inheritance.cpp"},{match:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},7:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))`}]},inline_builtin_storage_type:{captures:{1:{name:"storage.type.primitive.cpp storage.type.built-in.primitive.cpp"},2:{name:"storage.type.cpp storage.type.built-in.cpp"},3:{name:"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"},4:{name:"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"}},match:"\\s*+(?])|(?<=\\Wreturn|^return))(?:\\s+)?(\\[(?!\\[| *+"| *+\\d))((?:[^\\[\\]]|((??)++\\]))*+)(\\](?!((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))[\\[\\];=]))',beginCaptures:{1:{name:"punctuation.definition.capture.begin.lambda.cpp"},2:{name:"meta.lambda.capture.cpp",patterns:[{include:"#the_this_keyword"},{captures:{1:{name:"variable.parameter.capture.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"punctuation.separator.delimiter.comma.cpp"},7:{name:"keyword.operator.assignment.cpp"}},match:"((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))"},{include:"#evaluation_context"}]},3:{},4:{name:"punctuation.definition.capture.end.lambda.cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},7:{name:"comment.block.cpp"},8:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},end:"(?<=[;}])",endCaptures:{},patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.lambda.cpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.lambda.cpp"}},name:"meta.function.definition.parameters.lambda.cpp",patterns:[{include:"#function_parameter_context"}]},{match:"(?",beginCaptures:{0:{name:"punctuation.definition.lambda.return-type.cpp"}},end:"(?=\\{)",endCaptures:{},patterns:[{include:"#comments"},{match:"\\S+",name:"storage.type.return-type.lambda.cpp"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.lambda.cpp"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.lambda.cpp"}},name:"meta.function.definition.body.lambda.cpp",patterns:[{include:"$self"}]}]},language_constants:{match:"(?|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},5:{name:"variable.language.this.cpp"},6:{name:"variable.other.object.access.cpp"},7:{name:"punctuation.separator.dot-access.cpp"},8:{name:"punctuation.separator.pointer-access.cpp"}},match:"(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))"},{include:"#member_access"},{include:"#method_access"}]},8:{name:"variable.other.property.cpp"}},match:"(?:((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(\\b(?!uint_least32_t[^\\w]|uint_least16_t[^\\w]|uint_least64_t[^\\w]|int_least32_t[^\\w]|int_least64_t[^\\w]|uint_fast32_t[^\\w]|uint_fast64_t[^\\w]|uint_least8_t[^\\w]|uint_fast16_t[^\\w]|int_least16_t[^\\w]|int_fast16_t[^\\w]|int_least8_t[^\\w]|uint_fast8_t[^\\w]|int_fast64_t[^\\w]|int_fast32_t[^\\w]|int_fast8_t[^\\w]|suseconds_t[^\\w]|useconds_t[^\\w]|in_addr_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|in_port_t[^\\w]|uintptr_t[^\\w]|blksize_t[^\\w]|uint32_t[^\\w]|uint64_t[^\\w]|u_quad_t[^\\w]|intmax_t[^\\w]|intmax_t[^\\w]|unsigned[^\\w]|blkcnt_t[^\\w]|uint16_t[^\\w]|intptr_t[^\\w]|swblk_t[^\\w]|wchar_t[^\\w]|u_short[^\\w]|qaddr_t[^\\w]|caddr_t[^\\w]|daddr_t[^\\w]|fixpt_t[^\\w]|nlink_t[^\\w]|segsz_t[^\\w]|clock_t[^\\w]|ssize_t[^\\w]|int16_t[^\\w]|int32_t[^\\w]|int64_t[^\\w]|uint8_t[^\\w]|int8_t[^\\w]|mode_t[^\\w]|quad_t[^\\w]|ushort[^\\w]|u_long[^\\w]|u_char[^\\w]|double[^\\w]|signed[^\\w]|time_t[^\\w]|size_t[^\\w]|key_t[^\\w]|div_t[^\\w]|ino_t[^\\w]|uid_t[^\\w]|gid_t[^\\w]|off_t[^\\w]|pid_t[^\\w]|float[^\\w]|dev_t[^\\w]|u_int[^\\w]|short[^\\w]|bool[^\\w]|id_t[^\\w]|uint[^\\w]|long[^\\w]|char[^\\w]|void[^\\w]|auto[^\\w]|id_t[^\\w]|int[^\\w])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?!\\())"},memory_operators:{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},3:{name:"keyword.operator.wordlike.cpp"},4:{name:"keyword.operator.delete.array.cpp"},5:{name:"keyword.operator.delete.array.bracket.cpp"},6:{name:"keyword.operator.delete.cpp"},7:{name:"keyword.operator.new.cpp"}},match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(delete)(?:\\s+)?(\\[\\])|(delete))|(new))(?!\\w))"},method_access:{begin:"(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\()",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},5:{name:"variable.language.this.cpp"},6:{name:"variable.other.object.access.cpp"},7:{name:"punctuation.separator.dot-access.cpp"},8:{name:"punctuation.separator.pointer-access.cpp"},9:{patterns:[{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},5:{name:"variable.language.this.cpp"},6:{name:"variable.other.object.property.cpp"},7:{name:"punctuation.separator.dot-access.cpp"},8:{name:"punctuation.separator.pointer-access.cpp"}},match:"(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},5:{name:"variable.language.this.cpp"},6:{name:"variable.other.object.access.cpp"},7:{name:"punctuation.separator.dot-access.cpp"},8:{name:"punctuation.separator.pointer-access.cpp"}},match:"(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))"},{include:"#member_access"},{include:"#method_access"}]},10:{name:"entity.name.function.member.cpp"},11:{name:"punctuation.section.arguments.begin.bracket.round.function.member.cpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.member.cpp"}},patterns:[{include:"#evaluation_context"}]},misc_keywords:{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},3:{name:"keyword.other.$3.cpp"}},match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.block.namespace.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.namespace.cpp"}},name:"meta.head.namespace.cpp",patterns:[{include:"#ever_present_context"},{include:"#attributes_context"},{captures:{1:{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.namespace.cpp"},6:{name:"punctuation.separator.scope-resolution.namespace.block.cpp"},7:{name:"storage.modifier.inline.cpp"}},match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.namespace.cpp"}},name:"meta.body.namespace.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.namespace.cpp",patterns:[{include:"$self"}]}]},noexcept_operator:{begin:"((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(operator)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},6:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{patterns:[{include:"#inline_comment"}]},12:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},13:{name:"comment.block.cpp"},14:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},15:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.function.definition.special.operator-overload.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp"}},name:"meta.head.function.definition.special.operator-overload.cpp",patterns:[{include:"#ever_present_context"},{include:"#template_call_range"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp"}},contentName:"meta.function.definition.parameters.special.operator-overload",end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp"}},patterns:[{include:"#function_parameter_context"},{include:"#evaluation_context"}]},{include:"#qualifiers_and_specifiers_post_parameters"},{captures:{1:{name:"keyword.operator.assignment.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"keyword.other.default.function.cpp"},7:{name:"keyword.other.delete.function.cpp"}},match:"(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"}},name:"meta.body.function.definition.special.operator-overload.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.function.definition.special.operator-overload.cpp",patterns:[{include:"$self"}]}]},operators:{patterns:[{begin:"((?>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.cpp"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.cpp"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.cpp"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.cpp"},{match:"&|\\||\\^|~",name:"keyword.operator.bitwise.cpp"},{include:"#assignment_operator"},{match:"%|\\*|\\/|-|\\+",name:"keyword.operator.arithmetic.cpp"},{include:"#ternary_operator"}]},over_qualified_types:{patterns:[{captures:{1:{name:"storage.type.struct.parameter.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},4:{name:"entity.name.type.struct.parameter.cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},14:{name:"variable.other.object.declare.cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]}},match:"(\\bstruct)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},1:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},4:{patterns:[{include:"#inline_comment"}]},5:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},6:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.])`,name:"meta.qualified_type.cpp"},qualifiers_and_specifiers_post_parameters:{captures:{1:{patterns:[{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},5:{name:"storage.modifier.specifier.functional.post-parameters.$5.cpp"}},match:"((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+`},scope_resolution_function_call:{captures:{0:{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+`},scope_resolution_function_call_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.function.call.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"}},match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)`},scope_resolution_function_definition:{captures:{0:{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+`},scope_resolution_function_definition_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.function.definition.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"}},match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)`},scope_resolution_function_definition_operator_overload:{captures:{0:{patterns:[{include:"#scope_resolution_function_definition_operator_overload_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+`},scope_resolution_function_definition_operator_overload_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_function_definition_operator_overload_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.function.definition.operator-overload.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"}},match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)`},scope_resolution_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"}},match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)`},scope_resolution_namespace_alias:{captures:{0:{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+`},scope_resolution_namespace_alias_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.namespace.alias.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"}},match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)`},scope_resolution_namespace_block:{captures:{0:{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+`},scope_resolution_namespace_block_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.namespace.block.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"}},match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)`},scope_resolution_namespace_using:{captures:{0:{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+`},scope_resolution_namespace_using_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.namespace.using.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"}},match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)`},scope_resolution_parameter:{captures:{0:{patterns:[{include:"#scope_resolution_parameter_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+`},scope_resolution_parameter_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_parameter_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.parameter.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"}},match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)`},scope_resolution_template_call:{captures:{0:{patterns:[{include:"#scope_resolution_template_call_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+`},scope_resolution_template_call_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_template_call_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.template.call.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"}},match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)`},scope_resolution_template_definition:{captures:{0:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+`},scope_resolution_template_definition_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.template.definition.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"}},match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)`},semicolon:{match:";",name:"punctuation.terminator.statement.cpp"},simple_type:{captures:{1:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},7:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?`},single_line_macro:{captures:{0:{patterns:[{include:"#macro"},{include:"#comments"}]},1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]}},match:"^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))#define.*(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.struct.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.struct.cpp"}},name:"meta.head.struct.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.struct.cpp"}},name:"meta.body.struct.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.struct.cpp",patterns:[{include:"$self"}]}]},struct_declare:{captures:{1:{name:"storage.type.struct.declare.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},4:{name:"entity.name.type.struct.cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},12:{name:"variable.other.object.declare.cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]}},match:"((?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.block.switch.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.switch.cpp"}},name:"meta.head.switch.cpp",patterns:[{include:"#switch_conditional_parentheses"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.switch.cpp"}},name:"meta.body.switch.cpp",patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.switch.cpp",patterns:[{include:"$self"}]}]},template_argument_defaulted:{captures:{1:{name:"storage.type.template.argument.$1.cpp"},2:{name:"entity.name.type.template.cpp"},3:{name:"keyword.operator.assignment.cpp"}},match:"(?<=<|,)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\s+((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(\\=)"},template_call_context:{patterns:[{include:"#ever_present_context"},{include:"#template_call_range"},{include:"#storage_types"},{include:"#language_constants"},{include:"#scope_resolution_template_call_inner_generated"},{include:"#operators"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma_in_template_argument"},{include:"#qualified_type"}]},template_call_innards:{captures:{0:{patterns:[{include:"#template_call_range"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:`((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+`,name:"meta.template.call.cpp"},template_call_range:{begin:"<",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},end:">",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},template_definition:{begin:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.definition.cpp"}},name:"meta.template.definition.cpp",patterns:[{begin:"(?<=\\w)(?:\\s+)?<",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},end:">",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},patterns:[{include:"#template_call_context"}]},{include:"#template_definition_context"}]},template_definition_argument:{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},3:{name:"storage.type.template.argument.$3.cpp"},4:{patterns:[{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"storage.type.template.argument.$0.cpp"}]},5:{name:"entity.name.type.template.cpp"},6:{name:"storage.type.template.argument.$6.cpp"},7:{name:"punctuation.vararg-ellipses.template.definition.cpp"},8:{name:"entity.name.type.template.cpp"},9:{name:"storage.type.template.cpp"},10:{name:"punctuation.section.angle-brackets.begin.template.definition.cpp"},11:{name:"storage.type.template.argument.$11.cpp"},12:{name:"entity.name.type.template.cpp"},13:{name:"punctuation.section.angle-brackets.end.template.definition.cpp"},14:{name:"storage.type.template.argument.$14.cpp"},15:{name:"entity.name.type.template.cpp"},16:{name:"keyword.operator.assignment.cpp"},17:{name:"punctuation.separator.delimiter.comma.template.argument.cpp"}},match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\.\\.\\.)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|(?)(?:\\s+)?(class|typename)(?:\\s+((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?)(?:\\s+)?(?:(\\=)(?:\\s+)?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?(?:(,)|(?=>|$))"},template_definition_context:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"},{include:"#template_definition_argument"},{include:"#template_argument_defaulted"},{include:"#template_call_innards"},{include:"#evaluation_context"}]},template_explicit_instantiation:{captures:{1:{name:"storage.modifier.specifier.extern.cpp"},2:{name:"storage.type.template.cpp"}},match:"(?)(?:\\s+)?$"},ternary_operator:{applyEndPatternLast:1,begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.cpp"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.cpp"}},patterns:[{include:"#ever_present_context"},{include:"#string_context"},{include:"#number_literal"},{include:"#method_access"},{include:"#member_access"},{include:"#predefined_macros"},{include:"#operators"},{include:"#memory_operators"},{include:"#wordlike_operators"},{include:"#type_casting_operators"},{include:"#control_flow_keywords"},{include:"#exception_keywords"},{include:"#the_this_keyword"},{include:"#language_constants"},{include:"#builtin_storage_type_initilizer"},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"#functional_specifiers_pre_parameters"},{include:"#storage_types"},{include:"#lambdas"},{include:"#attributes_context"},{include:"#parentheses"},{include:"#function_call"},{include:"#scope_resolution_inner_generated"},{include:"#square_brackets"},{include:"#semicolon"},{include:"#comma"}]},the_this_keyword:{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},3:{name:"variable.language.this.cpp"}},match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},9:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},14:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))|(.*(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.class.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.class.cpp"}},name:"meta.head.class.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.class.cpp"}},name:"meta.body.class.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.class.cpp",patterns:[{captures:{1:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},8:{name:"comment.block.cpp"},9:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},10:{patterns:[{include:"#inline_comment"}]},11:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},12:{name:"comment.block.cpp"},13:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},14:{name:"entity.name.type.alias.cpp"}},match:"(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()`,beginCaptures:{1:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},5:{name:"comment.block.cpp"},6:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?]|\\n)(?!\\()",endCaptures:{1:{name:"punctuation.section.parameters.end.bracket.round.function.pointer.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},patterns:[{include:"#function_parameter_context"}]}]},typedef_struct:{begin:"((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.struct.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.struct.cpp"}},name:"meta.head.struct.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.struct.cpp"}},name:"meta.body.struct.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.struct.cpp",patterns:[{captures:{1:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},8:{name:"comment.block.cpp"},9:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},10:{patterns:[{include:"#inline_comment"}]},11:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},12:{name:"comment.block.cpp"},13:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},14:{name:"entity.name.type.alias.cpp"}},match:"(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.union.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.union.cpp"}},name:"meta.head.union.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.union.cpp"}},name:"meta.body.union.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.union.cpp",patterns:[{captures:{1:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},8:{name:"comment.block.cpp"},9:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},10:{patterns:[{include:"#inline_comment"}]},11:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},12:{name:"comment.block.cpp"},13:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},14:{name:"entity.name.type.alias.cpp"}},match:"(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},7:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},12:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))`},undef:{captures:{1:{name:"keyword.control.directive.undef.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},4:{name:"punctuation.definition.directive.cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},7:{name:"entity.name.function.preprocessor.cpp"}},match:"(^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?undef\\b)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.union.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.union.cpp"}},name:"meta.head.union.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.union.cpp"}},name:"meta.body.union.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.union.cpp",patterns:[{include:"$self"}]}]},union_declare:{captures:{1:{name:"storage.type.union.declare.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},4:{name:"entity.name.type.union.cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},12:{name:"variable.other.object.declare.cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]}},match:"((?|(?:(?:[^'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)?((?~]\\s*+(if|unless)))\\b(?![^;]*+;.*?\\bend\\b)|("(\\\\.|[^"])*+"|'(\\\\.|[^'])*+'|[^#"'])*(\\{(?![^}]*+\\})|\\[(?![^\\]]*+\\]))).*$|[#].*?\\(fold\\)\\s*+$`,foldingStopMarker:"(?x)((^|;)\\s*+end\\s*+([#].*)?$|(^|;)\\s*+end\\..*$|^\\s*+[}\\]] ,?\\s*+([#].*)?$|[#].*?\\(end\\)\\s*+$|^=end)",name:"crystal",patterns:[{captures:{1:{name:"keyword.control.class.crystal"},2:{name:"keyword.control.class.crystal"},3:{name:"entity.name.type.class.crystal"},5:{name:"punctuation.separator.crystal"},6:{name:"support.class.other.type-param.crystal"},7:{name:"entity.other.inherited-class.crystal"},8:{name:"punctuation.separator.crystal"},9:{name:"punctuation.separator.crystal"},10:{name:"support.class.other.type-param.crystal"},11:{name:"punctuation.definition.variable.crystal"}},match:"(?x)^\\s*(abstract)?\\s*(class|struct|union|annotation|enum)\\s+(([.A-Z_:\\x{80}-\\x{10FFFF}][.\\w:\\x{80}-\\x{10FFFF}]*(\\(([,\\s.a-zA-Z0-9_:\\x{80}-\\x{10FFFF}]+)\\))?(\\s*(<)\\s*[.:A-Z\\x{80}-\\x{10FFFF}][.:\\w\\x{80}-\\x{10FFFF}]*(\\(([.a-zA-Z0-9_:]+\\s,)\\))?)?)|((<<)\\s*[.A-Z0-9_:\\x{80}-\\x{10FFFF}]+))",name:"meta.class.crystal"},{captures:{1:{name:"keyword.control.module.crystal"},2:{name:"entity.name.type.module.crystal"},3:{name:"entity.other.inherited-class.module.first.crystal"},4:{name:"punctuation.separator.inheritance.crystal"},5:{name:"entity.other.inherited-class.module.second.crystal"},6:{name:"punctuation.separator.inheritance.crystal"},7:{name:"entity.other.inherited-class.module.third.crystal"},8:{name:"punctuation.separator.inheritance.crystal"}},match:"^\\s*(module)\\s+(([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))?([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))?([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))*[A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*)",name:"meta.module.crystal"},{captures:{1:{name:"keyword.control.lib.crystal"},2:{name:"entity.name.type.lib.crystal"},3:{name:"entity.other.inherited-class.lib.first.crystal"},4:{name:"punctuation.separator.inheritance.crystal"},5:{name:"entity.other.inherited-class.lib.second.crystal"},6:{name:"punctuation.separator.inheritance.crystal"},7:{name:"entity.other.inherited-class.lib.third.crystal"},8:{name:"punctuation.separator.inheritance.crystal"}},match:"^\\s*(lib)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)",name:"meta.lib.crystal"},{captures:{1:{name:"keyword.control.lib.type.crystal"},2:{name:"entity.name.lib.type.crystal"},3:{name:"keyword.control.lib.crystal"},4:{name:"entity.name.lib.type.value.crystal"}},comment:"type in lib",match:"(?|_|\\*|\\$|\\?|:|\"|-[0adFiIlpv])",name:"variable.other.readwrite.global.pre-defined.crystal"},{begin:"\\b(ENV)\\[",beginCaptures:{1:{name:"variable.other.constant.crystal"}},end:"\\]",name:"meta.environment-variable.crystal",patterns:[{include:"$self"}]},{comment:"Literals name of Crystal",match:"\\b[A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*",name:"support.class.crystal"},{comment:"Fetch from https://crystal-lang.org/api/0.36.1/toplevel.html",match:"(?[a-zA-Z_]\\w*(?>\\.|::))? +(?> +[a-zA-Z_]\\w*(?>[?!]|=(?!>))? +| +\\^|===?|!=|>[>=]?|<=>|<[<=]?|[%&\`/\\|]|\\*\\*?|=?~|[-+]@?|\\[][?=]?|\\[]=? +) +) +\\s*(\\()`,beginCaptures:{1:{name:"keyword.control.def.crystal"},2:{name:"entity.name.function.crystal"},3:{name:"punctuation.definition.parameters.crystal"}},comment:"The method pattern comes from the symbol pattern. See there for an explanation.",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.crystal"}},name:"meta.function.method.with-arguments.crystal",patterns:[{begin:"(?![\\s,)])",end:"(?=,|\\)\\s*)",patterns:[{captures:{1:{name:"storage.type.variable.crystal"},2:{name:"constant.other.symbol.hashkey.parameter.function.crystal"},3:{name:"punctuation.definition.constant.hashkey.crystal"},4:{name:"variable.parameter.function.crystal"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))"},{include:"$self"}]}]},{captures:{1:{name:"keyword.control.def.crystal"},3:{name:"entity.name.function.crystal"}},comment:" the optional name is just to catch the def also without a method-name",match:`(?x) +(?=def\\b) +(?<=^|\\s)(def)\\b +( +\\s+ +( +(?>[a-zA-Z_]\\w*(?>\\.|::))? +(?> +[a-zA-Z_]\\w*(?>[?!]|=(?!>))? +| +\\^|===?|!=|>[>=]?|<=>|<[<=]?|[%&\`/\\|]|\\*\\*?|=?~|[-+]@?|\\[][?=]?|\\[]=? +) +) +)?`,name:"meta.function.method.without-arguments.crystal"},{comment:"Floating point literal (fraction)",match:"\\b[0-9][0-9_]*\\.[0-9][0-9_]*([eE][+-]?[0-9_]+)?(f32|f64)?\\b",name:"constant.numeric.float.crystal"},{comment:"Floating point literal (exponent)",match:"\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?[eE][+-]?[0-9_]+(f32|f64)?\\b",name:"constant.numeric.float.crystal"},{comment:"Floating point literal (typed)",match:"\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?(f32|f64)\\b",name:"constant.numeric.float.crystal"},{comment:"Integer literal (decimal)",match:"\\b(?!0[0-9])[0-9][0-9_]*([ui](8|16|32|64|128))?\\b",name:"constant.numeric.integer.decimal.crystal"},{comment:"Integer literal (hexadecimal)",match:"\\b0x[a-fA-F0-9_]+([ui](8|16|32|64|128))?\\b",name:"constant.numeric.integer.hexadecimal.crystal"},{comment:"Integer literal (octal)",match:"\\b0o[0-7_]+([ui](8|16|32|64|128))?\\b",name:"constant.numeric.integer.octal.crystal"},{comment:"Integer literal (binary)",match:"\\b0b[01_]+([ui](8|16|32|64|128))?\\b",name:"constant.numeric.integer.binary.crystal"},{begin:":'",beginCaptures:{0:{name:"punctuation.definition.symbol.begin.crystal"}},comment:"symbol literal with '' delimiter",end:"'",endCaptures:{0:{name:"punctuation.definition.symbol.end.crystal"}},name:"constant.other.symbol.crystal",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.crystal"}]},{begin:':"',beginCaptures:{0:{name:"punctuation.section.symbol.begin.crystal"}},comment:'symbol literal with "" delimiter',end:'"',endCaptures:{0:{name:"punctuation.section.symbol.end.crystal"}},name:"constant.other.symbol.interpolated.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{comment:"Needs higher precedence than regular expressions.",match:"(?",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.interpolated.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:"%x\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"execute string (allow for interpolation)",end:"\\)",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.interpolated.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:"%x\\|",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"execute string (allow for interpolation)",end:"\\|",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.interpolated.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?x) (?: ^| (?<=[=>~(?:\\[,|&;] | [\\s;]if\\s| [\\s;]elsif\\s | [\\s;]while\\s | [\\s;]unless\\s | [\\s;]when\\s | [\\s;]assert_match\\s | [\\s;]or\\s| [\\s;]and\\s | [\\s;]not\\s | [\\s.]index\\s| [\\s.]scan\\s | [\\s.]sub\\s | [\\s.]sub!\\s | [\\s.]gsub\\s | [\\s.]gsub!\\s | [\\s.]match\\s ) | (?<=^when\\s| ^if\\s | ^elsif\\s | ^while\\s | ^unless\\s ) ) \\s*((/))(?![*+{}?])",captures:{1:{name:"string.regexp.classic.crystal"},2:{name:"punctuation.definition.string.crystal"}},comment:"regular expressions (normal) we only start a regexp if the character before it (excluding whitespace) is what we think is before a regexp",contentName:"string.regexp.classic.crystal",end:"((/[imsx]*))",patterns:[{include:"#regex_sub"}]},{begin:"%r\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\}[imsx]*",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"},{include:"#nest_curly_r"}]},{begin:"%r\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\][imsx]*",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"},{include:"#nest_brackets_r"}]},{begin:"%r\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\)[imsx]*",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"},{include:"#nest_parens_r"}]},{begin:"%r\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\>[imsx]*",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"},{include:"#nest_ltgt_r"}]},{begin:"%r\\|",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\|[imsx]*",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"}]},{begin:"%Q?\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation ()",end:"\\)",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.upper.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:"%Q?\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation []",end:"\\]",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.upper.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:"%Q?\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation <>",end:"\\>",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.upper.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:"%Q?\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation -- {}",end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.double.crystal.mod",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:"%Q\\|",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation -- ||",end:"\\|",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.upper.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"%[qwi]\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- ()",end:"\\)",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{match:"\\\\\\)|\\\\\\\\",name:"constant.character.escape.crystal"},{include:"#nest_parens"}]},{begin:"%[qwi]\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- <>",end:"\\>",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{match:"\\\\\\>|\\\\\\\\",name:"constant.character.escape.crystal"},{include:"#nest_ltgt"}]},{begin:"%[qwi]\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- []",end:"\\]",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{match:"\\\\\\]|\\\\\\\\",name:"constant.character.escape.crystal"},{include:"#nest_brackets"}]},{begin:"%[qwi]\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- {}",end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{match:"\\\\\\}|\\\\\\\\",name:"constant.character.escape.crystal"},{include:"#nest_curly"}]},{begin:"%[qwi]\\|",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- ||",end:"\\|",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{comment:"Cant be named because its not necessarily an escape.",match:"\\\\."}]},{captures:{1:{name:"punctuation.definition.constant.crystal"}},comment:"symbols",match:"(?[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\][?=]?|@@?[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*)",name:"constant.other.symbol.crystal"},{captures:{1:{name:"punctuation.definition.constant.crystal"}},comment:"symbols",match:"(?>[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(?>[?!])?)(:)(?!:)",name:"constant.other.symbol.crystal.19syntax"},{captures:{1:{name:"punctuation.definition.comment.crystal"}},match:"(?:^[ \\t]+)?(#).*$\\n?",name:"comment.line.number-sign.crystal"},{match:"(?<<-('?)((?:[_\\w]+_|)HTML)\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded HTML and indented terminator",contentName:"text.html.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.html.crystal",patterns:[{include:"#heredoc"},{include:"text.html.basic"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)SQL)\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded SQL and indented terminator",contentName:"text.sql.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.sql.crystal",patterns:[{include:"#heredoc"},{include:"source.sql"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)CSS)\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded css and intented terminator",contentName:"text.css.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.css.crystal",patterns:[{include:"#heredoc"},{include:"source.css"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)CPP)\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded c++ and intented terminator",contentName:"text.c++.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.cplusplus.crystal",patterns:[{include:"#heredoc"},{include:"source.c++"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)C)\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded c++ and intented terminator",contentName:"text.c.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.c.crystal",patterns:[{include:"#heredoc"},{include:"source.c"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded javascript and intented terminator",contentName:"text.js.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.js.crystal",patterns:[{include:"#heredoc"},{include:"source.js"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)JQUERY)\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded javascript and intented terminator",contentName:"text.js.jquery.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.js.jquery.crystal",patterns:[{include:"#heredoc"},{include:"source.js.jquery"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded shell and intented terminator",contentName:"text.shell.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.shell.crystal",patterns:[{include:"#heredoc"},{include:"source.shell"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)CRYSTAL)\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded crystal and intented terminator",contentName:"text.crystal.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.crystal.crystal",patterns:[{include:"#heredoc"},{include:"source.crystal"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-'(\\w+)')",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with indented terminator",end:"\\s*\\1\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.heredoc.crystal",patterns:[{include:"#heredoc"},{include:"#escaped_char"}]},{begin:"(?><<-(\\w+)\\b)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with indented terminator",end:"\\s*\\1\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.heredoc.crystal",patterns:[{include:"#heredoc"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?<={|{\\s|[^A-Za-z0-9_]do|^do|[^A-Za-z0-9_]do\\s|^do\\s)(\\|)",captures:{1:{name:"punctuation.separator.variable.crystal"}},end:"(?",name:"punctuation.separator.key-value"},{match:"->",name:"support.function.kernel.crystal"},{match:"<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<",name:"keyword.operator.assignment.augmented.crystal"},{match:"<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?",name:"keyword.operator.comparison.crystal"},{match:"(?<=^|[ \\t])!|&&|\\|\\||\\^",name:"keyword.operator.logical.crystal"},{match:"(\\{\\%|\\%\\}|\\{\\{|\\}\\})",name:"keyword.operator.macro.crystal"},{captures:{1:{name:"punctuation.separator.method.crystal"}},comment:"Safe navigation operator",match:"(&\\.)\\s*(?![A-Z])"},{match:"(%|&|\\*\\*|\\*|\\+|\\-|/)",name:"keyword.operator.arithmetic.crystal"},{match:"=",name:"keyword.operator.assignment.crystal"},{match:"\\||~|>>",name:"keyword.operator.other.crystal"},{match:":",name:"punctuation.separator.other.crystal"},{match:"\\;",name:"punctuation.separator.statement.crystal"},{match:",",name:"punctuation.separator.object.crystal"},{match:"\\.|::",name:"punctuation.separator.method.crystal"},{match:"\\{|\\}",name:"punctuation.section.scope.crystal"},{match:"\\[|\\]",name:"punctuation.section.array.crystal"},{match:"\\(|\\)",name:"punctuation.section.function.crystal"},{begin:"(?=[a-zA-Z0-9_!?]+\\()",end:"(?<=\\))",name:"meta.function-call.crystal",patterns:[{match:"([a-zA-Z0-9_!?]+)(?=\\()",name:"entity.name.function.crystal"},{include:"$self"}]},{comment:"This is kindof experimental. There really is no way to perfectly match all regular variables, but you can pretty well assume that any normal word in certain curcumstances that havnt already been scoped as something else are probably variables, and the advantages beat the potential errors",match:"((?<=\\W)\\b|^)\\w+\\b(?=\\s*([\\]\\)\\}\\=\\+\\-\\*\\/\\^\\$\\,\\.]|<\\s|<<[\\s|\\.]))",name:"variable.other.crystal"}],repository:{escaped_char:{comment:"https://crystal-lang.org/reference/syntax_and_semantics/literals/string.html",match:"\\\\(?:[0-7]{1,3}|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u\\{[a-fA-F0-9 ]+\\}|.)",name:"constant.character.escape.crystal"},heredoc:{begin:"^<<-?\\w+",end:"$",patterns:[{include:"$self"}]},interpolated_crystal:{patterns:[{begin:"#\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.crystal"}},contentName:"source.crystal",end:"(\\})",endCaptures:{0:{name:"punctuation.section.embedded.end.crystal"},1:{name:"source.crystal"}},name:"meta.embedded.line.crystal",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}],repository:{nest_curly_and_self:{patterns:[{begin:"\\{",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]}}},{captures:{1:{name:"punctuation.definition.variable.crystal"}},match:"(#@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.crystal"},{captures:{1:{name:"punctuation.definition.variable.crystal"}},match:"(#@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.crystal"},{captures:{1:{name:"punctuation.definition.variable.crystal"}},match:"(#\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.crystal"}]},nest_brackets:{begin:"\\[",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\]",patterns:[{include:"#nest_brackets"}]},nest_brackets_i:{begin:"\\[",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\]",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},nest_brackets_r:{begin:"\\[",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\]",patterns:[{include:"#regex_sub"},{include:"#nest_brackets_r"}]},nest_curly:{begin:"\\{",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#nest_curly"}]},nest_curly_and_self:{patterns:[{begin:"\\{",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]},nest_curly_i:{begin:"\\{",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},nest_curly_r:{begin:"\\{",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#regex_sub"},{include:"#nest_curly_r"}]},nest_ltgt:{begin:"\\<",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\>",patterns:[{include:"#nest_ltgt"}]},nest_ltgt_i:{begin:"\\<",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\>",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},nest_ltgt_r:{begin:"\\<",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\>",patterns:[{include:"#regex_sub"},{include:"#nest_ltgt_r"}]},nest_parens:{begin:"\\(",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\)",patterns:[{include:"#nest_parens"}]},nest_parens_i:{begin:"\\(",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\)",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},nest_parens_r:{begin:"\\(",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\)",patterns:[{include:"#regex_sub"},{include:"#nest_parens_r"}]},regex_sub:{patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{captures:{1:{name:"punctuation.definition.arbitrary-repetition.crystal"},3:{name:"punctuation.definition.arbitrary-repetition.crystal"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.crystal"},{begin:"\\[(?:\\^?])?",captures:{0:{name:"punctuation.definition.character-class.crystal"}},end:"]",name:"string.regexp.character-class.crystal",patterns:[{include:"#escaped_char"}]},{begin:"\\(",captures:{0:{name:"punctuation.definition.group.crystal"}},end:"\\)",name:"string.regexp.group.crystal",patterns:[{include:"#regex_sub"}]},{captures:{1:{name:"punctuation.definition.comment.crystal"}},comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",match:"(?<=^|\\s)(#)\\s[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$",name:"comment.line.number-sign.crystal"}]}},scopeName:"source.crystal",embeddedLangs:["html","sql","css","c","javascript","shellscript"]});var p=[...e,...t,...n,...a,...r,...i,s];export{p as default}; diff --git a/assets/chunks/csharp.DISxKEhY.js b/assets/chunks/csharp.DISxKEhY.js new file mode 100644 index 000000000..e3a13656a --- /dev/null +++ b/assets/chunks/csharp.DISxKEhY.js @@ -0,0 +1,756 @@ +const e=Object.freeze({displayName:"C#",name:"csharp",patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#directives"},{include:"#declarations"},{include:"#script-top-level"}],repository:{"accessor-getter":{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},contentName:"meta.accessor.getter.cs",end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#statement"}]},{include:"#accessor-getter-expression"},{include:"#punctuation-semicolon"}]},"accessor-getter-expression":{begin:"=>",beginCaptures:{0:{name:"keyword.operator.arrow.cs"}},contentName:"meta.accessor.getter.cs",end:"(?=;|\\})",patterns:[{include:"#ref-modifier"},{include:"#expression"}]},"accessor-setter":{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},contentName:"meta.accessor.setter.cs",end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#statement"}]},{begin:"=>",beginCaptures:{0:{name:"keyword.operator.arrow.cs"}},contentName:"meta.accessor.setter.cs",end:"(?=;|\\})",patterns:[{include:"#ref-modifier"},{include:"#expression"}]},{include:"#punctuation-semicolon"}]},"anonymous-method-expression":{patterns:[{begin:`(?x) +((?:\\b(?:async|static)\\b\\s*)*) +(?: +(@?[_[:alpha:]][_[:alnum:]]*)\\b| +(\\() +(?(?:[^()]|\\(\\g\\))*) +(\\)) +)\\s* +(=>)`,beginCaptures:{1:{patterns:[{match:"async|static",name:"storage.modifier.$0.cs"}]},2:{name:"entity.name.variable.parameter.cs"},3:{name:"punctuation.parenthesis.open.cs"},4:{patterns:[{include:"#comment"},{include:"#explicit-anonymous-function-parameter"},{include:"#implicit-anonymous-function-parameter"},{include:"#default-argument"},{include:"#punctuation-comma"}]},5:{name:"punctuation.parenthesis.close.cs"},6:{name:"keyword.operator.arrow.cs"}},end:"(?=[,;)}])",patterns:[{include:"#intrusive"},{begin:"(?={)",end:"(?=[,;)}])",patterns:[{include:"#block"},{include:"#intrusive"}]},{begin:"\\b(ref)\\b|(?=\\S)",beginCaptures:{1:{name:"storage.modifier.ref.cs"}},end:"(?=[,;)}])",patterns:[{include:"#expression"}]}]},{begin:`(?x) +((?:\\b(?:async|static)\\b\\s*)*) +\\b(delegate)\\b\\s*`,beginCaptures:{1:{patterns:[{match:"async|static",name:"storage.modifier.$0.cs"}]},2:{name:"storage.type.delegate.cs"}},end:"(?<=})|(?=[,;)}])",patterns:[{include:"#intrusive"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#intrusive"},{include:"#explicit-anonymous-function-parameter"},{include:"#punctuation-comma"}]},{include:"#block"}]}]},"anonymous-object-creation-expression":{begin:"\\b(new)\\b\\s*(?=\\{|//|/\\*|$)",beginCaptures:{1:{name:"keyword.operator.expression.new.cs"}},end:"(?<=\\})",patterns:[{include:"#comment"},{include:"#initializer-expression"}]},argument:{patterns:[{match:"\\b(ref|in)\\b",name:"storage.modifier.$1.cs"},{begin:"\\b(out)\\b",beginCaptures:{1:{name:"storage.modifier.out.cs"}},end:"(?=,|\\)|\\])",patterns:[{include:"#declaration-expression-local"},{include:"#expression"}]},{include:"#expression"}]},"argument-list":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#named-argument"},{include:"#argument"},{include:"#punctuation-comma"}]},"array-creation-expression":{begin:`(?x) +\\b(new|stackalloc)\\b\\s* +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)?\\s* +(?=\\[)`,beginCaptures:{1:{name:"keyword.operator.expression.$1.cs"},2:{patterns:[{include:"#type"}]}},end:"(?<=\\])",patterns:[{include:"#bracketed-argument-list"}]},"as-expression":{captures:{1:{name:"keyword.operator.expression.as.cs"},2:{patterns:[{include:"#type"}]}},match:`(?x) +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?(?!\\?))? +(?:\\s* +\\[ +\\s*(?:,\\s*)* +\\] +(?:\\s*\\?(?!\\?))? +)* +) +)?`},"assignment-expression":{begin:"(?:\\*|/|%|\\+|-|\\?\\?|\\&|\\^|<<|>>>?|\\|)?=(?!=|>)",beginCaptures:{0:{patterns:[{include:"#assignment-operators"}]}},end:"(?=[,\\)\\];}])",patterns:[{include:"#ref-modifier"},{include:"#expression"}]},"assignment-operators":{patterns:[{match:"\\*=|/=|%=|\\+=|-=|\\?\\?=",name:"keyword.operator.assignment.compound.cs"},{match:"\\&=|\\^=|<<=|>>>?=|\\|=",name:"keyword.operator.assignment.compound.bitwise.cs"},{match:"\\=",name:"keyword.operator.assignment.cs"}]},attribute:{patterns:[{include:"#type-name"},{include:"#attribute-arguments"}]},"attribute-arguments":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.parenthesis.open.cs"}},end:"(\\))",endCaptures:{1:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#attribute-named-argument"},{include:"#expression"},{include:"#punctuation-comma"}]},"attribute-named-argument":{begin:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?==)",beginCaptures:{1:{name:"entity.name.variable.property.cs"}},end:"(?=(,|\\)))",patterns:[{include:"#operator-assignment"},{include:"#expression"}]},"attribute-section":{begin:"(\\[)(assembly|module|field|event|method|param|property|return|type)?(\\:)?",beginCaptures:{1:{name:"punctuation.squarebracket.open.cs"},2:{name:"keyword.other.attribute-specifier.cs"},3:{name:"punctuation.separator.colon.cs"}},end:"(\\])",endCaptures:{1:{name:"punctuation.squarebracket.close.cs"}},patterns:[{include:"#comment"},{include:"#attribute"},{include:"#punctuation-comma"}]},"await-expression":{match:"(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)\\s* +(\\))(?=\\s*-*!*@?[_[:alnum:]\\(])`},"casted-constant-pattern":{begin:`(?x) +(\\() +([\\s.:@_[:alnum:]]+) +(\\)) +(?=[\\s+\\-!~]*@?[_[:alnum:]('"]+)`,beginCaptures:{1:{name:"punctuation.parenthesis.open.cs"},2:{patterns:[{include:"#type-builtin"},{include:"#type-name"}]},3:{name:"punctuation.parenthesis.close.cs"}},end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#casted-constant-pattern"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#constant-pattern"}]},{include:"#constant-pattern"},{captures:{1:{name:"entity.name.type.alias.cs"},2:{name:"punctuation.separator.coloncolon.cs"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\:\\:)"},{captures:{1:{name:"entity.name.type.cs"},2:{name:"punctuation.accessor.cs"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)"},{match:"\\@?[_[:alpha:]][_[:alnum:]]*",name:"variable.other.constant.cs"}]},"catch-clause":{begin:"(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)\\s* +(?:(\\g)\\b)?`}]},{include:"#when-clause"},{include:"#comment"},{include:"#block"}]},"char-character-escape":{match:"\\\\(x[0-9a-fA-F]{1,4}|u[0-9a-fA-F]{4}|.)",name:"constant.character.escape.cs"},"char-literal":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.char.begin.cs"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.char.end.cs"},2:{name:"invalid.illegal.newline.cs"}},name:"string.quoted.single.cs",patterns:[{include:"#char-character-escape"}]},"class-declaration":{begin:"(?=(\\brecord\\b\\s+)?\\bclass\\b)",end:"(?<=\\})|(?=;)",patterns:[{begin:`(?x) +(\\b(record)\\b\\s+)? +\\b(class)\\b\\s+ +(@?[_[:alpha:]][_[:alnum:]]*)\\s*`,beginCaptures:{2:{name:"storage.type.record.cs"},3:{name:"storage.type.class.cs"},4:{name:"entity.name.type.class.cs"}},end:"(?=\\{)|(?=;)",patterns:[{include:"#comment"},{include:"#type-parameter-list"},{include:"#parenthesized-parameter-list"},{include:"#base-types"},{include:"#generic-constraints"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#class-or-struct-members"}]},{include:"#preprocessor"},{include:"#comment"}]},"class-or-struct-members":{patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#storage-modifier"},{include:"#type-declarations"},{include:"#property-declaration"},{include:"#field-declaration"},{include:"#event-declaration"},{include:"#indexer-declaration"},{include:"#variable-initializer"},{include:"#constructor-declaration"},{include:"#destructor-declaration"},{include:"#operator-declaration"},{include:"#conversion-operator-declaration"},{include:"#method-declaration"},{include:"#attribute-section"},{include:"#punctuation-semicolon"}]},"combinator-pattern":{match:"\\b(and|or|not)\\b",name:"keyword.operator.expression.pattern.combinator.$1.cs"},comment:{patterns:[{begin:"(^\\s+)?(///)(?!/)",captures:{1:{name:"punctuation.whitespace.comment.leading.cs"},2:{name:"punctuation.definition.comment.cs"}},name:"comment.block.documentation.cs",patterns:[{include:"#xml-doc-comment"}],while:"^(\\s*)(///)(?!/)"},{begin:"(^\\s+)?(/\\*\\*)(?!/)",captures:{1:{name:"punctuation.whitespace.comment.leading.cs"},2:{name:"punctuation.definition.comment.cs"}},end:"(^\\s+)?(\\*/)",name:"comment.block.documentation.cs",patterns:[{begin:"\\G(?=(?~\\*/)$)",patterns:[{include:"#xml-doc-comment"}],while:"^(\\s*+)(\\*(?!/))?(?=(?~\\*/)$)",whileCaptures:{1:{name:"punctuation.whitespace.comment.leading.cs"},2:{name:"punctuation.definition.comment.cs"}}},{include:"#xml-doc-comment"}]},{begin:"(^\\s+)?(//).*$",captures:{1:{name:"punctuation.whitespace.comment.leading.cs"},2:{name:"punctuation.definition.comment.cs"}},name:"comment.line.double-slash.cs",while:"^(\\s*)(//).*$"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.cs"}},end:"\\*/",name:"comment.block.cs"}]},"conditional-operator":{patterns:[{match:"\\?(?!\\?|\\s*[.\\[])",name:"keyword.operator.conditional.question-mark.cs"},{match:":",name:"keyword.operator.conditional.colon.cs"}]},"constant-pattern":{patterns:[{include:"#boolean-literal"},{include:"#null-literal"},{include:"#numeric-literal"},{include:"#char-literal"},{include:"#string-literal"},{include:"#raw-string-literal"},{include:"#verbatim-string-literal"},{include:"#type-operator-expression"},{include:"#expression-operator-expression"},{include:"#expression-operators"},{include:"#casted-constant-pattern"}]},"constructor-declaration":{begin:"(?=@?[_[:alpha:]][_[:alnum:]]*\\s*\\()",end:"(?<=\\})|(?=;)",patterns:[{captures:{1:{name:"entity.name.function.cs"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\b"},{begin:"(:)",beginCaptures:{1:{name:"punctuation.separator.colon.cs"}},end:"(?=\\{|=>)",patterns:[{include:"#constructor-initializer"}]},{include:"#parenthesized-parameter-list"},{include:"#preprocessor"},{include:"#comment"},{include:"#expression-body"},{include:"#block"}]},"constructor-initializer":{begin:"\\b(base|this)\\b\\s*(?=\\()",beginCaptures:{1:{name:"variable.language.$1.cs"}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"context-control-paren-statement":{patterns:[{include:"#fixed-statement"},{include:"#lock-statement"},{include:"#using-statement"}]},"context-control-statement":{match:"\\b(checked|unchecked|unsafe)\\b(?!\\s*[@_[:alpha:](])",name:"keyword.control.context.$1.cs"},"conversion-operator-declaration":{begin:`(?x) +(?(?:\\b(?:explicit|implicit)))\\s* +(?(?:\\b(?:operator)))\\s* +(? +(?: +(?:ref\\s+(?:readonly\\s+)?)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)\\s* +(?=\\()`,beginCaptures:{1:{patterns:[{captures:{1:{name:"storage.modifier.explicit.cs"}},match:"\\b(explicit)\\b"},{captures:{1:{name:"storage.modifier.implicit.cs"}},match:"\\b(implicit)\\b"}]},2:{name:"storage.type.operator.cs"},3:{patterns:[{include:"#type"}]}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#expression-body"},{include:"#block"}]},"declaration-expression-local":{captures:{1:{name:"storage.type.var.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.variable.local.cs"}},match:`(?x) +(?: +\\b(var)\\b| +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +) +)\\s+ +(\\g)\\b\\s* +(?=[,)\\]])`},"declaration-expression-tuple":{captures:{1:{name:"storage.type.var.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.variable.tuple-element.cs"}},match:`(?x) +(?: +\\b(var)\\b| +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +) +)\\s+ +(\\g)\\b\\s* +(?=[,)])`},declarations:{patterns:[{include:"#namespace-declaration"},{include:"#type-declarations"},{include:"#punctuation-semicolon"}]},"default-argument":{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.cs"}},end:"(?=,|\\))",patterns:[{include:"#expression"}]},"default-literal-expression":{captures:{1:{name:"keyword.operator.expression.default.cs"}},match:"\\b(default)\\b"},"delegate-declaration":{begin:`(?x) +(?:\\b(delegate)\\b)\\s+ +(? +(?: +(?:ref\\s+(?:readonly\\s+)?)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)\\s+ +(\\g)\\s* +(<([^<>]+)>)?\\s* +(?=\\()`,beginCaptures:{1:{name:"storage.type.delegate.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.type.delegate.cs"},8:{patterns:[{include:"#type-parameter-list"}]}},end:"(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#generic-constraints"}]},"designation-pattern":{patterns:[{include:"#intrusive"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#punctuation-comma"},{include:"#designation-pattern"}]},{include:"#simple-designation-pattern"}]},"destructor-declaration":{begin:"(~)(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?=\\()",beginCaptures:{1:{name:"punctuation.tilde.cs"},2:{name:"entity.name.function.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#expression-body"},{include:"#block"}]},directives:{patterns:[{include:"#extern-alias-directive"},{include:"#using-directive"},{include:"#attribute-section"},{include:"#punctuation-semicolon"}]},"discard-pattern":{match:"_(?![_[:alnum:]])",name:"variable.language.discard.cs"},"do-statement":{begin:"(?)\\s* +)? +(?:(@?[_[:alpha:]][_[:alnum:]]*)\\s*)? +(?:(\\?)\\s*)? +(?=\\[)`,beginCaptures:{1:{name:"keyword.operator.null-conditional.cs"},2:{name:"punctuation.accessor.cs"},3:{name:"punctuation.accessor.pointer.cs"},4:{name:"variable.other.object.property.cs"},5:{name:"keyword.operator.null-conditional.cs"}},end:"(?<=\\])(?!\\s*\\[)",patterns:[{include:"#bracketed-argument-list"}]},"else-part":{begin:"(?|//|/\\*|$)",beginCaptures:{1:{name:"storage.type.accessor.$1.cs"}},end:"(?<=\\}|;)|(?=\\})",patterns:[{include:"#accessor-setter"}]}]},"event-declaration":{begin:`(?x) +\\b(event)\\b\\s* +(? +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)\\s+ +) +(?\\g\\s*\\.\\s*)? +(\\g)\\s* +(?=\\{|;|,|=|//|/\\*|$)`,beginCaptures:{1:{name:"storage.type.event.cs"},2:{patterns:[{include:"#type"}]},8:{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},9:{name:"entity.name.variable.event.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#event-accessors"},{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.variable.event.cs"},{include:"#punctuation-comma"},{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.cs"}},end:"(?<=,)|(?=;)",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]}]},"explicit-anonymous-function-parameter":{captures:{1:{name:"storage.modifier.$1.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.variable.parameter.cs"}},match:`(?x) +(?:\\b(ref|params|out|in)\\b\\s*)? +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?<(?:[^<>]|\\g)*>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^()]|\\g)*\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)\\s* +\\b(\\g)\\b`},expression:{patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#expression-operator-expression"},{include:"#type-operator-expression"},{include:"#default-literal-expression"},{include:"#throw-expression"},{include:"#raw-interpolated-string"},{include:"#interpolated-string"},{include:"#verbatim-interpolated-string"},{include:"#type-builtin"},{include:"#language-variable"},{include:"#switch-statement-or-expression"},{include:"#with-expression"},{include:"#conditional-operator"},{include:"#assignment-expression"},{include:"#expression-operators"},{include:"#await-expression"},{include:"#query-expression"},{include:"#as-expression"},{include:"#is-expression"},{include:"#anonymous-method-expression"},{include:"#object-creation-expression"},{include:"#array-creation-expression"},{include:"#anonymous-object-creation-expression"},{include:"#invocation-expression"},{include:"#member-access-expression"},{include:"#element-access-expression"},{include:"#cast-expression"},{include:"#literal"},{include:"#parenthesized-expression"},{include:"#tuple-deconstruction-assignment"},{include:"#initializer-expression"},{include:"#identifier"}]},"expression-body":{begin:"=>",beginCaptures:{0:{name:"keyword.operator.arrow.cs"}},end:"(?=[,\\);}])",patterns:[{include:"#ref-modifier"},{include:"#expression"}]},"expression-operator-expression":{begin:"\\b(checked|unchecked|nameof)\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.expression.$1.cs"},2:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#expression"}]},"expression-operators":{patterns:[{match:"<<|>>>?",name:"keyword.operator.bitwise.shift.cs"},{match:"==|!=",name:"keyword.operator.comparison.cs"},{match:"<=|>=|<|>",name:"keyword.operator.relational.cs"},{match:"\\!|&&|\\|\\|",name:"keyword.operator.logical.cs"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.cs"},{match:"--",name:"keyword.operator.decrement.cs"},{match:"\\+\\+",name:"keyword.operator.increment.cs"},{match:"\\+|-(?!>)|\\*|/|%",name:"keyword.operator.arithmetic.cs"},{match:"\\?\\?",name:"keyword.operator.null-coalescing.cs"},{match:"\\.\\.",name:"keyword.operator.range.cs"}]},"extern-alias-directive":{begin:"\\b(extern)\\s+(alias)\\b",beginCaptures:{1:{name:"keyword.other.directive.extern.cs"},2:{name:"keyword.other.directive.alias.cs"}},end:"(?=;)",patterns:[{match:"\\@?[_[:alpha:]][_[:alnum:]]*",name:"variable.other.alias.cs"}]},"field-declaration":{begin:`(?x) +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)\\s+ +(\\g)\\s* +(?!=>|==)(?=,|;|=|$)`,beginCaptures:{1:{patterns:[{include:"#type"}]},6:{name:"entity.name.variable.field.cs"}},end:"(?=;)",patterns:[{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.variable.field.cs"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"},{include:"#class-or-struct-members"}]},"finally-clause":{begin:"(? +(?: +(?:ref\\s+)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +) +)\\s+ +(\\g)\\s+ +\\b(in)\\b`},{captures:{1:{name:"storage.type.var.cs"},2:{patterns:[{include:"#tuple-declaration-deconstruction-element-list"}]},3:{name:"keyword.control.loop.in.cs"}},match:`(?x) +(?:\\b(var)\\b\\s*)? +(?\\((?:[^\\(\\)]|\\g)+\\))\\s+ +\\b(in)\\b`},{include:"#expression"}]}]},"generic-constraints":{begin:"(where)\\s+(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)",beginCaptures:{1:{name:"storage.modifier.where.cs"},2:{name:"entity.name.type.type-parameter.cs"},3:{name:"punctuation.separator.colon.cs"}},end:"(?=\\{|where|;|=>)",patterns:[{match:"\\bclass\\b",name:"storage.type.class.cs"},{match:"\\bstruct\\b",name:"storage.type.struct.cs"},{match:"\\bdefault\\b",name:"keyword.other.constraint.default.cs"},{match:"\\bnotnull\\b",name:"keyword.other.constraint.notnull.cs"},{match:"\\bunmanaged\\b",name:"keyword.other.constraint.unmanaged.cs"},{captures:{1:{name:"keyword.operator.expression.new.cs"},2:{name:"punctuation.parenthesis.open.cs"},3:{name:"punctuation.parenthesis.close.cs"}},match:"(new)\\s*(\\()\\s*(\\))"},{include:"#type"},{include:"#punctuation-comma"},{include:"#generic-constraints"}]},"goto-statement":{begin:"(? +(? +(?: +(?:ref\\s+(?:readonly\\s+)?)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)\\s+ +) +(?\\g\\s*\\.\\s*)? +(?this)\\s* +(?=\\[)`,beginCaptures:{1:{patterns:[{include:"#type"}]},7:{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},8:{name:"variable.language.this.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#bracketed-parameter-list"},{include:"#property-accessors"},{include:"#accessor-getter-expression"},{include:"#variable-initializer"}]},"initializer-expression":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"interface-declaration":{begin:"(?=\\binterface\\b)",end:"(?<=\\})",patterns:[{begin:`(?x) +(interface)\\b\\s+ +(@?[_[:alpha:]][_[:alnum:]]*)`,beginCaptures:{1:{name:"storage.type.interface.cs"},2:{name:"entity.name.type.interface.cs"}},end:"(?=\\{)",patterns:[{include:"#comment"},{include:"#type-parameter-list"},{include:"#base-types"},{include:"#generic-constraints"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#interface-members"}]},{include:"#preprocessor"},{include:"#comment"}]},"interface-members":{patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#storage-modifier"},{include:"#property-declaration"},{include:"#event-declaration"},{include:"#indexer-declaration"},{include:"#method-declaration"},{include:"#operator-declaration"},{include:"#attribute-section"},{include:"#punctuation-semicolon"}]},"interpolated-string":{begin:'\\$"',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.cs"},2:{name:"invalid.illegal.newline.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#string-character-escape"},{include:"#interpolation"}]},interpolation:{begin:"(?<=[^\\{]|^)((?:\\{\\{)*)(\\{)(?=[^\\{])",beginCaptures:{1:{name:"string.quoted.double.cs"},2:{name:"punctuation.definition.interpolation.begin.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.interpolation.end.cs"}},name:"meta.interpolation.cs",patterns:[{include:"#expression"}]},intrusive:{patterns:[{include:"#preprocessor"},{include:"#comment"}]},"invocation-expression":{begin:`(?x) +(?: +(?:(\\?)\\s*)? +(\\.)\\s*| +(->)\\s* +)? +(@?[_[:alpha:]][_[:alnum:]]*)\\s* +( +< +(? +[^<>()]++| +<\\g*+>| +\\(\\g*+\\) +)*+ +>\\s* +)? +(?=\\()`,beginCaptures:{1:{name:"keyword.operator.null-conditional.cs"},2:{name:"punctuation.accessor.cs"},3:{name:"punctuation.accessor.pointer.cs"},4:{name:"entity.name.function.cs"},5:{patterns:[{include:"#type-arguments"}]}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"is-expression":{begin:"(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)? +\\s+(\\g)\\b\\s* +\\b(in)\\b\\s*`,beginCaptures:{1:{name:"keyword.operator.expression.query.join.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.variable.range-variable.cs"},8:{name:"keyword.operator.expression.query.in.cs"}},end:"(?=;|\\))",patterns:[{include:"#join-on"},{include:"#join-equals"},{include:"#join-into"},{include:"#query-body"},{include:"#expression"}]},"join-equals":{captures:{1:{name:"keyword.operator.expression.query.equals.cs"}},match:"\\b(equals)\\b\\s*"},"join-into":{captures:{1:{name:"keyword.operator.expression.query.into.cs"},2:{name:"entity.name.variable.range-variable.cs"}},match:`(?x) +\\b(into)\\b\\s* +(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*`},"join-on":{captures:{1:{name:"keyword.operator.expression.query.on.cs"}},match:"\\b(on)\\b\\s*"},"labeled-statement":{captures:{1:{name:"entity.name.label.cs"},2:{name:"punctuation.separator.colon.cs"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)"},"language-variable":{patterns:[{match:"\\b(base|this)\\b",name:"variable.language.$1.cs"},{match:"\\b(value)\\b",name:"variable.other.$1.cs"}]},"let-clause":{begin:`(?x) +\\b(let)\\b\\s* +(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s* +(=)\\s*`,beginCaptures:{1:{name:"keyword.operator.expression.query.let.cs"},2:{name:"entity.name.variable.range-variable.cs"},3:{name:"keyword.operator.assignment.cs"}},end:"(?=;|\\))",patterns:[{include:"#query-body"},{include:"#expression"}]},"list-pattern":{begin:"(?=\\[)",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{begin:"\\[",beginCaptures:{0:{name:"punctuation.squarebracket.open.cs"}},end:"\\]",endCaptures:{0:{name:"punctuation.squarebracket.close.cs"}},patterns:[{include:"#pattern"},{include:"#punctuation-comma"}]},{begin:"(?<=\\])",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#intrusive"},{include:"#simple-designation-pattern"}]}]},literal:{patterns:[{include:"#boolean-literal"},{include:"#null-literal"},{include:"#numeric-literal"},{include:"#char-literal"},{include:"#raw-string-literal"},{include:"#string-literal"},{include:"#verbatim-string-literal"},{include:"#tuple-literal"}]},"local-constant-declaration":{begin:`(?x) +(?\\b(?:const)\\b)\\s* +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)\\s+ +(\\g)\\s* +(?=,|;|=)`,beginCaptures:{1:{name:"storage.modifier.const.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.variable.local.cs"}},end:"(?=;)",patterns:[{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.variable.local.cs"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"local-declaration":{patterns:[{include:"#local-constant-declaration"},{include:"#local-variable-declaration"},{include:"#local-function-declaration"},{include:"#local-tuple-var-deconstruction"}]},"local-function-declaration":{begin:`(?x) +\\b((?:(?:async|unsafe|static|extern)\\s+)*) +(? +(?:ref\\s+(?:readonly\\s+)?)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?)? +(?:\\s* +\\[ +\\s*(?:,\\s*)* +\\] +(?:\\s*\\?)? +)* +)\\s+ +(\\g)\\s* +(<[^<>]+>)?\\s* +(?=\\()`,beginCaptures:{1:{patterns:[{include:"#storage-modifier"}]},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.function.cs"},8:{patterns:[{include:"#type-parameter-list"}]}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#generic-constraints"},{include:"#expression-body"},{include:"#block"}]},"local-tuple-var-deconstruction":{begin:`(?x) +(?:\\b(var)\\b\\s*) +(?\\((?:[^\\(\\)]|\\g)+\\))\\s* +(?=;|=|\\))`,beginCaptures:{1:{name:"storage.type.var.cs"},2:{patterns:[{include:"#tuple-declaration-deconstruction-element-list"}]}},end:"(?=;|\\))",patterns:[{include:"#comment"},{include:"#variable-initializer"}]},"local-variable-declaration":{begin:`(?x) +(?: +(?:(\\bref)\\s+(?:(\\breadonly)\\s+)?)?(\\bvar\\b)| +(? +(?: +(?:ref\\s+(?:readonly\\s+)?)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*[?*]\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +) +)\\s+ +(\\g)\\s* +(?!=>) +(?=,|;|=|\\))`,beginCaptures:{1:{name:"storage.modifier.ref.cs"},2:{name:"storage.modifier.readonly.cs"},3:{name:"storage.type.var.cs"},4:{patterns:[{include:"#type"}]},9:{name:"entity.name.variable.local.cs"}},end:"(?=[;)}])",patterns:[{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.variable.local.cs"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"lock-statement":{begin:"\\b(lock)\\b",beginCaptures:{1:{name:"keyword.control.context.lock.cs"}},end:"(?<=\\))|(?=;|})",patterns:[{include:"#intrusive"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#intrusive"},{include:"#expression"}]}]},"member-access-expression":{patterns:[{captures:{1:{name:"keyword.operator.null-conditional.cs"},2:{name:"punctuation.accessor.cs"},3:{name:"punctuation.accessor.pointer.cs"},4:{name:"variable.other.object.property.cs"}},match:`(?x) +(?: +(?:(\\?)\\s*)? +(\\.)\\s*| +(->)\\s* +) +(@?[_[:alpha:]][_[:alnum:]]*)\\s* +(?![_[:alnum:]]|\\(|(\\?)?\\[|<)`},{captures:{1:{name:"punctuation.accessor.cs"},2:{name:"variable.other.object.cs"},3:{patterns:[{include:"#type-arguments"}]}},match:`(?x) +(\\.)?\\s* +(@?[_[:alpha:]][_[:alnum:]]*) +(?\\s*<([^<>]|\\g)+>\\s*) +(?= +(\\s*\\?)? +\\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]* +)`},{captures:{1:{name:"variable.other.object.cs"}},match:`(?x) +(@?[_[:alpha:]][_[:alnum:]]*) +(?= +\\s*(?:(?:\\?\\s*)?\\.|->) +\\s*@?[_[:alpha:]][_[:alnum:]]* +)`}]},"method-declaration":{begin:`(?x) +(? +(? +(?: +(?:ref\\s+(?:readonly\\s+)?)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)\\s+ +) +(?\\g\\s*\\.\\s*)? +(\\g)\\s* +(<([^<>]+)>)?\\s* +(?=\\()`,beginCaptures:{1:{patterns:[{include:"#type"}]},7:{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},8:{name:"entity.name.function.cs"},9:{patterns:[{include:"#type-parameter-list"}]}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#generic-constraints"},{include:"#expression-body"},{include:"#block"}]},"named-argument":{begin:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)",beginCaptures:{1:{name:"entity.name.variable.parameter.cs"},2:{name:"punctuation.separator.colon.cs"}},end:"(?=(,|\\)|\\]))",patterns:[{include:"#argument"}]},"namespace-declaration":{begin:"\\b(namespace)\\s+",beginCaptures:{1:{name:"storage.type.namespace.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.type.namespace.cs"},{include:"#punctuation-accessor"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#declarations"},{include:"#using-directive"},{include:"#punctuation-semicolon"}]}]},"null-literal":{match:"(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)\\s* +(?=\\{|//|/\\*|$)`},"object-creation-expression-with-parameters":{begin:`(?x) +(new)(?:\\s+ +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +))?\\s* +(?=\\()`,beginCaptures:{1:{name:"keyword.operator.expression.new.cs"},2:{patterns:[{include:"#type"}]}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"operator-assignment":{match:"(? +(?: +(?:ref\\s+(?:readonly\\s+)?)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)\\s* +\\b(?operator)\\b\\s* +(?[+\\-*/%&|\\^!=~<>]+|true|false)\\s* +(?=\\()`,beginCaptures:{1:{patterns:[{include:"#type"}]},6:{name:"storage.type.operator.cs"},7:{name:"entity.name.function.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#expression-body"},{include:"#block"}]},"orderby-clause":{begin:"\\b(orderby)\\b\\s*",beginCaptures:{1:{name:"keyword.operator.expression.query.orderby.cs"}},end:"(?=;|\\))",patterns:[{include:"#ordering-direction"},{include:"#query-body"},{include:"#expression"},{include:"#punctuation-comma"}]},"ordering-direction":{captures:{1:{name:"keyword.operator.expression.query.$1.cs"}},match:"\\b(ascending|descending)\\b"},parameter:{captures:{1:{name:"storage.modifier.$1.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.variable.parameter.cs"}},match:`(?x) +(?:(?:\\b(ref|params|out|in|this)\\b)\\s+)? +(? +(?: +(?:ref\\s+)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^()]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)\\s+ +(\\g)`},"parenthesized-expression":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#expression"}]},"parenthesized-parameter-list":{begin:"(\\()",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"(\\))",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#comment"},{include:"#attribute-section"},{include:"#parameter"},{include:"#punctuation-comma"},{include:"#variable-initializer"}]},pattern:{patterns:[{include:"#intrusive"},{include:"#combinator-pattern"},{include:"#discard-pattern"},{include:"#constant-pattern"},{include:"#relational-pattern"},{include:"#var-pattern"},{include:"#type-pattern"},{include:"#positional-pattern"},{include:"#property-pattern"},{include:"#list-pattern"},{include:"#slice-pattern"}]},"positional-pattern":{begin:"(?=\\()",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#subpattern"},{include:"#punctuation-comma"}]},{begin:"(?<=\\))",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#intrusive"},{include:"#property-pattern"},{include:"#simple-designation-pattern"}]}]},preprocessor:{begin:"^\\s*(\\#)\\s*",beginCaptures:{1:{name:"punctuation.separator.hash.cs"}},end:"(?<=$)",name:"meta.preprocessor.cs",patterns:[{include:"#comment"},{include:"#preprocessor-define-or-undef"},{include:"#preprocessor-if-or-elif"},{include:"#preprocessor-else-or-endif"},{include:"#preprocessor-warning-or-error"},{include:"#preprocessor-region"},{include:"#preprocessor-endregion"},{include:"#preprocessor-load"},{include:"#preprocessor-r"},{include:"#preprocessor-line"},{include:"#preprocessor-pragma-warning"},{include:"#preprocessor-pragma-checksum"}]},"preprocessor-define-or-undef":{captures:{1:{name:"keyword.preprocessor.define.cs"},2:{name:"keyword.preprocessor.undef.cs"},3:{name:"entity.name.variable.preprocessor.symbol.cs"}},match:"\\b(?:(define)|(undef))\\b\\s*\\b([_[:alpha:]][_[:alnum:]]*)\\b"},"preprocessor-else-or-endif":{captures:{1:{name:"keyword.preprocessor.else.cs"},2:{name:"keyword.preprocessor.endif.cs"}},match:"\\b(?:(else)|(endif))\\b"},"preprocessor-endregion":{captures:{1:{name:"keyword.preprocessor.endregion.cs"}},match:"\\b(endregion)\\b"},"preprocessor-expression":{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#preprocessor-expression"}]},{captures:{1:{name:"constant.language.boolean.true.cs"},2:{name:"constant.language.boolean.false.cs"},3:{name:"entity.name.variable.preprocessor.symbol.cs"}},match:"\\b(?:(true)|(false)|([_[:alpha:]][_[:alnum:]]*))\\b"},{captures:{1:{name:"keyword.operator.comparison.cs"},2:{name:"keyword.operator.logical.cs"}},match:"(==|!=)|(\\!|&&|\\|\\|)"}]},"preprocessor-if-or-elif":{begin:"\\b(?:(if)|(elif))\\b",beginCaptures:{1:{name:"keyword.preprocessor.if.cs"},2:{name:"keyword.preprocessor.elif.cs"}},end:"(?=$)",patterns:[{include:"#comment"},{include:"#preprocessor-expression"}]},"preprocessor-line":{begin:"\\b(line)\\b",beginCaptures:{1:{name:"keyword.preprocessor.line.cs"}},end:"(?=$)",patterns:[{captures:{1:{name:"keyword.preprocessor.default.cs"},2:{name:"keyword.preprocessor.hidden.cs"}},match:"\\b(?:(default|hidden))"},{captures:{0:{name:"constant.numeric.decimal.cs"}},match:"[0-9]+"},{captures:{0:{name:"string.quoted.double.cs"}},match:'\\"[^"]*\\"'}]},"preprocessor-load":{begin:"\\b(load)\\b",beginCaptures:{1:{name:"keyword.preprocessor.load.cs"}},end:"(?=$)",patterns:[{captures:{0:{name:"string.quoted.double.cs"}},match:'\\"[^"]*\\"'}]},"preprocessor-pragma-checksum":{captures:{1:{name:"keyword.preprocessor.pragma.cs"},2:{name:"keyword.preprocessor.checksum.cs"},3:{name:"string.quoted.double.cs"},4:{name:"string.quoted.double.cs"},5:{name:"string.quoted.double.cs"}},match:'\\b(pragma)\\b\\s*\\b(checksum)\\b\\s*(\\"[^"]*\\")\\s*(\\"[^"]*\\")\\s*(\\"[^"]*\\")'},"preprocessor-pragma-warning":{captures:{1:{name:"keyword.preprocessor.pragma.cs"},2:{name:"keyword.preprocessor.warning.cs"},3:{name:"keyword.preprocessor.disable.cs"},4:{name:"keyword.preprocessor.restore.cs"},5:{patterns:[{captures:{0:{name:"constant.numeric.decimal.cs"}},match:"[0-9]+"},{include:"#punctuation-comma"}]}},match:"\\b(pragma)\\b\\s*\\b(warning)\\b\\s*\\b(?:(disable)|(restore))\\b(\\s*[0-9]+(?:\\s*,\\s*[0-9]+)?)?"},"preprocessor-r":{begin:"\\b(r)\\b",beginCaptures:{1:{name:"keyword.preprocessor.r.cs"}},end:"(?=$)",patterns:[{captures:{0:{name:"string.quoted.double.cs"}},match:'\\"[^"]*\\"'}]},"preprocessor-region":{captures:{1:{name:"keyword.preprocessor.region.cs"},2:{name:"string.unquoted.preprocessor.message.cs"}},match:"\\b(region)\\b\\s*(.*)(?=$)"},"preprocessor-warning-or-error":{captures:{1:{name:"keyword.preprocessor.warning.cs"},2:{name:"keyword.preprocessor.error.cs"},3:{name:"string.unquoted.preprocessor.message.cs"}},match:"\\b(?:(warning)|(error))\\b\\s*(.*)(?=$)"},"property-accessors":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#comment"},{include:"#attribute-section"},{match:"\\b(private|protected|internal)\\b",name:"storage.modifier.$1.cs"},{begin:"\\b(get)\\b\\s*(?=\\{|;|=>|//|/\\*|$)",beginCaptures:{1:{name:"storage.type.accessor.$1.cs"}},end:"(?<=\\}|;)|(?=\\})",patterns:[{include:"#accessor-getter"}]},{begin:"\\b(set|init)\\b\\s*(?=\\{|;|=>|//|/\\*|$)",beginCaptures:{1:{name:"storage.type.accessor.$1.cs"}},end:"(?<=\\}|;)|(?=\\})",patterns:[{include:"#accessor-setter"}]}]},"property-declaration":{begin:`(?x) + +# The negative lookahead below ensures that we don't match nested types +# or other declarations as properties. +(?![[:word:][:space:]]*\\b(?:class|interface|struct|enum|event)\\b) + +(? +(? +(?: +(?:ref\\s+(?:readonly\\s+)?)? +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)\\s+ +) +(?\\g\\s*\\.\\s*)? +(?\\g)\\s* +(?=\\{|=>|//|/\\*|$)`,beginCaptures:{1:{patterns:[{include:"#type"}]},7:{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},8:{name:"entity.name.variable.property.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#property-accessors"},{include:"#accessor-getter-expression"},{include:"#variable-initializer"},{include:"#class-or-struct-members"}]},"property-pattern":{begin:"(?={)",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#subpattern"},{include:"#punctuation-comma"}]},{begin:"(?<=\\})",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#intrusive"},{include:"#simple-designation-pattern"}]}]},"punctuation-accessor":{match:"\\.",name:"punctuation.accessor.cs"},"punctuation-comma":{match:",",name:"punctuation.separator.comma.cs"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.cs"},"query-body":{patterns:[{include:"#let-clause"},{include:"#where-clause"},{include:"#join-clause"},{include:"#orderby-clause"},{include:"#select-clause"},{include:"#group-clause"}]},"query-expression":{begin:`(?x) +\\b(from)\\b\\s* +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +)? +\\s+(\\g)\\b\\s* +\\b(in)\\b\\s*`,beginCaptures:{1:{name:"keyword.operator.expression.query.from.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.variable.range-variable.cs"},8:{name:"keyword.operator.expression.query.in.cs"}},end:"(?=;|\\))",patterns:[{include:"#query-body"},{include:"#expression"}]},"raw-interpolated-string":{patterns:[{include:"#raw-interpolated-string-five-or-more-quote-one-or-more-interpolation"},{include:"#raw-interpolated-string-three-or-more-quote-three-or-more-interpolation"},{include:"#raw-interpolated-string-quadruple-quote-double-interpolation"},{include:"#raw-interpolated-string-quadruple-quote-single-interpolation"},{include:"#raw-interpolated-string-triple-quote-double-interpolation"},{include:"#raw-interpolated-string-triple-quote-single-interpolation"}]},"raw-interpolated-string-five-or-more-quote-one-or-more-interpolation":{begin:'\\$+"""""+',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"""""+',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs"},"raw-interpolated-string-quadruple-quote-double-interpolation":{begin:'\\$\\$""""',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'""""',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#double-raw-interpolation"}]},"raw-interpolated-string-quadruple-quote-single-interpolation":{begin:'\\$""""',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'""""',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#raw-interpolation"}]},"raw-interpolated-string-three-or-more-quote-three-or-more-interpolation":{begin:'\\$\\$\\$+"""+',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"""+',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs"},"raw-interpolated-string-triple-quote-double-interpolation":{begin:'\\$\\$"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#double-raw-interpolation"}]},"raw-interpolated-string-triple-quote-single-interpolation":{begin:'\\$"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#raw-interpolation"}]},"raw-interpolation":{begin:"(?<=[^\\{]|^)((?:\\{)*)(\\{)(?=[^\\{])",beginCaptures:{1:{name:"string.quoted.double.cs"},2:{name:"punctuation.definition.interpolation.begin.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.interpolation.end.cs"}},name:"meta.interpolation.cs",patterns:[{include:"#expression"}]},"raw-string-literal":{patterns:[{include:"#raw-string-literal-more"},{include:"#raw-string-literal-quadruple"},{include:"#raw-string-literal-triple"}]},"raw-string-literal-more":{begin:'"""""+',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"""""+',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs"},"raw-string-literal-quadruple":{begin:'""""',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'""""',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs"},"raw-string-literal-triple":{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs"},"readonly-modifier":{match:"\\breadonly\\b",name:"storage.modifier.readonly.cs"},"record-declaration":{begin:"(?=\\brecord\\b)",end:"(?<=\\})|(?=;)",patterns:[{begin:`(?x) +(record)\\b\\s+ +(@?[_[:alpha:]][_[:alnum:]]*)`,beginCaptures:{1:{name:"storage.type.record.cs"},2:{name:"entity.name.type.class.cs"}},end:"(?=\\{)|(?=;)",patterns:[{include:"#comment"},{include:"#type-parameter-list"},{include:"#parenthesized-parameter-list"},{include:"#base-types"},{include:"#generic-constraints"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#class-or-struct-members"}]},{include:"#preprocessor"},{include:"#comment"}]},"ref-modifier":{match:"\\bref\\b",name:"storage.modifier.ref.cs"},"relational-pattern":{begin:"<=?|>=?",beginCaptures:{0:{name:"keyword.operator.relational.cs"}},end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#expression"}]},"return-statement":{begin:"(?",beginCaptures:{0:{name:"keyword.operator.arrow.cs"}},end:"(?=,|})",patterns:[{include:"#expression"}]},{begin:"\\b(when)\\b",beginCaptures:{1:{name:"keyword.control.conditional.when.cs"}},end:"(?==>|,|})",patterns:[{include:"#case-guard"}]},{begin:"(?!\\s)",end:"(?=\\bwhen\\b|=>|,|})",patterns:[{include:"#pattern"}]}]},"switch-label":{begin:"\\b(case|default)\\b",beginCaptures:{1:{name:"keyword.control.conditional.$1.cs"}},end:"(:)|(?=})",endCaptures:{1:{name:"punctuation.separator.colon.cs"}},patterns:[{begin:"\\b(when)\\b",beginCaptures:{1:{name:"keyword.control.conditional.when.cs"}},end:"(?=:|})",patterns:[{include:"#case-guard"}]},{begin:"(?!\\s)",end:"(?=\\bwhen\\b|:|})",patterns:[{include:"#pattern"}]}]},"switch-statement":{patterns:[{include:"#intrusive"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#expression"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#switch-label"},{include:"#statement"}]}]},"switch-statement-or-expression":{begin:"(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\\s* +(?!=>|==)(?==)`},"tuple-deconstruction-element-list":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#comment"},{include:"#tuple-deconstruction-element-list"},{include:"#declaration-expression-tuple"},{include:"#punctuation-comma"},{captures:{1:{name:"variable.other.readwrite.cs"}},match:`(?x) +(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s* +(?=[,)])`}]},"tuple-element":{captures:{1:{patterns:[{include:"#type"}]},6:{name:"entity.name.variable.tuple-element.cs"}},match:`(?x) +(? +(?: +(?: +(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(? +\\g\\s* +(?\\s*<(?:[^<>]|\\g)+>\\s*)? +) +(?:\\s*\\.\\s*\\g)* | +(?\\s*\\((?:[^\\(\\)]|\\g)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s* +\\[ +(?:\\s*,\\s*)* +\\] +\\s* +(?:\\?)? +\\s* +)* +) +) +(?:(?\\g)\\b)?`},"tuple-literal":{begin:"(\\()(?=.*[:,])",beginCaptures:{1:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#comment"},{include:"#tuple-literal-element"},{include:"#expression"},{include:"#punctuation-comma"}]},"tuple-literal-element":{begin:`(?x) +(@?[_[:alpha:]][_[:alnum:]]*)\\s* +(?=:)`,beginCaptures:{1:{name:"entity.name.variable.tuple-element.cs"}},end:"(:)",endCaptures:{0:{name:"punctuation.separator.colon.cs"}}},"tuple-type":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#tuple-element"},{include:"#punctuation-comma"}]},type:{patterns:[{include:"#comment"},{include:"#ref-modifier"},{include:"#readonly-modifier"},{include:"#tuple-type"},{include:"#type-builtin"},{include:"#type-name"},{include:"#type-arguments"},{include:"#type-array-suffix"},{include:"#type-nullable-suffix"},{include:"#type-pointer-suffix"}]},"type-arguments":{begin:"<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.cs"}},end:">",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.cs"}},patterns:[{include:"#type"},{include:"#punctuation-comma"}]},"type-array-suffix":{begin:"\\[",beginCaptures:{0:{name:"punctuation.squarebracket.open.cs"}},end:"\\]",endCaptures:{0:{name:"punctuation.squarebracket.close.cs"}},patterns:[{include:"#intrusive"},{include:"#punctuation-comma"}]},"type-builtin":{captures:{1:{name:"keyword.type.$1.cs"}},match:"\\b(bool|s?byte|u?short|n?u?int|u?long|float|double|decimal|char|string|object|void|dynamic)\\b"},"type-declarations":{patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#storage-modifier"},{include:"#class-declaration"},{include:"#delegate-declaration"},{include:"#enum-declaration"},{include:"#interface-declaration"},{include:"#struct-declaration"},{include:"#record-declaration"},{include:"#attribute-section"},{include:"#punctuation-semicolon"}]},"type-name":{patterns:[{captures:{1:{name:"entity.name.type.alias.cs"},2:{name:"punctuation.separator.coloncolon.cs"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\:\\:)"},{captures:{1:{name:"entity.name.type.cs"},2:{name:"punctuation.accessor.cs"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)"},{captures:{1:{name:"punctuation.accessor.cs"},2:{name:"entity.name.type.cs"}},match:"(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)"},{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.type.cs"}]},"type-nullable-suffix":{match:"\\?",name:"punctuation.separator.question-mark.cs"},"type-operator-expression":{begin:"\\b(default|sizeof|typeof)\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.expression.$1.cs"},2:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#type"}]},"type-parameter-list":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.cs"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.cs"}},patterns:[{match:"\\b(in|out)\\b",name:"storage.modifier.$1.cs"},{match:"(@?[_[:alpha:]][_[:alnum:]]*)\\b",name:"entity.name.type.type-parameter.cs"},{include:"#comment"},{include:"#punctuation-comma"},{include:"#attribute-section"}]},"type-pattern":{begin:"(?=@?[_[:alpha:]][_[:alnum:]]*)",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{begin:"\\G",end:"(?!\\G[@_[:alpha:]])(?=[\\({@_[:alpha:])}\\],;:=&|^]|(?:\\s|^)\\?|!=|\\b(and|or|when)\\b)",patterns:[{include:"#intrusive"},{include:"#type-subpattern"}]},{begin:"(?=[\\({@_[:alpha:]])",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#intrusive"},{include:"#positional-pattern"},{include:"#property-pattern"},{include:"#simple-designation-pattern"}]}]},"type-pointer-suffix":{match:"\\*",name:"punctuation.separator.asterisk.cs"},"type-subpattern":{patterns:[{include:"#type-builtin"},{begin:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(::)",beginCaptures:{1:{name:"entity.name.type.alias.cs"},2:{name:"punctuation.separator.coloncolon.cs"}},end:"(?<=[_[:alnum:]])|(?=[.<\\[\\({)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#intrusive"},{match:"\\@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.type.cs"}]},{match:"\\@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.type.cs"},{begin:"\\.",beginCaptures:{0:{name:"punctuation.accessor.cs"}},end:"(?<=[_[:alnum:]])|(?=[<\\[\\({)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#intrusive"},{match:"\\@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.type.cs"}]},{include:"#type-arguments"},{include:"#type-array-suffix"},{match:"(?)",beginCaptures:{1:{name:"keyword.operator.assignment.cs"}},end:"(?=[,\\)\\];}])",patterns:[{include:"#ref-modifier"},{include:"#expression"}]},"verbatim-interpolated-string":{begin:'(?:\\$@|@\\$)"',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"(?=[^"])',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#verbatim-string-character-escape"},{include:"#interpolation"}]},"verbatim-string-character-escape":{match:'""',name:"constant.character.escape.cs"},"verbatim-string-literal":{begin:'@"',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"(?=[^"])',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#verbatim-string-character-escape"}]},"when-clause":{begin:"(?",endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.unquoted.cdata.cs"},"xml-character-entity":{patterns:[{captures:{1:{name:"punctuation.definition.constant.cs"},3:{name:"punctuation.definition.constant.cs"}},match:`(?x) +(&) +( +(?:[[:alpha:]:_][[:alnum:]:_.-]*)| +(?:\\#[[:digit:]]+)| +(?:\\#x[[:xdigit:]]+) +) +(;)`,name:"constant.character.entity.cs"},{match:"&",name:"invalid.illegal.bad-ampersand.cs"}]},"xml-comment":{begin:"",endCaptures:{0:{name:"punctuation.definition.comment.cs"}},name:"comment.block.cs"},"xml-doc-comment":{patterns:[{include:"#xml-comment"},{include:"#xml-character-entity"},{include:"#xml-cdata"},{include:"#xml-tag"}]},"xml-string":{patterns:[{begin:"\\'",beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:"\\'",endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.single.cs",patterns:[{include:"#xml-character-entity"}]},{begin:'\\"',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'\\"',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#xml-character-entity"}]}]},"xml-tag":{begin:`(?x) +()",endCaptures:{1:{name:"punctuation.definition.tag.cs"}},name:"meta.tag.cs",patterns:[{include:"#xml-attribute"}]},"yield-break-statement":{captures:{1:{name:"keyword.control.flow.yield.cs"},2:{name:"keyword.control.flow.break.cs"}},match:"(?>>",name:"invalid.deprecated.combinator.css"},{match:">>|>|\\+|~",name:"keyword.operator.combinator.css"}]},commas:{match:",",name:"punctuation.separator.list.comma.css"},"comment-block":{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.css"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.css"}},name:"comment.block.css"},escapes:{patterns:[{match:"\\\\[0-9a-fA-F]{1,6}",name:"constant.character.escape.codepoint.css"},{begin:"\\\\$\\s*",end:"^(?<:=]|\\)|/\\*)`},"media-query":{begin:"\\G",end:"(?=\\s*[{;])",patterns:[{include:"#comment-block"},{include:"#escapes"},{include:"#media-types"},{match:"(?i)(?<=\\s|^|,|\\*/)(only|not)(?=\\s|{|/\\*|$)",name:"keyword.operator.logical.$1.media.css"},{match:"(?i)(?<=\\s|^|\\*/|\\))and(?=\\s|/\\*|$)",name:"keyword.operator.logical.and.media.css"},{match:",(?:(?:\\s*,)+|(?=\\s*[;){]))",name:"invalid.illegal.comma.css"},{include:"#commas"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.bracket.round.css"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.css"}},patterns:[{include:"#media-features"},{include:"#media-feature-keywords"},{match:":",name:"punctuation.separator.key-value.css"},{match:">=|<=|=|<|>",name:"keyword.operator.comparison.css"},{captures:{1:{name:"constant.numeric.css"},2:{name:"keyword.operator.arithmetic.css"},3:{name:"constant.numeric.css"}},match:"(\\d+)\\s*(/)\\s*(\\d+)",name:"meta.ratio.css"},{include:"#numeric-values"},{include:"#comment-block"}]}]},"media-query-list":{begin:"(?=\\s*[^{;])",end:"(?=\\s*[{;])",patterns:[{include:"#media-query"}]},"media-types":{captures:{1:{name:"support.constant.media.css"},2:{name:"invalid.deprecated.constant.media.css"}},match:`(?xi) +(?<=^|\\s|,|\\*/) +(?: + +(all|print|screen|speech) +| + +(aural|braille|embossed|handheld|projection|tty|tv) +) +(?=$|[{,\\s;]|/\\*)`},"numeric-values":{patterns:[{captures:{1:{name:"punctuation.definition.constant.css"}},match:"(#)(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b",name:"constant.other.color.rgb-value.hex.css"},{captures:{1:{name:"keyword.other.unit.percentage.css"},2:{name:"keyword.other.unit.${2:/downcase}.css"}},match:`(?xi) (?+~|] +| /\\* +) +| + +(?: +[-a-zA-Z_0-9]|[^\\x00-\\x7F] +| \\\\(?:[0-9a-fA-F]{1,6}|.) +)* +(?: +[!"'%&(*;+~|] +| /\\* +)`,name:"entity.other.attribute-name.class.css"},{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#escapes"}]}},match:`(?x) +(\\#) +( +-? +(?![0-9]) +(?:[-a-zA-Z0-9_]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+ +) +(?=$|[\\s,.\\#)\\[:{>+~|]|/\\*)`,name:"entity.other.attribute-name.id.css"},{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.entity.begin.bracket.square.css"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.entity.end.bracket.square.css"}},name:"meta.attribute-selector.css",patterns:[{include:"#comment-block"},{include:"#string"},{captures:{1:{name:"storage.modifier.ignore-case.css"}},match:`(?<=["'\\s]|^|\\*/)\\s*([iI])\\s*(?=[\\s\\]]|/\\*|$)`},{captures:{1:{name:"string.unquoted.attribute-value.css",patterns:[{include:"#escapes"}]}},match:`(?x)(?<==)\\s*((?!/\\*)(?:[^\\\\"'\\s\\]]|\\\\.)+)`},{include:"#escapes"},{match:"[~|^$*]?=",name:"keyword.operator.pattern.css"},{match:"\\|",name:"punctuation.separator.css"},{captures:{1:{name:"entity.other.namespace-prefix.css",patterns:[{include:"#escapes"}]}},match:`(?x) +# Qualified namespace prefix +( -?(?!\\d)(?:[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+ +| \\* +) +# Lookahead to ensure there's a valid identifier ahead +(?= +\\| (?!\\s|=|$|\\]) +(?: -?(?!\\d) +| [\\\\\\w-] +| [^\\x00-\\x7F] +) +)`},{captures:{1:{name:"entity.other.attribute-name.css",patterns:[{include:"#escapes"}]}},match:`(?x) +(-?(?!\\d)(?>[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+) +\\s* +(?=[~|^\\]$*=]|/\\*)`}]},{include:"#pseudo-classes"},{include:"#pseudo-elements"},{include:"#functional-pseudo-classes"},{match:`(?x) (?\\s,.\\#|){:\\[]|/\\*|$)`,name:"entity.name.tag.css"},"unicode-range":{captures:{0:{name:"constant.other.unicode-range.css"},1:{name:"punctuation.separator.dash.unicode-range.css"}},match:"(?<])=(?![=~])",name:"punctuation.bind"},{match:"<-",name:"punctuation.arrow"},{include:"#expression"}]},expression:{patterns:[{patterns:[{captures:{1:{name:"keyword.control.for"},2:{name:"variable.other"},3:{name:"punctuation.separator"},4:{name:"variable.other"},5:{name:"keyword.control.in"}},match:"(?=|[<](?![-=])|[>](?![=])",name:"keyword.operator.comparison"},{match:"&{2}|\\|{2}|!(?![=~])",name:"keyword.operator.logical"},{match:"&(?!&)|\\|(?!\\|)",name:"keyword.operator.set"}]},{captures:{1:{name:"punctuation.accessor"},2:{name:"variable.other.member"}},match:"(?|<>|<|>|=~|=)",name:"keyword.operator.compare.cypher"},{match:"(?i)\\b(OR|AND|XOR|IS)\\b",name:"keyword.operator.logical.cypher"},{match:"(?i)\\b(IN)\\b",name:"keyword.operator.in.cypher"}]},"path-patterns":{patterns:[{match:"(<--|-->|--)",name:"support.function.relationship-pattern.cypher"},{begin:"(<-|-)(\\[)",beginCaptures:{1:{name:"support.function.relationship-pattern-start.cypher"},2:{name:"keyword.operator.relationship-pattern-start.cypher"}},end:"(])(->|-)",endCaptures:{1:{name:"keyword.operator.relationship-pattern-end.cypher"},2:{name:"support.function.relationship-pattern-end.cypher"}},name:"path-pattern.cypher",patterns:[{include:"#identifiers"},{captures:{1:{name:"keyword.operator.relationship-type-start.cypher"},2:{name:"entity.name.class.relationship.type.cypher"}},match:"(:)((?:`.+?`)|(?:[\\p{L}_][\\p{L}0-9_]*))",name:"entity.name.class.relationship-type.cypher"},{captures:{1:{name:"support.type.operator.relationship-type-or.cypher"},2:{name:"entity.name.class.relationship.type-or.cypher"}},match:"(\\|)(\\s*)((?:`.+?`)|(?:[\\p{L}_][\\p{L}0-9_]*))",name:"entity.name.class.relationship-type-ored.cypher"},{match:"(?:\\?\\*|\\?|\\*)\\s*(?:\\d+\\s*(?:\\.\\.\\s*\\d+)?)?",name:"support.function.relationship-pattern.quant.cypher"},{include:"#properties_literal"}]}]},properties_literal:{patterns:[{begin:"{",beginCaptures:{0:{name:"keyword.control.properties_literal.cypher"}},end:"}",endCaptures:{0:{name:"keyword.control.properties_literal.cypher"}},name:"source.cypher",patterns:[{match:":|,",name:"keyword.control.properties_literal.seperator.cypher"},{include:"#comments"},{include:"#constants"},{include:"#functions"},{include:"#operators"},{include:"#identifiers"},{include:"#numbers"},{include:"#strings"}]}]},string_escape:{captures:{2:{name:"string.quoted.double.cypher"}},match:`(\\\\\\\\|\\\\[tbnrf])|(\\\\'|\\\\")`,name:"constant.character.escape.cypher"},strings:{patterns:[{begin:"'",end:"'",name:"string.quoted.single.cypher",patterns:[{include:"#string_escape"}]},{begin:'"',end:'"',name:"string.quoted.double.cypher",patterns:[{include:"#string_escape"}]}]}},scopeName:"source.cypher",aliases:["cql"]});var t=[e];export{t as default}; diff --git a/assets/chunks/d.PifQWv0n.js b/assets/chunks/d.PifQWv0n.js new file mode 100644 index 000000000..4ea14cada --- /dev/null +++ b/assets/chunks/d.PifQWv0n.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"D",fileTypes:["d","di","dpp"],name:"d",patterns:[{include:"#comment"},{include:"#type"},{include:"#statement"},{include:"#expression"}],repository:{"aggregate-declaration":{patterns:[{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#struct-declaration"},{include:"#union-declaration"},{include:"#mixin-template-declaration"},{include:"#template-declaration"}]},"alias-declaration":{patterns:[{begin:"\\b(alias)\\b\\s*",beginCaptures:{1:{name:"keyword.other.alias.d"}},end:";",endCaptures:{0:{name:"meta.alias.end.d"}},patterns:[{include:"#type"},{match:"=(?![=>])",name:"keyword.operator.equal.alias.d"},{include:"#expression"}]}]},"align-attribute":{patterns:[{begin:"\\balign\\s*\\(",end:"\\)",name:"storage.modifier.align-attribute.d",patterns:[{include:"#integer-literal"}]},{match:"\\balign\\b\\s*(?!\\()",name:"storage.modifier.align-attribute.d"}]},"alternate-wysiwyg-string":{patterns:[{begin:"`",end:"`[cwd]?",name:"string.alternate-wysiwyg-string.d",patterns:[{include:"#wysiwyg-characters"}]}]},"arbitrary-delimited-string":{begin:'q"(\\w+)',end:'\\1"',name:"string.delimited.d",patterns:[{match:".",name:"string.delimited.d"}]},"arithmetic-expression":{patterns:[{match:"\\^\\^|\\+\\+|--|(?>>=|\\^\\^=|>>=|<<=|~=|\\^=|\\|=|&=|%=|/=|\\*=|-=|\\+=|=(?!>)",name:"keyword.operator.assign.d"}]},attribute:{patterns:[{include:"#linkage-attribute"},{include:"#align-attribute"},{include:"#deprecated-attribute"},{include:"#protection-attribute"},{include:"#pragma"},{match:"\\b(static|extern|abstract|final|override|synchronized|auto|scope|const|immutable|inout|shared|__gshared|nothrow|pure|ref)\\b",name:"entity.other.attribute-name.d"},{include:"#property"}]},"base-type":{patterns:[{match:"\\b(auto|bool|byte|ubyte|short|ushort|int|uint|long|ulong|char|wchar|dchar|float|double|real|ifloat|idouble|ireal|cfloat|cdouble|creal|void|noreturn)\\b",name:"storage.type.basic-type.d"},{match:"\\b(string|wstring|dstring|size_t|ptrdiff_t)\\b(?!\\s*=)",name:"storage.type.basic-type.d"}]},"binary-integer":{patterns:[{match:"\\b(0b|0B)[0-1_]+(Lu|LU|uL|UL|L|u|U)?\\b",name:"constant.numeric.integer.binary.d"}]},"bitwise-expression":{patterns:[{match:"\\||\\^|&",name:"keyword.operator.bitwise.d"}]},"block-comment":{patterns:[{begin:"/((?!\\*/)\\*)+",beginCaptures:{0:{name:"comment.block.begin.d"}},end:"\\*+/",endCaptures:{0:{name:"comment.block.end.d"}},name:"comment.block.content.d"}]},"break-statement":{patterns:[{match:"\\bbreak\\b",name:"keyword.control.break.d"}]},"case-statement":{patterns:[{begin:"\\b(case)\\b\\s*",beginCaptures:{1:{name:"keyword.control.case.range.d"}},end:":",endCaptures:{0:{name:"meta.case.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"cast-expression":{patterns:[{begin:"\\b(cast)\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.cast.d"},2:{name:"keyword.operator.cast.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.operator.cast.end.d"}},patterns:[{include:"#type"},{include:"#extended-type"}]}]},catch:{patterns:[{begin:"\\b(catch)\\b\\s*(?=\\()",captures:{1:{name:"keyword.control.catch.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},catches:{patterns:[{include:"#catch"}]},character:{patterns:[{match:"[\\w\\s]+",name:"string.character.d"}]},"character-literal":{patterns:[{begin:"'",end:"'",name:"string.character-literal.d",patterns:[{include:"#character"},{include:"#escape-sequence"}]}]},"class-declaration":{patterns:[{captures:{1:{name:"storage.type.class.d"},2:{name:"entity.name.class.d"}},match:"\\b(class)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b"},{include:"#protection-attribute"},{include:"#class-members"}]},"class-members":{patterns:[{include:"#shared-static-constructor"},{include:"#shared-static-destructor"},{include:"#constructor"},{include:"#destructor"},{include:"#postblit"},{include:"#invariant"},{include:"#member-function-attribute"}]},colon:{patterns:[{match:":",name:"support.type.colon.d"}]},comma:{patterns:[{match:",",name:"keyword.operator.comma.d"}]},comment:{patterns:[{include:"#block-comment"},{include:"#line-comment"},{include:"#nesting-block-comment"}]},condition:{patterns:[{include:"#version-condition"},{include:"#debug-condition"},{include:"#static-if-condition"}]},"conditional-declaration":{patterns:[{include:"#condition"},{match:"\\belse\\b",name:"keyword.control.else.d"},{include:"#colon"},{include:"#decl-defs"}]},"conditional-expression":{patterns:[{match:"\\s(\\?|:)\\s",name:"keyword.operator.ternary.d"}]},"conditional-statement":{patterns:[{include:"#condition"},{include:"#no-scope-non-empty-statement"},{match:"\\belse\\b",name:"keyword.control.else.d"}]},constructor:{patterns:[{match:"\\bthis\\b",name:"entity.name.function.constructor.d"}]},"continue-statement":{patterns:[{match:"\\bcontinue\\b",name:"keyword.control.continue.d"}]},"debug-condition":{patterns:[{begin:"\\bdebug\\s*\\(",beginCaptures:{0:{name:"keyword.other.debug.identifier.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.debug.identifier.end.d"}},patterns:[{include:"#integer-literal"},{include:"#identifier"}]},{match:"\\bdebug\\b\\s*(?!\\()",name:"keyword.other.debug.plain.d"}]},"debug-specification":{patterns:[{match:"\\bdebug\\b\\s*(?==)",name:"keyword.other.debug-specification.d"}]},"decimal-float":{patterns:[{match:"\\b((\\.[0-9])|(0\\.)|(([1-9]|(0[1-9_]))[0-9_]*\\.))[0-9_]*((e-|E-|e\\+|E\\+|e|E)[0-9][0-9_]*)?[LfF]?i?\\b",name:"constant.numeric.float.decimal.d"}]},"decimal-integer":{patterns:[{match:"\\b(0(?=[^\\dxXbB]))|([1-9][0-9_]*)(Lu|LU|uL|UL|L|u|U)?\\b",name:"constant.numeric.integer.decimal.d"}]},declaration:{patterns:[{include:"#alias-declaration"},{include:"#aggregate-declaration"},{include:"#enum-declaration"},{include:"#import-declaration"},{include:"#storage-class"},{include:"#void-initializer"},{include:"#mixin-declaration"}]},"declaration-statement":{patterns:[{include:"#declaration"}]},"default-statement":{patterns:[{captures:{1:{name:"keyword.control.case.default.d"},2:{name:"meta.default.colon.d"}},match:"\\b(default)\\s*(:)"}]},"delete-expression":{patterns:[{match:"\\bdelete\\s+",name:"keyword.other.delete.d"}]},"delimited-string":{begin:'q"',end:'"',name:"string.delimited.d",patterns:[{include:"#delimited-string-bracket"},{include:"#delimited-string-parens"},{include:"#delimited-string-angle-brackets"},{include:"#delimited-string-braces"}]},"delimited-string-angle-brackets":{patterns:[{begin:"<",end:">",name:"constant.character.angle-brackets.d",patterns:[{include:"#wysiwyg-characters"}]}]},"delimited-string-braces":{patterns:[{begin:"\\{",end:"\\}",name:"constant.character.delimited.braces.d",patterns:[{include:"#wysiwyg-characters"}]}]},"delimited-string-bracket":{patterns:[{begin:"\\[",end:"\\]",name:"constant.characters.delimited.brackets.d",patterns:[{include:"#wysiwyg-characters"}]}]},"delimited-string-parens":{patterns:[{begin:"\\(",end:"\\)",name:"constant.character.delimited.parens.d",patterns:[{include:"#wysiwyg-characters"}]}]},"deprecated-statement":{patterns:[{begin:"\\bdeprecated\\s*\\(",beginCaptures:{0:{name:"keyword.other.deprecated.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.deprecated.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]},{match:"\\bdeprecated\\b\\s*(?!\\()",name:"keyword.other.deprecated.plain.d"}]},destructor:{patterns:[{match:"\\b~this\\s*\\(\\s*\\)",name:"entity.name.class.destructor.d"}]},"do-statement":{patterns:[{match:"\\bdo\\b",name:"keyword.control.do.d"}]},"double-quoted-characters":{patterns:[{include:"#character"},{include:"#end-of-line"},{include:"#escape-sequence"}]},"double-quoted-string":{patterns:[{begin:'"',end:'"[cwd]?',name:"string.double-quoted-string.d",patterns:[{include:"#double-quoted-characters"}]}]},"end-of-line":{patterns:[{match:"\\n+",name:"string.character.end-of-line.d"}]},"enum-declaration":{patterns:[{begin:"\\b(enum)\\b\\s+(?=.*[=;])",beginCaptures:{1:{name:"storage.type.enum.d"}},end:"([A-Za-z_][\\w_\\d]*)\\s*(?=;|=|\\()(;)?",endCaptures:{1:{name:"entity.name.type.enum.d"},2:{name:"meta.enum.end.d"}},patterns:[{include:"#type"},{include:"#extended-type"},{match:"=(?![=>])",name:"keyword.operator.equal.alias.d"}]}]},eof:{patterns:[{begin:"__EOF__",beginCaptures:{0:{name:"comment.block.documentation.eof.start.d"}},end:"(?!__NEVER_MATCH__)__NEVER_MATCH__",name:"text.eof.d"}]},equal:{patterns:[{match:"=(?![=>])",name:"keyword.operator.equal.d"}]},"escape-sequence":{patterns:[{match:"(\\\\(?:quot|amp|lt|gt|OElig|oelig|Scaron|scaron|Yuml|circ|tilde|ensp|emsp|thinsp|zwnj|zwj|lrm|rlm|ndash|mdash|lsquo|rsquo|sbquo|ldquo|rdquo|bdquo|dagger|Dagger|permil|lsaquo|rsaquo|euro|nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|Aelig|Ccedil|egrave|eacute|ecirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|fnof|Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|Kappa|Lambda|Mu|Nu|Xi|Omicron|Pi|Rho|Sigma|Tau|Upsilon|Phi|Chi|Psi|Omega|alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigmaf|sigma|tau|upsilon|phi|chi|psi|omega|thetasym|upsih|piv|bull|hellip|prime|Prime|oline|frasl|weierp|image|real|trade|alefsym|larr|uarr|rarr|darr|harr|crarr|lArr|uArr|rArr|dArr|hArr|forall|part|exist|empty|nabla|isin|notin|ni|prod|sum|minux|lowast|radic|prop|infin|ang|and|or|cap|cup|int|there4|sim|cong|asymp|ne|equiv|le|ge|sub|sup|nsub|sube|supe|oplus|otimes|perp|sdot|lceil|rceil|lfloor|rfloor|loz|spades|clubs|hearts|diams|lang|rang))",name:"constant.character.escape-sequence.entity.d"},{match:"(\\\\x[0-9a-fA-F_]{2}|\\\\u[0-9a-fA-F_]{4}|\\\\U[0-9a-fA-F_]{8}|\\\\[0-7]{1,3})",name:"constant.character.escape-sequence.number.d"},{match:`(\\\\t|\\\\'|\\\\"|\\\\\\?|\\\\0|\\\\a|\\\\b|\\\\f|\\\\n|\\\\r|\\\\v|\\\\\\\\)`,name:"constant.character.escape-sequence.d"}]},expression:{patterns:[{include:"#index-expression"},{include:"#expression-no-index"}]},"expression-no-index":{patterns:[{include:"#function-literal"},{include:"#assert-expression"},{include:"#assign-expression"},{include:"#mixin-expression"},{include:"#import-expression"},{include:"#traits-expression"},{include:"#is-expression"},{include:"#typeid-expression"},{include:"#shift-expression"},{include:"#logical-expression"},{include:"#rel-expression"},{include:"#bitwise-expression"},{include:"#identity-expression"},{include:"#in-expression"},{include:"#conditional-expression"},{include:"#arithmetic-expression"},{include:"#new-expression"},{include:"#delete-expression"},{include:"#cast-expression"},{include:"#type-specialization"},{include:"#comma"},{include:"#special-keyword"},{include:"#functions"},{include:"#type"},{include:"#parentheses-expression"},{include:"#lexical"}]},"extended-type":{patterns:[{match:"\\b((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\b",name:"entity.name.type.d"},{begin:"\\[",beginCaptures:{0:{name:"storage.type.array.expression.begin.d"}},end:"\\]",endCaptures:{0:{name:"storage.type.array.expression.end.d"}},patterns:[{match:"\\.\\.|\\$",name:"keyword.operator.slice.d"},{include:"#type"},{include:"#expression"}]}]},"final-switch-statement":{patterns:[{begin:"\\b(final\\s+switch)\\b\\s*",captures:{1:{name:"keyword.control.final.switch.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"finally-statement":{patterns:[{match:"\\bfinally\\b",name:"keyword.control.throw.d"}]},"float-literal":{patterns:[{include:"#decimal-float"},{include:"#hexadecimal-float"}]},"for-statement":{patterns:[{begin:"\\b(for)\\b\\s*",captures:{1:{name:"keyword.control.for.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"foreach-reverse-statement":{patterns:[{begin:"\\b(foreach_reverse)\\b\\s*",captures:{1:{name:"keyword.control.foreach_reverse.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{match:";",name:"keyword.operator.semi-colon.d"},{include:"source.d"}]}]}]},"foreach-statement":{patterns:[{begin:"\\b(foreach)\\b\\s*",captures:{1:{name:"keyword.control.foreach.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{match:";",name:"keyword.operator.semi-colon.d"},{include:"source.d"}]}]}]},"function-attribute":{patterns:[{match:"\\b(nothrow|pure)\\b",name:"storage.type.modifier.function-attribute.d"},{include:"#property"}]},"function-body":{patterns:[{include:"#in-statement"},{include:"#out-statement"},{include:"#block-statement"}]},"function-literal":{patterns:[{match:"=>",name:"keyword.operator.lambda.d"},{match:"\\b(function|delegate)\\b",name:"keyword.other.function-literal.d"},{begin:"\\b([_\\w][_\\d\\w]*)\\s*(=>)",beginCaptures:{1:{name:"variable.parameter.d"},2:{name:"meta.lexical.token.symbolic.d"}},end:"(?=[\\);,\\]}])",patterns:[{include:"source.d"}]},{begin:"(?<=\\)|\\()(\\s*)({)",beginCaptures:{1:{name:"source.d"},2:{name:"source.d"}},end:"}",patterns:[{include:"source.d"}]}]},"function-prelude":{patterns:[{match:"(?!typeof|typeid)((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\s*(?=\\()",name:"entity.name.function.d"}]},functions:{patterns:[{include:"#function-attribute"},{include:"#function-prelude"}]},"goto-statement":{patterns:[{match:"\\bgoto\\s+default\\b",name:"keyword.control.goto.d"},{match:"\\bgoto\\s+case\\b",name:"keyword.control.goto.d"},{match:"\\bgoto\\b",name:"keyword.control.goto.d"}]},"hex-string":{patterns:[{begin:'x"',end:'"[cwd]?',name:"string.hex-string.d",patterns:[{match:"[a-fA-F0-9_s]+",name:"constant.character.hex-string.d"}]}]},"hexadecimal-float":{patterns:[{match:"\\b0[xX][0-9a-fA-F_]*(\\.[0-9a-fA-F_]*)?(p-|P-|p\\+|P\\+|p|P)[0-9][0-9_]*[LfF]?i?\\b",name:"constant.numeric.float.hexadecimal.d"}]},"hexadecimal-integer":{patterns:[{match:"\\b(0x|0X)([0-9a-fA-F][0-9a-fA-F_]*)(Lu|LU|uL|UL|L|u|U)?\\b",name:"constant.numeric.integer.hexadecimal.d"}]},identifier:{patterns:[{match:"\\b((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\b",name:"variable.d"}]},"identifier-list":{patterns:[{match:",",name:"keyword.other.comma.d"},{include:"#identifier"}]},"identity-expression":{patterns:[{match:"\\b(is|!is)\\b",name:"keyword.operator.identity.d"}]},"if-statement":{patterns:[{begin:"\\b(if)\\b\\s*",captures:{1:{name:"keyword.control.if.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]},{match:"\\belse\\b\\s*",name:"keyword.control.else.d"}]},"import-declaration":{patterns:[{begin:"\\b(static\\s+)?(import)\\s+(?!\\()",beginCaptures:{1:{name:"keyword.package.import.d"},2:{name:"keyword.package.import.d"}},end:";",endCaptures:{0:{name:"meta.import.end.d"}},patterns:[{include:"#import-identifier"},{include:"#comma"},{include:"#comment"}]}]},"import-expression":{patterns:[{begin:"\\b(import)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.import.d"},2:{name:"keyword.other.import.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.import.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"import-identifier":{patterns:[{match:"([_a-zA-Z][_\\d\\w]*)(\\s*\\.\\s*[_a-zA-Z][_\\d\\w]*)*",name:"variable.parameter.import.d"}]},"in-expression":{patterns:[{match:"\\b(in|!in)\\b",name:"keyword.operator.in.d"}]},"in-statement":{patterns:[{match:"\\bin\\b",name:"keyword.control.in.d"}]},"index-expression":{patterns:[{begin:"\\[",end:"\\]",patterns:[{match:"\\.\\.|\\$",name:"keyword.operator.slice.d"},{include:"#expression-no-index"}]}]},"integer-literal":{patterns:[{include:"#decimal-integer"},{include:"#binary-integer"},{include:"#hexadecimal-integer"}]},"interface-declaration":{patterns:[{captures:{1:{name:"storage.type.interface.d"},2:{name:"entity.name.type.interface.d"}},match:"\\b(interface)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b"}]},invariant:{patterns:[{match:"\\binvariant\\s*\\(\\s*\\)",name:"entity.name.class.invariant.d"}]},"is-expression":{patterns:[{begin:"\\bis\\s*\\(",beginCaptures:{0:{name:"keyword.token.is.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.token.is.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},keyword:{patterns:[{match:"\\babstract\\b",name:"keyword.token.abstract.d"},{match:"\\balias\\b",name:"keyword.token.alias.d"},{match:"\\balign\\b",name:"keyword.token.align.d"},{match:"\\basm\\b",name:"keyword.token.asm.d"},{match:"\\bassert\\b",name:"keyword.token.assert.d"},{match:"\\bauto\\b",name:"keyword.token.auto.d"},{match:"\\bbool\\b",name:"keyword.token.bool.d"},{match:"\\bbreak\\b",name:"keyword.token.break.d"},{match:"\\bbyte\\b",name:"keyword.token.byte.d"},{match:"\\bcase\\b",name:"keyword.token.case.d"},{match:"\\bcast\\b",name:"keyword.token.cast.d"},{match:"\\bcatch\\b",name:"keyword.token.catch.d"},{match:"\\bcdouble\\b",name:"keyword.token.cdouble.d"},{match:"\\bcent\\b",name:"keyword.token.cent.d"},{match:"\\bcfloat\\b",name:"keyword.token.cfloat.d"},{match:"\\bchar\\b",name:"keyword.token.char.d"},{match:"\\bclass\\b",name:"keyword.token.class.d"},{match:"\\bconst\\b",name:"keyword.token.const.d"},{match:"\\bcontinue\\b",name:"keyword.token.continue.d"},{match:"\\bcreal\\b",name:"keyword.token.creal.d"},{match:"\\bdchar\\b",name:"keyword.token.dchar.d"},{match:"\\bdebug\\b",name:"keyword.token.debug.d"},{match:"\\bdefault\\b",name:"keyword.token.default.d"},{match:"\\bdelegate\\b",name:"keyword.token.delegate.d"},{match:"\\bdelete\\b",name:"keyword.token.delete.d"},{match:"\\bdeprecated\\b",name:"keyword.token.deprecated.d"},{match:"\\bdo\\b",name:"keyword.token.do.d"},{match:"\\bdouble\\b",name:"keyword.token.double.d"},{match:"\\belse\\b",name:"keyword.token.else.d"},{match:"\\benum\\b",name:"keyword.token.enum.d"},{match:"\\bexport\\b",name:"keyword.token.export.d"},{match:"\\bextern\\b",name:"keyword.token.extern.d"},{match:"\\bfalse\\b",name:"constant.language.boolean.false.d"},{match:"\\bfinal\\b",name:"keyword.token.final.d"},{match:"\\bfinally\\b",name:"keyword.token.finally.d"},{match:"\\bfloat\\b",name:"keyword.token.float.d"},{match:"\\bfor\\b",name:"keyword.token.for.d"},{match:"\\bforeach\\b",name:"keyword.token.foreach.d"},{match:"\\bforeach_reverse\\b",name:"keyword.token.foreach_reverse.d"},{match:"\\bfunction\\b",name:"keyword.token.function.d"},{match:"\\bgoto\\b",name:"keyword.token.goto.d"},{match:"\\bidouble\\b",name:"keyword.token.idouble.d"},{match:"\\bif\\b",name:"keyword.token.if.d"},{match:"\\bifloat\\b",name:"keyword.token.ifloat.d"},{match:"\\bimmutable\\b",name:"keyword.token.immutable.d"},{match:"\\bimport\\b",name:"keyword.token.import.d"},{match:"\\bin\\b",name:"keyword.token.in.d"},{match:"\\binout\\b",name:"keyword.token.inout.d"},{match:"\\bint\\b",name:"keyword.token.int.d"},{match:"\\binterface\\b",name:"keyword.token.interface.d"},{match:"\\binvariant\\b",name:"keyword.token.invariant.d"},{match:"\\bireal\\b",name:"keyword.token.ireal.d"},{match:"\\bis\\b",name:"keyword.token.is.d"},{match:"\\blazy\\b",name:"keyword.token.lazy.d"},{match:"\\blong\\b",name:"keyword.token.long.d"},{match:"\\bmacro\\b",name:"keyword.token.macro.d"},{match:"\\bmixin\\b",name:"keyword.token.mixin.d"},{match:"\\bmodule\\b",name:"keyword.token.module.d"},{match:"\\bnew\\b",name:"keyword.token.new.d"},{match:"\\bnothrow\\b",name:"keyword.token.nothrow.d"},{match:"\\bnull\\b",name:"constant.language.null.d"},{match:"\\bout\\b",name:"keyword.token.out.d"},{match:"\\boverride\\b",name:"keyword.token.override.d"},{match:"\\bpackage\\b",name:"keyword.token.package.d"},{match:"\\bpragma\\b",name:"keyword.token.pragma.d"},{match:"\\bprivate\\b",name:"keyword.token.private.d"},{match:"\\bprotected\\b",name:"keyword.token.protected.d"},{match:"\\bpublic\\b",name:"keyword.token.public.d"},{match:"\\bpure\\b",name:"keyword.token.pure.d"},{match:"\\breal\\b",name:"keyword.token.real.d"},{match:"\\bref\\b",name:"keyword.token.ref.d"},{match:"\\breturn\\b",name:"keyword.token.return.d"},{match:"\\bscope\\b",name:"keyword.token.scope.d"},{match:"\\bshared\\b",name:"keyword.token.shared.d"},{match:"\\bshort\\b",name:"keyword.token.short.d"},{match:"\\bstatic\\b",name:"keyword.token.static.d"},{match:"\\bstruct\\b",name:"keyword.token.struct.d"},{match:"\\bsuper\\b",name:"keyword.token.super.d"},{match:"\\bswitch\\b",name:"keyword.token.switch.d"},{match:"\\bsynchronized\\b",name:"keyword.token.synchronized.d"},{match:"\\btemplate\\b",name:"keyword.token.template.d"},{match:"\\bthis\\b",name:"keyword.token.this.d"},{match:"\\bthrow\\b",name:"keyword.token.throw.d"},{match:"\\btrue\\b",name:"constant.language.boolean.true.d"},{match:"\\btry\\b",name:"keyword.token.try.d"},{match:"\\btypedef\\b",name:"keyword.token.typedef.d"},{match:"\\btypeid\\b",name:"keyword.token.typeid.d"},{match:"\\btypeof\\b",name:"keyword.token.typeof.d"},{match:"\\bubyte\\b",name:"keyword.token.ubyte.d"},{match:"\\bucent\\b",name:"keyword.token.ucent.d"},{match:"\\buint\\b",name:"keyword.token.uint.d"},{match:"\\bulong\\b",name:"keyword.token.ulong.d"},{match:"\\bunion\\b",name:"keyword.token.union.d"},{match:"\\bunittest\\b",name:"keyword.token.unittest.d"},{match:"\\bushort\\b",name:"keyword.token.ushort.d"},{match:"\\bversion\\b",name:"keyword.token.version.d"},{match:"\\bvoid\\b",name:"keyword.token.void.d"},{match:"\\bvolatile\\b",name:"keyword.token.volatile.d"},{match:"\\bwchar\\b",name:"keyword.token.wchar.d"},{match:"\\bwhile\\b",name:"keyword.token.while.d"},{match:"\\bwith\\b",name:"keyword.token.with.d"},{match:"\\b__FILE__\\b",name:"keyword.token.__FILE__.d"},{match:"\\b__MODULE__\\b",name:"keyword.token.__MODULE__.d"},{match:"\\b__LINE__\\b",name:"keyword.token.__LINE__.d"},{match:"\\b__FUNCTION__\\b",name:"keyword.token.__FUNCTION__.d"},{match:"\\b__PRETTY_FUNCTION__\\b",name:"keyword.token.__PRETTY_FUNCTION__.d"},{match:"\\b__gshared\\b",name:"keyword.token.__gshared.d"},{match:"\\b__traits\\b",name:"keyword.token.__traits.d"},{match:"\\b__vector\\b",name:"keyword.token.__vector.d"},{match:"\\b__parameters\\b",name:"keyword.token.__parameters.d"}]},"labeled-statement":{patterns:[{match:"\\b(?!abstract|alias|align|asm|assert|auto|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|in|inout|int|interface|invariant|ireal|is|lazy|long|macro|mixin|module|new|nothrow|noreturn|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__FILE__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__|__gshared|__traits|__vector|__parameters)[a-zA-Z_][a-zA-Z_0-9]*\\s*:",name:"entity.name.d"}]},lexical:{patterns:[{include:"#comment"},{include:"#string-literal"},{include:"#character-literal"},{include:"#float-literal"},{include:"#integer-literal"},{include:"#eof"},{include:"#special-tokens"},{include:"#special-token-sequence"},{include:"#keyword"},{include:"#identifier"}]},"line-comment":{patterns:[{match:"//+.*$",name:"comment.line.d"}]},"linkage-attribute":{patterns:[{begin:"\\bextern\\s*\\(\\s*C\\+\\+\\s*,",beginCaptures:{0:{name:"keyword.other.extern.cplusplus.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.extern.cplusplus.end.d"}},patterns:[{include:"#identifier"},{include:"#comma"}]},{begin:"\\bextern\\s*\\(",beginCaptures:{0:{name:"keyword.other.extern.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.extern.end.d"}},patterns:[{include:"#linkage-type"}]}]},"linkage-type":{patterns:[{match:"C|C\\+\\+|D|Windows|Pascal|System",name:"storage.modifier.linkage-type.d"}]},"logical-expression":{patterns:[{match:"\\|\\||&&|==|!=|!",name:"keyword.operator.logical.d"}]},"member-function-attribute":{patterns:[{match:"\\b(const|immutable|inout|shared)\\b",name:"storage.type.modifier.member-function-attribute"}]},"mixin-declaration":{patterns:[{begin:"\\bmixin\\s*\\(",beginCaptures:{0:{name:"keyword.mixin.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.mixin.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"mixin-expression":{patterns:[{begin:"\\bmixin\\s*\\(",beginCaptures:{0:{name:"keyword.other.mixin.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.mixin.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"mixin-statement":{patterns:[{begin:"\\bmixin\\s*\\(",beginCaptures:{0:{name:"keyword.control.mixin.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.control.mixin.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"mixin-template-declaration":{patterns:[{captures:{1:{name:"storage.type.mixintemplate.d"},2:{name:"entity.name.type.mixintemplate.d"}},match:"\\b(mixin\\s*template)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b"}]},module:{packages:[{import:"#module-declaration"}]},"module-declaration":{patterns:[{begin:"\\b(module)\\s+",beginCaptures:{1:{name:"keyword.package.module.d"}},end:";",endCaptures:{0:{name:"meta.module.end.d"}},patterns:[{include:"#module-identifier"},{include:"#comment"}]}]},"module-identifier":{patterns:[{match:"([_a-zA-Z][_\\d\\w]*)(\\s*\\.\\s*[_a-zA-Z][_\\d\\w]*)*",name:"variable.parameter.module.d"}]},"nesting-block-comment":{patterns:[{begin:"/((?!\\+/)\\+)+",beginCaptures:{0:{name:"comment.block.documentation.begin.d"}},end:"\\++/",endCaptures:{0:{name:"comment.block.documentation.end.d"}},name:"comment.block.documentation.content.d",patterns:[{include:"#nesting-block-comment"}]}]},"new-expression":{patterns:[{match:"\\bnew\\s+",name:"keyword.other.new.d"}]},"non-block-statement":{patterns:[{include:"#module-declaration"},{include:"#labeled-statement"},{include:"#if-statement"},{include:"#while-statement"},{include:"#do-statement"},{include:"#for-statement"},{include:"#static-foreach"},{include:"#static-foreach-reverse"},{include:"#foreach-statement"},{include:"#foreach-reverse-statement"},{include:"#switch-statement"},{include:"#final-switch-statement"},{include:"#case-statement"},{include:"#default-statement"},{include:"#continue-statement"},{include:"#break-statement"},{include:"#return-statement"},{include:"#goto-statement"},{include:"#with-statement"},{include:"#synchronized-statement"},{include:"#try-statement"},{include:"#catches"},{include:"#scope-guard-statement"},{include:"#throw-statement"},{include:"#finally-statement"},{include:"#asm-statement"},{include:"#pragma-statement"},{include:"#mixin-statement"},{include:"#conditional-statement"},{include:"#static-assert"},{include:"#deprecated-statement"},{include:"#unit-test"},{include:"#declaration-statement"}]},operands:{patterns:[{match:"\\?|:",name:"keyword.operator.ternary.assembly.d"},{match:"\\]|\\[",name:"keyword.operator.bracket.assembly.d"},{match:">>>|\\|\\||&&|==|!=|<=|>=|<<|>>|\\||\\^|&|<|>|\\+|-|\\*|/|%|~|!",name:"keyword.operator.assembly.d"}]},"out-statement":{patterns:[{begin:"\\bout\\s*\\(",beginCaptures:{0:{name:"keyword.control.out.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.control.out.end.d"}},patterns:[{include:"#identifier"}]},{match:"\\bout\\b",name:"keyword.control.out.d"}]},"parentheses-expression":{patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"#expression"}]}]},postblit:{patterns:[{match:"\\bthis\\s*\\(\\s*this\\s*\\)\\s",name:"entity.name.class.postblit.d"}]},pragma:{patterns:[{match:"\\bpragma\\s*\\(\\s*[_\\w][_\\d\\w]*\\s*\\)",name:"keyword.other.pragma.d"},{begin:"\\bpragma\\s*\\(\\s*[_\\w][_\\d\\w]*\\s*,",end:"\\)",name:"keyword.other.pragma.d",patterns:[{include:"#expression"}]},{match:"^#!.+",name:"gfm.markup.header.preprocessor.script-tag.d"}]},"pragma-statement":{patterns:[{include:"#pragma"}]},property:{patterns:[{match:"@(property|safe|trusted|system|disable|nogc)\\b",name:"entity.name.tag.property.d"},{include:"#user-defined-attribute"}]},"protection-attribute":{patterns:[{match:"\\b(private|package|protected|public|export)\\b",name:"keyword.other.protections.d"}]},register:{patterns:[{match:"\\b(XMM0|XMM1|XMM2|XMM3|XMM4|XMM5|XMM6|XMM7|MM0|MM1|MM2|MM3|MM4|MM5|MM6|MM7|ST\\(0\\)|ST\\(1\\)|ST\\(2\\)|ST\\(3\\)|ST\\(4\\)|ST\\(5\\)|ST\\(6\\)|ST\\(7\\)|ST|TR1|TR2|TR3|TR4|TR5|TR6|TR7|DR0|DR1|DR2|DR3|DR4|DR5|DR6|DR7|CR0|CR2|CR3|CR4|EAX|EBX|ECX|EDX|EBP|ESP|EDI|ESI|AL|AH|AX|BL|BH|BX|CL|CH|CX|DL|DH|DX|BP|SP|DI|SI|ES|CS|SS|DS|GS|FS)\\b",name:"storage.type.assembly.register.d"}]},"register-64":{patterns:[{match:"\\b(RAX|RBX|RCX|RDX|BPL|RBP|SPL|RSP|DIL|RDI|SIL|RSI|R8B|R8W|R8D|R8|R9B|R9W|R9D|R9|R10B|R10W|R10D|R10|R11B|R11W|R11D|R11|R12B|R12W|R12D|R12|R13B|R13W|R13D|R13|R14B|R14W|R14D|R14|R15B|R15W|R15D|R15|XMM8|XMM9|XMM10|XMM11|XMM12|XMM13|XMM14|XMM15|YMM0|YMM1|YMM2|YMM3|YMM4|YMM5|YMM6|YMM7|YMM8|YMM9|YMM10|YMM11|YMM12|YMM13|YMM14|YMM15)\\b",name:"storage.type.assembly.register-64.d"}]},"rel-expression":{patterns:[{match:"!<>=|!<>|<>=|!>=|!<=|<=|>=|<>|!>|!<|<|>",name:"keyword.operator.rel.d"}]},"return-statement":{patterns:[{match:"\\breturn\\b",name:"keyword.control.return.d"}]},"scope-guard-statement":{patterns:[{match:"\\bscope\\s*\\((exit|success|failure)\\)",name:"keyword.control.scope.d"}]},"semi-colon":{patterns:[{match:";",name:"meta.statement.end.d"}]},"shared-static-constructor":{patterns:[{match:"\\b(shared\\s+)?static\\s+this\\s*\\(\\s*\\)",name:"entity.name.class.constructor.shared-static.d"},{include:"#function-body"}]},"shared-static-destructor":{patterns:[{match:"\\b(shared\\s+)?static\\s+~this\\s*\\(\\s*\\)",name:"entity.name.class.destructor.static.d"}]},"shift-expression":{patterns:[{match:"<<|>>|>>>",name:"keyword.operator.shift.d"},{include:"#add-expression"}]},"special-keyword":{patterns:[{match:"\\b(__FILE__|__FILE_FULL_PATH__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__)\\b",name:"constant.language.special-keyword.d"}]},"special-token-sequence":{patterns:[{match:"#\\s*line.*",name:"gfm.markup.italic.special-token-sequence.d"}]},"special-tokens":{patterns:[{match:"\\b(__DATE__|__TIME__|__TIMESTAMP__|__VENDOR__|__VERSION__)\\b",name:"gfm.markup.raw.special-tokens.d"}]},statement:{patterns:[{include:"#non-block-statement"},{include:"#semi-colon"}]},"static-assert":{patterns:[{begin:"\\bstatic\\s+assert\\b\\s*\\(",beginCaptures:{0:{name:"keyword.other.static-assert.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.static-assert.end.d"}},patterns:[{include:"#expression"}]}]},"static-foreach":{patterns:[{begin:"\\b(static\\s+foreach)\\b\\s*",captures:{1:{name:"keyword.control.static-foreach.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{match:";",name:"keyword.operator.semi-colon.d"},{include:"source.d"}]}]}]},"static-foreach-reverse":{patterns:[{begin:"\\b(static\\s+foreach_reverse)\\b\\s*",captures:{1:{name:"keyword.control.static-foreach.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{match:";",name:"keyword.operator.semi-colon.d"},{include:"source.d"}]}]}]},"static-if-condition":{patterns:[{begin:"\\bstatic\\s+if\\b\\s*\\(",beginCaptures:{0:{name:"keyword.control.static-if.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.control.static-if.end.d"}},patterns:[{include:"#comment"},{include:"#expression"}]}]},"storage-class":{patterns:[{match:"\\b(deprecated|enum|static|extern|abstract|final|override|synchronized|auto|scope|const|immutable|inout|shared|__gshared|nothrow|pure|ref)\\b",name:"storage.class.d"},{include:"#linkage-attribute"},{include:"#align-attribute"},{include:"#property"}]},"string-literal":{patterns:[{include:"#wysiwyg-string"},{include:"#alternate-wysiwyg-string"},{include:"#hex-string"},{include:"#arbitrary-delimited-string"},{include:"#delimited-string"},{include:"#double-quoted-string"},{include:"#token-string"}]},"struct-declaration":{patterns:[{captures:{1:{name:"storage.type.struct.d"},2:{name:"entity.name.type.struct.d"}},match:"\\b(struct)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b"}]},"switch-statement":{patterns:[{begin:"\\b(switch)\\b\\s*",captures:{1:{name:"keyword.control.switch.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"synchronized-statement":{patterns:[{begin:"\\b(synchronized)\\b\\s*(?=\\()",captures:{1:{name:"keyword.control.synchronized.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"template-declaration":{patterns:[{captures:{1:{name:"storage.type.template.d"},2:{name:"entity.name.type.template.d"}},match:"\\b(template)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b"}]},"throw-statement":{patterns:[{match:"\\bthrow\\b",name:"keyword.control.throw.d"}]},"token-string":{begin:"q\\{",beginCaptures:{0:{name:"string.quoted.token.d"}},end:"\\}[cdw]?",endCaptures:{0:{name:"string.quoted.token.d"}},patterns:[{include:"#token-string-content"}]},"token-string-content":{patterns:[{begin:"{",end:"}",patterns:[{include:"#token-string-content"}]},{include:"#comment"},{include:"#tokens"}]},tokens:{patterns:[{include:"#string-literal"},{include:"#character-literal"},{include:"#integer-literal"},{include:"#float-literal"},{include:"#keyword"},{match:"~=|~|>>>|>>=|>>|>=|>|=>|==|=|<>|<=|<<|<|%=|%|#|&=|&&|&|\\$|\\|=|\\|\\||\\||\\+=|\\+\\+|\\+|\\^=|\\^\\^=|\\^\\^|\\^|\\*=|\\*|\\}|\\{|\\]|\\[|\\)|\\(|\\.\\.\\.|\\.\\.|\\.|\\?|\\!>=|\\!>|\\!=|\\!<>=|\\!<>|\\!<=|\\!<|\\!|/=|/|@|:|;|,|-=|--|-",name:"meta.lexical.token.symbolic.d"},{include:"#identifier"}]},"traits-argument":{patterns:[{include:"#expression"},{include:"#type"}]},"traits-arguments":{patterns:[{include:"#traits-argument"},{include:"#comma"}]},"traits-expression":{patterns:[{begin:"\\b__traits\\s*\\(",beginCaptures:{0:{name:"keyword.other.traits.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.traits.end.d"}},patterns:[{include:"#traits-keyword"},{include:"#comma"},{include:"#traits-argument"}]}]},"traits-keyword":{patterns:[{match:"isAbstractClass|isArithmetic|isAssociativeArray|isFinalClass|isPOD|isNested|isFloating|isIntegral|isScalar|isStaticArray|isUnsigned|isVirtualFunction|isVirtualMethod|isAbstractFunction|isFinalFunction|isStaticFunction|isOverrideFunction|isRef|isOut|isLazy|hasMember|identifier|getAliasThis|getAttributes|getMember|getOverloads|getProtection|getVirtualFunctions|getVirtualMethods|getUnitTests|parent|classInstanceSize|getVirtualIndex|allMembers|derivedMembers|isSame|compiles",name:"support.constant.traits-keyword.d"}]},"try-statement":{patterns:[{match:"\\btry\\b",name:"keyword.control.try.d"}]},type:{patterns:[{include:"#typeof"},{include:"#base-type"},{include:"#type-ctor"},{begin:"!\\(",end:"\\)",patterns:[{include:"#type"},{include:"#expression"}]}]},"type-ctor":{patterns:[{match:"(const|immutable|inout|shared)\\b",name:"storage.type.modifier.d"}]},"type-specialization":{patterns:[{match:"\\b(struct|union|class|interface|enum|function|delegate|super|const|immutable|inout|shared|return|__parameters)\\b",name:"keyword.other.storage.type-specialization.d"}]},"typeid-expression":{patterns:[{match:"\\btypeid\\s*(?=\\()",name:"keyword.other.typeid.d"}]},typeof:{begin:"typeof\\s*\\(",end:"\\)",name:"keyword.token.typeof.d",patterns:[{match:"return",name:"keyword.control.return.d"},{include:"#expression"}]},"union-declaration":{patterns:[{captures:{1:{name:"storage.type.union.d"},2:{name:"entity.name.type.union.d"}},match:"\\b(union)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b"}]},"user-defined-attribute":{patterns:[{match:"@([_\\w][_\\d\\w]*)\\b",name:"entity.name.tag.user-defined-property.d"},{begin:"@([_\\w][_\\d\\w]*)?\\(",end:"\\)",name:"entity.name.tag.user-defined-property.d",patterns:[{include:"#expression"}]}]},"version-condition":{patterns:[{match:"\\bversion\\s*\\(\\s*unittest\\s*\\)",name:"keyword.other.version.unittest.d"},{match:"\\bversion\\s*\\(\\s*assert\\s*\\)",name:"keyword.other.version.assert.d"},{begin:"\\bversion\\s*\\(",beginCaptures:{0:{name:"keyword.other.version.identifier.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.version.identifer.end.d"}},patterns:[{include:"#integer-literal"},{include:"#identifier"}]},{include:"#version-specification"}]},"version-specification":{patterns:[{match:"\\bversion\\b\\s*(?==)",name:"keyword.other.version-specification.d"}]},"void-initializer":{patterns:[{match:"\\bvoid\\b",name:"support.type.void.d"}]},"while-statement":{patterns:[{begin:"\\b(while)\\b\\s*",captures:{1:{name:"keyword.control.while.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"with-statement":{patterns:[{begin:"\\b(with)\\b\\s*(?=\\()",captures:{1:{name:"keyword.control.with.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"wysiwyg-characters":{patterns:[{include:"#character"},{include:"#end-of-line"}]},"wysiwyg-string":{patterns:[{begin:'r\\"',end:'\\"[cwd]?',name:"string.wysiwyg-string.d",patterns:[{include:"#wysiwyg-characters"}]}]}},scopeName:"source.d"});var t=[e];export{t as default}; diff --git a/assets/chunks/dark-plus.KEYLhlmT.js b/assets/chunks/dark-plus.KEYLhlmT.js new file mode 100644 index 000000000..59a1bc6b6 --- /dev/null +++ b/assets/chunks/dark-plus.KEYLhlmT.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"actionBar.toggledBackground":"#383a49","activityBarBadge.background":"#007ACC","checkbox.border":"#6B6B6B","editor.background":"#1E1E1E","editor.foreground":"#D4D4D4","editor.inactiveSelectionBackground":"#3A3D41","editor.selectionHighlightBackground":"#ADD6FF26","editorIndentGuide.activeBackground":"#707070","editorIndentGuide.background":"#404040","input.placeholderForeground":"#A6A6A6","list.activeSelectionIconForeground":"#FFF","list.dropBackground":"#383B3D","menu.background":"#252526","menu.border":"#454545","menu.foreground":"#CCCCCC","menu.separatorBackground":"#454545","ports.iconRunningProcessForeground":"#369432","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#ccc3","sideBarTitle.foreground":"#BBBBBB","statusBarItem.remoteBackground":"#16825D","statusBarItem.remoteForeground":"#FFF","tab.lastPinnedBorder":"#ccc3","terminal.inactiveSelectionBackground":"#3A3D41","widget.border":"#303031"},displayName:"Dark Plus",name:"dark-plus",semanticHighlighting:!0,semanticTokenColors:{customLiteral:"#DCDCAA",newOperator:"#C586C0",numberLiteral:"#b5cea8",stringLiteral:"#ce9178"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#D4D4D4"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#6A9955"}},{scope:"constant.language",settings:{foreground:"#569cd6"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#b5cea8"}},{scope:"constant.regexp",settings:{foreground:"#646695"}},{scope:"entity.name.tag",settings:{foreground:"#569cd6"}},{scope:"entity.name.tag.css",settings:{foreground:"#d7ba7d"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9cdcfe"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#d7ba7d"}},{scope:"invalid",settings:{foreground:"#f44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#b5cea8"}},{scope:"markup.deleted",settings:{foreground:"#ce9178"}},{scope:"markup.changed",settings:{foreground:"#569cd6"}},{scope:"punctuation.definition.quote.begin.markdown",settings:{foreground:"#6A9955"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#6796e6"}},{scope:"markup.inline.raw",settings:{foreground:"#ce9178"}},{scope:"punctuation.definition.tag",settings:{foreground:"#808080"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#569cd6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#ce9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#b5cea8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9cdcfe"}},{scope:"meta.diff.header",settings:{foreground:"#569cd6"}},{scope:"storage",settings:{foreground:"#569cd6"}},{scope:"storage.type",settings:{foreground:"#569cd6"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#569cd6"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#ce9178"}},{scope:"string.tag",settings:{foreground:"#ce9178"}},{scope:"string.value",settings:{foreground:"#ce9178"}},{scope:"string.regexp",settings:{foreground:"#d16969"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569cd6"}},{scope:["meta.template.expression"],settings:{foreground:"#d4d4d4"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#9cdcfe"}},{scope:"keyword",settings:{foreground:"#569cd6"}},{scope:"keyword.control",settings:{foreground:"#569cd6"}},{scope:"keyword.operator",settings:{foreground:"#d4d4d4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#569cd6"}},{scope:"keyword.other.unit",settings:{foreground:"#b5cea8"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#569cd6"}},{scope:"support.function.git-rebase",settings:{foreground:"#9cdcfe"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#b5cea8"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#d4d4d4"}},{scope:"variable.language",settings:{foreground:"#569cd6"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#DCDCAA"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#4EC9B0"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#4EC9B0"}},{scope:["keyword.control","source.cpp keyword.operator.new","keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#C586C0"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#9CDCFE"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#4FC1FF"}},{scope:["meta.object-literal.key"],settings:{foreground:"#9CDCFE"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#CE9178"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#CE9178"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#d16969"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#DCDCAA"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#d7ba7d"}},{scope:["constant.character","constant.other.option"],settings:{foreground:"#569cd6"}},{scope:"constant.character.escape",settings:{foreground:"#d7ba7d"}},{scope:"entity.name.label",settings:{foreground:"#C8C8C8"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/dart.DZLoTQm4.js b/assets/chunks/dart.DZLoTQm4.js new file mode 100644 index 000000000..f46cc66b2 --- /dev/null +++ b/assets/chunks/dart.DZLoTQm4.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Dart",name:"dart",patterns:[{match:"^(#!.*)$",name:"meta.preprocessor.script.dart"},{begin:"^\\w*\\b(augment\\s+library|library|import\\s+augment|import|part\\s+of|part|export)\\b",beginCaptures:{0:{name:"keyword.other.import.dart"}},end:";",endCaptures:{0:{name:"punctuation.terminator.dart"}},name:"meta.declaration.dart",patterns:[{include:"#strings"},{include:"#comments"},{match:"\\b(as|show|hide)\\b",name:"keyword.other.import.dart"},{match:"\\b(if)\\b",name:"keyword.control.dart"}]},{include:"#comments"},{include:"#punctuation"},{include:"#annotations"},{include:"#keywords"},{include:"#constants-and-special-vars"},{include:"#operators"},{include:"#strings"}],repository:{annotations:{patterns:[{match:"@[a-zA-Z]+",name:"storage.type.annotation.dart"}]},"class-identifier":{patterns:[{match:"(??]|,\\s*|\\s+extends\\s+)+>)?[!?]?\\("}]},keywords:{patterns:[{match:"(?>>?|~|\\^|\\||&)",name:"keyword.operator.bitwise.dart"},{match:"((&|\\^|\\||<<|>>>?)=)",name:"keyword.operator.assignment.bitwise.dart"},{match:"(=>)",name:"keyword.operator.closure.dart"},{match:"(==|!=|<=?|>=?)",name:"keyword.operator.comparison.dart"},{match:"(([+*/%-]|\\~)=)",name:"keyword.operator.assignment.arithmetic.dart"},{match:"(=)",name:"keyword.operator.assignment.dart"},{match:"(\\-\\-|\\+\\+)",name:"keyword.operator.increment-decrement.dart"},{match:"(\\-|\\+|\\*|\\/|\\~\\/|%)",name:"keyword.operator.arithmetic.dart"},{match:"(!|&&|\\|\\|)",name:"keyword.operator.logical.dart"}]},punctuation:{patterns:[{match:",",name:"punctuation.comma.dart"},{match:";",name:"punctuation.terminator.dart"},{match:"\\.",name:"punctuation.dot.dart"}]},"string-interp":{patterns:[{captures:{1:{name:"variable.parameter.dart"}},match:"\\$([a-zA-Z0-9_]+)",name:"meta.embedded.expression.dart"},{begin:"\\$\\{",end:"\\}",name:"meta.embedded.expression.dart",patterns:[{include:"#expression"}]},{match:"\\\\.",name:"constant.character.escape.dart"}]},strings:{patterns:[{begin:'(?)",endCaptures:{1:{name:"other.source.dart"}},patterns:[{include:"#class-identifier"},{match:","},{match:"extends",name:"keyword.declaration.dart"},{include:"#comments"}]}},scopeName:"source.dart"});var t=[e];export{t as default}; diff --git a/assets/chunks/dax.DsfXcHUZ.js b/assets/chunks/dax.DsfXcHUZ.js new file mode 100644 index 000000000..24f2b250c --- /dev/null +++ b/assets/chunks/dax.DsfXcHUZ.js @@ -0,0 +1,29 @@ +const E=Object.freeze({displayName:"DAX",name:"dax",patterns:[{include:"#comments"},{include:"#keywords"},{include:"#labels"},{include:"#parameters"},{include:"#strings"},{include:"#numbers"}],repository:{comments:{patterns:[{begin:"//",captures:{0:{name:"punctuation.definition.comment.dax"}},end:` +`,name:"comment.line.dax"},{begin:"--",captures:{0:{name:"punctuation.definition.comment.dax"}},end:` +`,name:"comment.line.dax"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.dax"}},end:"\\*/",name:"comment.block.dax"}]},keywords:{patterns:[{match:"\\b(YIELDMAT|YIELDDISC|YIELD|YEARFRAC|YEAR|XNPV|XIRR|WEEKNUM|WEEKDAY|VDB|VARX.S|VARX.P|VAR.S|VAR.P|VALUES|VALUE|UTCTODAY|UTCNOW|USERPRINCIPALNAME|USEROBJECTID|USERNAME|USERELATIONSHIP|USERCULTURE|UPPER|UNION|UNICODE|UNICHAR|TRUNC|TRUE|TRIM|TREATAS|TOTALYTD|TOTALQTD|TOTALMTD|TOPNSKIP|TOPNPERLEVEL|TOPN|TODAY|TIMEVALUE|TIME|TBILLYIELD|TBILLPRICE|TBILLEQ|TANH|TAN|T.INV.2T|T.INV|T.DIST.RT|T.DIST.2T|T.DIST|SYD|SWITCH|SUMX|SUMMARIZECOLUMNS|SUMMARIZE|SUM|SUBSTITUTEWITHINDEX|SUBSTITUTE|STDEVX.S|STDEVX.P|STDEV.S|STDEV.P|STARTOFYEAR|STARTOFQUARTER|STARTOFMONTH|SQRTPI|SQRT|SLN|SINH|SIN|SIGN|SELECTEDVALUE|SELECTEDMEASURENAME|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURE|SELECTCOLUMNS|SECOND|SEARCH|SAMPLE|SAMEPERIODLASTYEAR|RRI|ROW|ROUNDUP|ROUNDDOWN|ROUND|ROLLUPISSUBTOTAL|ROLLUPGROUP|ROLLUPADDISSUBTOTAL|ROLLUP|RIGHT|REPT|REPLACE|REMOVEFILTERS|RELATEDTABLE|RELATED|RECEIVED|RATE|RANKX|RANK.EQ|RANDBETWEEN|RAND|RADIANS|QUOTIENT|QUARTER|PV|PRODUCTX|PRODUCT|PRICEMAT|PRICEDISC|PRICE|PREVIOUSYEAR|PREVIOUSQUARTER|PREVIOUSMONTH|PREVIOUSDAY|PPMT|POWER|POISSON.DIST|PMT|PI|PERMUT|PERCENTILEX.INC|PERCENTILEX.EXC|PERCENTILE.INC|PERCENTILE.EXC|PDURATION|PATHLENGTH|PATHITEMREVERSE|PATHITEM|PATHCONTAINS|PATH|PARALLELPERIOD|OR|OPENINGBALANCEYEAR|OPENINGBALANCEQUARTER|OPENINGBALANCEMONTH|ODDLYIELD|ODDLPRICE|ODDFYIELD|ODDFPRICE|ODD|NPER|NOW|NOT|NORM.S.INV|NORM.S.DIST|NORM.INV|NORM.DIST|NONVISUAL|NOMINAL|NEXTYEAR|NEXTQUARTER|NEXTMONTH|NEXTDAY|NATURALLEFTOUTERJOIN|NATURALINNERJOIN|MROUND|MONTH|MOD|MINX|MINUTE|MINA|MIN|MID|MEDIANX|MEDIAN|MDURATION|MAXX|MAXA|MAX|LOWER|LOOKUPVALUE|LOG10|LOG|LN|LEN|LEFT|LCM|LASTNONBLANKVALUE|LASTNONBLANK|LASTDATE|KEYWORDMATCH|KEEPFILTERS|ISTEXT|ISSUBTOTAL|ISSELECTEDMEASURE|ISPMT|ISONORAFTER|ISODD|ISO.CEILING|ISNUMBER|ISNONTEXT|ISLOGICAL|ISINSCOPE|ISFILTERED|ISEVEN|ISERROR|ISEMPTY|ISCROSSFILTERED|ISBLANK|ISAFTER|IPMT|INTRATE|INTERSECT|INT|IGNORE|IFERROR|IF.EAGER|IF|HOUR|HASONEVALUE|HASONEFILTER|HASH|GROUPBY|GEOMEANX|GEOMEAN|GENERATESERIES|GENERATEALL|GENERATE|GCD|FV|FORMAT|FLOOR|FIXED|FIRSTNONBLANKVALUE|FIRSTNONBLANK|FIRSTDATE|FIND|FILTERS|FILTER|FALSE|FACT|EXPON.DIST|EXP|EXCEPT|EXACT|EVEN|ERROR|EOMONTH|ENDOFYEAR|ENDOFQUARTER|ENDOFMONTH|EFFECT|EDATE|EARLIEST|EARLIER|DURATION|DOLLARFR|DOLLARDE|DIVIDE|DISTINCTCOUNTNOBLANK|DISTINCTCOUNT|DISTINCT|DISC|DETAILROWS|DEGREES|DDB|DB|DAY|DATEVALUE|DATESYTD|DATESQTD|DATESMTD|DATESINPERIOD|DATESBETWEEN|DATEDIFF|DATEADD|DATE|DATATABLE|CUSTOMDATA|CURRENTGROUP|CURRENCY|CUMPRINC|CUMIPMT|CROSSJOIN|CROSSFILTER|COUPPCD|COUPNUM|COUPNCD|COUPDAYSNC|COUPDAYS|COUPDAYBS|COUNTX|COUNTROWS|COUNTBLANK|COUNTAX|COUNTA|COUNT|COTH|COT|COSH|COS|CONVERT|CONTAINSSTRINGEXACT|CONTAINSSTRING|CONTAINSROW|CONTAINS|CONFIDENCE.T|CONFIDENCE.NORM|CONCATENATEX|CONCATENATE|COMBINEVALUES|COMBINA|COMBIN|COLUMNSTATISTICS|COALESCE|CLOSINGBALANCEYEAR|CLOSINGBALANCEQUARTER|CLOSINGBALANCEMONTH|CHISQ.INV.RT|CHISQ.INV|CHISQ.DIST.RT|CHISQ.DIST|CEILING|CALENDARAUTO|CALENDAR|CALCULATETABLE|CALCULATE|BLANK|BETA.INV|BETA.DIST|AVERAGEX|AVERAGEA|AVERAGE|ATANH|ATAN|ASINH|ASIN|APPROXIMATEDISTINCTCOUNT|AND|AMORLINC|AMORDEGRC|ALLSELECTED|ALLNOBLANKROW|ALLEXCEPT|ALLCROSSFILTERED|ALL|ADDMISSINGITEMS|ADDCOLUMNS|ACOTH|ACOT|ACOSH|ACOS|ACCRINTM|ACCRINT|ABS)\\b",name:"variable.language.dax"},{match:"\\b(DEFINE|EVALUATE|ORDER BY|RETURN|VAR)\\b",name:"keyword.control.dax"},{match:`(?x) +{ | }`,name:"keyword.array.constructor.dax"},{match:`(?x) +> | < | >= | <= | =(?!==) +`,name:"keyword.operator.comparison.dax"},{match:`(?x) +&& | IN | NOT | \\|\\|`,name:"keyword.operator.logical.dax"},{match:`(?x) +\\+ | \\- | \\* | \\/ +`,name:"keyword.arithmetic.operator.dax"},{begin:"\\[",end:"\\]",name:"support.function.dax"},{begin:'"',end:'"',name:"string.quoted.double.dax"},{begin:"\\'",end:"\\'",name:"support.class.dax"}]},labels:{patterns:[{captures:{1:{name:"punctuation.separator.label.dax"},2:{name:"entity.name.label.dax"}},match:"(^(.*?)\\s*(:=|!=))"}]},metas:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.dax"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.dax"}}}]},numbers:{match:`(?x) +-? +(?: +0 +| +[1-9] +\\d* +) +(?: +(?: +\\. +\\d+ +)? +(?: +[eE] +[+-]? +\\d+ +)? +)?`,name:"constant.numeric.dax"},parameters:{patterns:[{begin:"\\b(?)( .*)?)|((\\+).*))$\\n?",name:"markup.inserted.diff"},{captures:{1:{name:"punctuation.definition.changed.diff"}},match:"^(!).*$\\n?",name:"markup.changed.diff"},{captures:{3:{name:"punctuation.definition.deleted.diff"},6:{name:"punctuation.definition.deleted.diff"}},match:"^(((<)( .*)?)|((-).*))$\\n?",name:"markup.deleted.diff"},{begin:"^(#)",captures:{1:{name:"punctuation.definition.comment.diff"}},comment:'Git produces unified diffs with embedded comments"',end:"\\n",name:"comment.line.number-sign.diff"},{match:"^index [0-9a-f]{7,40}\\.\\.[0-9a-f]{7,40}.*$\\n?",name:"meta.diff.index.git"},{captures:{1:{name:"punctuation.separator.key-value.diff"},2:{name:"meta.toc-list.file-name.diff"}},match:"^Index(:) (.+)$\\n?",name:"meta.diff.index"},{match:"^Only in .*: .*$\\n?",name:"meta.diff.only-in"}],scopeName:"source.diff"});var e=[n];export{e as default}; diff --git a/assets/chunks/docker.DNR26wTC.js b/assets/chunks/docker.DNR26wTC.js new file mode 100644 index 000000000..d782409eb --- /dev/null +++ b/assets/chunks/docker.DNR26wTC.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Dockerfile",name:"docker",patterns:[{captures:{1:{name:"keyword.other.special-method.dockerfile"},2:{name:"keyword.other.special-method.dockerfile"}},match:"^\\s*\\b(?i:(FROM))\\b.*?\\b(?i:(AS))\\b"},{captures:{1:{name:"keyword.control.dockerfile"},2:{name:"keyword.other.special-method.dockerfile"}},match:"^\\s*(?i:(ONBUILD)\\s+)?(?i:(ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR))\\s"},{captures:{1:{name:"keyword.operator.dockerfile"},2:{name:"keyword.other.special-method.dockerfile"}},match:"^\\s*(?i:(ONBUILD)\\s+)?(?i:(CMD|ENTRYPOINT))\\s"},{begin:'"',beginCaptures:{1:{name:"punctuation.definition.string.begin.dockerfile"}},end:'"',endCaptures:{1:{name:"punctuation.definition.string.end.dockerfile"}},name:"string.quoted.double.dockerfile",patterns:[{match:"\\\\.",name:"constant.character.escaped.dockerfile"}]},{begin:"'",beginCaptures:{1:{name:"punctuation.definition.string.begin.dockerfile"}},end:"'",endCaptures:{1:{name:"punctuation.definition.string.end.dockerfile"}},name:"string.quoted.single.dockerfile",patterns:[{match:"\\\\.",name:"constant.character.escaped.dockerfile"}]},{captures:{1:{name:"punctuation.whitespace.comment.leading.dockerfile"},2:{name:"comment.line.number-sign.dockerfile"},3:{name:"punctuation.definition.comment.dockerfile"}},comment:"comment.line",match:"^(\\s*)((#).*$\\n?)"}],scopeName:"source.dockerfile",aliases:["dockerfile"]});var n=[e];export{n as default}; diff --git a/assets/chunks/dracula-soft.9B1nZgL-.js b/assets/chunks/dracula-soft.9B1nZgL-.js new file mode 100644 index 000000000..b85246de6 --- /dev/null +++ b/assets/chunks/dracula-soft.9B1nZgL-.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBackground":"#BD93F910","activityBar.activeBorder":"#FF79C680","activityBar.background":"#343746","activityBar.foreground":"#f6f6f4","activityBar.inactiveForeground":"#7b7f8b","activityBarBadge.background":"#f286c4","activityBarBadge.foreground":"#f6f6f4","badge.background":"#44475A","badge.foreground":"#f6f6f4","breadcrumb.activeSelectionForeground":"#f6f6f4","breadcrumb.background":"#282A36","breadcrumb.focusForeground":"#f6f6f4","breadcrumb.foreground":"#7b7f8b","breadcrumbPicker.background":"#191A21","button.background":"#44475A","button.foreground":"#f6f6f4","button.secondaryBackground":"#282A36","button.secondaryForeground":"#f6f6f4","button.secondaryHoverBackground":"#343746","debugToolBar.background":"#262626","diffEditor.insertedTextBackground":"#50FA7B20","diffEditor.removedTextBackground":"#FF555550","dropdown.background":"#343746","dropdown.border":"#191A21","dropdown.foreground":"#f6f6f4","editor.background":"#282A36","editor.findMatchBackground":"#FFB86C80","editor.findMatchHighlightBackground":"#FFFFFF40","editor.findRangeHighlightBackground":"#44475A75","editor.foldBackground":"#21222C80","editor.foreground":"#f6f6f4","editor.hoverHighlightBackground":"#8BE9FD50","editor.lineHighlightBorder":"#44475A","editor.rangeHighlightBackground":"#BD93F915","editor.selectionBackground":"#44475A","editor.selectionHighlightBackground":"#424450","editor.snippetFinalTabstopHighlightBackground":"#282A36","editor.snippetFinalTabstopHighlightBorder":"#62e884","editor.snippetTabstopHighlightBackground":"#282A36","editor.snippetTabstopHighlightBorder":"#7b7f8b","editor.wordHighlightBackground":"#8BE9FD50","editor.wordHighlightStrongBackground":"#50FA7B50","editorBracketHighlight.foreground1":"#f6f6f4","editorBracketHighlight.foreground2":"#f286c4","editorBracketHighlight.foreground3":"#97e1f1","editorBracketHighlight.foreground4":"#62e884","editorBracketHighlight.foreground5":"#bf9eee","editorBracketHighlight.foreground6":"#FFB86C","editorBracketHighlight.unexpectedBracket.foreground":"#ee6666","editorCodeLens.foreground":"#7b7f8b","editorError.foreground":"#ee6666","editorGroup.border":"#bf9eee","editorGroup.dropBackground":"#44475A70","editorGroupHeader.tabsBackground":"#191A21","editorGutter.addedBackground":"#50FA7B80","editorGutter.deletedBackground":"#FF555580","editorGutter.modifiedBackground":"#8BE9FD80","editorHoverWidget.background":"#282A36","editorHoverWidget.border":"#7b7f8b","editorIndentGuide.activeBackground":"#FFFFFF45","editorIndentGuide.background":"#FFFFFF1A","editorLineNumber.foreground":"#7b7f8b","editorLink.activeForeground":"#97e1f1","editorMarkerNavigation.background":"#262626","editorOverviewRuler.addedForeground":"#50FA7B80","editorOverviewRuler.border":"#191A21","editorOverviewRuler.currentContentForeground":"#62e884","editorOverviewRuler.deletedForeground":"#FF555580","editorOverviewRuler.errorForeground":"#FF555580","editorOverviewRuler.incomingContentForeground":"#bf9eee","editorOverviewRuler.infoForeground":"#8BE9FD80","editorOverviewRuler.modifiedForeground":"#8BE9FD80","editorOverviewRuler.selectionHighlightForeground":"#FFB86C","editorOverviewRuler.warningForeground":"#FFB86C80","editorOverviewRuler.wordHighlightForeground":"#97e1f1","editorOverviewRuler.wordHighlightStrongForeground":"#62e884","editorRuler.foreground":"#FFFFFF1A","editorSuggestWidget.background":"#262626","editorSuggestWidget.foreground":"#f6f6f4","editorSuggestWidget.selectedBackground":"#44475A","editorWarning.foreground":"#97e1f1","editorWhitespace.foreground":"#FFFFFF1A","editorWidget.background":"#262626",errorForeground:"#ee6666","extensionButton.prominentBackground":"#50FA7B90","extensionButton.prominentForeground":"#f6f6f4","extensionButton.prominentHoverBackground":"#50FA7B60",focusBorder:"#7b7f8b",foreground:"#f6f6f4","gitDecoration.conflictingResourceForeground":"#FFB86C","gitDecoration.deletedResourceForeground":"#ee6666","gitDecoration.ignoredResourceForeground":"#7b7f8b","gitDecoration.modifiedResourceForeground":"#97e1f1","gitDecoration.untrackedResourceForeground":"#62e884","inlineChat.regionHighlight":"#343746","input.background":"#282A36","input.border":"#191A21","input.foreground":"#f6f6f4","input.placeholderForeground":"#7b7f8b","inputOption.activeBorder":"#bf9eee","inputValidation.errorBorder":"#ee6666","inputValidation.infoBorder":"#f286c4","inputValidation.warningBorder":"#FFB86C","list.activeSelectionBackground":"#44475A","list.activeSelectionForeground":"#f6f6f4","list.dropBackground":"#44475A","list.errorForeground":"#ee6666","list.focusBackground":"#44475A75","list.highlightForeground":"#97e1f1","list.hoverBackground":"#44475A75","list.inactiveSelectionBackground":"#44475A75","list.warningForeground":"#FFB86C","listFilterWidget.background":"#343746","listFilterWidget.noMatchesOutline":"#ee6666","listFilterWidget.outline":"#424450","merge.currentHeaderBackground":"#50FA7B90","merge.incomingHeaderBackground":"#BD93F990","panel.background":"#282A36","panel.border":"#bf9eee","panelTitle.activeBorder":"#f286c4","panelTitle.activeForeground":"#f6f6f4","panelTitle.inactiveForeground":"#7b7f8b","peekView.border":"#44475A","peekViewEditor.background":"#282A36","peekViewEditor.matchHighlightBackground":"#F1FA8C80","peekViewResult.background":"#262626","peekViewResult.fileForeground":"#f6f6f4","peekViewResult.lineForeground":"#f6f6f4","peekViewResult.matchHighlightBackground":"#F1FA8C80","peekViewResult.selectionBackground":"#44475A","peekViewResult.selectionForeground":"#f6f6f4","peekViewTitle.background":"#191A21","peekViewTitleDescription.foreground":"#7b7f8b","peekViewTitleLabel.foreground":"#f6f6f4","pickerGroup.border":"#bf9eee","pickerGroup.foreground":"#97e1f1","progressBar.background":"#f286c4","selection.background":"#bf9eee","settings.checkboxBackground":"#262626","settings.checkboxBorder":"#191A21","settings.checkboxForeground":"#f6f6f4","settings.dropdownBackground":"#262626","settings.dropdownBorder":"#191A21","settings.dropdownForeground":"#f6f6f4","settings.headerForeground":"#f6f6f4","settings.modifiedItemIndicator":"#FFB86C","settings.numberInputBackground":"#262626","settings.numberInputBorder":"#191A21","settings.numberInputForeground":"#f6f6f4","settings.textInputBackground":"#262626","settings.textInputBorder":"#191A21","settings.textInputForeground":"#f6f6f4","sideBar.background":"#262626","sideBarSectionHeader.background":"#282A36","sideBarSectionHeader.border":"#191A21","sideBarTitle.foreground":"#f6f6f4","statusBar.background":"#191A21","statusBar.debuggingBackground":"#ee6666","statusBar.debuggingForeground":"#191A21","statusBar.foreground":"#f6f6f4","statusBar.noFolderBackground":"#191A21","statusBar.noFolderForeground":"#f6f6f4","statusBarItem.prominentBackground":"#ee6666","statusBarItem.prominentHoverBackground":"#FFB86C","statusBarItem.remoteBackground":"#bf9eee","statusBarItem.remoteForeground":"#282A36","tab.activeBackground":"#282A36","tab.activeBorderTop":"#FF79C680","tab.activeForeground":"#f6f6f4","tab.border":"#191A21","tab.inactiveBackground":"#262626","tab.inactiveForeground":"#7b7f8b","terminal.ansiBlack":"#262626","terminal.ansiBlue":"#bf9eee","terminal.ansiBrightBlack":"#7b7f8b","terminal.ansiBrightBlue":"#d6b4f7","terminal.ansiBrightCyan":"#adf6f6","terminal.ansiBrightGreen":"#78f09a","terminal.ansiBrightMagenta":"#f49dda","terminal.ansiBrightRed":"#f07c7c","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#f6f6ae","terminal.ansiCyan":"#97e1f1","terminal.ansiGreen":"#62e884","terminal.ansiMagenta":"#f286c4","terminal.ansiRed":"#ee6666","terminal.ansiWhite":"#f6f6f4","terminal.ansiYellow":"#e7ee98","terminal.background":"#282A36","terminal.foreground":"#f6f6f4","titleBar.activeBackground":"#262626","titleBar.activeForeground":"#f6f6f4","titleBar.inactiveBackground":"#191A21","titleBar.inactiveForeground":"#7b7f8b","walkThrough.embeddedEditorBackground":"#262626"},displayName:"Dracula Soft",name:"dracula-soft",semanticHighlighting:!0,tokenColors:[{scope:["emphasis"],settings:{fontStyle:"italic"}},{scope:["strong"],settings:{fontStyle:"bold"}},{scope:["header"],settings:{foreground:"#bf9eee"}},{scope:["meta.diff","meta.diff.header"],settings:{foreground:"#7b7f8b"}},{scope:["markup.inserted"],settings:{foreground:"#62e884"}},{scope:["markup.deleted"],settings:{foreground:"#ee6666"}},{scope:["markup.changed"],settings:{foreground:"#FFB86C"}},{scope:["invalid"],settings:{fontStyle:"underline italic",foreground:"#ee6666"}},{scope:["invalid.deprecated"],settings:{fontStyle:"underline italic",foreground:"#f6f6f4"}},{scope:["entity.name.filename"],settings:{foreground:"#e7ee98"}},{scope:["markup.error"],settings:{foreground:"#ee6666"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["markup.bold"],settings:{fontStyle:"bold",foreground:"#FFB86C"}},{scope:["markup.heading"],settings:{fontStyle:"bold",foreground:"#bf9eee"}},{scope:["markup.italic"],settings:{fontStyle:"italic",foreground:"#e7ee98"}},{scope:["beginning.punctuation.definition.list.markdown","beginning.punctuation.definition.quote.markdown","punctuation.definition.link.restructuredtext"],settings:{foreground:"#97e1f1"}},{scope:["markup.inline.raw","markup.raw.restructuredtext"],settings:{foreground:"#62e884"}},{scope:["markup.underline.link","markup.underline.link.image"],settings:{foreground:"#97e1f1"}},{scope:["meta.link.reference.def.restructuredtext","punctuation.definition.directive.restructuredtext","string.other.link.description","string.other.link.title"],settings:{foreground:"#f286c4"}},{scope:["entity.name.directive.restructuredtext","markup.quote"],settings:{fontStyle:"italic",foreground:"#e7ee98"}},{scope:["meta.separator.markdown"],settings:{foreground:"#7b7f8b"}},{scope:["fenced_code.block.language","markup.raw.inner.restructuredtext","markup.fenced_code.block.markdown punctuation.definition.markdown"],settings:{foreground:"#62e884"}},{scope:["punctuation.definition.constant.restructuredtext"],settings:{foreground:"#bf9eee"}},{scope:["markup.heading.markdown punctuation.definition.string.begin","markup.heading.markdown punctuation.definition.string.end"],settings:{foreground:"#bf9eee"}},{scope:["meta.paragraph.markdown punctuation.definition.string.begin","meta.paragraph.markdown punctuation.definition.string.end"],settings:{foreground:"#f6f6f4"}},{scope:["markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.begin","markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.end"],settings:{foreground:"#e7ee98"}},{scope:["entity.name.type.class","entity.name.class"],settings:{fontStyle:"normal",foreground:"#97e1f1"}},{scope:["keyword.expressions-and-types.swift","keyword.other.this","variable.language","variable.language punctuation.definition.variable.php","variable.other.readwrite.instance.ruby","variable.parameter.function.language.special"],settings:{fontStyle:"italic",foreground:"#bf9eee"}},{scope:["entity.other.inherited-class"],settings:{fontStyle:"italic",foreground:"#97e1f1"}},{scope:["comment","punctuation.definition.comment","unused.comment","wildcard.comment"],settings:{foreground:"#7b7f8b"}},{scope:["comment keyword.codetag.notation","comment.block.documentation keyword","comment.block.documentation storage.type.class"],settings:{foreground:"#f286c4"}},{scope:["comment.block.documentation entity.name.type"],settings:{fontStyle:"italic",foreground:"#97e1f1"}},{scope:["comment.block.documentation entity.name.type punctuation.definition.bracket"],settings:{foreground:"#97e1f1"}},{scope:["comment.block.documentation variable"],settings:{fontStyle:"italic",foreground:"#FFB86C"}},{scope:["constant","variable.other.constant"],settings:{foreground:"#bf9eee"}},{scope:["constant.character.escape","constant.character.string.escape","constant.regexp"],settings:{foreground:"#f286c4"}},{scope:["entity.name.tag"],settings:{foreground:"#f286c4"}},{scope:["entity.other.attribute-name.parent-selector"],settings:{foreground:"#f286c4"}},{scope:["entity.other.attribute-name"],settings:{fontStyle:"italic",foreground:"#62e884"}},{scope:["entity.name.function","meta.function-call.object","meta.function-call.php","meta.function-call.static","meta.method-call.java meta.method","meta.method.groovy","support.function.any-method.lua","keyword.operator.function.infix"],settings:{foreground:"#62e884"}},{scope:["entity.name.variable.parameter","meta.at-rule.function variable","meta.at-rule.mixin variable","meta.function.arguments variable.other.php","meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql","variable.parameter"],settings:{fontStyle:"italic",foreground:"#FFB86C"}},{scope:["meta.decorator variable.other.readwrite","meta.decorator variable.other.property"],settings:{fontStyle:"italic",foreground:"#62e884"}},{scope:["meta.decorator variable.other.object"],settings:{foreground:"#62e884"}},{scope:["keyword","punctuation.definition.keyword"],settings:{foreground:"#f286c4"}},{scope:["keyword.control.new","keyword.operator.new"],settings:{fontStyle:"bold"}},{scope:["meta.selector"],settings:{foreground:"#f286c4"}},{scope:["support"],settings:{fontStyle:"italic",foreground:"#97e1f1"}},{scope:["support.function.magic","support.variable","variable.other.predefined"],settings:{fontStyle:"regular",foreground:"#bf9eee"}},{scope:["support.function","support.type.property-name"],settings:{fontStyle:"regular"}},{scope:["constant.other.symbol.hashkey punctuation.definition.constant.ruby","entity.other.attribute-name.placeholder punctuation","entity.other.attribute-name.pseudo-class punctuation","entity.other.attribute-name.pseudo-element punctuation","meta.group.double.toml","meta.group.toml","meta.object-binding-pattern-variable punctuation.destructuring","punctuation.colon.graphql","punctuation.definition.block.scalar.folded.yaml","punctuation.definition.block.scalar.literal.yaml","punctuation.definition.block.sequence.item.yaml","punctuation.definition.entity.other.inherited-class","punctuation.function.swift","punctuation.separator.dictionary.key-value","punctuation.separator.hash","punctuation.separator.inheritance","punctuation.separator.key-value","punctuation.separator.key-value.mapping.yaml","punctuation.separator.namespace","punctuation.separator.pointer-access","punctuation.separator.slice","string.unquoted.heredoc punctuation.definition.string","support.other.chomping-indicator.yaml","punctuation.separator.annotation"],settings:{foreground:"#f286c4"}},{scope:["keyword.operator.other.powershell","keyword.other.statement-separator.powershell","meta.brace.round","meta.function-call punctuation","punctuation.definition.arguments.begin","punctuation.definition.arguments.end","punctuation.definition.entity.begin","punctuation.definition.entity.end","punctuation.definition.tag.cs","punctuation.definition.type.begin","punctuation.definition.type.end","punctuation.section.scope.begin","punctuation.section.scope.end","punctuation.terminator.expression.php","storage.type.generic.java","string.template meta.brace","string.template punctuation.accessor"],settings:{foreground:"#f6f6f4"}},{scope:["meta.string-contents.quoted.double punctuation.definition.variable","punctuation.definition.interpolation.begin","punctuation.definition.interpolation.end","punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded.begin","punctuation.section.embedded.coffee","punctuation.section.embedded.end","punctuation.section.embedded.end source.php","punctuation.section.embedded.end source.ruby","punctuation.definition.variable.makefile"],settings:{foreground:"#f286c4"}},{scope:["entity.name.function.target.makefile","entity.name.section.toml","entity.name.tag.yaml","variable.other.key.toml"],settings:{foreground:"#97e1f1"}},{scope:["constant.other.date","constant.other.timestamp"],settings:{foreground:"#FFB86C"}},{scope:["variable.other.alias.yaml"],settings:{fontStyle:"italic underline",foreground:"#62e884"}},{scope:["storage","meta.implementation storage.type.objc","meta.interface-or-protocol storage.type.objc","source.groovy storage.type.def"],settings:{fontStyle:"regular",foreground:"#f286c4"}},{scope:["entity.name.type","keyword.primitive-datatypes.swift","keyword.type.cs","meta.protocol-list.objc","meta.return-type.objc","source.go storage.type","source.groovy storage.type","source.java storage.type","source.powershell entity.other.attribute-name","storage.class.std.rust","storage.type.attribute.swift","storage.type.c","storage.type.core.rust","storage.type.cs","storage.type.groovy","storage.type.objc","storage.type.php","storage.type.haskell","storage.type.ocaml"],settings:{fontStyle:"italic",foreground:"#97e1f1"}},{scope:["entity.name.type.type-parameter","meta.indexer.mappedtype.declaration entity.name.type","meta.type.parameters entity.name.type"],settings:{foreground:"#FFB86C"}},{scope:["storage.modifier"],settings:{foreground:"#f286c4"}},{scope:["string.regexp","constant.other.character-class.set.regexp","constant.character.escape.backslash.regexp"],settings:{foreground:"#e7ee98"}},{scope:["punctuation.definition.group.capture.regexp"],settings:{foreground:"#f286c4"}},{scope:["string.regexp punctuation.definition.string.begin","string.regexp punctuation.definition.string.end"],settings:{foreground:"#ee6666"}},{scope:["punctuation.definition.character-class.regexp"],settings:{foreground:"#97e1f1"}},{scope:["punctuation.definition.group.regexp"],settings:{foreground:"#FFB86C"}},{scope:["punctuation.definition.group.assertion.regexp","keyword.operator.negation.regexp"],settings:{foreground:"#ee6666"}},{scope:["meta.assertion.look-ahead.regexp"],settings:{foreground:"#62e884"}},{scope:["string"],settings:{foreground:"#e7ee98"}},{scope:["punctuation.definition.string.begin","punctuation.definition.string.end"],settings:{foreground:"#dee492"}},{scope:["punctuation.support.type.property-name.begin","punctuation.support.type.property-name.end"],settings:{foreground:"#97e2f2"}},{scope:["string.quoted.docstring.multi","string.quoted.docstring.multi.python punctuation.definition.string.begin","string.quoted.docstring.multi.python punctuation.definition.string.end","string.quoted.docstring.multi.python constant.character.escape"],settings:{foreground:"#7b7f8b"}},{scope:["variable","constant.other.key.perl","support.variable.property","variable.other.constant.js","variable.other.constant.ts","variable.other.constant.tsx"],settings:{foreground:"#f6f6f4"}},{scope:["meta.import variable.other.readwrite","meta.variable.assignment.destructured.object.coffee variable"],settings:{fontStyle:"italic",foreground:"#FFB86C"}},{scope:["meta.import variable.other.readwrite.alias","meta.export variable.other.readwrite.alias","meta.variable.assignment.destructured.object.coffee variable variable"],settings:{fontStyle:"normal",foreground:"#f6f6f4"}},{scope:["meta.selectionset.graphql variable"],settings:{foreground:"#e7ee98"}},{scope:["meta.selectionset.graphql meta.arguments variable"],settings:{foreground:"#f6f6f4"}},{scope:["entity.name.fragment.graphql","variable.fragment.graphql"],settings:{foreground:"#97e1f1"}},{scope:["constant.other.symbol.hashkey.ruby","keyword.operator.dereference.java","keyword.operator.navigation.groovy","meta.scope.for-loop.shell punctuation.definition.string.begin","meta.scope.for-loop.shell punctuation.definition.string.end","meta.scope.for-loop.shell string","storage.modifier.import","punctuation.section.embedded.begin.tsx","punctuation.section.embedded.end.tsx","punctuation.section.embedded.begin.jsx","punctuation.section.embedded.end.jsx","punctuation.separator.list.comma.css","constant.language.empty-list.haskell"],settings:{foreground:"#f6f6f4"}},{scope:["source.shell variable.other"],settings:{foreground:"#bf9eee"}},{scope:["support.constant"],settings:{fontStyle:"normal",foreground:"#bf9eee"}},{scope:["meta.scope.prerequisites.makefile"],settings:{foreground:"#e7ee98"}},{scope:["meta.attribute-selector.scss"],settings:{foreground:"#e7ee98"}},{scope:["punctuation.definition.attribute-selector.end.bracket.square.scss","punctuation.definition.attribute-selector.begin.bracket.square.scss"],settings:{foreground:"#f6f6f4"}},{scope:["meta.preprocessor.haskell"],settings:{foreground:"#7b7f8b"}},{scope:["log.error"],settings:{fontStyle:"bold",foreground:"#ee6666"}},{scope:["log.warning"],settings:{fontStyle:"bold",foreground:"#e7ee98"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/dracula.DGO8GyiP.js b/assets/chunks/dracula.DGO8GyiP.js new file mode 100644 index 000000000..83ed35a41 --- /dev/null +++ b/assets/chunks/dracula.DGO8GyiP.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBackground":"#BD93F910","activityBar.activeBorder":"#FF79C680","activityBar.background":"#343746","activityBar.foreground":"#F8F8F2","activityBar.inactiveForeground":"#6272A4","activityBarBadge.background":"#FF79C6","activityBarBadge.foreground":"#F8F8F2","badge.background":"#44475A","badge.foreground":"#F8F8F2","breadcrumb.activeSelectionForeground":"#F8F8F2","breadcrumb.background":"#282A36","breadcrumb.focusForeground":"#F8F8F2","breadcrumb.foreground":"#6272A4","breadcrumbPicker.background":"#191A21","button.background":"#44475A","button.foreground":"#F8F8F2","button.secondaryBackground":"#282A36","button.secondaryForeground":"#F8F8F2","button.secondaryHoverBackground":"#343746","debugToolBar.background":"#21222C","diffEditor.insertedTextBackground":"#50FA7B20","diffEditor.removedTextBackground":"#FF555550","dropdown.background":"#343746","dropdown.border":"#191A21","dropdown.foreground":"#F8F8F2","editor.background":"#282A36","editor.findMatchBackground":"#FFB86C80","editor.findMatchHighlightBackground":"#FFFFFF40","editor.findRangeHighlightBackground":"#44475A75","editor.foldBackground":"#21222C80","editor.foreground":"#F8F8F2","editor.hoverHighlightBackground":"#8BE9FD50","editor.lineHighlightBorder":"#44475A","editor.rangeHighlightBackground":"#BD93F915","editor.selectionBackground":"#44475A","editor.selectionHighlightBackground":"#424450","editor.snippetFinalTabstopHighlightBackground":"#282A36","editor.snippetFinalTabstopHighlightBorder":"#50FA7B","editor.snippetTabstopHighlightBackground":"#282A36","editor.snippetTabstopHighlightBorder":"#6272A4","editor.wordHighlightBackground":"#8BE9FD50","editor.wordHighlightStrongBackground":"#50FA7B50","editorBracketHighlight.foreground1":"#F8F8F2","editorBracketHighlight.foreground2":"#FF79C6","editorBracketHighlight.foreground3":"#8BE9FD","editorBracketHighlight.foreground4":"#50FA7B","editorBracketHighlight.foreground5":"#BD93F9","editorBracketHighlight.foreground6":"#FFB86C","editorBracketHighlight.unexpectedBracket.foreground":"#FF5555","editorCodeLens.foreground":"#6272A4","editorError.foreground":"#FF5555","editorGroup.border":"#BD93F9","editorGroup.dropBackground":"#44475A70","editorGroupHeader.tabsBackground":"#191A21","editorGutter.addedBackground":"#50FA7B80","editorGutter.deletedBackground":"#FF555580","editorGutter.modifiedBackground":"#8BE9FD80","editorHoverWidget.background":"#282A36","editorHoverWidget.border":"#6272A4","editorIndentGuide.activeBackground":"#FFFFFF45","editorIndentGuide.background":"#FFFFFF1A","editorLineNumber.foreground":"#6272A4","editorLink.activeForeground":"#8BE9FD","editorMarkerNavigation.background":"#21222C","editorOverviewRuler.addedForeground":"#50FA7B80","editorOverviewRuler.border":"#191A21","editorOverviewRuler.currentContentForeground":"#50FA7B","editorOverviewRuler.deletedForeground":"#FF555580","editorOverviewRuler.errorForeground":"#FF555580","editorOverviewRuler.incomingContentForeground":"#BD93F9","editorOverviewRuler.infoForeground":"#8BE9FD80","editorOverviewRuler.modifiedForeground":"#8BE9FD80","editorOverviewRuler.selectionHighlightForeground":"#FFB86C","editorOverviewRuler.warningForeground":"#FFB86C80","editorOverviewRuler.wordHighlightForeground":"#8BE9FD","editorOverviewRuler.wordHighlightStrongForeground":"#50FA7B","editorRuler.foreground":"#FFFFFF1A","editorSuggestWidget.background":"#21222C","editorSuggestWidget.foreground":"#F8F8F2","editorSuggestWidget.selectedBackground":"#44475A","editorWarning.foreground":"#8BE9FD","editorWhitespace.foreground":"#FFFFFF1A","editorWidget.background":"#21222C",errorForeground:"#FF5555","extensionButton.prominentBackground":"#50FA7B90","extensionButton.prominentForeground":"#F8F8F2","extensionButton.prominentHoverBackground":"#50FA7B60",focusBorder:"#6272A4",foreground:"#F8F8F2","gitDecoration.conflictingResourceForeground":"#FFB86C","gitDecoration.deletedResourceForeground":"#FF5555","gitDecoration.ignoredResourceForeground":"#6272A4","gitDecoration.modifiedResourceForeground":"#8BE9FD","gitDecoration.untrackedResourceForeground":"#50FA7B","inlineChat.regionHighlight":"#343746","input.background":"#282A36","input.border":"#191A21","input.foreground":"#F8F8F2","input.placeholderForeground":"#6272A4","inputOption.activeBorder":"#BD93F9","inputValidation.errorBorder":"#FF5555","inputValidation.infoBorder":"#FF79C6","inputValidation.warningBorder":"#FFB86C","list.activeSelectionBackground":"#44475A","list.activeSelectionForeground":"#F8F8F2","list.dropBackground":"#44475A","list.errorForeground":"#FF5555","list.focusBackground":"#44475A75","list.highlightForeground":"#8BE9FD","list.hoverBackground":"#44475A75","list.inactiveSelectionBackground":"#44475A75","list.warningForeground":"#FFB86C","listFilterWidget.background":"#343746","listFilterWidget.noMatchesOutline":"#FF5555","listFilterWidget.outline":"#424450","merge.currentHeaderBackground":"#50FA7B90","merge.incomingHeaderBackground":"#BD93F990","panel.background":"#282A36","panel.border":"#BD93F9","panelTitle.activeBorder":"#FF79C6","panelTitle.activeForeground":"#F8F8F2","panelTitle.inactiveForeground":"#6272A4","peekView.border":"#44475A","peekViewEditor.background":"#282A36","peekViewEditor.matchHighlightBackground":"#F1FA8C80","peekViewResult.background":"#21222C","peekViewResult.fileForeground":"#F8F8F2","peekViewResult.lineForeground":"#F8F8F2","peekViewResult.matchHighlightBackground":"#F1FA8C80","peekViewResult.selectionBackground":"#44475A","peekViewResult.selectionForeground":"#F8F8F2","peekViewTitle.background":"#191A21","peekViewTitleDescription.foreground":"#6272A4","peekViewTitleLabel.foreground":"#F8F8F2","pickerGroup.border":"#BD93F9","pickerGroup.foreground":"#8BE9FD","progressBar.background":"#FF79C6","selection.background":"#BD93F9","settings.checkboxBackground":"#21222C","settings.checkboxBorder":"#191A21","settings.checkboxForeground":"#F8F8F2","settings.dropdownBackground":"#21222C","settings.dropdownBorder":"#191A21","settings.dropdownForeground":"#F8F8F2","settings.headerForeground":"#F8F8F2","settings.modifiedItemIndicator":"#FFB86C","settings.numberInputBackground":"#21222C","settings.numberInputBorder":"#191A21","settings.numberInputForeground":"#F8F8F2","settings.textInputBackground":"#21222C","settings.textInputBorder":"#191A21","settings.textInputForeground":"#F8F8F2","sideBar.background":"#21222C","sideBarSectionHeader.background":"#282A36","sideBarSectionHeader.border":"#191A21","sideBarTitle.foreground":"#F8F8F2","statusBar.background":"#191A21","statusBar.debuggingBackground":"#FF5555","statusBar.debuggingForeground":"#191A21","statusBar.foreground":"#F8F8F2","statusBar.noFolderBackground":"#191A21","statusBar.noFolderForeground":"#F8F8F2","statusBarItem.prominentBackground":"#FF5555","statusBarItem.prominentHoverBackground":"#FFB86C","statusBarItem.remoteBackground":"#BD93F9","statusBarItem.remoteForeground":"#282A36","tab.activeBackground":"#282A36","tab.activeBorderTop":"#FF79C680","tab.activeForeground":"#F8F8F2","tab.border":"#191A21","tab.inactiveBackground":"#21222C","tab.inactiveForeground":"#6272A4","terminal.ansiBlack":"#21222C","terminal.ansiBlue":"#BD93F9","terminal.ansiBrightBlack":"#6272A4","terminal.ansiBrightBlue":"#D6ACFF","terminal.ansiBrightCyan":"#A4FFFF","terminal.ansiBrightGreen":"#69FF94","terminal.ansiBrightMagenta":"#FF92DF","terminal.ansiBrightRed":"#FF6E6E","terminal.ansiBrightWhite":"#FFFFFF","terminal.ansiBrightYellow":"#FFFFA5","terminal.ansiCyan":"#8BE9FD","terminal.ansiGreen":"#50FA7B","terminal.ansiMagenta":"#FF79C6","terminal.ansiRed":"#FF5555","terminal.ansiWhite":"#F8F8F2","terminal.ansiYellow":"#F1FA8C","terminal.background":"#282A36","terminal.foreground":"#F8F8F2","titleBar.activeBackground":"#21222C","titleBar.activeForeground":"#F8F8F2","titleBar.inactiveBackground":"#191A21","titleBar.inactiveForeground":"#6272A4","walkThrough.embeddedEditorBackground":"#21222C"},displayName:"Dracula",name:"dracula",semanticHighlighting:!0,tokenColors:[{scope:["emphasis"],settings:{fontStyle:"italic"}},{scope:["strong"],settings:{fontStyle:"bold"}},{scope:["header"],settings:{foreground:"#BD93F9"}},{scope:["meta.diff","meta.diff.header"],settings:{foreground:"#6272A4"}},{scope:["markup.inserted"],settings:{foreground:"#50FA7B"}},{scope:["markup.deleted"],settings:{foreground:"#FF5555"}},{scope:["markup.changed"],settings:{foreground:"#FFB86C"}},{scope:["invalid"],settings:{fontStyle:"underline italic",foreground:"#FF5555"}},{scope:["invalid.deprecated"],settings:{fontStyle:"underline italic",foreground:"#F8F8F2"}},{scope:["entity.name.filename"],settings:{foreground:"#F1FA8C"}},{scope:["markup.error"],settings:{foreground:"#FF5555"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["markup.bold"],settings:{fontStyle:"bold",foreground:"#FFB86C"}},{scope:["markup.heading"],settings:{fontStyle:"bold",foreground:"#BD93F9"}},{scope:["markup.italic"],settings:{fontStyle:"italic",foreground:"#F1FA8C"}},{scope:["beginning.punctuation.definition.list.markdown","beginning.punctuation.definition.quote.markdown","punctuation.definition.link.restructuredtext"],settings:{foreground:"#8BE9FD"}},{scope:["markup.inline.raw","markup.raw.restructuredtext"],settings:{foreground:"#50FA7B"}},{scope:["markup.underline.link","markup.underline.link.image"],settings:{foreground:"#8BE9FD"}},{scope:["meta.link.reference.def.restructuredtext","punctuation.definition.directive.restructuredtext","string.other.link.description","string.other.link.title"],settings:{foreground:"#FF79C6"}},{scope:["entity.name.directive.restructuredtext","markup.quote"],settings:{fontStyle:"italic",foreground:"#F1FA8C"}},{scope:["meta.separator.markdown"],settings:{foreground:"#6272A4"}},{scope:["fenced_code.block.language","markup.raw.inner.restructuredtext","markup.fenced_code.block.markdown punctuation.definition.markdown"],settings:{foreground:"#50FA7B"}},{scope:["punctuation.definition.constant.restructuredtext"],settings:{foreground:"#BD93F9"}},{scope:["markup.heading.markdown punctuation.definition.string.begin","markup.heading.markdown punctuation.definition.string.end"],settings:{foreground:"#BD93F9"}},{scope:["meta.paragraph.markdown punctuation.definition.string.begin","meta.paragraph.markdown punctuation.definition.string.end"],settings:{foreground:"#F8F8F2"}},{scope:["markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.begin","markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.end"],settings:{foreground:"#F1FA8C"}},{scope:["entity.name.type.class","entity.name.class"],settings:{fontStyle:"normal",foreground:"#8BE9FD"}},{scope:["keyword.expressions-and-types.swift","keyword.other.this","variable.language","variable.language punctuation.definition.variable.php","variable.other.readwrite.instance.ruby","variable.parameter.function.language.special"],settings:{fontStyle:"italic",foreground:"#BD93F9"}},{scope:["entity.other.inherited-class"],settings:{fontStyle:"italic",foreground:"#8BE9FD"}},{scope:["comment","punctuation.definition.comment","unused.comment","wildcard.comment"],settings:{foreground:"#6272A4"}},{scope:["comment keyword.codetag.notation","comment.block.documentation keyword","comment.block.documentation storage.type.class"],settings:{foreground:"#FF79C6"}},{scope:["comment.block.documentation entity.name.type"],settings:{fontStyle:"italic",foreground:"#8BE9FD"}},{scope:["comment.block.documentation entity.name.type punctuation.definition.bracket"],settings:{foreground:"#8BE9FD"}},{scope:["comment.block.documentation variable"],settings:{fontStyle:"italic",foreground:"#FFB86C"}},{scope:["constant","variable.other.constant"],settings:{foreground:"#BD93F9"}},{scope:["constant.character.escape","constant.character.string.escape","constant.regexp"],settings:{foreground:"#FF79C6"}},{scope:["entity.name.tag"],settings:{foreground:"#FF79C6"}},{scope:["entity.other.attribute-name.parent-selector"],settings:{foreground:"#FF79C6"}},{scope:["entity.other.attribute-name"],settings:{fontStyle:"italic",foreground:"#50FA7B"}},{scope:["entity.name.function","meta.function-call.object","meta.function-call.php","meta.function-call.static","meta.method-call.java meta.method","meta.method.groovy","support.function.any-method.lua","keyword.operator.function.infix"],settings:{foreground:"#50FA7B"}},{scope:["entity.name.variable.parameter","meta.at-rule.function variable","meta.at-rule.mixin variable","meta.function.arguments variable.other.php","meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql","variable.parameter"],settings:{fontStyle:"italic",foreground:"#FFB86C"}},{scope:["meta.decorator variable.other.readwrite","meta.decorator variable.other.property"],settings:{fontStyle:"italic",foreground:"#50FA7B"}},{scope:["meta.decorator variable.other.object"],settings:{foreground:"#50FA7B"}},{scope:["keyword","punctuation.definition.keyword"],settings:{foreground:"#FF79C6"}},{scope:["keyword.control.new","keyword.operator.new"],settings:{fontStyle:"bold"}},{scope:["meta.selector"],settings:{foreground:"#FF79C6"}},{scope:["support"],settings:{fontStyle:"italic",foreground:"#8BE9FD"}},{scope:["support.function.magic","support.variable","variable.other.predefined"],settings:{fontStyle:"regular",foreground:"#BD93F9"}},{scope:["support.function","support.type.property-name"],settings:{fontStyle:"regular"}},{scope:["constant.other.symbol.hashkey punctuation.definition.constant.ruby","entity.other.attribute-name.placeholder punctuation","entity.other.attribute-name.pseudo-class punctuation","entity.other.attribute-name.pseudo-element punctuation","meta.group.double.toml","meta.group.toml","meta.object-binding-pattern-variable punctuation.destructuring","punctuation.colon.graphql","punctuation.definition.block.scalar.folded.yaml","punctuation.definition.block.scalar.literal.yaml","punctuation.definition.block.sequence.item.yaml","punctuation.definition.entity.other.inherited-class","punctuation.function.swift","punctuation.separator.dictionary.key-value","punctuation.separator.hash","punctuation.separator.inheritance","punctuation.separator.key-value","punctuation.separator.key-value.mapping.yaml","punctuation.separator.namespace","punctuation.separator.pointer-access","punctuation.separator.slice","string.unquoted.heredoc punctuation.definition.string","support.other.chomping-indicator.yaml","punctuation.separator.annotation"],settings:{foreground:"#FF79C6"}},{scope:["keyword.operator.other.powershell","keyword.other.statement-separator.powershell","meta.brace.round","meta.function-call punctuation","punctuation.definition.arguments.begin","punctuation.definition.arguments.end","punctuation.definition.entity.begin","punctuation.definition.entity.end","punctuation.definition.tag.cs","punctuation.definition.type.begin","punctuation.definition.type.end","punctuation.section.scope.begin","punctuation.section.scope.end","punctuation.terminator.expression.php","storage.type.generic.java","string.template meta.brace","string.template punctuation.accessor"],settings:{foreground:"#F8F8F2"}},{scope:["meta.string-contents.quoted.double punctuation.definition.variable","punctuation.definition.interpolation.begin","punctuation.definition.interpolation.end","punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded.begin","punctuation.section.embedded.coffee","punctuation.section.embedded.end","punctuation.section.embedded.end source.php","punctuation.section.embedded.end source.ruby","punctuation.definition.variable.makefile"],settings:{foreground:"#FF79C6"}},{scope:["entity.name.function.target.makefile","entity.name.section.toml","entity.name.tag.yaml","variable.other.key.toml"],settings:{foreground:"#8BE9FD"}},{scope:["constant.other.date","constant.other.timestamp"],settings:{foreground:"#FFB86C"}},{scope:["variable.other.alias.yaml"],settings:{fontStyle:"italic underline",foreground:"#50FA7B"}},{scope:["storage","meta.implementation storage.type.objc","meta.interface-or-protocol storage.type.objc","source.groovy storage.type.def"],settings:{fontStyle:"regular",foreground:"#FF79C6"}},{scope:["entity.name.type","keyword.primitive-datatypes.swift","keyword.type.cs","meta.protocol-list.objc","meta.return-type.objc","source.go storage.type","source.groovy storage.type","source.java storage.type","source.powershell entity.other.attribute-name","storage.class.std.rust","storage.type.attribute.swift","storage.type.c","storage.type.core.rust","storage.type.cs","storage.type.groovy","storage.type.objc","storage.type.php","storage.type.haskell","storage.type.ocaml"],settings:{fontStyle:"italic",foreground:"#8BE9FD"}},{scope:["entity.name.type.type-parameter","meta.indexer.mappedtype.declaration entity.name.type","meta.type.parameters entity.name.type"],settings:{foreground:"#FFB86C"}},{scope:["storage.modifier"],settings:{foreground:"#FF79C6"}},{scope:["string.regexp","constant.other.character-class.set.regexp","constant.character.escape.backslash.regexp"],settings:{foreground:"#F1FA8C"}},{scope:["punctuation.definition.group.capture.regexp"],settings:{foreground:"#FF79C6"}},{scope:["string.regexp punctuation.definition.string.begin","string.regexp punctuation.definition.string.end"],settings:{foreground:"#FF5555"}},{scope:["punctuation.definition.character-class.regexp"],settings:{foreground:"#8BE9FD"}},{scope:["punctuation.definition.group.regexp"],settings:{foreground:"#FFB86C"}},{scope:["punctuation.definition.group.assertion.regexp","keyword.operator.negation.regexp"],settings:{foreground:"#FF5555"}},{scope:["meta.assertion.look-ahead.regexp"],settings:{foreground:"#50FA7B"}},{scope:["string"],settings:{foreground:"#F1FA8C"}},{scope:["punctuation.definition.string.begin","punctuation.definition.string.end"],settings:{foreground:"#E9F284"}},{scope:["punctuation.support.type.property-name.begin","punctuation.support.type.property-name.end"],settings:{foreground:"#8BE9FE"}},{scope:["string.quoted.docstring.multi","string.quoted.docstring.multi.python punctuation.definition.string.begin","string.quoted.docstring.multi.python punctuation.definition.string.end","string.quoted.docstring.multi.python constant.character.escape"],settings:{foreground:"#6272A4"}},{scope:["variable","constant.other.key.perl","support.variable.property","variable.other.constant.js","variable.other.constant.ts","variable.other.constant.tsx"],settings:{foreground:"#F8F8F2"}},{scope:["meta.import variable.other.readwrite","meta.variable.assignment.destructured.object.coffee variable"],settings:{fontStyle:"italic",foreground:"#FFB86C"}},{scope:["meta.import variable.other.readwrite.alias","meta.export variable.other.readwrite.alias","meta.variable.assignment.destructured.object.coffee variable variable"],settings:{fontStyle:"normal",foreground:"#F8F8F2"}},{scope:["meta.selectionset.graphql variable"],settings:{foreground:"#F1FA8C"}},{scope:["meta.selectionset.graphql meta.arguments variable"],settings:{foreground:"#F8F8F2"}},{scope:["entity.name.fragment.graphql","variable.fragment.graphql"],settings:{foreground:"#8BE9FD"}},{scope:["constant.other.symbol.hashkey.ruby","keyword.operator.dereference.java","keyword.operator.navigation.groovy","meta.scope.for-loop.shell punctuation.definition.string.begin","meta.scope.for-loop.shell punctuation.definition.string.end","meta.scope.for-loop.shell string","storage.modifier.import","punctuation.section.embedded.begin.tsx","punctuation.section.embedded.end.tsx","punctuation.section.embedded.begin.jsx","punctuation.section.embedded.end.jsx","punctuation.separator.list.comma.css","constant.language.empty-list.haskell"],settings:{foreground:"#F8F8F2"}},{scope:["source.shell variable.other"],settings:{foreground:"#BD93F9"}},{scope:["support.constant"],settings:{fontStyle:"normal",foreground:"#BD93F9"}},{scope:["meta.scope.prerequisites.makefile"],settings:{foreground:"#F1FA8C"}},{scope:["meta.attribute-selector.scss"],settings:{foreground:"#F1FA8C"}},{scope:["punctuation.definition.attribute-selector.end.bracket.square.scss","punctuation.definition.attribute-selector.begin.bracket.square.scss"],settings:{foreground:"#F8F8F2"}},{scope:["meta.preprocessor.haskell"],settings:{foreground:"#6272A4"}},{scope:["log.error"],settings:{fontStyle:"bold",foreground:"#FF5555"}},{scope:["log.warning"],settings:{fontStyle:"bold",foreground:"#F1FA8C"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/dream-maker.Eh5U-gDp.js b/assets/chunks/dream-maker.Eh5U-gDp.js new file mode 100644 index 000000000..2e8748fe8 --- /dev/null +++ b/assets/chunks/dream-maker.Eh5U-gDp.js @@ -0,0 +1,52 @@ +const e=Object.freeze({displayName:"Dream Maker",fileTypes:["dm","dme"],foldingStartMarker:`(?x) +/\\*\\*(?!\\*) +|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))`,foldingStopMarker:"(?|<)(=)?|\\.|:|/(=)?|~|\\+(\\+|=)?|-(-|=)?|\\*(\\*|=)?|%|>>|<<|=(=)?|!(=)?|<>|&|&&|\\^|\\||\\|\\||\\bto\\b|\\bin\\b|\\bstep\\b)",name:"keyword.operator.dm"},{match:"\\b([A-Z_][A-Z_0-9]*)\\b",name:"constant.language.dm"},{match:"\\bnull\\b",name:"constant.language.dm"},{begin:'{"',beginCaptures:{0:{name:"punctuation.definition.string.begin.dm"}},end:'"}',endCaptures:{0:{name:"punctuation.definition.string.end.dm"}},name:"string.quoted.triple.dm",patterns:[{include:"#string_escaped_char"},{include:"#string_embedded_expression"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.dm"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.dm"}},name:"string.quoted.double.dm",patterns:[{include:"#string_escaped_char"},{include:"#string_embedded_expression"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.dm"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.dm"}},name:"string.quoted.single.dm",patterns:[{include:"#string_escaped_char"}]},{begin:`(?x) +^\\s* ((\\#)\\s*define) \\s+ +((?[a-zA-Z_][a-zA-Z0-9_]*)) +(?: +(\\() +( +\\s* \\g \\s* +((,) \\s* \\g \\s*)* +(?:\\.\\.\\.)? +) +(\\)) +)`,beginCaptures:{1:{name:"keyword.control.directive.define.dm"},2:{name:"punctuation.definition.directive.dm"},3:{name:"entity.name.function.preprocessor.dm"},5:{name:"punctuation.definition.parameters.begin.dm"},6:{name:"variable.parameter.preprocessor.dm"},8:{name:"punctuation.separator.parameters.dm"},9:{name:"punctuation.definition.parameters.end.dm"}},end:"(?=(?://|/\\*))|(?[a-zA-Z_][a-zA-Z0-9_]*))`,beginCaptures:{1:{name:"keyword.control.directive.define.dm"},2:{name:"punctuation.definition.directive.dm"},3:{name:"variable.other.preprocessor.dm"}},end:"(?=(?://|/\\*))|(?\\\\\\s*\\n)",name:"punctuation.separator.continuation.dm"}]},{begin:"^\\s*(?:((#)\\s*(?:elif|else|if|ifdef|ifndef))|((#)\\s*(undef|include)))\\b",beginCaptures:{1:{name:"keyword.control.directive.conditional.dm"},2:{name:"punctuation.definition.directive.dm"},3:{name:"keyword.control.directive.$5.dm"},4:{name:"punctuation.definition.directive.dm"}},end:"(?=(?://|/\\*))|(?\\\\\\s*\\n)",name:"punctuation.separator.continuation.dm"}]},{include:"#block"},{begin:`(?x) +(?: ^ +| +(?: (?= \\s ) (?]) +) +) +(\\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\() +( +(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | +(?: (?<=operator) (?: [-*&<>=+!]+ | \\(\\) | \\[\\] ) ) +) +\\s*(?=\\()`,beginCaptures:{1:{name:"punctuation.whitespace.function.leading.dm"},3:{name:"entity.name.function.dm"},4:{name:"punctuation.definition.parameters.dm"}},end:"(?<=\\})|(?=#)|(;)?",name:"meta.function.dm",patterns:[{include:"#comments"},{include:"#parens"},{match:"\\bconst\\b",name:"storage.modifier.dm"},{include:"#block"}]}],repository:{access:{match:"\\.[a-zA-Z_][a-zA-Z_0-9]*\\b(?!\\s*\\()",name:"variable.other.dot-access.dm"},block:{begin:"\\{",end:"\\}",name:"meta.block.dm",patterns:[{include:"#block_innards"}]},block_innards:{patterns:[{include:"#preprocessor-rule-enabled-block"},{include:"#preprocessor-rule-disabled-block"},{include:"#preprocessor-rule-other-block"},{include:"#access"},{captures:{1:{name:"punctuation.whitespace.function-call.leading.dm"},2:{name:"support.function.any-method.dm"},3:{name:"punctuation.definition.parameters.dm"}},match:`(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?\\\\\\s*\\n)",name:"punctuation.separator.continuation.dm"}]}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",comment:"eat nested preprocessor if(def)s",end:"^\\s*#\\s*endif\\b.*$",patterns:[{include:"#disabled"}]},parens:{begin:"\\(",end:"\\)",name:"meta.parens.dm",patterns:[{include:"$base"}]},"preprocessor-rule-disabled":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.if.dm"},3:{name:"constant.numeric.preprocessor.dm"}},end:"^\\s*(#\\s*(endif)\\b)",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.else.dm"}},end:"(?=^\\s*#\\s*endif\\b.*$)",patterns:[{include:"$base"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*$)",name:"comment.block.preprocessor.if-branch",patterns:[{include:"#disabled"}]}]},"preprocessor-rule-disabled-block":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.if.dm"},3:{name:"constant.numeric.preprocessor.dm"}},end:"^\\s*(#\\s*(endif)\\b)",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.else.dm"}},end:"(?=^\\s*#\\s*endif\\b.*$)",patterns:[{include:"#block_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*$)",name:"comment.block.preprocessor.if-branch.in-block",patterns:[{include:"#disabled"}]}]},"preprocessor-rule-enabled":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.if.dm"},3:{name:"constant.numeric.preprocessor.dm"}},end:"^\\s*(#\\s*(endif)\\b)",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.else.dm"}},contentName:"comment.block.preprocessor.else-branch",end:"(?=^\\s*#\\s*endif\\b.*$)",patterns:[{include:"#disabled"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*$)",patterns:[{include:"$base"}]}]},"preprocessor-rule-enabled-block":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.if.dm"},3:{name:"constant.numeric.preprocessor.dm"}},end:"^\\s*(#\\s*(endif)\\b)",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.else.dm"}},contentName:"comment.block.preprocessor.else-branch.in-block",end:"(?=^\\s*#\\s*endif\\b.*$)",patterns:[{include:"#disabled"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*$)",patterns:[{include:"#block_innards"}]}]},"preprocessor-rule-other":{begin:"^\\s*((#\\s*(if(n?def)?))\\b.*?(?:(?=(?://|/\\*))|$))",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.dm"}},end:"^\\s*((#\\s*(endif))\\b).*$",patterns:[{include:"$base"}]},"preprocessor-rule-other-block":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.dm"}},end:"^\\s*(#\\s*(endif)\\b).*$",patterns:[{include:"#block_innards"}]},string_embedded_expression:{patterns:[{begin:"(?"n\\n \\[] +)`,name:"constant.character.escape.dm"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.dm"}]}},scopeName:"source.dm"});var n=[e];export{n as default}; diff --git a/assets/chunks/elixir.CpdO1lki.js b/assets/chunks/elixir.CpdO1lki.js new file mode 100644 index 000000000..6426bf12a --- /dev/null +++ b/assets/chunks/elixir.CpdO1lki.js @@ -0,0 +1,17 @@ +import e from"./html.CuK0VrWf.js";import"./javascript.Dch3xQiY.js";import"./css.CbYhyuC0.js";const i=Object.freeze({displayName:"Elixir",fileTypes:["ex","exs"],firstLineMatch:"^#!/.*\\belixir",foldingStartMarker:"(after|else|catch|rescue|\\-\\>|\\{|\\[|do)\\s*$",foldingStopMarker:"^\\s*((\\}|\\]|after|else|catch|rescue)\\s*$|end\\b)",name:"elixir",patterns:[{begin:"\\b(fn)\\b(?!.*->)",beginCaptures:{1:{name:"keyword.control.elixir"}},end:"$",patterns:[{include:"#core_syntax"}]},{captures:{1:{name:"entity.name.type.class.elixir"},2:{name:"punctuation.separator.method.elixir"},3:{name:"entity.name.function.elixir"}},match:"([A-Z]\\w+)\\s*(\\.)\\s*([a-z_]\\w*[!?]?)"},{captures:{1:{name:"constant.other.symbol.elixir"},2:{name:"punctuation.separator.method.elixir"},3:{name:"entity.name.function.elixir"}},match:"(\\:\\w+)\\s*(\\.)\\s*([_]?\\w*[!?]?)"},{captures:{1:{name:"keyword.operator.other.elixir"},2:{name:"entity.name.function.elixir"}},match:"(\\|\\>)\\s*([a-z_]\\w*[!?]?)"},{match:"\\b[a-z_]\\w*[!?]?(?=\\s*\\.?\\s*\\()",name:"entity.name.function.elixir"},{begin:"\\b(fn)\\b(?=.*->)",beginCaptures:{1:{name:"keyword.control.elixir"}},end:"(?>(->)|(when)|(\\)))",endCaptures:{1:{name:"keyword.operator.other.elixir"},2:{name:"keyword.control.elixir"},3:{name:"punctuation.section.function.elixir"}},patterns:[{include:"#core_syntax"}]},{include:"#core_syntax"},{begin:`^(?=.*->)((?![^"']*("|')[^"']*->)|(?=.*->[^"']*("|')[^"']*->))((?!.*\\([^\\)]*->)|(?=[^\\(\\)]*->)|(?=\\s*\\(.*\\).*->))((?!.*\\b(fn)\\b)|(?=.*->.*\\bfn\\b))`,beginCaptures:{1:{name:"keyword.control.elixir"}},end:"(?>(->)|(when)|(\\)))",endCaptures:{1:{name:"keyword.operator.other.elixir"},2:{name:"keyword.control.elixir"},3:{name:"punctuation.section.function.elixir"}},patterns:[{include:"#core_syntax"}]}],repository:{core_syntax:{patterns:[{begin:"^\\s*(defmodule)\\b",beginCaptures:{1:{name:"keyword.control.module.elixir"}},end:"\\b(do)\\b",endCaptures:{1:{name:"keyword.control.module.elixir"}},name:"meta.module.elixir",patterns:[{match:"\\b[A-Z]\\w*(?=\\.)",name:"entity.other.inherited-class.elixir"},{match:"\\b[A-Z]\\w*\\b",name:"entity.name.type.class.elixir"}]},{begin:"^\\s*(defprotocol)\\b",beginCaptures:{1:{name:"keyword.control.protocol.elixir"}},end:"\\b(do)\\b",endCaptures:{1:{name:"keyword.control.protocol.elixir"}},name:"meta.protocol_declaration.elixir",patterns:[{match:"\\b[A-Z]\\w*\\b",name:"entity.name.type.protocol.elixir"}]},{begin:"^\\s*(defimpl)\\b",beginCaptures:{1:{name:"keyword.control.protocol.elixir"}},end:"\\b(do)\\b",endCaptures:{1:{name:"keyword.control.protocol.elixir"}},name:"meta.protocol_implementation.elixir",patterns:[{match:"\\b[A-Z]\\w*\\b",name:"entity.name.type.protocol.elixir"}]},{begin:"^\\s*(def|defmacro|defdelegate|defguard)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)",beginCaptures:{1:{name:"keyword.control.module.elixir"},2:{name:"entity.name.function.public.elixir"},4:{name:"punctuation.section.function.elixir"}},end:"(\\bdo:)|(\\bdo\\b)|(?=\\s+(def|defn|defmacro|defdelegate|defguard)\\b)",endCaptures:{1:{name:"constant.other.keywords.elixir"},2:{name:"keyword.control.module.elixir"}},name:"meta.function.public.elixir",patterns:[{include:"$self"},{begin:"\\s(\\\\\\\\)",beginCaptures:{1:{name:"keyword.operator.other.elixir"}},end:",|\\)|$",patterns:[{include:"$self"}]},{match:"\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\b",name:"keyword.control.elixir"}]},{begin:"^\\s*(defp|defnp|defmacrop|defguardp)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)",beginCaptures:{1:{name:"keyword.control.module.elixir"},2:{name:"entity.name.function.private.elixir"},4:{name:"punctuation.section.function.elixir"}},end:"(\\bdo:)|(\\bdo\\b)|(?=\\s+(defp|defmacrop|defguardp)\\b)",endCaptures:{1:{name:"constant.other.keywords.elixir"},2:{name:"keyword.control.module.elixir"}},name:"meta.function.private.elixir",patterns:[{include:"$self"},{begin:"\\s(\\\\\\\\)",beginCaptures:{1:{name:"keyword.operator.other.elixir"}},end:",|\\)|$",patterns:[{include:"$self"}]},{match:"\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\b",name:"keyword.control.elixir"}]},{begin:'\\s*~L"""',comment:"Leex Sigil",end:'\\s*"""',name:"sigil.leex",patterns:[{include:"text.elixir"},{include:"text.html.basic"}]},{begin:'\\s*~H"""',comment:"HEEx Sigil",end:'\\s*"""',name:"sigil.heex",patterns:[{include:"text.elixir"},{include:"text.html.basic"}]},{begin:'@(module|type)?doc (~[a-z])?"""',comment:"@doc with heredocs is treated as documentation",end:'\\s*"""',name:"comment.block.documentation.heredoc",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:'@(module|type)?doc ~[A-Z]"""',comment:"@doc with heredocs is treated as documentation",end:'\\s*"""',name:"comment.block.documentation.heredoc"},{begin:"@(module|type)?doc (~[a-z])?'''",comment:"@doc with heredocs is treated as documentation",end:"\\s*'''",name:"comment.block.documentation.heredoc",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"@(module|type)?doc ~[A-Z]'''",comment:"@doc with heredocs is treated as documentation",end:"\\s*'''",name:"comment.block.documentation.heredoc"},{comment:"@doc false is treated as documentation",match:"@(module|type)?doc false",name:"comment.block.documentation.false"},{begin:'@(module|type)?doc "',comment:"@doc with string is treated as documentation",end:'"',name:"comment.block.documentation.string",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{match:"(?_?[0-9A-Fa-f])*\\b",name:"constant.numeric.hex.elixir"},{match:"\\b\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)+)([eE][-+]?\\d(?>_?\\d)*)?\\b",name:"constant.numeric.float.elixir"},{match:"\\b\\d(?>_?\\d)*\\b",name:"constant.numeric.integer.elixir"},{match:"\\b0b[01](?>_?[01])*\\b",name:"constant.numeric.binary.elixir"},{match:"\\b0o[0-7](?>_?[0-7])*\\b",name:"constant.numeric.octal.elixir"},{begin:":'",captures:{0:{name:"punctuation.definition.constant.elixir"}},end:"'",name:"constant.other.symbol.single-quoted.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:':"',captures:{0:{name:"punctuation.definition.constant.elixir"}},end:'"',name:"constant.other.symbol.double-quoted.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"(?>''')",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"Single-quoted heredocs",end:"^\\s*'''",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.single.heredoc.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"single quoted string (allows for interpolation)",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.single.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:'(?>""")',beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"Double-quoted heredocs",end:'^\\s*"""',endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.double.heredoc.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"double quoted string (allows for interpolation)",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.double.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:'~[a-z](?>""")',beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"Double-quoted heredocs sigils",end:'^\\s*"""',endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.heredoc.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\}[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\][a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\>[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\)[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]([^\\w])",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\1[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:'~[A-Z](?>""")',beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"Double-quoted heredocs sigils",end:'^\\s*"""',endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.heredoc.literal.elixir"},{begin:"~[A-Z]\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\}[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{begin:"~[A-Z]\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\][a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{begin:"~[A-Z]\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\>[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{begin:"~[A-Z]\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\)[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{begin:"~[A-Z]([^\\w])",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\1[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{captures:{1:{name:"punctuation.definition.constant.elixir"}},comment:"symbols",match:"(?[a-zA-Z_][\\w@]*(?>[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|=~|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|\\.\\.//|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(\\^\\^)?)",name:"constant.other.symbol.elixir"},{captures:{1:{name:"punctuation.definition.constant.elixir"}},comment:"symbols",match:"(?>[a-zA-Z_][\\w@]*(?>[?!])?)(:)(?!:)",name:"constant.other.keywords.elixir"},{begin:"(^[ \\t]+)?(?=##)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.elixir"}},end:"(?!#)",patterns:[{begin:"##",beginCaptures:{0:{name:"punctuation.definition.comment.elixir"}},end:"\\n",name:"comment.line.section.elixir"}]},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.elixir"}},end:"(?!#)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.elixir"}},end:"\\n",name:"comment.line.number-sign.elixir"}]},{match:"\\b_([^_][\\w]+[?!]?)",name:"comment.unused.elixir"},{match:"\\b_\\b",name:"comment.wildcard.elixir"},{comment:` + matches questionmark-letters. + + examples (1st alternation = hex): + ?\\x1 ?\\x61 + + examples (2rd alternation = escaped): + ?\\n ?\\b + + examples (3rd alternation = normal): + ?a ?A ?0 + ?* ?" ?( + ?. ?# + + the negative lookbehind prevents against matching + p(42.tainted?) + `,match:"(?",name:"keyword.operator.concatenation.elixir"},{match:"\\|\\>|<~>|<>|<<<|>>>|~>>|<<~|~>|<~|<\\|>",name:"keyword.operator.sigils_1.elixir"},{match:"&&&|&&",name:"keyword.operator.sigils_2.elixir"},{match:"<\\-|\\\\\\\\",name:"keyword.operator.sigils_3.elixir"},{match:"===?|!==?|<=?|>=?",name:"keyword.operator.comparison.elixir"},{match:"(\\|\\|\\||&&&|\\^\\^\\^|<<<|>>>|~~~)",name:"keyword.operator.bitwise.elixir"},{match:"(?<=[ \\t])!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b",name:"keyword.operator.logical.elixir"},{match:"(\\*|\\+|\\-|/)",name:"keyword.operator.arithmetic.elixir"},{match:"\\||\\+\\+|\\-\\-|\\*\\*|\\\\\\\\|\\<\\-|\\<\\>|\\<\\<|\\>\\>|\\:\\:|\\.\\.|//|\\|>|~|=>|&",name:"keyword.operator.other.elixir"},{match:"=",name:"keyword.operator.assignment.elixir"},{match:":",name:"punctuation.separator.other.elixir"},{match:"\\;",name:"punctuation.separator.statement.elixir"},{match:",",name:"punctuation.separator.object.elixir"},{match:"\\.",name:"punctuation.separator.method.elixir"},{match:"\\{|\\}",name:"punctuation.section.scope.elixir"},{match:"\\[|\\]",name:"punctuation.section.array.elixir"},{match:"\\(|\\)",name:"punctuation.section.function.elixir"}]},escaped_char:{match:"\\\\(x[\\da-fA-F]{1,2}|.)",name:"constant.character.escaped.elixir"},interpolated_elixir:{begin:"#\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.elixir"}},contentName:"source.elixir",end:"\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.elixir"}},name:"meta.embedded.line.elixir",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}]},nest_curly_and_self:{patterns:[{begin:"\\{",captures:{0:{name:"punctuation.section.scope.elixir"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]}},scopeName:"source.elixir",embeddedLangs:["html"]});var r=[...e,i];export{r as default}; diff --git a/assets/chunks/elm.DbZvrHdh.js b/assets/chunks/elm.DbZvrHdh.js new file mode 100644 index 000000000..175270215 --- /dev/null +++ b/assets/chunks/elm.DbZvrHdh.js @@ -0,0 +1 @@ +import e from"./glsl.-GlVTnW0.js";import"./c.RCJZWN-0.js";const a=Object.freeze({displayName:"Elm",fileTypes:["elm"],name:"elm",patterns:[{include:"#import"},{include:"#module"},{include:"#debug"},{include:"#comments"},{match:"\\b(_)\\b",name:"keyword.unused.elm"},{include:"#type-signature"},{include:"#type-declaration"},{include:"#type-alias-declaration"},{include:"#string-triple"},{include:"#string-quote"},{include:"#char"},{comment:"Floats are always decimal",match:"\\b([0-9]+\\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\b",name:"constant.numeric.float.elm"},{match:"\\b([0-9]+)\\b",name:"constant.numeric.elm"},{match:"\\b(0x[0-9a-fA-F]+)\\b",name:"constant.numeric.elm"},{include:"#glsl"},{include:"#record-prefix"},{include:"#module-prefix"},{include:"#constructor"},{captures:{1:{name:"punctuation.bracket.elm"},2:{name:"record.name.elm"},3:{name:"keyword.pipe.elm"},4:{name:"entity.name.record.field.elm"}},match:"(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\|)\\s+([a-z][a-zA-Z0-9_]*)",name:"meta.record.field.update.elm"},{captures:{1:{name:"keyword.pipe.elm"},2:{name:"entity.name.record.field.elm"},3:{name:"keyword.operator.assignment.elm"}},match:"(\\|)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)",name:"meta.record.field.update.elm"},{captures:{1:{name:"punctuation.bracket.elm"},2:{name:"record.name.elm"}},match:"(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+$",name:"meta.record.field.update.elm"},{captures:{1:{name:"punctuation.bracket.elm"},2:{name:"entity.name.record.field.elm"},3:{name:"keyword.operator.assignment.elm"}},match:"(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)",name:"meta.record.field.elm"},{captures:{1:{name:"punctuation.separator.comma.elm"},2:{name:"entity.name.record.field.elm"},3:{name:"keyword.operator.assignment.elm"}},match:"(,)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)",name:"meta.record.field.elm"},{match:"(\\}|\\{)",name:"punctuation.bracket.elm"},{include:"#unit"},{include:"#comma"},{include:"#parens"},{match:"(->)",name:"keyword.operator.arrow.elm"},{include:"#infix_op"},{match:"(\\=|\\:|\\||\\\\)",name:"keyword.other.elm"},{match:"\\b(type|as|port|exposing|alias|infixl|infixr|infix)\\s+",name:"keyword.other.elm"},{match:"\\b(if|then|else|case|of|let|in)\\s+",name:"keyword.control.elm"},{include:"#record-accessor"},{include:"#top_level_value"},{include:"#value"},{include:"#period"},{include:"#square_brackets"}],repository:{block_comment:{applyEndPatternLast:1,begin:"\\{-(?!#)",captures:{0:{name:"punctuation.definition.comment.elm"}},end:"-\\}",name:"comment.block.elm",patterns:[{include:"#block_comment"}]},char:{begin:"'",beginCaptures:{0:{name:"punctuation.definition.char.begin.elm"}},end:"'",endCaptures:{0:{name:"punctuation.definition.char.end.elm"}},name:"string.quoted.single.elm",patterns:[{match:`\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})`,name:"constant.character.escape.elm"},{match:"\\^[A-Z@\\[\\]\\\\\\^_]",name:"constant.character.escape.control.elm"}]},comma:{match:"(,)",name:"punctuation.separator.comma.elm"},comments:{patterns:[{begin:"--",captures:{1:{name:"punctuation.definition.comment.elm"}},end:"$",name:"comment.line.double-dash.elm"},{include:"#block_comment"}]},constructor:{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"constant.type-constructor.elm"},debug:{match:"\\b(Debug)\\b",name:"invalid.illegal.debug.elm"},glsl:{begin:"(\\[)(glsl)(\\|)",beginCaptures:{1:{name:"entity.glsl.bracket.elm"},2:{name:"entity.glsl.name.elm"},3:{name:"entity.glsl.bracket.elm"}},end:"(\\|\\])",endCaptures:{1:{name:"entity.glsl.bracket.elm"}},name:"meta.embedded.block.glsl",patterns:[{include:"source.glsl"}]},import:{begin:"^\\b(import)\\s+",beginCaptures:{1:{name:"keyword.control.import.elm"}},end:"\\n(?!\\s)",name:"meta.import.elm",patterns:[{match:"(as|exposing)",name:"keyword.control.elm"},{include:"#module_chunk"},{include:"#period"},{match:"\\s+",name:"punctuation.spaces.elm"},{include:"#module-exports"}]},infix_op:{match:"(|<\\?>|<\\||<=|\\|\\||&&|>=|\\|>|\\|=|\\|\\.|\\+\\+|::|/=|==|//|>>|<<|<|>|\\^|\\+|-|/|\\*)",name:"keyword.operator.elm"},module:{begin:"^\\b((port |effect )?module)\\s+",beginCaptures:{1:{name:"keyword.other.elm"}},end:"\\n(?!\\s)",endCaptures:{1:{name:"keyword.other.elm"}},name:"meta.declaration.module.elm",patterns:[{include:"#module_chunk"},{include:"#period"},{match:"(exposing)",name:"keyword.other.elm"},{match:"\\s+",name:"punctuation.spaces.elm"},{include:"#module-exports"}]},"module-exports":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.parens.module-export.elm"}},end:"(\\))",endCaptures:{1:{name:"punctuation.parens.module-export.elm"}},name:"meta.declaration.exports.elm",patterns:[{match:"\\b[a-z][a-zA-Z_'0-9]*",name:"entity.name.function.elm"},{match:"\\b[A-Z][A-Za-z_'0-9]*",name:"storage.type.elm"},{match:",",name:"punctuation.separator.comma.elm"},{match:"\\s+",name:"punctuation.spaces.elm"},{include:"#comma"},{match:"\\(\\.\\.\\)",name:"punctuation.parens.ellipses.elm"},{match:"\\.\\.",name:"punctuation.parens.ellipses.elm"},{include:"#infix_op"},{comment:"So named because I don't know what to call this.",match:"\\(.*?\\)",name:"meta.other.unknown.elm"}]},"module-prefix":{captures:{1:{name:"support.module.elm"},2:{name:"keyword.other.period.elm"}},match:"([A-Z][a-zA-Z0-9_]*)(\\.)",name:"meta.module.name.elm"},module_chunk:{match:"[A-Z][a-zA-Z0-9_]*",name:"support.module.elm"},parens:{match:"(\\(|\\))",name:"punctuation.parens.elm"},period:{match:"[.]",name:"keyword.other.period.elm"},"record-accessor":{captures:{1:{name:"keyword.other.period.elm"},2:{name:"entity.name.record.field.accessor.elm"}},match:"(\\.)([a-z][a-zA-Z0-9_]*)",name:"meta.record.accessor"},"record-prefix":{captures:{1:{name:"record.name.elm"},2:{name:"keyword.other.period.elm"},3:{name:"entity.name.record.field.accessor.elm"}},match:"([a-z][a-zA-Z0-9_]*)(\\.)([a-z][a-zA-Z0-9_]*)",name:"record.accessor.elm"},square_brackets:{match:"[\\[\\]]",name:"punctuation.definition.list.elm"},"string-quote":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.elm"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.elm"}},name:"string.quoted.double.elm",patterns:[{match:`\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})`,name:"constant.character.escape.elm"},{match:"\\^[A-Z@\\[\\]\\\\\\^_]",name:"constant.character.escape.control.elm"}]},"string-triple":{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.elm"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.elm"}},name:"string.quoted.triple.elm",patterns:[{match:`\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})`,name:"constant.character.escape.elm"},{match:"\\^[A-Z@\\[\\]\\\\\\^_]",name:"constant.character.escape.control.elm"}]},top_level_value:{match:"^[a-z][a-zA-Z0-9_]*\\b",name:"entity.name.function.top_level.elm"},"type-alias-declaration":{begin:"^(type\\s+)(alias\\s+)([A-Z][a-zA-Z0-9_']*)\\s+",beginCaptures:{1:{name:"keyword.type.elm"},2:{name:"keyword.type-alias.elm"},3:{name:"storage.type.elm"}},end:"^(?=\\S)",name:"meta.function.type-declaration.elm",patterns:[{match:"\\n\\s+",name:"punctuation.spaces.elm"},{match:"\\=",name:"keyword.operator.assignment.elm"},{include:"#module-prefix"},{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"storage.type.elm"},{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"variable.type.elm"},{include:"#comments"},{include:"#type-record"}]},"type-declaration":{begin:"^(type\\s+)([A-Z][a-zA-Z0-9_']*)\\s+",beginCaptures:{1:{name:"keyword.type.elm"},2:{name:"storage.type.elm"}},end:"^(?=\\S)",name:"meta.function.type-declaration.elm",patterns:[{captures:{1:{name:"constant.type-constructor.elm"}},match:"^\\s*([A-Z][a-zA-Z0-9_]*)\\b",name:"meta.record.field.elm"},{match:"\\s+",name:"punctuation.spaces.elm"},{captures:{1:{name:"keyword.operator.assignment.elm"},2:{name:"constant.type-constructor.elm"}},match:"(\\=|\\|)\\s+([A-Z][a-zA-Z0-9_]*)\\b",name:"meta.record.field.elm"},{match:"\\=",name:"keyword.operator.assignment.elm"},{match:"\\-\\>",name:"keyword.operator.arrow.elm"},{include:"#module-prefix"},{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"variable.type.elm"},{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"storage.type.elm"},{include:"#comments"},{include:"#type-record"}]},"type-record":{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.section.braces.begin"}},end:"(\\})",endCaptures:{1:{name:"punctuation.section.braces.end"}},name:"meta.function.type-record.elm",patterns:[{match:"\\s+",name:"punctuation.spaces.elm"},{match:"->",name:"keyword.operator.arrow.elm"},{captures:{1:{name:"entity.name.record.field.elm"},2:{name:"keyword.other.elm"}},match:"([a-z][a-zA-Z0-9_]*)\\s+(\\:)",name:"meta.record.field.elm"},{match:"\\,",name:"punctuation.separator.comma.elm"},{include:"#module-prefix"},{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"variable.type.elm"},{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"storage.type.elm"},{include:"#comments"},{include:"#type-record"}]},"type-signature":{begin:"^(port\\s+)?([a-z_][a-zA-Z0-9_']*)\\s+(\\:)",beginCaptures:{1:{name:"keyword.other.port.elm"},2:{name:"entity.name.function.elm"},3:{name:"keyword.other.colon.elm"}},end:"((^(?=[a-z]))|^$)",name:"meta.function.type-declaration.elm",patterns:[{include:"#type-signature-chunk"}]},"type-signature-chunk":{patterns:[{match:"->",name:"keyword.operator.arrow.elm"},{match:"\\s+",name:"punctuation.spaces.elm"},{include:"#module-prefix"},{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"variable.type.elm"},{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"storage.type.elm"},{match:"\\(\\)",name:"constant.unit.elm"},{include:"#comma"},{include:"#parens"},{include:"#comments"},{include:"#type-record"}]},unit:{match:"\\(\\)",name:"constant.unit.elm"},value:{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"meta.value.elm"}},scopeName:"source.elm",embeddedLangs:["glsl"]});var m=[...e,a];export{m as default}; diff --git a/assets/chunks/erb.C8njeWMx.js b/assets/chunks/erb.C8njeWMx.js new file mode 100644 index 000000000..7a88b7c91 --- /dev/null +++ b/assets/chunks/erb.C8njeWMx.js @@ -0,0 +1 @@ +import e from"./html.CuK0VrWf.js";import n from"./ruby.BYVeyLWu.js";import"./javascript.Dch3xQiY.js";import"./css.CbYhyuC0.js";import"./xml.BzTcx3OS.js";import"./java.ClXEvkw9.js";import"./sql.DbK06e1c.js";import"./c.RCJZWN-0.js";import"./shellscript.BZfs-ost.js";import"./lua.CHJYZA-p.js";const t=Object.freeze({displayName:"ERB",fileTypes:["erb","rhtml","html.erb"],injections:{"text.html.erb - (meta.embedded.block.erb | meta.embedded.line.erb | comment)":{patterns:[{begin:"(^\\s*)(?=<%+#(?![^%]*%>))",beginCaptures:{0:{name:"punctuation.whitespace.comment.leading.erb"}},end:"(?!\\G)(\\s*$\\n)?",endCaptures:{0:{name:"punctuation.whitespace.comment.trailing.erb"}},patterns:[{include:"#comment"}]},{begin:"(^\\s*)(?=<%(?![^%]*%>))",beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.erb"}},end:"(?!\\G)(\\s*$\\n)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.erb"}},patterns:[{include:"#tags"}]},{include:"#comment"},{include:"#tags"}]}},name:"erb",patterns:[{include:"text.html.basic"}],repository:{comment:{patterns:[{begin:"<%+#",beginCaptures:{0:{name:"punctuation.definition.comment.begin.erb"}},end:"%>",endCaptures:{0:{name:"punctuation.definition.comment.end.erb"}},name:"comment.block.erb"}]},tags:{patterns:[{begin:"<%+(?!>)[-=]?(?![^%]*%>)",beginCaptures:{0:{name:"punctuation.section.embedded.begin.erb"}},contentName:"source.ruby",end:"(-?%)>",endCaptures:{0:{name:"punctuation.section.embedded.end.erb"},1:{name:"source.ruby"}},name:"meta.embedded.block.erb",patterns:[{captures:{1:{name:"punctuation.definition.comment.erb"}},match:"(#).*?(?=-?%>)",name:"comment.line.number-sign.erb"},{include:"source.ruby"}]},{begin:"<%+(?!>)[-=]?",beginCaptures:{0:{name:"punctuation.section.embedded.begin.erb"}},contentName:"source.ruby",end:"(-?%)>",endCaptures:{0:{name:"punctuation.section.embedded.end.erb"},1:{name:"source.ruby"}},name:"meta.embedded.line.erb",patterns:[{captures:{1:{name:"punctuation.definition.comment.erb"}},match:"(#).*?(?=-?%>)",name:"comment.line.number-sign.erb"},{include:"source.ruby"}]}]}},scopeName:"text.html.erb",embeddedLangs:["html","ruby"]});var p=[...e,...n,t];export{p as default}; diff --git a/assets/chunks/erlang.DS9ZWoKD.js b/assets/chunks/erlang.DS9ZWoKD.js new file mode 100644 index 000000000..c329126c1 --- /dev/null +++ b/assets/chunks/erlang.DS9ZWoKD.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Erlang",fileTypes:["erl","escript","hrl","xrl","yrl"],name:"erlang",patterns:[{include:"#module-directive"},{include:"#import-export-directive"},{include:"#behaviour-directive"},{include:"#record-directive"},{include:"#define-directive"},{include:"#macro-directive"},{include:"#directive"},{include:"#function"},{include:"#everything-else"}],repository:{atom:{patterns:[{begin:"(')",beginCaptures:{1:{name:"punctuation.definition.symbol.begin.erlang"}},end:"(')",endCaptures:{1:{name:"punctuation.definition.symbol.end.erlang"}},name:"constant.other.symbol.quoted.single.erlang",patterns:[{captures:{1:{name:"punctuation.definition.escape.erlang"},3:{name:"punctuation.definition.escape.erlang"}},match:`(\\\\)([bdefnrstv\\\\'"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})`,name:"constant.other.symbol.escape.erlang"},{match:"\\\\\\^?.?",name:"invalid.illegal.atom.erlang"}]},{match:"[a-z][a-zA-Z\\d@_]*+",name:"constant.other.symbol.unquoted.erlang"}]},"behaviour-directive":{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.behaviour.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.type.class.behaviour.definition.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(behaviour)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.behaviour.erlang"},binary:{begin:"(<<)",beginCaptures:{1:{name:"punctuation.definition.binary.begin.erlang"}},end:"(>>)",endCaptures:{1:{name:"punctuation.definition.binary.end.erlang"}},name:"meta.structure.binary.erlang",patterns:[{captures:{1:{name:"punctuation.separator.binary.erlang"},2:{name:"punctuation.separator.value-size.erlang"}},match:"(,)|(:)"},{include:"#internal-type-specifiers"},{include:"#everything-else"}]},character:{patterns:[{captures:{1:{name:"punctuation.definition.character.erlang"},2:{name:"constant.character.escape.erlang"},3:{name:"punctuation.definition.escape.erlang"},5:{name:"punctuation.definition.escape.erlang"}},match:`(\\$)((\\\\)([bdefnrstv\\\\'"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2}))`,name:"constant.character.erlang"},{match:"\\$\\\\\\^?.?",name:"invalid.illegal.character.erlang"},{captures:{1:{name:"punctuation.definition.character.erlang"}},match:"(\\$)[ \\S]",name:"constant.character.erlang"},{match:"\\$.?",name:"invalid.illegal.character.erlang"}]},comment:{begin:"(^[ \\t]+)?(?=%)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.erlang"}},end:"(?!\\G)",patterns:[{begin:"%",beginCaptures:{0:{name:"punctuation.definition.comment.erlang"}},end:"\\n",name:"comment.line.percentage.erlang"}]},"define-directive":{patterns:[{begin:"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+",beginCaptures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.define.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.definition.erlang"}},end:"(\\))\\s*+(\\.)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.define.erlang",patterns:[{include:"#everything-else"}]},{begin:"(?=^\\s*+-\\s*+define\\s*+\\(\\s*+[a-zA-Z\\d@_]++\\s*+\\()",end:"(\\))\\s*+(\\.)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.define.erlang",patterns:[{begin:"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(\\()",beginCaptures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.define.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.definition.erlang"},5:{name:"punctuation.definition.parameters.begin.erlang"}},end:"(\\))\\s*(,)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.separator.parameters.erlang"}},patterns:[{match:",",name:"punctuation.separator.parameters.erlang"},{include:"#everything-else"}]},{match:"\\|\\||\\||:|;|,|\\.|->",name:"punctuation.separator.define.erlang"},{include:"#everything-else"}]}]},directive:{patterns:[{begin:"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\(?)",beginCaptures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"}},end:"(\\)?)\\s*+(\\.)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.erlang",patterns:[{include:"#everything-else"}]},{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.erlang"},3:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)",name:"meta.directive.erlang"}]},docstring:{begin:'(?)|(;)|(,)"},"internal-function-list":{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.list.begin.erlang"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.list.end.erlang"}},name:"meta.structure.list.function.erlang",patterns:[{begin:"([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(/)",beginCaptures:{1:{name:"entity.name.function.erlang"},2:{name:"punctuation.separator.function-arity.erlang"}},end:"(,)|(?=\\])",endCaptures:{1:{name:"punctuation.separator.list.erlang"}},patterns:[{include:"#everything-else"}]},{include:"#everything-else"}]},"internal-function-parts":{patterns:[{begin:"(?=\\()",end:"(->)",endCaptures:{1:{name:"punctuation.separator.clause-head-body.erlang"}},patterns:[{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.erlang"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"}},patterns:[{match:",",name:"punctuation.separator.parameters.erlang"},{include:"#everything-else"}]},{match:",|;",name:"punctuation.separator.guards.erlang"},{include:"#everything-else"}]},{match:",",name:"punctuation.separator.expressions.erlang"},{include:"#everything-else"}]},"internal-record-body":{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.definition.class.record.begin.erlang"}},end:"(\\})",endCaptures:{1:{name:"punctuation.definition.class.record.end.erlang"}},name:"meta.structure.record.erlang",patterns:[{begin:"(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_))",beginCaptures:{2:{name:"variable.other.field.erlang"},3:{name:"variable.language.omitted.field.erlang"}},end:"(,)|(?=\\})",endCaptures:{1:{name:"punctuation.separator.class.record.erlang"}},patterns:[{include:"#everything-else"}]},{include:"#everything-else"}]},"internal-string-body":{patterns:[{captures:{1:{name:"punctuation.definition.escape.erlang"},3:{name:"punctuation.definition.escape.erlang"}},comment:"escape sequence",match:`(\\\\)([bdefnrstv\\\\'"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})`,name:"constant.character.escape.erlang"},{match:"\\\\\\^?.?",name:"invalid.illegal.string.erlang"},{captures:{1:{name:"punctuation.definition.placeholder.erlang"},6:{name:"punctuation.separator.placeholder-parts.erlang"},10:{name:"punctuation.separator.placeholder-parts.erlang"}},comment:"io:fwrite format control sequence",match:"(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*))?((\\.)((\\*)|.))?)?[tlkK]*[~cfegswpWPBX#bx\\+ni]",name:"constant.character.format.placeholder.other.erlang"},{captures:{1:{name:"punctuation.definition.placeholder.erlang"}},comment:"io:fread format control sequence",match:"(~)(\\*)?(\\d++)?(t)?[~du\\-#fsacl]",name:"constant.character.format.placeholder.other.erlang"},{match:'~[^"]?',name:"invalid.illegal.string.erlang"}]},"internal-type-specifiers":{begin:"(/)",beginCaptures:{1:{name:"punctuation.separator.value-type.erlang"}},end:"(?=,|:|>>)",patterns:[{captures:{1:{name:"storage.type.erlang"},2:{name:"storage.modifier.signedness.erlang"},3:{name:"storage.modifier.endianness.erlang"},4:{name:"storage.modifier.unit.erlang"},5:{name:"punctuation.separator.unit-specifiers.erlang"},6:{name:"constant.numeric.integer.decimal.erlang"},7:{name:"punctuation.separator.type-specifiers.erlang"}},match:"(integer|float|binary|bytes|bitstring|bits|utf8|utf16|utf32)|(signed|unsigned)|(big|little|native)|(unit)(:)(\\d++)|(-)"}]},keyword:{match:"\\b(after|begin|case|catch|cond|end|fun|if|let|of|try|receive|when|maybe|else)\\b",name:"keyword.control.erlang"},"language-constant":{match:"\\b(false|true|undefined)\\b",name:"constant.language"},list:{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.list.begin.erlang"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.list.end.erlang"}},name:"meta.structure.list.erlang",patterns:[{match:"\\||\\|\\||,",name:"punctuation.separator.list.erlang"},{include:"#everything-else"}]},"macro-directive":{patterns:[{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.ifdef.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.ifdef.erlang"},{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.ifndef.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.ifndef.erlang"},{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.undef.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.undef.erlang"}]},"macro-usage":{captures:{1:{name:"keyword.operator.macro.erlang"},2:{name:"entity.name.function.macro.erlang"}},match:"(\\?\\??)\\s*+([a-zA-Z\\d@_]++)",name:"meta.macro-usage.erlang"},"module-directive":{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.module.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.type.class.module.definition.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.module.erlang"},number:{begin:"(?=\\d)",end:"(?!\\d)",patterns:[{captures:{1:{name:"punctuation.separator.integer-float.erlang"},2:{name:"punctuation.separator.float-exponent.erlang"}},match:"\\d++(\\.)\\d++([eE][\\+\\-]?\\d++)?",name:"constant.numeric.float.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"2(#)([0-1]++_)*[0-1]++",name:"constant.numeric.integer.binary.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"3(#)([0-2]++_)*[0-2]++",name:"constant.numeric.integer.base-3.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"4(#)([0-3]++_)*[0-3]++",name:"constant.numeric.integer.base-4.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"5(#)([0-4]++_)*[0-4]++",name:"constant.numeric.integer.base-5.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"6(#)([0-5]++_)*[0-5]++",name:"constant.numeric.integer.base-6.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"7(#)([0-6]++_)*[0-6]++",name:"constant.numeric.integer.base-7.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"8(#)([0-7]++_)*[0-7]++",name:"constant.numeric.integer.octal.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"9(#)([0-8]++_)*[0-8]++",name:"constant.numeric.integer.base-9.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"10(#)(\\d++_)*\\d++",name:"constant.numeric.integer.decimal.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"11(#)([\\daA]++_)*[\\daA]++",name:"constant.numeric.integer.base-11.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"12(#)([\\da-bA-B]++_)*[\\da-bA-B]++",name:"constant.numeric.integer.base-12.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"13(#)([\\da-cA-C]++_)*[\\da-cA-C]++",name:"constant.numeric.integer.base-13.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"14(#)([\\da-dA-D]++_)*[\\da-dA-D]++",name:"constant.numeric.integer.base-14.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"15(#)([\\da-eA-E]++_)*[\\da-eA-E]++",name:"constant.numeric.integer.base-15.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"16(#)([\\da-fA-F]++_)*[\\da-fA-F]++",name:"constant.numeric.integer.hexadecimal.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"17(#)([\\da-gA-G]++_)*[\\da-gA-G]++",name:"constant.numeric.integer.base-17.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"18(#)([\\da-hA-H]++_)*[\\da-hA-H]++",name:"constant.numeric.integer.base-18.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"19(#)([\\da-iA-I]++_)*[\\da-iA-I]++",name:"constant.numeric.integer.base-19.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"20(#)([\\da-jA-J]++_)*[\\da-jA-J]++",name:"constant.numeric.integer.base-20.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"21(#)([\\da-kA-K]++_)*[\\da-kA-K]++",name:"constant.numeric.integer.base-21.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"22(#)([\\da-lA-L]++_)*[\\da-lA-L]++",name:"constant.numeric.integer.base-22.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"23(#)([\\da-mA-M]++_)*[\\da-mA-M]++",name:"constant.numeric.integer.base-23.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"24(#)([\\da-nA-N]++_)*[\\da-nA-N]++",name:"constant.numeric.integer.base-24.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"25(#)([\\da-oA-O]++_)*[\\da-oA-O]++",name:"constant.numeric.integer.base-25.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"26(#)([\\da-pA-P]++_)*[\\da-pA-P]++",name:"constant.numeric.integer.base-26.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"27(#)([\\da-qA-Q]++_)*[\\da-qA-Q]++",name:"constant.numeric.integer.base-27.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"28(#)([\\da-rA-R]++_)*[\\da-rA-R]++",name:"constant.numeric.integer.base-28.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"29(#)([\\da-sA-S]++_)*[\\da-sA-S]++",name:"constant.numeric.integer.base-29.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"30(#)([\\da-tA-T]++_)*[\\da-tA-T]++",name:"constant.numeric.integer.base-30.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"31(#)([\\da-uA-U]++_)*[\\da-uA-U]++",name:"constant.numeric.integer.base-31.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"32(#)([\\da-vA-V]++_)*[\\da-vA-V]++",name:"constant.numeric.integer.base-32.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"33(#)([\\da-wA-W]++_)*[\\da-wA-W]++",name:"constant.numeric.integer.base-33.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"34(#)([\\da-xA-X]++_)*[\\da-xA-X]++",name:"constant.numeric.integer.base-34.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"35(#)([\\da-yA-Y]++_)*[\\da-yA-Y]++",name:"constant.numeric.integer.base-35.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"36(#)([\\da-zA-Z]++_)*[\\da-zA-Z]++",name:"constant.numeric.integer.base-36.erlang"},{match:"\\d++#([\\da-zA-Z]++_)*[\\da-zA-Z]++",name:"invalid.illegal.integer.erlang"},{match:"(\\d++_)*\\d++",name:"constant.numeric.integer.decimal.erlang"}]},"parenthesized-expression":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.expression.begin.erlang"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.expression.end.erlang"}},name:"meta.expression.parenthesized",patterns:[{include:"#everything-else"}]},"record-directive":{begin:"^\\s*+(-)\\s*+(record)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)",beginCaptures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.import.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.type.class.record.definition.erlang"},5:{name:"punctuation.separator.parameters.erlang"}},end:"(\\))\\s*+(\\.)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.record.erlang",patterns:[{include:"#internal-record-body"},{include:"#comment"}]},"record-usage":{patterns:[{captures:{1:{name:"keyword.operator.record.erlang"},2:{name:"entity.name.type.class.record.erlang"},3:{name:"punctuation.separator.record-field.erlang"},4:{name:"variable.other.field.erlang"}},match:"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')",name:"meta.record-usage.erlang"},{begin:"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')",beginCaptures:{1:{name:"keyword.operator.record.erlang"},2:{name:"entity.name.type.class.record.erlang"}},end:"(?<=\\})",name:"meta.record-usage.erlang",patterns:[{include:"#internal-record-body"}]}]},"sigil-docstring":{begin:'(~[bBsS]?)((["]{3,})\\s*)(\\S.*)?$',beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"meta.string.quoted.triple.begin.erlang"},3:{name:"punctuation.definition.string.begin.erlang"},4:{name:"invalid.illegal.string.erlang"}},comment:"Only whitespace characters are allowed after the beggining and before the closing sequences and those cannot be in the same line",end:'^(\\s*(\\3))(?!")',endCaptures:{1:{name:"meta.string.quoted.triple.end.erlang"},2:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.tripple.sigil.erlang"},"sigil-string":{patterns:[{include:"#sigil-string-parenthesis"},{include:"#sigil-string-parenthesis-verbatim"},{include:"#sigil-string-curly-brackets"},{include:"#sigil-string-curly-brackets-verbatim"},{include:"#sigil-string-square-brackets"},{include:"#sigil-string-square-brackets-verbatim"},{include:"#sigil-string-less-greater"},{include:"#sigil-string-less-greater-verbatim"},{include:"#sigil-string-single-character"},{include:"#sigil-string-single-character-verbatim"},{include:"#sigil-string-single-quote"},{include:"#sigil-string-single-quote-verbatim"},{include:"#sigil-string-double-quote"},{include:"#sigil-string-double-quote-verbatim"}]},"sigil-string-curly-brackets":{begin:"(~[bs]?)([{])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([}])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.curly-brackets.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-curly-brackets-verbatim":{begin:"(~[BS])([{])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([}])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.curly-brackets.sigil.erlang"},"sigil-string-double-quote":{begin:'(~[bs]?)(")',beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.double.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-double-quote-verbatim":{begin:'(~[BS])(")',beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.double.sigil.erlang"},"sigil-string-less-greater":{begin:"(~[bs]?)(<)",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.less-greater.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-less-greater-verbatim":{begin:"(~[BS])(<)",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.less-greater.sigil.erlang"},"sigil-string-parenthesis":{begin:"(~[bs]?)([(])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([)])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.parenthesis.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-parenthesis-verbatim":{begin:"(~[BS])([(])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([)])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.parenthesis.sigil.erlang"},"sigil-string-single-character":{begin:"(~[bs]?)([/\\|`#])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.other.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-single-character-verbatim":{begin:"(~[BS])([/\\|`#])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.other.sigil.erlang"},"sigil-string-single-quote":{begin:"(~[bs]?)(')",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.single.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-single-quote-verbatim":{begin:"(~[BS])(')",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.single.sigil.erlang"},"sigil-string-square-brackets":{begin:"(~[bs]?)([\\[])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([\\]])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.square-brackets.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-square-brackets-verbatim":{begin:"(~[BS])([\\[])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([\\]])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.square-brackets.sigil.erlang"},string:{begin:'(")',beginCaptures:{1:{name:"punctuation.definition.string.begin.erlang"}},end:'(")',endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.double.erlang",patterns:[{include:"#internal-string-body"}]},"symbolic-operator":{match:"\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::|\\?=",name:"keyword.operator.symbolic.erlang"},"textual-operator":{match:"\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b",name:"keyword.operator.textual.erlang"},tuple:{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.definition.tuple.begin.erlang"}},end:"(\\})",endCaptures:{1:{name:"punctuation.definition.tuple.end.erlang"}},name:"meta.structure.tuple.erlang",patterns:[{match:",",name:"punctuation.separator.tuple.erlang"},{include:"#everything-else"}]},variable:{captures:{1:{name:"variable.other.erlang"},2:{name:"variable.language.omitted.erlang"}},match:"(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)"}},scopeName:"source.erlang",aliases:["erl"]});var n=[e];export{n as default}; diff --git a/assets/chunks/fennel.C6XIsc4F.js b/assets/chunks/fennel.C6XIsc4F.js new file mode 100644 index 000000000..4af235c6e --- /dev/null +++ b/assets/chunks/fennel.C6XIsc4F.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Fennel",name:"fennel",patterns:[{include:"#expression"}],repository:{comment:{patterns:[{begin:";",end:"$",name:"comment.line.semicolon.fennel"}]},constants:{patterns:[{match:"nil",name:"constant.language.nil.fennel"},{match:"false|true",name:"constant.language.boolean.fennel"},{match:"(-?\\d+\\.\\d+([eE][+-]?\\d+)?)",name:"constant.numeric.double.fennel"},{match:"(-?\\d+)",name:"constant.numeric.integer.fennel"}]},expression:{patterns:[{include:"#comment"},{include:"#constants"},{include:"#sexp"},{include:"#table"},{include:"#vector"},{include:"#keywords"},{include:"#special"},{include:"#lua"},{include:"#strings"},{include:"#methods"},{include:"#symbols"}]},keywords:{match:":[^ ]+",name:"constant.keyword.fennel"},lua:{patterns:[{match:"\\b(assert|collectgarbage|dofile|error|getmetatable|ipairs|load|loadfile|next|pairs|pcall|print|rawequal|rawget|rawlen|rawset|require|select|setmetatable|tonumber|tostring|type|xpcall)\\b",name:"support.function.fennel"},{match:"\\b(coroutine|coroutine.create|coroutine.isyieldable|coroutine.resume|coroutine.running|coroutine.status|coroutine.wrap|coroutine.yield|debug|debug.debug|debug.gethook|debug.getinfo|debug.getlocal|debug.getmetatable|debug.getregistry|debug.getupvalue|debug.getuservalue|debug.sethook|debug.setlocal|debug.setmetatable|debug.setupvalue|debug.setuservalue|debug.traceback|debug.upvalueid|debug.upvaluejoin|io|io.close|io.flush|io.input|io.lines|io.open|io.output|io.popen|io.read|io.stderr|io.stdin|io.stdout|io.tmpfile|io.type|io.write|math|math.abs|math.acos|math.asin|math.atan|math.ceil|math.cos|math.deg|math.exp|math.floor|math.fmod|math.huge|math.log|math.max|math.maxinteger|math.min|math.mininteger|math.modf|math.pi|math.rad|math.random|math.randomseed|math.sin|math.sqrt|math.tan|math.tointeger|math.type|math.ult|os|os.clock|os.date|os.difftime|os.execute|os.exit|os.getenv|os.remove|os.rename|os.setlocale|os.time|os.tmpname|package|package.config|package.cpath|package.loaded|package.loadlib|package.path|package.preload|package.searchers|package.searchpath|string|string.byte|string.char|string.dump|string.find|string.format|string.gmatch|string.gsub|string.len|string.lower|string.match|string.pack|string.packsize|string.rep|string.reverse|string.sub|string.unpack|string.upper|table|table.concat|table.insert|table.move|table.pack|table.remove|table.sort|table.unpack|utf8|utf8.char|utf8.charpattern|utf8.codepoint|utf8.codes|utf8.len|utf8.offset)\\b",name:"support.function.library.fennel"},{match:"\\b(_G|_VERSION)\\b",name:"constant.language.fennel"}]},methods:{patterns:[{match:"\\w+\\:\\w+",name:"entity.name.function.method.fennel"}]},sexp:{begin:"\\(",beginCaptures:{0:{name:"punctuation.paren.open.fennel"}},end:"\\)",endCaptures:{0:{name:"punctuation.paren.close.fennel"}},name:"sexp.fennel",patterns:[{include:"#expression"}]},special:{patterns:[{match:"\\#|\\%|\\+|\\*|[?][.]|(\\.)?\\.|(\\/)?\\/|:|<=?|=|>=?|\\^",name:"keyword.special.fennel"},{match:"(\\-\\>(\\>)?)",name:"keyword.special.fennel"},{match:"\\-\\?\\>(\\>)?",name:"keyword.special.fennel"},{match:"-",name:"keyword.special.fennel"},{match:"not=",name:"keyword.special.fennel"},{match:"set-forcibly!",name:"keyword.special.fennel"},{match:"\\b(and|band|bnot|bor|bxor|collect|comment|do|doc|doto|each|eval-compiler|for|global|hashfn|icollect|if|import-macros|include|lambda|length|let|local|lshift|lua|macro|macrodebug|macros|match|not=?|or|partial|pick-args|pick-values|quote|require-macros|rshift|set|tset|values|var|when|while|with-open)\\b",name:"keyword.special.fennel"},{match:"\\b(fn)\\b",name:"keyword.control.fennel"},{match:"~=",name:"keyword.special.fennel"},{match:"λ",name:"keyword.special.fennel"}]},strings:{begin:'"',end:'"',name:"string.quoted.double.fennel",patterns:[{match:"\\\\.",name:"constant.character.escape.fennel"}]},symbols:{patterns:[{match:"\\w+(?:\\.\\w+)+",name:"entity.name.function.symbol.fennel"},{match:"\\w+",name:"variable.other.fennel"}]},table:{begin:"\\{",beginCaptures:{0:{name:"punctuation.table.bracket.open.fennel"}},end:"\\}",endCaptures:{0:{name:"punctuation.table.bracket.close.fennel"}},name:"table.fennel",patterns:[{include:"#expression"}]},vector:{begin:"\\[",beginCaptures:{0:{name:"punctuation.vector.bracket.open.fennel"}},end:"\\]",endCaptures:{0:{name:"punctuation.vector.bracket.close.fennel"}},name:"meta.vector.fennel",patterns:[{include:"#expression"}]}},scopeName:"source.fnl"});var n=[e];export{n as default}; diff --git a/assets/chunks/fish.DfeQjIbs.js b/assets/chunks/fish.DfeQjIbs.js new file mode 100644 index 000000000..5dbfb6130 --- /dev/null +++ b/assets/chunks/fish.DfeQjIbs.js @@ -0,0 +1,5 @@ +const e=Object.freeze({displayName:"Fish",fileTypes:["fish"],firstLineMatch:"^#!.*\\bfish\\b",foldingStartMarker:"^\\s*(function|while|if|switch|for|begin)\\s.*$",foldingStopMarker:"^\\s*end\\s*$",name:"fish",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.fish"}},comment:"Double quoted string",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.fish"}},name:"string.quoted.double.fish",patterns:[{include:"#variable"},{comment:"https://fishshell.com/docs/current/#quotes",match:'\\\\(\\"|\\$|$|\\\\)',name:"constant.character.escape.fish"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.fish"}},comment:"Single quoted string",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.fish"}},name:"string.quoted.single.fish",patterns:[{comment:"https://fishshell.com/docs/current/#quotes",match:"\\\\('|`|\\\\)",name:"constant.character.escape.fish"}]},{captures:{1:{name:"punctuation.definition.comment.fish"}},comment:"line comment",match:"(?|\\^|>>|\\^\\^)(&[012\\-])?| +[012](<|>|>>)(&[012\\-])? +)`,name:"keyword.operator.redirect.fish"},{match:"&",name:"keyword.operator.background.fish"},{match:"\\*\\*|\\*|\\?",name:"keyword.operator.glob.fish"},{captures:{1:{name:"source.option.fish"}},comment:"command short/long options",match:"\\s(-{1,2}[a-zA-Z_\\-0-9]+|-\\w)\\b"},{include:"#variable"},{include:"#escape"}],repository:{escape:{patterns:[{comment:"single character character escape sequences",match:`\\\\[abefnrtv $*?~#(){}\\[\\]<>^&|;"']`,name:"constant.character.escape.single.fish"},{comment:"escapes the ascii character with the specified value (hexadecimal)",match:"\\\\x[0-9a-fA-F]{1,2}",name:"constant.character.escape.hex-ascii.fish"},{comment:"escapes a byte of data with the specified value (hexadecimal). If you are using mutibyte encoding, this can be used to enter invalid strings. Only use this if you know what are doing.",match:"\\\\X[0-9a-fA-F]{1,2}",name:"constant.character.escape.hex-byte.fish"},{comment:"escapes the ascii character with the specified value (octal)",match:"\\\\[0-7]{1,3}",name:"constant.character.escape.octal.fish"},{comment:"escapes the 16-bit unicode character with the specified value (hexadecimal)",match:"\\\\u[0-9a-fA-F]{1,4}",name:"constant.character.escape.unicode-16-bit.fish"},{comment:"escapes the 32-bit unicode character with the specified value (hexadecimal)",match:"\\\\U[0-9a-fA-F]{1,8}",name:"constant.character.escape.unicode-32-bit.fish"},{comment:"escapes the control sequence generated by pressing the control key and the specified letter",match:"\\\\c[a-zA-Z]",name:"constant.character.escape.control.fish"}]},variable:{patterns:[{captures:{1:{name:"punctuation.definition.variable.fish"}},comment:"Built-in variables visible by pressing $ TAB TAB in a new shell",match:"(\\$)(argv|CMD_DURATION|COLUMNS|fish_bind_mode|fish_color_autosuggestion|fish_color_cancel|fish_color_command|fish_color_comment|fish_color_cwd|fish_color_cwd_root|fish_color_end|fish_color_error|fish_color_escape|fish_color_hg_added|fish_color_hg_clean|fish_color_hg_copied|fish_color_hg_deleted|fish_color_hg_dirty|fish_color_hg_modified|fish_color_hg_renamed|fish_color_hg_unmerged|fish_color_hg_untracked|fish_color_history_current|fish_color_host|fish_color_host_remote|fish_color_match|fish_color_normal|fish_color_operator|fish_color_param|fish_color_quote|fish_color_redirection|fish_color_search_match|fish_color_selection|fish_color_status|fish_color_user|fish_color_valid_path|fish_complete_path|fish_function_path|fish_greeting|fish_key_bindings|fish_pager_color_completion|fish_pager_color_description|fish_pager_color_prefix|fish_pager_color_progress|fish_pid|fish_prompt_hg_status_added|fish_prompt_hg_status_copied|fish_prompt_hg_status_deleted|fish_prompt_hg_status_modified|fish_prompt_hg_status_order|fish_prompt_hg_status_unmerged|fish_prompt_hg_status_untracked|FISH_VERSION|history|hostname|IFS|LINES|pipestatus|status|umask|version)\\b",name:"variable.language.fish"},{captures:{1:{name:"punctuation.definition.variable.fish"}},match:"(\\$)[a-zA-Z_][a-zA-Z0-9_]*",name:"variable.other.normal.fish"}]}},scopeName:"source.fish"});var t=[e];export{t as default}; diff --git a/assets/chunks/fortran-fixed-form.Cx0tWteX.js b/assets/chunks/fortran-fixed-form.Cx0tWteX.js new file mode 100644 index 000000000..04058e565 --- /dev/null +++ b/assets/chunks/fortran-fixed-form.Cx0tWteX.js @@ -0,0 +1 @@ +import e from"./fortran-free-form.D6pmzCqS.js";const n=Object.freeze({displayName:"Fortran (Fixed Form)",fileTypes:["f","F","f77","F77","for","FOR"],injections:{"source.fortran.fixed - ( string | comment )":{patterns:[{include:"#line-header"},{include:"#line-end-comment"}]}},name:"fortran-fixed-form",patterns:[{include:"#comments"},{include:"#line-header"},{include:"source.fortran.free"}],repository:{comments:{patterns:[{begin:"^[cC\\*]",end:"\\n",name:"comment.line.fortran"},{begin:"^ *!",end:"\\n",name:"comment.line.fortran"}]},"line-end-comment":{begin:"(?<=^.{72})(?!\\n)",end:"(?=\\n)",name:"comment.line-end.fortran"},"line-header":{captures:{1:{name:"constant.numeric.fortran"},2:{name:"keyword.line-continuation-operator.fortran"},3:{name:"source.fortran.free"},4:{name:"invalid.error.fortran"}},match:"^(?!\\s*[!#])(?:([ \\d]{5} )|( {5}.)|(\\t)|(.{1,5}))"}},scopeName:"source.fortran.fixed",embeddedLangs:["fortran-free-form"],aliases:["f","for","f77"]});var o=[...e,n];export{o as default}; diff --git a/assets/chunks/fortran-free-form.D6pmzCqS.js b/assets/chunks/fortran-free-form.D6pmzCqS.js new file mode 100644 index 000000000..d2ee5d6f3 --- /dev/null +++ b/assets/chunks/fortran-free-form.D6pmzCqS.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Fortran (Free Form)",fileTypes:["f90","F90","f95","F95","f03","F03","f08","F08","f18","F18","fpp","FPP",".pf",".PF"],firstLineMatch:"(?i)-[*]- mode: fortran free -[*]-",injections:{"source.fortran.free - ( string | comment | meta.preprocessor )":{patterns:[{include:"#line-continuation-operator"},{include:"#preprocessor"}]},"string.quoted.double.fortran":{patterns:[{include:"#string-line-continuation-operator"}]},"string.quoted.single.fortran":{patterns:[{include:"#string-line-continuation-operator"}]}},name:"fortran-free-form",patterns:[{include:"#preprocessor"},{include:"#comments"},{include:"#constants"},{include:"#operators"},{include:"#array-constructor"},{include:"#parentheses"},{include:"#include-statement"},{include:"#import-statement"},{include:"#block-data-definition"},{include:"#function-definition"},{include:"#module-definition"},{include:"#program-definition"},{include:"#submodule-definition"},{include:"#subroutine-definition"},{include:"#procedure-definition"},{include:"#derived-type-definition"},{include:"#enum-block-construct"},{include:"#interface-block-constructs"},{include:"#procedure-specification-statement"},{include:"#type-specification-statements"},{include:"#specification-statements"},{include:"#control-constructs"},{include:"#control-statements"},{include:"#execution-statements"},{include:"#intrinsic-functions"},{include:"#variable"}],repository:{"IO-item-list":{begin:`(?i)(?=\\s*[a-z0-9"'])`,comment:"Name list.",contentName:"meta.name-list.fortran",end:"(?=[\\);!\\n])",patterns:[{include:"#constants"},{include:"#operators"},{include:"#intrinsic-functions"},{include:"#array-constructor"},{include:"#parentheses"},{include:"#brackets"},{include:"#assignment-keyword"},{include:"#operator-keyword"},{include:"#variable"}]},"IO-keywords":{begin:"(?i)\\G\\s*\\b(?:(read)|(write))\\s*(\\()",beginCaptures:{1:{name:"keyword.control.generic-spec.read.fortran"},2:{name:"keyword.control.generic-spec.write.fortran"},3:{name:"punctuation.parentheses.left.fortran"}},comment:"IO generic specification.",end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{captures:{1:{name:"keyword.control.generic-spec.formatted.fortran"},2:{name:"keyword.control.generic-spec.unformatted.fortran"}},match:"(?i)\\G\\s*\\b(?:(formatted)|(unformatted))\\b"},{include:"#invalid-word"}]},"IO-statements":{patterns:[{begin:"(?ix)\\b(?:(backspace)|(close)|(endfile)|(format)|(inquire)|(open)|(read)|(rewind)|(write))\\s*(?=\\()",beginCaptures:{1:{name:"keyword.control.backspace.fortran"},2:{name:"keyword.control.close.fortran"},3:{name:"keyword.control.endfile.fortran"},4:{name:"keyword.control.format.fortran"},5:{name:"keyword.control.inquire.fortran"},6:{name:"keyword.control.open.fortran"},7:{name:"keyword.control.read.fortran"},8:{name:"keyword.control.rewind.fortran"},9:{name:"keyword.control.write.fortran"},10:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.IO.fortran",patterns:[{include:"#parentheses-dummy-variables"},{include:"#IO-item-list"}]},{captures:{1:{name:"keyword.control.backspace.fortran"},2:{name:"keyword.control.endfile.fortran"},3:{name:"keyword.control.format.fortran"},4:{name:"keyword.control.print.fortran"},5:{name:"keyword.control.read.fortran"},6:{name:"keyword.control.rewind.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\b(?:(backspace)|(endfile)|(format)|(print)|(read)|(rewind))\\b"},{begin:"(?i)\\b(?:(flush)|(wait))\\s*(?=\\()",beginCaptures:{1:{name:"keyword.control.flush.fortran"},2:{name:"keyword.control.wait.fortran"},3:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2003 standard.",end:"(?)(\\=)(?!\\=|\\>)",name:"keyword.operator.assignment.fortran"},"associate-construct":{begin:"(?i)\\b(associate)\\b(?=\\s*\\()",beginCaptures:{1:{name:"keyword.control.associate.fortran"}},comment:"Introduced in the Fortran 2003 standard.",contentName:"meta.block.associate.fortran",end:"(?i)\\b(end\\s*associate)\\b",endCaptures:{1:{name:"keyword.control.endassociate.fortran"}},patterns:[{include:"$base"}]},"asynchronous-attribute":{captures:{1:{name:"storage.modifier.asynchronous.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\G\\s*\\b(asynchronous)\\b"},"attribute-specification-statement":{begin:"(?ix)(?=\\b(?:allocatable|asynchronous|contiguous |external|intrinsic|optional|parameter|pointer|private|protected|public|save|target|value|volatile)\\b |(bind|dimension|intent)\\s*\\( |(codimension)\\s*\\[)",end:"(?=[;!\\n])",name:"meta.statement.attribute-specification.fortran",patterns:[{include:"#access-attribute"},{include:"#allocatable-attribute"},{include:"#asynchronous-attribute"},{include:"#codimension-attribute"},{include:"#contiguous-attribute"},{include:"#dimension-attribute"},{include:"#external-attribute"},{include:"#intent-attribute"},{include:"#intrinsic-attribute"},{include:"#language-binding-attribute"},{include:"#optional-attribute"},{include:"#parameter-attribute"},{include:"#pointer-attribute"},{include:"#protected-attribute"},{include:"#save-attribute"},{include:"#target-attribute"},{include:"#value-attribute"},{include:"#volatile-attribute"},{begin:"(?=\\s*::)",comment:"Attribute list.",contentName:"meta.attribute-list.normal.fortran",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},patterns:[{include:"#invalid-word"}]},{include:"#name-list"}]},"block-construct":{begin:"(?i)\\b(block)\\b(?!\\s*\\bdata\\b)",beginCaptures:{1:{name:"keyword.control.associate.fortran"}},comment:"Introduced in the Fortran 2008 standard.",contentName:"meta.block.block.fortran",end:"(?i)\\b(end\\s*block)\\b",endCaptures:{1:{name:"keyword.control.endassociate.fortran"}},patterns:[{include:"$base"}]},"block-data-definition":{begin:"(?i)\\b(block\\s*data)\\b(?:\\s+([a-z]\\w*)\\b)?",beginCaptures:{1:{name:"keyword.control.block-data.fortran"},2:{name:"entity.name.block-data.fortran"}},end:"(?ix)\\b(?:(end\\s*block\\s*data)(?:\\s+(\\2))?|(end))\\b (?:\\s*(\\S((?!\\n).)*))?",endCaptures:{1:{name:"keyword.control.end-block-data.fortran"},2:{name:"entity.name.block-data.fortran"},3:{name:"keyword.control.end-block-data.fortran"},4:{name:"invalid.error.block-data-definition.fortran"}},name:"meta.block-data.fortran",patterns:[{include:"$base"}]},brackets:{begin:"\\s*(\\[)",beginCaptures:{1:{name:"punctuation.bracket.left.fortran"}},end:"(\\])",endCaptures:{1:{name:"punctuation.bracket.left.fortran"}},patterns:[{include:"#comments"},{include:"#constants"},{include:"#operators"},{include:"#array-constructor"},{include:"#parentheses"},{include:"#intrinsic-functions"},{include:"#variable"}]},"call-statement":{patterns:[{begin:"(?i)\\s*\\b(call)\\b",beginCaptures:{1:{name:"keyword.control.call.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.call.fortran",patterns:[{begin:"(?ix)\\G\\s*([a-z]\\w*)(%)([a-z]\\w*)\\b\\s*(?=\\()",beginCaptures:{1:{name:"variable.other.fortran"},2:{name:"keyword.accessor.fortran"},3:{name:"entity.name.function.subroutine.fortran"}},comment:"type-bound subroutines",end:"(?\\=|\\>|\\<|\\<\\=|\\-|\\+|\\/|\\/\\/|\\*\\*|\\*) |(\\S.*) )\\s*(\\))",beginCaptures:{1:{name:"keyword.other.operator.fortran"},2:{name:"punctuation.parentheses.left.fortran"},3:{name:"keyword.operator.fortran"},4:{name:"invalid.error.generic-interface-block-op.fortran"},5:{name:"punctuation.parentheses.right.fortran"}},comment:"Operator generic interface.",end:"(?ix)\\b(end\\s*interface)\\b (?:\\s*\\b(\\1)\\b\\s*(\\()\\s*(?:(\\3)|(\\S.*))\\s*(\\)))?",endCaptures:{1:{name:"keyword.control.endinterface.fortran"},2:{name:"keyword.other.operator.fortran"},3:{name:"punctuation.parentheses.left.fortran"},4:{name:"keyword.operator.fortran"},5:{name:"invalid.error.generic-interface-block-op-end.fortran"},6:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#interface-procedure-statement"},{include:"$base"}]},{begin:"(?ix)\\G\\s*\\b(?:(read)|(write))\\s* (\\()\\s*(?:(formatted)|(unformatted)|(\\S.*))\\s*(\\))",beginCaptures:{1:{name:"keyword.other.read.fortran"},2:{name:"keyword.other.write.fortran"},3:{name:"punctuation.parentheses.left.fortran"},4:{name:"keyword.other.formatted.fortran"},5:{name:"keyword.other.unformatted.fortran"},6:{name:"invalid.error.generic-interface-block.fortran"},7:{name:"punctuation.parentheses.right.fortran"}},comment:"Read/Write generic interface.",end:"(?ix)\\b(end\\s*interface)\\b(?:\\s*\\b(?:(\\2)|(\\3))\\b\\s* (\\()\\s*(?:(\\4)|(\\5)|(\\S.*))\\s*(\\)))?",endCaptures:{1:{name:"keyword.control.endinterface.fortran"},2:{name:"keyword.other.read.fortran"},3:{name:"keyword.other.write.fortran"},4:{name:"punctuation.parentheses.left.fortran"},5:{name:"keyword.other.formatted.fortran"},6:{name:"keyword.other.unformatted.fortran"},7:{name:"invalid.error.generic-interface-block-end.fortran"},8:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#interface-procedure-statement"},{include:"$base"}]},{begin:"(?i)\\G\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.function.fortran"}},comment:"Generic interface.",end:"(?i)\\b(end\\s*interface)\\b(?:\\s*\\b(\\1)\\b)?",endCaptures:{1:{name:"keyword.control.endinterface.fortran"},2:{name:"entity.name.function.fortran"}},patterns:[{include:"#interface-procedure-statement"},{include:"$base"}]}]},"goto-statement":{begin:"(?i)\\s*\\b(go\\s*to)\\b",beginCaptures:{1:{name:"keyword.control.goto.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.goto.fortran",patterns:[{include:"$base"}]},"if-construct":{patterns:[{begin:"(?i)\\b(if)\\b",beginCaptures:{1:{name:"keyword.control.if.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"#logical-control-expression"},{begin:"(?i)\\s*\\b(then)\\b",beginCaptures:{1:{name:"keyword.control.then.fortran"}},contentName:"meta.block.if.fortran",end:"(?i)\\b(end\\s*if)\\b",endCaptures:{1:{name:"keyword.control.endif.fortran"}},patterns:[{begin:"(?i)\\b(else\\s*if)\\b",beginCaptures:{1:{name:"keyword.control.elseif.fortran"}},comment:"else if statement",end:"(?=[;!\\n])",patterns:[{include:"#parentheses"},{captures:{1:{name:"keyword.control.then.fortran"},2:{name:"meta.label.elseif.fortran"}},comment:"capture the label if present",match:"(?i)\\b(then)\\b(\\s*[a-z]\\w*)?"},{include:"#invalid-word"}]},{begin:"(?i)\\b(else)\\b",beginCaptures:{1:{name:"keyword.control.else.fortran"}},comment:"else block",end:"(?i)(?=\\b(end\\s*if)\\b)",patterns:[{begin:"(?!(\\s*(;|!|\\n)))",comment:"rest of else line",end:"(?=[;!\\n])",patterns:[{captures:{1:{name:"meta.label.else.fortran"},2:{name:"invalid.error.label.else.fortran"}},comment:"capture the label if present",match:"\\s*([a-z]\\w*)?\\s*\\b(\\w*)\\b"},{include:"#invalid-word"}]},{begin:"(?i)(?!\\b(end\\s*if)\\b)",end:"(?i)(?=\\b(end\\s*if)\\b)",patterns:[{include:"$base"}]}]},{include:"$base"}]},{begin:"(?i)(?=\\s*[a-z])",end:"(?=[;!\\n])",name:"meta.statement.control.if.fortran",patterns:[{include:"$base"}]}]}]},"image-control-statement":{patterns:[{include:"#sync-all-statement"},{include:"#sync-statement"},{include:"#event-statement"},{include:"#form-team-statement"},{include:"#fail-image-statement"}]},"implicit-statement":{begin:"(?i)\\b(implicit)\\b",beginCaptures:{1:{name:"keyword.other.implicit.fortran"}},end:"(?=[;!\\n])",name:"meta.statement.implicit.fortran",patterns:[{captures:{1:{name:"keyword.other.none.fortran"}},match:"(?i)\\s*\\b(none)\\b"},{include:"$base"}]},"import-statement":{begin:"(?i)\\b(import)\\b",beginCaptures:{1:{name:"keyword.control.include.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.statement.include.fortran",patterns:[{begin:"(?i)\\G\\s*(?:(::)|(?=[a-z]))",beginCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"#name-list"}]},{begin:"\\G\\s*(,)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.other.all.fortran"}},match:"(?i)\\G\\s*\\b(all)\\b"},{captures:{1:{name:"keyword.other.none.fortran"}},match:"(?i)\\G\\s*\\b(none)\\b"},{begin:"(?i)\\G\\s*\\b(only)\\s*(:)",beginCaptures:{1:{name:"keyword.other.only.fortran"},2:{name:"keyword.other.colon.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"#name-list"}]},{include:"#invalid-word"}]}]},"include-statement":{begin:"(?i)\\b(include)\\b",beginCaptures:{1:{name:"keyword.control.include.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.statement.include.fortran",patterns:[{include:"#string-constant"},{include:"#invalid-character"}]},"intent-attribute":{begin:"(?i)\\s*\\b(intent)\\s*(\\()",beginCaptures:{1:{name:"storage.modifier.intent.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(\\))|(?=[;!\\n])",endCaptures:{1:{name:"punctuation.parentheses.left.fortran"}},patterns:[{captures:{1:{name:"storage.modifier.intent.in-out.fortran"},2:{name:"storage.modifier.intent.in.fortran"},3:{name:"storage.modifier.intent.out.fortran"}},match:"(?i)\\b(?:(in\\s*out)|(in)|(out))\\b"},{include:"#invalid-word"}]},"interface-block-constructs":{patterns:[{include:"#abstract-interface-block-construct"},{include:"#explicit-interface-block-construct"},{include:"#generic-interface-block-construct"}]},"interface-procedure-statement":{begin:`(?i)(?=[^'";!\\n]*\\bprocedure\\b)`,comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.statement.procedure.fortran",patterns:[{begin:"(?i)(?=\\G\\s*(?!\\bprocedure\\b))",comment:"Attribute list.",end:"(?i)(?=\\bprocedure\\b)",name:"meta.attribute-list.interface.fortran",patterns:[{include:"#module-attribute"},{include:"#invalid-word"}]},{begin:"(?i)\\s*\\b(procedure)\\b",beginCaptures:{1:{name:"keyword.other.procedure.fortran"}},comment:"Procedure statement.",end:"(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.operator.double-colon.fortran"}},match:"\\G\\s*(::)"},{include:"#procedure-name-list"}]}]},"intrinsic-attribute":{captures:{1:{name:"storage.modifier.intrinsic.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\s*\\b(intrinsic)\\b"},"intrinsic-functions":{patterns:[{begin:"(?ix)\\b(acosh|asinh|atanh|bge|bgt|ble|blt|dshiftl|dshiftr| findloc|hypot|iall|iany|image_index|iparity|is_contiguous|lcobound| leadz|mask[lr]|merge_bits|norm2|num_images|parity|popcnt|poppar| shift[alr]|storage_size|this_image|trailz|ucobound)\\s*(?=\\()",beginCaptures:{1:{name:"support.function.intrinsic.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic functions introduced in the Fortran 2008 standard.",end:"(?\\=|(?|\\<\\=|\\<)",name:"keyword.logical.fortran.modern"}]},"logical-type":{comment:"Introduced in the Fortran 1977 standard.",patterns:[{begin:"(?i)\\b(logical)\\s*(?=\\()",beginCaptures:{1:{name:"storage.type.logical.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},contentName:"meta.type-spec.fortran",end:"(?)",name:"keyword.other.point.fortran"},preprocessor:{begin:"^\\s*(#:?)",beginCaptures:{1:{name:"keyword.control.preprocessor.indicator.fortran"}},end:"\\n",name:"meta.preprocessor",patterns:[{include:"#preprocessor-if-construct"},{include:"#preprocessor-statements"}]},"preprocessor-arithmetic-operators":{captures:{1:{name:"keyword.operator.subtraction.fortran"},2:{name:"keyword.operator.addition.fortran"},3:{name:"keyword.operator.division.fortran"},4:{name:"keyword.operator.multiplication.fortran"}},comment:"division regex is different than in main fortran",match:"(\\-)|(\\+)|(\\/)|(\\*)"},"preprocessor-assignment-operator":{comment:"assignments with = are not allowed",match:"(?",endCaptures:{0:{name:"punctuation.definition.string.end.preprocessor.fortran"}},name:"string.quoted.other.lt-gt.include.preprocessor.fortran"},{include:"#line-continuation-operator"}]},"preprocessor-line-continuation-operator":{begin:"\\s*(\\\\)",beginCaptures:{1:{name:"constant.character.escape.line-continuation.preprocessor.fortran"}},end:"(?i)^"},"preprocessor-logical-operators":{captures:{1:{name:"keyword.operator.logical.preprocessor.and.fortran"},2:{name:"keyword.operator.logical.preprocessor.equals.fortran"},3:{name:"keyword.operator.logical.preprocessor.not_equals.fortran"},4:{name:"keyword.operator.logical.preprocessor.or.fortran"},5:{name:"keyword.operator.logical.preprocessor.less_eq.fortran"},6:{name:"keyword.operator.logical.preprocessor.more_eq.fortran"},7:{name:"keyword.operator.logical.preprocessor.less.fortran"},8:{name:"keyword.operator.logical.preprocessor.more.fortran"},9:{name:"keyword.operator.logical.preprocessor.complementary.fortran"},10:{name:"keyword.operator.logical.preprocessor.xor.fortran"},11:{name:"keyword.operator.logical.preprocessor.bitand.fortran"},12:{name:"keyword.operator.logical.preprocessor.not.fortran"},13:{name:"keyword.operator.logical.preprocessor.bitor.fortran"}},comment:"and:&&, bitand:&, or:||, bitor:|, not eq:!=, not:!, xor:^, compl:~",match:"(&&)|(==)|(\\!=)|(\\|\\|)|(\\<\\=)|(\\>=)|(\\<)|(\\>)|(~)|(\\^)|(&)|(\\!)|(\\|)",name:"keyword.operator.logical.preprocessor.fortran"},"preprocessor-operators":{patterns:[{include:"#preprocessor-line-continuation-operator"},{include:"#preprocessor-logical-operators"},{include:"#preprocessor-arithmetic-operators"}]},"preprocessor-pragma-statement":{begin:"(?i)\\G\\s*\\b(pragma)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.pragma.fortran"}},end:"(?=\\n)",name:"meta.preprocessor.pragma.fortran",patterns:[{include:"#preprocessor-comments"},{include:"#preprocessor-string-constant"}]},"preprocessor-statements":{patterns:[{include:"#preprocessor-define-statement"},{include:"#preprocessor-error-statement"},{include:"#preprocessor-include-statement"},{include:"#preprocessor-preprocessor-pragma-statement"},{include:"#preprocessor-undefine-statement"}]},"preprocessor-string-constant":{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.preprocessor.fortran"}},comment:"Double quote string",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.preprocessor.fortran"}},name:"string.quoted.double.include.preprocessor.fortran"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.preprocessor.fortran"}},comment:"Single quote string",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.preprocessor.fortran"}},name:"string.quoted.single.include.preprocessor.fortran"}]},"preprocessor-undefine-statement":{begin:"(?i)\\G\\s*\\b(undef)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.undef.fortran"}},end:"(?=\\n)",name:"meta.preprocessor.undef.fortran",patterns:[{include:"#preprocessor-comments"},{include:"#preprocessor-line-continuation-operator"}]},"private-attribute":{captures:{1:{name:"storage.modifier.private.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(private)\\b"},"procedure-call-dummy-variable":{match:"(?i)\\s*([a-z]\\w*)(?=\\s*\\=)(?!\\s*\\=\\=)",name:"variable.parameter.dummy-variable.fortran.modern"},"procedure-definition":{begin:`(?i)(?=[^'";!\\n]*\\bmodule\\s+procedure\\b)`,comment:"Procedure program unit. Introduced in the Fortran 2008 standard.",end:"(?=[;!\\n])",name:"meta.procedure.fortran",patterns:[{begin:"(?i)\\s*\\b(module\\s+procedure)\\b",beginCaptures:{1:{name:"keyword.other.procedure.fortran"}},end:"(?=[;!\\n])",patterns:[{begin:"(?i)\\G\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.function.procedure.fortran"}},comment:"Procedure body.",end:"(?ix)\\s*\\b(?:(end\\s*procedure)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",endCaptures:{1:{name:"keyword.other.endprocedure.fortran"},2:{name:"entity.name.function.procedure.fortran"},3:{name:"keyword.other.endprocedure.fortran"},4:{name:"invalid.error.procedure-definition.fortran"}},patterns:[{begin:"\\G(?!\\s*[;!\\n])",comment:"Rest of the first line in procedure construct - should be empty.",end:"(?=[;!\\n])",name:"meta.first-line.fortran",patterns:[{include:"#invalid-character"}]},{begin:"(?i)(?!\\s*(?:contains\\b|end\\s*[;!\\n]|end\\s*procedure\\b))",comment:"Specification and execution block.",end:"(?i)(?=\\s*(?:contains\\b|end\\s*[;!\\n]|end\\s*procedure\\b))",name:"meta.block.specification.procedure.fortran",patterns:[{include:"$self"}]},{begin:"(?i)\\s*(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Contains block.",end:"(?i)(?=\\s*(?:end\\s*[;!\\n]|end\\s*procedure\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$self"}]}]}]}]},"procedure-name":{captures:{1:{name:"entity.name.function.procedure.fortran"}},comment:"Procedure name.",match:"(?i)\\s*\\b([a-z]\\w*)\\b"},"procedure-name-list":{begin:"(?i)(?=\\s*[a-z])",comment:"Name list.",contentName:"meta.name-list.fortran",end:"(?=[;!\\n])",patterns:[{begin:"(?!\\s*\\n)",end:"(,)|(?=[!;\\n])",endCaptures:{1:{name:"punctuation.comma.fortran"}},patterns:[{include:"#procedure-name"},{include:"#pointer-operators"}]}]},"procedure-specification-statement":{begin:"(?i)(?=\\b(?:procedure)\\b)",comment:"Introduced in the Fortran 2003 standard.",end:"(?=[;!\\n])",name:"meta.specification.procedure.fortran",patterns:[{include:"#procedure-type"},{begin:"(?=\\s*(,|::|\\())",comment:"Attribute list.",contentName:"meta.attribute-list.procedure.fortran",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:"(,)|^|(?<=&)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=::|[,&;!\\n])",patterns:[{include:"#access-attribute"},{include:"#intent-attribute"},{include:"#optional-attribute"},{include:"#pointer-attribute"},{include:"#protected-attribute"},{include:"#save-attribute"},{include:"#invalid-word"}]}]},{include:"#procedure-name-list"}]},"procedure-type":{comment:"Introduced in the Fortran ???? standard.",patterns:[{begin:"(?i)\\b(procedure)\\s*(\\()",beginCaptures:{1:{name:"storage.type.procedure.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},contentName:"meta.type-spec.fortran",end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#types"},{include:"#procedure-name"}]},{captures:{1:{name:"storage.type.procedure.fortran"}},match:"(?i)\\b(procedure)\\b"}]},"program-definition":{begin:"(?i)(?=\\b(program)\\b)",comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.program.fortran",patterns:[{captures:{1:{name:"keyword.control.program.fortran"}},match:"(?i)\\G\\s*\\b(program)\\b"},{applyEndPatternLast:1,begin:"(?i)\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.program.fortran"}},comment:"Program body.",end:"(?ix)\\b(?:(end\\s*program)(?:\\s+([a-z_]\\w*))?|(end))\\b\\s*([^;!\\n]+)?(?=[;!\\n])",endCaptures:{1:{name:"keyword.control.endprogram.fortran"},2:{name:"entity.name.program.fortran"},3:{name:"keyword.control.endprogram.fortran"},4:{name:"invalid.error.program-definition.fortran"}},patterns:[{begin:"\\G",comment:"Program specification block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*program\\b))",name:"meta.block.specification.program.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Program contains block.",end:"(?i)(?=(?:end\\s*[;!\\n]|end\\s*program\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]},"protected-attribute":{captures:{1:{name:"storage.modifier.protected.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\s*\\b(protected)\\b"},"public-attribute":{captures:{1:{name:"storage.modifier.public.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(public)\\b"},"pure-attribute":{captures:{1:{name:"storage.modifier.impure.fortran"},2:{name:"storage.modifier.pure.fortran"}},comment:"Introduced in the Fortran 1995 standard.",match:"(?i)\\s*\\b(?:(impure)|(pure))\\b"},"recursive-attribute":{captures:{1:{name:"storage.modifier.non_recursive.fortran"},2:{name:"storage.modifier.recursive.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\s*\\b(?:(non_recursive)|(recursive))\\b"},"result-statement":{begin:"(?i)\\s*\\b(result)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.result.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#dummy-variable"}]},"return-statement":{begin:"(?i)\\s*\\b(return)\\b",beginCaptures:{1:{name:"keyword.control.return.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.return.fortran",patterns:[{include:"#invalid-character"}]},"save-attribute":{captures:{1:{name:"storage.modifier.save.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\s*\\b(save)\\b"},"select-case-construct":{begin:"(?i)\\b(select\\s*case)\\b",beginCaptures:{1:{name:"keyword.control.selectcase.fortran"}},comment:"Select case construct. Introduced in the Fortran 1990 standard.",end:"(?i)\\b(end\\s*select)\\b",endCaptures:{1:{name:"keyword.control.endselect.fortran"}},name:"meta.block.select.case.fortran",patterns:[{include:"#parentheses"},{begin:"(?i)\\b(case)\\b",beginCaptures:{1:{name:"keyword.control.case.fortran"}},end:"(?i)(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.control.default.fortran"}},match:"(?i)\\G\\s*\\b(default)\\b"},{include:"#parentheses"},{include:"#invalid-word"}]},{include:"$base"}]},"select-rank-construct":{begin:"(?i)\\b(select\\s*rank)\\b",beginCaptures:{1:{name:"keyword.control.selectrank.fortran"}},comment:"Select rank construct. Introduced in the Fortran 2008 standard.",end:"(?i)\\b(end\\s*select)\\b",endCaptures:{1:{name:"keyword.control.endselect.fortran"}},name:"meta.block.select.rank.fortran",patterns:[{include:"#parentheses"},{begin:"(?i)\\b(rank)\\b",beginCaptures:{1:{name:"keyword.control.rank.fortran"}},end:"(?i)(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.control.default.fortran"}},match:"(?i)\\G\\s*\\b(default)\\b"},{include:"#parentheses"},{include:"#invalid-word"}]},{include:"$base"}]},"select-type-construct":{begin:"(?i)\\b(select\\s*type)\\b",beginCaptures:{1:{name:"keyword.control.selecttype.fortran"}},comment:"Select type construct. Introduced in the Fortran 2003 standard.",end:"(?i)\\b(end\\s*select)\\b",endCaptures:{1:{name:"keyword.control.endselect.fortran"}},name:"meta.block.select.type.fortran",patterns:[{include:"#parentheses"},{begin:"(?i)\\b(?:(class)|(type))\\b",beginCaptures:{1:{name:"keyword.control.class.fortran"},2:{name:"keyword.control.type.fortran"}},end:"(?i)(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.control.default.fortran"}},match:"(?i)\\G\\s*\\b(default)\\b"},{captures:{1:{name:"keyword.control.is.fortran"}},match:"(?i)\\G\\s*\\b(is)\\b"},{include:"#parentheses"},{include:"#invalid-word"}]},{include:"$base"}]},"sequence-attribute":{captures:{1:{name:"storage.modifier.sequence.fortran"}},comment:"Introduced in the Fortran 20?? standard.",match:"(?i)\\s*\\b(sequence)\\b"},"specification-statements":{patterns:[{include:"#attribute-specification-statement"},{include:"#common-statement"},{include:"#data-statement"},{include:"#equivalence-statement"},{include:"#implicit-statement"},{include:"#namelist-statement"},{include:"#use-statement"}]},"stop-statement":{begin:"(?i)\\s*\\b(stop)\\b(?:\\s*\\b([a-z]\\w*)\\b)?",beginCaptures:{1:{name:"keyword.control.stop.fortran"},2:{name:"meta.label.stop.stop"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.stop.fortran",patterns:[{include:"#constants"},{include:"#string-operators"},{include:"#invalid-character"}]},"string-constant":{comment:"Introduced in the Fortran 1977 standard.",patterns:[{applyEndPatternLast:1,begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.fortran"}},comment:"String",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.fortran"}},name:"string.quoted.single.fortran",patterns:[{match:"''",name:"constant.character.escape.apostrophe.fortran"}]},{applyEndPatternLast:1,begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.fortran"}},comment:"String",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.fortran"}},name:"string.quoted.double.fortran",patterns:[{match:'""',name:"constant.character.escape.quote.fortran"}]}]},"string-line-continuation-operator":{begin:"(&)(?=\\s*\\n)",beginCaptures:{1:{name:"keyword.operator.line-continuation.fortran"}},comment:"Operator that allows a line to be continued on the next line.",end:"(?i)^(?:(?=\\s*[^\\s!&])|\\s*(&))",endCaptures:{1:{name:"keyword.operator.line-continuation.fortran"}},patterns:[{include:"#comments"},{match:"\\S.*",name:"invalid.error.string-line-cont.fortran"}]},"string-operators":{comment:"Introduced in the Fortran 19?? standard.",match:"(\\/\\/)",name:"keyword.other.concatination.fortran"},"submodule-definition":{begin:"(?i)(?=\\b(submodule)\\s*\\()",comment:"Introduced in the Fortran 2008 standard.",end:"(?=[;!\\n])",name:"meta.submodule.fortran",patterns:[{begin:"(?i)\\G\\s*\\b(submodule)\\s*(\\()\\s*(\\w+)",beginCaptures:{1:{name:"keyword.other.submodule.fortran"},2:{name:"punctuation.parentheses.left.fortran"},3:{name:"entity.name.class.submodule.fortran"}},end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.left.fortran"}},patterns:[]},{applyEndPatternLast:1,begin:"(?i)\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.module.submodule.fortran"}},comment:"Submodule body.",end:"(?ix)\\s*\\b(?:(end\\s*submodule)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",endCaptures:{1:{name:"keyword.other.endsubmodule.fortran"},2:{name:"entity.name.module.submodule.fortran"},3:{name:"keyword.other.endsubmodule.fortran"},4:{name:"invalid.error.submodule.fortran"}},patterns:[{begin:"\\G",comment:"Submodule specification block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*submodule\\b))",name:"meta.block.specification.submodule.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Submodule contains block.",end:"(?i)(?=\\s*(?:end\\s*[;!\\n]|end\\s*submodule\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]},"subroutine-definition":{begin:`(?i)(?=([^:'";!\\n](?!\\bend))*\\bsubroutine\\b)`,comment:"Subroutine program unit. Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.subroutine.fortran",patterns:[{begin:"(?i)(?=\\G\\s*(?!\\bsubroutine\\b))",comment:"Attribute list.",end:"(?i)(?=\\bsubroutine\\b)",name:"meta.attribute-list.subroutine.fortran",patterns:[{include:"#elemental-attribute"},{include:"#module-attribute"},{include:"#pure-attribute"},{include:"#recursive-attribute"},{include:"#invalid-word"}]},{begin:"(?i)\\s*\\b(subroutine)\\b",beginCaptures:{1:{name:"keyword.other.subroutine.fortran"}},end:"(?=[;!\\n])",patterns:[{begin:"(?i)\\G\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.function.subroutine.fortran"}},comment:"Subroutine body.",end:"(?ix)\\b(?:(end\\s*subroutine)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",endCaptures:{1:{name:"keyword.other.endsubroutine.fortran"},2:{name:"entity.name.function.subroutine.fortran"},3:{name:"keyword.other.endsubroutine.fortran"},4:{name:"invalid.error.subroutine.fortran"}},patterns:[{begin:"\\G(?!\\s*[;!\\n])",comment:"Rest of the first line in subroutine construct.",end:"(?=[;!\\n])",name:"meta.first-line.fortran",patterns:[{include:"#dummy-variable-list"},{include:"#language-binding-attribute"}]},{begin:"(?i)(?!\\b(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",comment:"Specification and execution block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",name:"meta.block.specification.subroutine.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Contains block.",end:"(?i)(?=(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]}]},"sync-all-statement":{begin:"(?i)\\b(sync all|sync memory)(\\s*(?=\\())?",beginCaptures:{1:{name:"keyword.control.sync-all-memory.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2018 standard.",end:"(?n.has(s)}const ee={},gt=[],Ee=()=>{},fi=()=>!1,Ut=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ys=e=>e.startsWith("onUpdate:"),ie=Object.assign,vs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},di=Object.prototype.hasOwnProperty,Y=(e,t)=>di.call(e,t),k=Array.isArray,mt=e=>En(e)==="[object Map]",Mr=e=>En(e)==="[object Set]",W=e=>typeof e=="function",re=e=>typeof e=="string",ft=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",Nr=e=>(Z(e)||W(e))&&W(e.then)&&W(e.catch),Fr=Object.prototype.toString,En=e=>Fr.call(e),hi=e=>En(e).slice(8,-1),$r=e=>En(e)==="[object Object]",bs=e=>re(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,_t=_s(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Cn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},pi=/-(\w)/g,Ne=Cn(e=>e.replace(pi,(t,n)=>n?n.toUpperCase():"")),gi=/\B([A-Z])/g,dt=Cn(e=>e.replace(gi,"-$1").toLowerCase()),xn=Cn(e=>e.charAt(0).toUpperCase()+e.slice(1)),cn=Cn(e=>e?`on${xn(e)}`:""),Je=(e,t)=>!Object.is(e,t),Vn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},mi=e=>{const t=parseFloat(e);return isNaN(t)?e:t},_i=e=>{const t=re(e)?Number(e):NaN;return isNaN(t)?e:t};let Bs;const jr=()=>Bs||(Bs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ws(e){if(k(e)){const t={};for(let n=0;n{if(n){const s=n.split(vi);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Es(e){let t="";if(re(e))t=e;else if(k(e))for(let n=0;nre(e)?e:e==null?"":k(e)||Z(e)&&(e.toString===Fr||!W(e.toString))?JSON.stringify(e,Vr,2):String(e),Vr=(e,t)=>t&&t.__v_isRef?Vr(e,t.value):mt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],o)=>(n[Un(s,o)+" =>"]=r,n),{})}:Mr(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Un(n))}:ft(t)?Un(t):Z(t)&&!k(t)&&!$r(t)?String(t):t,Un=(e,t="")=>{var n;return ft(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.4.26 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let we;class xi{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=we,!t&&we&&(this.index=(we.scopes||(we.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=we;try{return we=this,t()}finally{we=n}}}on(){we=this}off(){we=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),et()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=ze,n=ct;try{return ze=!0,ct=this,this._runnings++,ks(this),this.fn()}finally{Ks(this),this._runnings--,ct=n,ze=t}}stop(){this.active&&(ks(this),Ks(this),this.onStop&&this.onStop(),this.active=!1)}}function Ai(e){return e.value}function ks(e){e._trackId++,e._depsLength=0}function Ks(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{n.dirty&&n.run()});n.run();const s=n.run.bind(n);return s.effect=n,s}let ze=!0,os=0;const kr=[];function Ze(){kr.push(ze),ze=!1}function et(){const e=kr.pop();ze=e===void 0?!0:e}function Cs(){os++}function xs(){for(os--;!os&&is.length;)is.shift()()}function Kr(e,t,n){if(t.get(e)!==e._trackId){t.set(e,e._trackId);const s=e.deps[e._depsLength];s!==t?(s&&Br(s,e),e.deps[e._depsLength++]=t):e._depsLength++}}const is=[];function Wr(e,t,n){Cs();for(const s of e.keys()){let r;s._dirtyLevel{const n=new Map;return n.cleanup=e,n.computed=t,n},hn=new WeakMap,at=Symbol(""),ls=Symbol("");function ve(e,t,n){if(ze&&ct){let s=hn.get(e);s||hn.set(e,s=new Map);let r=s.get(n);r||s.set(n,r=qr(()=>s.delete(n))),Kr(ct,r)}}function He(e,t,n,s,r,o){const i=hn.get(e);if(!i)return;let l=[];if(t==="clear")l=[...i.values()];else if(n==="length"&&k(e)){const c=Number(s);i.forEach((u,f)=>{(f==="length"||!ft(f)&&f>=c)&&l.push(u)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":k(e)?bs(n)&&l.push(i.get("length")):(l.push(i.get(at)),mt(e)&&l.push(i.get(ls)));break;case"delete":k(e)||(l.push(i.get(at)),mt(e)&&l.push(i.get(ls)));break;case"set":mt(e)&&l.push(i.get(at));break}Cs();for(const c of l)c&&Wr(c,4);xs()}function Ri(e,t){const n=hn.get(e);return n&&n.get(t)}const Oi=_s("__proto__,__v_isRef,__isVue"),Gr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ft)),Ws=Ii();function Ii(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=J(this);for(let o=0,i=this.length;o{e[t]=function(...n){Ze(),Cs();const s=J(this)[t].apply(this,n);return xs(),et(),s}}),e}function Li(e){ft(e)||(e=String(e));const t=J(this);return ve(t,"has",e),t.hasOwnProperty(e)}class zr{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){const r=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return o;if(n==="__v_raw")return s===(r?o?Ki:Qr:o?Jr:Yr).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const i=k(t);if(!r){if(i&&Y(Ws,n))return Reflect.get(Ws,n,s);if(n==="hasOwnProperty")return Li}const l=Reflect.get(t,n,s);return(ft(n)?Gr.has(n):Oi(n))||(r||ve(t,"get",n),o)?l:he(l)?i&&bs(n)?l:l.value:Z(l)?r?An(l):Tn(l):l}}class Xr extends zr{constructor(t=!1){super(!1,t)}set(t,n,s,r){let o=t[n];if(!this._isShallow){const c=Ft(o);if(!pn(s)&&!Ft(s)&&(o=J(o),s=J(s)),!k(t)&&he(o)&&!he(s))return c?!1:(o.value=s,!0)}const i=k(t)&&bs(n)?Number(n)e,Sn=e=>Reflect.getPrototypeOf(e);function zt(e,t,n=!1,s=!1){e=e.__v_raw;const r=J(e),o=J(t);n||(Je(t,o)&&ve(r,"get",t),ve(r,"get",o));const{has:i}=Sn(r),l=s?Ss:n?Rs:$t;if(i.call(r,t))return l(e.get(t));if(i.call(r,o))return l(e.get(o));e!==r&&e.get(t)}function Xt(e,t=!1){const n=this.__v_raw,s=J(n),r=J(e);return t||(Je(e,r)&&ve(s,"has",e),ve(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function Yt(e,t=!1){return e=e.__v_raw,!t&&ve(J(e),"iterate",at),Reflect.get(e,"size",e)}function qs(e){e=J(e);const t=J(this);return Sn(t).has.call(t,e)||(t.add(e),He(t,"add",e,e)),this}function Gs(e,t){t=J(t);const n=J(this),{has:s,get:r}=Sn(n);let o=s.call(n,e);o||(e=J(e),o=s.call(n,e));const i=r.call(n,e);return n.set(e,t),o?Je(t,i)&&He(n,"set",e,t):He(n,"add",e,t),this}function zs(e){const t=J(this),{has:n,get:s}=Sn(t);let r=n.call(t,e);r||(e=J(e),r=n.call(t,e)),s&&s.call(t,e);const o=t.delete(e);return r&&He(t,"delete",e,void 0),o}function Xs(){const e=J(this),t=e.size!==0,n=e.clear();return t&&He(e,"clear",void 0,void 0),n}function Jt(e,t){return function(s,r){const o=this,i=o.__v_raw,l=J(i),c=t?Ss:e?Rs:$t;return!e&&ve(l,"iterate",at),i.forEach((u,f)=>s.call(r,c(u),c(f),o))}}function Qt(e,t,n){return function(...s){const r=this.__v_raw,o=J(r),i=mt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=r[e](...s),f=n?Ss:t?Rs:$t;return!t&&ve(o,"iterate",c?ls:at),{next(){const{value:h,done:_}=u.next();return _?{value:h,done:_}:{value:l?[f(h[0]),f(h[1])]:f(h),done:_}},[Symbol.iterator](){return this}}}}function Ve(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function $i(){const e={get(o){return zt(this,o)},get size(){return Yt(this)},has:Xt,add:qs,set:Gs,delete:zs,clear:Xs,forEach:Jt(!1,!1)},t={get(o){return zt(this,o,!1,!0)},get size(){return Yt(this)},has:Xt,add:qs,set:Gs,delete:zs,clear:Xs,forEach:Jt(!1,!0)},n={get(o){return zt(this,o,!0)},get size(){return Yt(this,!0)},has(o){return Xt.call(this,o,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Jt(!0,!1)},s={get(o){return zt(this,o,!0,!0)},get size(){return Yt(this,!0)},has(o){return Xt.call(this,o,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Jt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=Qt(o,!1,!1),n[o]=Qt(o,!0,!1),t[o]=Qt(o,!1,!0),s[o]=Qt(o,!0,!0)}),[e,n,t,s]}const[Hi,ji,Di,Vi]=$i();function Ts(e,t){const n=t?e?Vi:Di:e?ji:Hi;return(s,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(Y(n,r)&&r in s?n:s,r,o)}const Ui={get:Ts(!1,!1)},Bi={get:Ts(!1,!0)},ki={get:Ts(!0,!1)};const Yr=new WeakMap,Jr=new WeakMap,Qr=new WeakMap,Ki=new WeakMap;function Wi(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function qi(e){return e.__v_skip||!Object.isExtensible(e)?0:Wi(hi(e))}function Tn(e){return Ft(e)?e:As(e,!1,Mi,Ui,Yr)}function Gi(e){return As(e,!1,Fi,Bi,Jr)}function An(e){return As(e,!0,Ni,ki,Qr)}function As(e,t,n,s,r){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=r.get(e);if(o)return o;const i=qi(e);if(i===0)return e;const l=new Proxy(e,i===2?s:n);return r.set(e,l),l}function Rt(e){return Ft(e)?Rt(e.__v_raw):!!(e&&e.__v_isReactive)}function Ft(e){return!!(e&&e.__v_isReadonly)}function pn(e){return!!(e&&e.__v_isShallow)}function Zr(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function an(e){return Object.isExtensible(e)&&Hr(e,"__v_skip",!0),e}const $t=e=>Z(e)?Tn(e):e,Rs=e=>Z(e)?An(e):e;class eo{constructor(t,n,s,r){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new Nt(()=>t(this._value),()=>Ot(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=J(this);return(!t._cacheable||t.effect.dirty)&&Je(t._value,t._value=t.effect.run())&&Ot(t,4),Os(t),t.effect._dirtyLevel>=2&&Ot(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function zi(e,t,n=!1){let s,r;const o=W(e);return o?(s=e,r=Ee):(s=e.get,r=e.set),new eo(s,r,o||!r,n)}function Os(e){var t;ze&&ct&&(e=J(e),Kr(ct,(t=e.dep)!=null?t:e.dep=qr(()=>e.dep=void 0,e instanceof eo?e:void 0)))}function Ot(e,t=4,n){e=J(e);const s=e.dep;s&&Wr(s,t)}function he(e){return!!(e&&e.__v_isRef===!0)}function oe(e){return no(e,!1)}function to(e){return no(e,!0)}function no(e,t){return he(e)?e:new Xi(e,t)}class Xi{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:$t(t)}get value(){return Os(this),this._value}set value(t){const n=this.__v_isShallow||pn(t)||Ft(t);t=n?t:J(t),Je(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:$t(t),Ot(this,4))}}function so(e){return he(e)?e.value:e}const Yi={get:(e,t,n)=>so(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return he(r)&&!he(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function ro(e){return Rt(e)?e:new Proxy(e,Yi)}class Ji{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:s}=t(()=>Os(this),()=>Ot(this));this._get=n,this._set=s}get value(){return this._get()}set value(t){this._set(t)}}function Qi(e){return new Ji(e)}class Zi{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Ri(J(this._object),this._key)}}class el{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function tl(e,t,n){return he(e)?e:W(e)?new el(e):Z(e)&&arguments.length>1?nl(e,t,n):oe(e)}function nl(e,t,n){const s=e[t];return he(s)?s:new Zi(e,t,n)}/** +* @vue/runtime-core v3.4.26 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Xe(e,t,n,s){try{return s?e(...s):e()}catch(r){Bt(r,t,n)}}function Se(e,t,n,s){if(W(e)){const r=Xe(e,t,n,s);return r&&Nr(r)&&r.catch(o=>{Bt(o,t,n)}),r}if(k(e)){const r=[];for(let o=0;o>>1,r=de[s],o=jt(r);oPe&&de.splice(t,1)}function il(e){k(e)?yt.push(...e):(!Ke||!Ke.includes(e,e.allowRecurse?ot+1:ot))&&yt.push(e),io()}function Ys(e,t,n=Ht?Pe+1:0){for(;njt(n)-jt(s));if(yt.length=0,Ke){Ke.push(...t);return}for(Ke=t,ot=0;ote.id==null?1/0:e.id,ll=(e,t)=>{const n=jt(e)-jt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function lo(e){cs=!1,Ht=!0,de.sort(ll);try{for(Pe=0;Pere(w)?w.trim():w)),h&&(r=n.map(mi))}let l,c=s[l=cn(t)]||s[l=cn(Ne(t))];!c&&o&&(c=s[l=cn(dt(t))]),c&&Se(c,e,6,r);const u=s[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Se(u,e,6,r)}}function co(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const f=co(u,t,!0);f&&(l=!0,ie(i,f))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(Z(e)&&s.set(e,null),null):(k(o)?o.forEach(c=>i[c]=null):ie(i,o),Z(e)&&s.set(e,i),i)}function In(e,t){return!e||!Ut(t)?!1:(t=t.slice(2).replace(/Once$/,""),Y(e,t[0].toLowerCase()+t.slice(1))||Y(e,dt(t))||Y(e,t))}let ce=null,Ln=null;function mn(e){const t=ce;return ce=e,Ln=e&&e.type.__scopeId||null,t}function Va(e){Ln=e}function Ua(){Ln=null}function al(e,t=ce,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&cr(-1);const o=mn(t);let i;try{i=e(...r)}finally{mn(o),s._d&&cr(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function Bn(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:f,props:h,data:_,setupState:w,ctx:A,inheritAttrs:M}=e,F=mn(e);let q,D;try{if(n.shapeFlag&4){const m=r||s,P=m;q=Ae(u.call(P,m,f,h,w,_,A)),D=l}else{const m=t;q=Ae(m.length>1?m(h,{attrs:l,slots:i,emit:c}):m(h,null)),D=t.props?l:ul(l)}}catch(m){Mt.length=0,Bt(m,e,1),q=se(ye)}let g=q;if(D&&M!==!1){const m=Object.keys(D),{shapeFlag:P}=g;m.length&&P&7&&(o&&m.some(ys)&&(D=fl(D,o)),g=Qe(g,D,!1,!0))}return n.dirs&&(g=Qe(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&(g.transition=n.transition),q=g,mn(F),q}const ul=e=>{let t;for(const n in e)(n==="class"||n==="style"||Ut(n))&&((t||(t={}))[n]=e[n]);return t},fl=(e,t)=>{const n={};for(const s in e)(!ys(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function dl(e,t,n){const{props:s,children:r,component:o}=e,{props:i,children:l,patchFlag:c}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Js(s,i,u):!!i;if(c&8){const f=t.dynamicProps;for(let h=0;he.__isSuspense;function ho(e,t){t&&t.pendingBranch?k(e)?t.effects.push(...e):t.effects.push(e):il(e)}const gl=Symbol.for("v-scx"),ml=()=>bt(gl);function po(e,t){return Pn(e,null,t)}function Ka(e,t){return Pn(e,null,{flush:"post"})}const Zt={};function Me(e,t,n){return Pn(e,t,n)}function Pn(e,t,{immediate:n,deep:s,flush:r,once:o,onTrack:i,onTrigger:l}=ee){if(t&&o){const I=t;t=(...U)=>{I(...U),P()}}const c=ue,u=I=>s===!0?I:lt(I,s===!1?1:void 0);let f,h=!1,_=!1;if(he(e)?(f=()=>e.value,h=pn(e)):Rt(e)?(f=()=>u(e),h=!0):k(e)?(_=!0,h=e.some(I=>Rt(I)||pn(I)),f=()=>e.map(I=>{if(he(I))return I.value;if(Rt(I))return u(I);if(W(I))return Xe(I,c,2)})):W(e)?t?f=()=>Xe(e,c,2):f=()=>(w&&w(),Se(e,c,3,[A])):f=Ee,t&&s){const I=f;f=()=>lt(I())}let w,A=I=>{w=g.onStop=()=>{Xe(I,c,4),w=g.onStop=void 0}},M;if(Wt)if(A=Ee,t?n&&Se(t,c,3,[f(),_?[]:void 0,A]):f(),r==="sync"){const I=ml();M=I.__watcherHandles||(I.__watcherHandles=[])}else return Ee;let F=_?new Array(e.length).fill(Zt):Zt;const q=()=>{if(!(!g.active||!g.dirty))if(t){const I=g.run();(s||h||(_?I.some((U,R)=>Je(U,F[R])):Je(I,F)))&&(w&&w(),Se(t,c,3,[I,F===Zt?void 0:_&&F[0]===Zt?[]:F,A]),F=I)}else g.run()};q.allowRecurse=!!t;let D;r==="sync"?D=q:r==="post"?D=()=>me(q,c&&c.suspense):(q.pre=!0,c&&(q.id=c.uid),D=()=>On(q));const g=new Nt(f,Ee,D),m=Ur(),P=()=>{g.stop(),m&&vs(m.effects,g)};return t?n?q():F=g.run():r==="post"?me(g.run.bind(g),c&&c.suspense):g.run(),M&&M.push(P),P}function _l(e,t,n){const s=this.proxy,r=re(e)?e.includes(".")?go(s,e):()=>s[e]:e.bind(s,s);let o;W(t)?o=t:(o=t.handler,n=t);const i=Kt(this),l=Pn(r,o.bind(s),n);return i(),l}function go(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{lt(s,t,n)});else if($r(e))for(const s in e)lt(e[s],t,n);return e}function Wa(e,t){if(ce===null)return e;const n=$n(ce)||ce.proxy,s=e.dirs||(e.dirs=[]);for(let r=0;r{e.isMounted=!0}),bo(()=>{e.isUnmounting=!0}),e}const Ce=[Function,Array],mo={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ce,onEnter:Ce,onAfterEnter:Ce,onEnterCancelled:Ce,onBeforeLeave:Ce,onLeave:Ce,onAfterLeave:Ce,onLeaveCancelled:Ce,onBeforeAppear:Ce,onAppear:Ce,onAfterAppear:Ce,onAppearCancelled:Ce},vl={name:"BaseTransition",props:mo,setup(e,{slots:t}){const n=Fn(),s=yl();return()=>{const r=t.default&&yo(t.default(),!0);if(!r||!r.length)return;let o=r[0];if(r.length>1){for(const _ of r)if(_.type!==ye){o=_;break}}const i=J(e),{mode:l}=i;if(s.isLeaving)return kn(o);const c=Zs(o);if(!c)return kn(o);const u=as(c,i,s,n);us(c,u);const f=n.subTree,h=f&&Zs(f);if(h&&h.type!==ye&&!it(c,h)){const _=as(h,i,s,n);if(us(h,_),l==="out-in"&&c.type!==ye)return s.isLeaving=!0,_.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},kn(o);l==="in-out"&&c.type!==ye&&(_.delayLeave=(w,A,M)=>{const F=_o(s,h);F[String(h.key)]=h,w[We]=()=>{A(),w[We]=void 0,delete u.delayedLeave},u.delayedLeave=M})}return o}}},bl=vl;function _o(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function as(e,t,n,s){const{appear:r,mode:o,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:h,onLeave:_,onAfterLeave:w,onLeaveCancelled:A,onBeforeAppear:M,onAppear:F,onAfterAppear:q,onAppearCancelled:D}=t,g=String(e.key),m=_o(n,e),P=(R,V)=>{R&&Se(R,s,9,V)},I=(R,V)=>{const E=V[1];P(R,V),k(R)?R.every(B=>B.length<=1)&&E():R.length<=1&&E()},U={mode:o,persisted:i,beforeEnter(R){let V=l;if(!n.isMounted)if(r)V=M||l;else return;R[We]&&R[We](!0);const E=m[g];E&&it(e,E)&&E.el[We]&&E.el[We](),P(V,[R])},enter(R){let V=c,E=u,B=f;if(!n.isMounted)if(r)V=F||c,E=q||u,B=D||f;else return;let S=!1;const G=R[en]=le=>{S||(S=!0,le?P(B,[R]):P(E,[R]),U.delayedLeave&&U.delayedLeave(),R[en]=void 0)};V?I(V,[R,G]):G()},leave(R,V){const E=String(e.key);if(R[en]&&R[en](!0),n.isUnmounting)return V();P(h,[R]);let B=!1;const S=R[We]=G=>{B||(B=!0,V(),G?P(A,[R]):P(w,[R]),R[We]=void 0,m[E]===e&&delete m[E])};m[E]=e,_?I(_,[R,S]):S()},clone(R){return as(R,t,n,s)}};return U}function kn(e){if(kt(e))return e=Qe(e),e.children=null,e}function Zs(e){if(!kt(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&W(n.default))return n.default()}}function us(e,t){e.shapeFlag&6&&e.component?us(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function yo(e,t=!1,n){let s=[],r=0;for(let o=0;o1)for(let o=0;o!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function qa(e){W(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:r=200,timeout:o,suspensible:i=!0,onError:l}=e;let c=null,u,f=0;const h=()=>(f++,c=null,_()),_=()=>{let w;return c||(w=c=t().catch(A=>{if(A=A instanceof Error?A:new Error(String(A)),l)return new Promise((M,F)=>{l(A,()=>M(h()),()=>F(A),f+1)});throw A}).then(A=>w!==c&&c?c:(A&&(A.__esModule||A[Symbol.toStringTag]==="Module")&&(A=A.default),u=A,A)))};return Ls({name:"AsyncComponentWrapper",__asyncLoader:_,get __asyncResolved(){return u},setup(){const w=ue;if(u)return()=>Kn(u,w);const A=D=>{c=null,Bt(D,w,13,!s)};if(i&&w.suspense||Wt)return _().then(D=>()=>Kn(D,w)).catch(D=>(A(D),()=>s?se(s,{error:D}):null));const M=oe(!1),F=oe(),q=oe(!!r);return r&&setTimeout(()=>{q.value=!1},r),o!=null&&setTimeout(()=>{if(!M.value&&!F.value){const D=new Error(`Async component timed out after ${o}ms.`);A(D),F.value=D}},o),_().then(()=>{M.value=!0,w.parent&&kt(w.parent.vnode)&&(w.parent.effect.dirty=!0,On(w.parent.update))}).catch(D=>{A(D),F.value=D}),()=>{if(M.value&&u)return Kn(u,w);if(F.value&&s)return se(s,{error:F.value});if(n&&!q.value)return se(n)}}})}function Kn(e,t){const{ref:n,props:s,children:r,ce:o}=t.vnode,i=se(e,s,r);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const kt=e=>e.type.__isKeepAlive;function wl(e,t){vo(e,"a",t)}function El(e,t){vo(e,"da",t)}function vo(e,t,n=ue){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Mn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)kt(r.parent.vnode)&&Cl(s,t,n,r),r=r.parent}}function Cl(e,t,n,s){const r=Mn(t,e,s,!0);Nn(()=>{vs(s[t],r)},n)}function Mn(e,t,n=ue,s=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;Ze();const l=Kt(n),c=Se(t,n,e,i);return l(),et(),c});return s?r.unshift(o):r.push(o),o}}const De=e=>(t,n=ue)=>(!Wt||e==="sp")&&Mn(e,(...s)=>t(...s),n),xl=De("bm"),Ct=De("m"),Sl=De("bu"),Tl=De("u"),bo=De("bum"),Nn=De("um"),Al=De("sp"),Rl=De("rtg"),Ol=De("rtc");function Il(e,t=ue){Mn("ec",e,t)}function Ga(e,t,n,s){let r;const o=n;if(k(e)||re(e)){r=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,o));else{const i=Object.keys(e);r=new Array(i.length);for(let l=0,c=i.length;lvn(t)?!(t.type===ye||t.type===_e&&!wo(t.children)):!0)?e:null}function Xa(e,t){const n={};for(const s in e)n[/[A-Z]/.test(s)?`on:${s}`:cn(s)]=e[s];return n}const fs=e=>e?Uo(e)?$n(e)||e.proxy:fs(e.parent):null,It=ie(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>fs(e.parent),$root:e=>fs(e.root),$emit:e=>e.emit,$options:e=>Ps(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,On(e.update)}),$nextTick:e=>e.n||(e.n=Rn.bind(e.proxy)),$watch:e=>_l.bind(e)}),Wn=(e,t)=>e!==ee&&!e.__isScriptSetup&&Y(e,t),Ll={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:o,accessCache:i,type:l,appContext:c}=e;let u;if(t[0]!=="$"){const w=i[t];if(w!==void 0)switch(w){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(Wn(s,t))return i[t]=1,s[t];if(r!==ee&&Y(r,t))return i[t]=2,r[t];if((u=e.propsOptions[0])&&Y(u,t))return i[t]=3,o[t];if(n!==ee&&Y(n,t))return i[t]=4,n[t];ds&&(i[t]=0)}}const f=It[t];let h,_;if(f)return t==="$attrs"&&ve(e.attrs,"get",""),f(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==ee&&Y(n,t))return i[t]=4,n[t];if(_=c.config.globalProperties,Y(_,t))return _[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:o}=e;return Wn(r,t)?(r[t]=n,!0):s!==ee&&Y(s,t)?(s[t]=n,!0):Y(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:o}},i){let l;return!!n[i]||e!==ee&&Y(e,i)||Wn(t,i)||(l=o[0])&&Y(l,i)||Y(s,i)||Y(It,i)||Y(r.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Y(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ya(){return Pl().slots}function Pl(){const e=Fn();return e.setupContext||(e.setupContext=ko(e))}function er(e){return k(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ds=!0;function Ml(e){const t=Ps(e),n=e.proxy,s=e.ctx;ds=!1,t.beforeCreate&&tr(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:i,watch:l,provide:c,inject:u,created:f,beforeMount:h,mounted:_,beforeUpdate:w,updated:A,activated:M,deactivated:F,beforeDestroy:q,beforeUnmount:D,destroyed:g,unmounted:m,render:P,renderTracked:I,renderTriggered:U,errorCaptured:R,serverPrefetch:V,expose:E,inheritAttrs:B,components:S,directives:G,filters:le}=t;if(u&&Nl(u,s,null),i)for(const X in i){const $=i[X];W($)&&(s[X]=$.bind(n))}if(r){const X=r.call(n,n);Z(X)&&(e.data=Tn(X))}if(ds=!0,o)for(const X in o){const $=o[X],Fe=W($)?$.bind(n,n):W($.get)?$.get.bind(n,n):Ee,qt=!W($)&&W($.set)?$.set.bind(n):Ee,tt=ne({get:Fe,set:qt});Object.defineProperty(s,X,{enumerable:!0,configurable:!0,get:()=>tt.value,set:Oe=>tt.value=Oe})}if(l)for(const X in l)Eo(l[X],s,n,X);if(c){const X=W(c)?c.call(n):c;Reflect.ownKeys(X).forEach($=>{Vl($,X[$])})}f&&tr(f,e,"c");function H(X,$){k($)?$.forEach(Fe=>X(Fe.bind(n))):$&&X($.bind(n))}if(H(xl,h),H(Ct,_),H(Sl,w),H(Tl,A),H(wl,M),H(El,F),H(Il,R),H(Ol,I),H(Rl,U),H(bo,D),H(Nn,m),H(Al,V),k(E))if(E.length){const X=e.exposed||(e.exposed={});E.forEach($=>{Object.defineProperty(X,$,{get:()=>n[$],set:Fe=>n[$]=Fe})})}else e.exposed||(e.exposed={});P&&e.render===Ee&&(e.render=P),B!=null&&(e.inheritAttrs=B),S&&(e.components=S),G&&(e.directives=G)}function Nl(e,t,n=Ee){k(e)&&(e=hs(e));for(const s in e){const r=e[s];let o;Z(r)?"default"in r?o=bt(r.from||s,r.default,!0):o=bt(r.from||s):o=bt(r),he(o)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[s]=o}}function tr(e,t,n){Se(k(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Eo(e,t,n,s){const r=s.includes(".")?go(n,s):()=>n[s];if(re(e)){const o=t[e];W(o)&&Me(r,o)}else if(W(e))Me(r,e.bind(n));else if(Z(e))if(k(e))e.forEach(o=>Eo(o,t,n,s));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&Me(r,o,e)}}function Ps(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(u=>_n(c,u,i,!0)),_n(c,t,i)),Z(t)&&o.set(t,c),c}function _n(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&_n(e,o,n,!0),r&&r.forEach(i=>_n(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const l=Fl[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Fl={data:nr,props:sr,emits:sr,methods:At,computed:At,beforeCreate:pe,created:pe,beforeMount:pe,mounted:pe,beforeUpdate:pe,updated:pe,beforeDestroy:pe,beforeUnmount:pe,destroyed:pe,unmounted:pe,activated:pe,deactivated:pe,errorCaptured:pe,serverPrefetch:pe,components:At,directives:At,watch:Hl,provide:nr,inject:$l};function nr(e,t){return t?e?function(){return ie(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function $l(e,t){return At(hs(e),hs(t))}function hs(e){if(k(e)){const t={};for(let n=0;n1)return n&&W(t)?t.call(s&&s.proxy):t}}const xo={},So=()=>Object.create(xo),To=e=>Object.getPrototypeOf(e)===xo;function Ul(e,t,n,s=!1){const r={},o=So();e.propsDefaults=Object.create(null),Ao(e,t,r,o);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=s?r:Gi(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function Bl(e,t,n,s){const{props:r,attrs:o,vnode:{patchFlag:i}}=e,l=J(r),[c]=e.propsOptions;let u=!1;if((s||i>0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[_,w]=Ro(h,t,!0);ie(i,_),w&&l.push(...w)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!o&&!c)return Z(e)&&s.set(e,gt),gt;if(k(o))for(let f=0;f-1,w[1]=M<0||A-1||Y(w,"default"))&&l.push(h)}}}const u=[i,l];return Z(e)&&s.set(e,u),u}function rr(e){return e[0]!=="$"&&!_t(e)}function or(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function ir(e,t){return or(e)===or(t)}function lr(e,t){return k(t)?t.findIndex(n=>ir(n,e)):W(t)&&ir(t,e)?0:-1}const Oo=e=>e[0]==="_"||e==="$stable",Ms=e=>k(e)?e.map(Ae):[Ae(e)],kl=(e,t,n)=>{if(t._n)return t;const s=al((...r)=>Ms(t(...r)),n);return s._c=!1,s},Io=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Oo(r))continue;const o=e[r];if(W(o))t[r]=kl(r,o,s);else if(o!=null){const i=Ms(o);t[r]=()=>i}}},Lo=(e,t)=>{const n=Ms(t);e.slots.default=()=>n},Kl=(e,t)=>{const n=e.slots=So();if(e.vnode.shapeFlag&32){const s=t._;s?(ie(n,t),Hr(n,"_",s,!0)):Io(t,n)}else t&&Lo(e,t)},Wl=(e,t,n)=>{const{vnode:s,slots:r}=e;let o=!0,i=ee;if(s.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:(ie(r,t),!n&&l===1&&delete r._):(o=!t.$stable,Io(t,r)),i=t}else t&&(Lo(e,t),i={default:1});if(o)for(const l in r)!Oo(l)&&i[l]==null&&delete r[l]};function yn(e,t,n,s,r=!1){if(k(e)){e.forEach((_,w)=>yn(_,t&&(k(t)?t[w]:t),n,s,r));return}if(vt(s)&&!r)return;const o=s.shapeFlag&4?$n(s.component)||s.component.proxy:s.el,i=r?null:o,{i:l,r:c}=e,u=t&&t.r,f=l.refs===ee?l.refs={}:l.refs,h=l.setupState;if(u!=null&&u!==c&&(re(u)?(f[u]=null,Y(h,u)&&(h[u]=null)):he(u)&&(u.value=null)),W(c))Xe(c,l,12,[i,f]);else{const _=re(c),w=he(c);if(_||w){const A=()=>{if(e.f){const M=_?Y(h,c)?h[c]:f[c]:c.value;r?k(M)&&vs(M,o):k(M)?M.includes(o)||M.push(o):_?(f[c]=[o],Y(h,c)&&(h[c]=f[c])):(c.value=[o],e.k&&(f[e.k]=c.value))}else _?(f[c]=i,Y(h,c)&&(h[c]=i)):w&&(c.value=i,e.k&&(f[e.k]=i))};i?(A.id=-1,me(A,n)):A()}}}let Ue=!1;const ql=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",Gl=e=>e.namespaceURI.includes("MathML"),tn=e=>{if(ql(e))return"svg";if(Gl(e))return"mathml"},nn=e=>e.nodeType===8;function zl(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:o,parentNode:i,remove:l,insert:c,createComment:u}}=e,f=(g,m)=>{if(!m.hasChildNodes()){n(null,g,m),gn(),m._vnode=g;return}Ue=!1,h(m.firstChild,g,null,null,null),gn(),m._vnode=g,Ue&&console.error("Hydration completed but contains mismatches.")},h=(g,m,P,I,U,R=!1)=>{R=R||!!m.dynamicChildren;const V=nn(g)&&g.data==="[",E=()=>M(g,m,P,I,U,V),{type:B,ref:S,shapeFlag:G,patchFlag:le}=m;let fe=g.nodeType;m.el=g,le===-2&&(R=!1,m.dynamicChildren=null);let H=null;switch(B){case wt:fe!==3?m.children===""?(c(m.el=r(""),i(g),g),H=g):H=E():(g.data!==m.children&&(Ue=!0,g.data=m.children),H=o(g));break;case ye:D(g)?(H=o(g),q(m.el=g.content.firstChild,g,P)):fe!==8||V?H=E():H=o(g);break;case Pt:if(V&&(g=o(g),fe=g.nodeType),fe===1||fe===3){H=g;const X=!m.children.length;for(let $=0;${R=R||!!m.dynamicChildren;const{type:V,props:E,patchFlag:B,shapeFlag:S,dirs:G,transition:le}=m,fe=V==="input"||V==="option";if(fe||B!==-1){G&&Le(m,null,P,"created");let H=!1;if(D(g)){H=Po(I,le)&&P&&P.vnode.props&&P.vnode.props.appear;const $=g.content.firstChild;H&&le.beforeEnter($),q($,g,P),m.el=g=$}if(S&16&&!(E&&(E.innerHTML||E.textContent))){let $=w(g.firstChild,m,g,P,I,U,R);for(;$;){Ue=!0;const Fe=$;$=$.nextSibling,l(Fe)}}else S&8&&g.textContent!==m.children&&(Ue=!0,g.textContent=m.children);if(E)if(fe||!R||B&48)for(const $ in E)(fe&&($.endsWith("value")||$==="indeterminate")||Ut($)&&!_t($)||$[0]===".")&&s(g,$,null,E[$],void 0,void 0,P);else E.onClick&&s(g,"onClick",null,E.onClick,void 0,void 0,P);let X;(X=E&&E.onVnodeBeforeMount)&&xe(X,P,m),G&&Le(m,null,P,"beforeMount"),((X=E&&E.onVnodeMounted)||G||H)&&ho(()=>{X&&xe(X,P,m),H&&le.enter(g),G&&Le(m,null,P,"mounted")},I)}return g.nextSibling},w=(g,m,P,I,U,R,V)=>{V=V||!!m.dynamicChildren;const E=m.children,B=E.length;for(let S=0;S{const{slotScopeIds:V}=m;V&&(U=U?U.concat(V):V);const E=i(g),B=w(o(g),m,E,P,I,U,R);return B&&nn(B)&&B.data==="]"?o(m.anchor=B):(Ue=!0,c(m.anchor=u("]"),E,B),B)},M=(g,m,P,I,U,R)=>{if(Ue=!0,m.el=null,R){const B=F(g);for(;;){const S=o(g);if(S&&S!==B)l(S);else break}}const V=o(g),E=i(g);return l(g),n(null,m,E,V,P,I,tn(E),U),V},F=(g,m="[",P="]")=>{let I=0;for(;g;)if(g=o(g),g&&nn(g)&&(g.data===m&&I++,g.data===P)){if(I===0)return o(g);I--}return g},q=(g,m,P)=>{const I=m.parentNode;I&&I.replaceChild(g,m);let U=P;for(;U;)U.vnode.el===m&&(U.vnode.el=U.subTree.el=g),U=U.parent},D=g=>g.nodeType===1&&g.tagName.toLowerCase()==="template";return[f,h]}const me=ho;function Xl(e){return Yl(e,zl)}function Yl(e,t){const n=jr();n.__VUE__=!0;const{insert:s,remove:r,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:f,parentNode:h,nextSibling:_,setScopeId:w=Ee,insertStaticContent:A}=e,M=(a,d,p,y=null,v=null,x=null,O=void 0,C=null,T=!!d.dynamicChildren)=>{if(a===d)return;a&&!it(a,d)&&(y=Gt(a),Oe(a,v,x,!0),a=null),d.patchFlag===-2&&(T=!1,d.dynamicChildren=null);const{type:b,ref:L,shapeFlag:j}=d;switch(b){case wt:F(a,d,p,y);break;case ye:q(a,d,p,y);break;case Pt:a==null&&D(d,p,y,O);break;case _e:S(a,d,p,y,v,x,O,C,T);break;default:j&1?P(a,d,p,y,v,x,O,C,T):j&6?G(a,d,p,y,v,x,O,C,T):(j&64||j&128)&&b.process(a,d,p,y,v,x,O,C,T,ht)}L!=null&&v&&yn(L,a&&a.ref,x,d||a,!d)},F=(a,d,p,y)=>{if(a==null)s(d.el=l(d.children),p,y);else{const v=d.el=a.el;d.children!==a.children&&u(v,d.children)}},q=(a,d,p,y)=>{a==null?s(d.el=c(d.children||""),p,y):d.el=a.el},D=(a,d,p,y)=>{[a.el,a.anchor]=A(a.children,d,p,y,a.el,a.anchor)},g=({el:a,anchor:d},p,y)=>{let v;for(;a&&a!==d;)v=_(a),s(a,p,y),a=v;s(d,p,y)},m=({el:a,anchor:d})=>{let p;for(;a&&a!==d;)p=_(a),r(a),a=p;r(d)},P=(a,d,p,y,v,x,O,C,T)=>{d.type==="svg"?O="svg":d.type==="math"&&(O="mathml"),a==null?I(d,p,y,v,x,O,C,T):V(a,d,v,x,O,C,T)},I=(a,d,p,y,v,x,O,C)=>{let T,b;const{props:L,shapeFlag:j,transition:N,dirs:K}=a;if(T=a.el=i(a.type,x,L&&L.is,L),j&8?f(T,a.children):j&16&&R(a.children,T,null,y,v,qn(a,x),O,C),K&&Le(a,null,y,"created"),U(T,a,a.scopeId,O,y),L){for(const Q in L)Q!=="value"&&!_t(Q)&&o(T,Q,null,L[Q],x,a.children,y,v,$e);"value"in L&&o(T,"value",null,L.value,x),(b=L.onVnodeBeforeMount)&&xe(b,y,a)}K&&Le(a,null,y,"beforeMount");const z=Po(v,N);z&&N.beforeEnter(T),s(T,d,p),((b=L&&L.onVnodeMounted)||z||K)&&me(()=>{b&&xe(b,y,a),z&&N.enter(T),K&&Le(a,null,y,"mounted")},v)},U=(a,d,p,y,v)=>{if(p&&w(a,p),y)for(let x=0;x{for(let b=T;b{const C=d.el=a.el;let{patchFlag:T,dynamicChildren:b,dirs:L}=d;T|=a.patchFlag&16;const j=a.props||ee,N=d.props||ee;let K;if(p&&nt(p,!1),(K=N.onVnodeBeforeUpdate)&&xe(K,p,d,a),L&&Le(d,a,p,"beforeUpdate"),p&&nt(p,!0),b?E(a.dynamicChildren,b,C,p,y,qn(d,v),x):O||$(a,d,C,null,p,y,qn(d,v),x,!1),T>0){if(T&16)B(C,d,j,N,p,y,v);else if(T&2&&j.class!==N.class&&o(C,"class",null,N.class,v),T&4&&o(C,"style",j.style,N.style,v),T&8){const z=d.dynamicProps;for(let Q=0;Q{K&&xe(K,p,d,a),L&&Le(d,a,p,"updated")},y)},E=(a,d,p,y,v,x,O)=>{for(let C=0;C{if(p!==y){if(p!==ee)for(const C in p)!_t(C)&&!(C in y)&&o(a,C,p[C],null,O,d.children,v,x,$e);for(const C in y){if(_t(C))continue;const T=y[C],b=p[C];T!==b&&C!=="value"&&o(a,C,b,T,O,d.children,v,x,$e)}"value"in y&&o(a,"value",p.value,y.value,O)}},S=(a,d,p,y,v,x,O,C,T)=>{const b=d.el=a?a.el:l(""),L=d.anchor=a?a.anchor:l("");let{patchFlag:j,dynamicChildren:N,slotScopeIds:K}=d;K&&(C=C?C.concat(K):K),a==null?(s(b,p,y),s(L,p,y),R(d.children||[],p,L,v,x,O,C,T)):j>0&&j&64&&N&&a.dynamicChildren?(E(a.dynamicChildren,N,p,v,x,O,C),(d.key!=null||v&&d===v.subTree)&&Mo(a,d,!0)):$(a,d,p,L,v,x,O,C,T)},G=(a,d,p,y,v,x,O,C,T)=>{d.slotScopeIds=C,a==null?d.shapeFlag&512?v.ctx.activate(d,p,y,O,T):le(d,p,y,v,x,O,T):fe(a,d,T)},le=(a,d,p,y,v,x,O)=>{const C=a.component=oc(a,y,v);if(kt(a)&&(C.ctx.renderer=ht),ic(C),C.asyncDep){if(v&&v.registerDep(C,H),!a.el){const T=C.subTree=se(ye);q(null,T,d,p)}}else H(C,a,d,p,v,x,O)},fe=(a,d,p)=>{const y=d.component=a.component;if(dl(a,d,p))if(y.asyncDep&&!y.asyncResolved){X(y,d,p);return}else y.next=d,ol(y.update),y.effect.dirty=!0,y.update();else d.el=a.el,y.vnode=d},H=(a,d,p,y,v,x,O)=>{const C=()=>{if(a.isMounted){let{next:L,bu:j,u:N,parent:K,vnode:z}=a;{const pt=No(a);if(pt){L&&(L.el=z.el,X(a,L,O)),pt.asyncDep.then(()=>{a.isUnmounted||C()});return}}let Q=L,te;nt(a,!1),L?(L.el=z.el,X(a,L,O)):L=z,j&&Vn(j),(te=L.props&&L.props.onVnodeBeforeUpdate)&&xe(te,K,L,z),nt(a,!0);const ae=Bn(a),Te=a.subTree;a.subTree=ae,M(Te,ae,h(Te.el),Gt(Te),a,v,x),L.el=ae.el,Q===null&&hl(a,ae.el),N&&me(N,v),(te=L.props&&L.props.onVnodeUpdated)&&me(()=>xe(te,K,L,z),v)}else{let L;const{el:j,props:N}=d,{bm:K,m:z,parent:Q}=a,te=vt(d);if(nt(a,!1),K&&Vn(K),!te&&(L=N&&N.onVnodeBeforeMount)&&xe(L,Q,d),nt(a,!0),j&&Dn){const ae=()=>{a.subTree=Bn(a),Dn(j,a.subTree,a,v,null)};te?d.type.__asyncLoader().then(()=>!a.isUnmounted&&ae()):ae()}else{const ae=a.subTree=Bn(a);M(null,ae,p,y,a,v,x),d.el=ae.el}if(z&&me(z,v),!te&&(L=N&&N.onVnodeMounted)){const ae=d;me(()=>xe(L,Q,ae),v)}(d.shapeFlag&256||Q&&vt(Q.vnode)&&Q.vnode.shapeFlag&256)&&a.a&&me(a.a,v),a.isMounted=!0,d=p=y=null}},T=a.effect=new Nt(C,Ee,()=>On(b),a.scope),b=a.update=()=>{T.dirty&&T.run()};b.id=a.uid,nt(a,!0),b()},X=(a,d,p)=>{d.component=a;const y=a.vnode.props;a.vnode=d,a.next=null,Bl(a,d.props,y,p),Wl(a,d.children,p),Ze(),Ys(a),et()},$=(a,d,p,y,v,x,O,C,T=!1)=>{const b=a&&a.children,L=a?a.shapeFlag:0,j=d.children,{patchFlag:N,shapeFlag:K}=d;if(N>0){if(N&128){qt(b,j,p,y,v,x,O,C,T);return}else if(N&256){Fe(b,j,p,y,v,x,O,C,T);return}}K&8?(L&16&&$e(b,v,x),j!==b&&f(p,j)):L&16?K&16?qt(b,j,p,y,v,x,O,C,T):$e(b,v,x,!0):(L&8&&f(p,""),K&16&&R(j,p,y,v,x,O,C,T))},Fe=(a,d,p,y,v,x,O,C,T)=>{a=a||gt,d=d||gt;const b=a.length,L=d.length,j=Math.min(b,L);let N;for(N=0;NL?$e(a,v,x,!0,!1,j):R(d,p,y,v,x,O,C,T,j)},qt=(a,d,p,y,v,x,O,C,T)=>{let b=0;const L=d.length;let j=a.length-1,N=L-1;for(;b<=j&&b<=N;){const K=a[b],z=d[b]=T?qe(d[b]):Ae(d[b]);if(it(K,z))M(K,z,p,null,v,x,O,C,T);else break;b++}for(;b<=j&&b<=N;){const K=a[j],z=d[N]=T?qe(d[N]):Ae(d[N]);if(it(K,z))M(K,z,p,null,v,x,O,C,T);else break;j--,N--}if(b>j){if(b<=N){const K=N+1,z=KN)for(;b<=j;)Oe(a[b],v,x,!0),b++;else{const K=b,z=b,Q=new Map;for(b=z;b<=N;b++){const be=d[b]=T?qe(d[b]):Ae(d[b]);be.key!=null&&Q.set(be.key,b)}let te,ae=0;const Te=N-z+1;let pt=!1,Ds=0;const xt=new Array(Te);for(b=0;b=Te){Oe(be,v,x,!0);continue}let Ie;if(be.key!=null)Ie=Q.get(be.key);else for(te=z;te<=N;te++)if(xt[te-z]===0&&it(be,d[te])){Ie=te;break}Ie===void 0?Oe(be,v,x,!0):(xt[Ie-z]=b+1,Ie>=Ds?Ds=Ie:pt=!0,M(be,d[Ie],p,null,v,x,O,C,T),ae++)}const Vs=pt?Jl(xt):gt;for(te=Vs.length-1,b=Te-1;b>=0;b--){const be=z+b,Ie=d[be],Us=be+1{const{el:x,type:O,transition:C,children:T,shapeFlag:b}=a;if(b&6){tt(a.component.subTree,d,p,y);return}if(b&128){a.suspense.move(d,p,y);return}if(b&64){O.move(a,d,p,ht);return}if(O===_e){s(x,d,p);for(let j=0;jC.enter(x),v);else{const{leave:j,delayLeave:N,afterLeave:K}=C,z=()=>s(x,d,p),Q=()=>{j(x,()=>{z(),K&&K()})};N?N(x,z,Q):Q()}else s(x,d,p)},Oe=(a,d,p,y=!1,v=!1)=>{const{type:x,props:O,ref:C,children:T,dynamicChildren:b,shapeFlag:L,patchFlag:j,dirs:N}=a;if(C!=null&&yn(C,null,p,a,!0),L&256){d.ctx.deactivate(a);return}const K=L&1&&N,z=!vt(a);let Q;if(z&&(Q=O&&O.onVnodeBeforeUnmount)&&xe(Q,d,a),L&6)ui(a.component,p,y);else{if(L&128){a.suspense.unmount(p,y);return}K&&Le(a,null,d,"beforeUnmount"),L&64?a.type.remove(a,d,p,v,ht,y):b&&(x!==_e||j>0&&j&64)?$e(b,d,p,!1,!0):(x===_e&&j&384||!v&&L&16)&&$e(T,d,p),y&&Hs(a)}(z&&(Q=O&&O.onVnodeUnmounted)||K)&&me(()=>{Q&&xe(Q,d,a),K&&Le(a,null,d,"unmounted")},p)},Hs=a=>{const{type:d,el:p,anchor:y,transition:v}=a;if(d===_e){ai(p,y);return}if(d===Pt){m(a);return}const x=()=>{r(p),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(a.shapeFlag&1&&v&&!v.persisted){const{leave:O,delayLeave:C}=v,T=()=>O(p,x);C?C(a.el,x,T):T()}else x()},ai=(a,d)=>{let p;for(;a!==d;)p=_(a),r(a),a=p;r(d)},ui=(a,d,p)=>{const{bum:y,scope:v,update:x,subTree:O,um:C}=a;y&&Vn(y),v.stop(),x&&(x.active=!1,Oe(O,a,d,p)),C&&me(C,d),me(()=>{a.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&a.asyncDep&&!a.asyncResolved&&a.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},$e=(a,d,p,y=!1,v=!1,x=0)=>{for(let O=x;Oa.shapeFlag&6?Gt(a.component.subTree):a.shapeFlag&128?a.suspense.next():_(a.anchor||a.el);let Hn=!1;const js=(a,d,p)=>{a==null?d._vnode&&Oe(d._vnode,null,null,!0):M(d._vnode||null,a,d,null,null,null,p),Hn||(Hn=!0,Ys(),gn(),Hn=!1),d._vnode=a},ht={p:M,um:Oe,m:tt,r:Hs,mt:le,mc:R,pc:$,pbc:E,n:Gt,o:e};let jn,Dn;return t&&([jn,Dn]=t(ht)),{render:js,hydrate:jn,createApp:Dl(js,jn)}}function qn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function nt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Po(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Mo(e,t,n=!1){const s=e.children,r=t.children;if(k(s)&&k(r))for(let o=0;o>1,e[n[l]]0&&(t[s]=n[o-1]),n[o]=s)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function No(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:No(t)}const Ql=e=>e.__isTeleport,_e=Symbol.for("v-fgt"),wt=Symbol.for("v-txt"),ye=Symbol.for("v-cmt"),Pt=Symbol.for("v-stc"),Mt=[];let Re=null;function Fo(e=!1){Mt.push(Re=e?null:[])}function Zl(){Mt.pop(),Re=Mt[Mt.length-1]||null}let Dt=1;function cr(e){Dt+=e}function $o(e){return e.dynamicChildren=Dt>0?Re||gt:null,Zl(),Dt>0&&Re&&Re.push(e),e}function Ja(e,t,n,s,r,o){return $o(Do(e,t,n,s,r,o,!0))}function Ho(e,t,n,s,r){return $o(se(e,t,n,s,r,!0))}function vn(e){return e?e.__v_isVNode===!0:!1}function it(e,t){return e.type===t.type&&e.key===t.key}const jo=({key:e})=>e??null,un=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?re(e)||he(e)||W(e)?{i:ce,r:e,k:t,f:!!n}:e:null);function Do(e,t=null,n=null,s=0,r=null,o=e===_e?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&jo(t),ref:t&&un(t),scopeId:Ln,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:ce};return l?(Ns(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=re(n)?8:16),Dt>0&&!i&&Re&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Re.push(c),c}const se=ec;function ec(e,t=null,n=null,s=0,r=null,o=!1){if((!e||e===uo)&&(e=ye),vn(e)){const l=Qe(e,t,!0);return n&&Ns(l,n),Dt>0&&!o&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag|=-2,l}if(uc(e)&&(e=e.__vccOpts),t){t=tc(t);let{class:l,style:c}=t;l&&!re(l)&&(t.class=Es(l)),Z(c)&&(Zr(c)&&!k(c)&&(c=ie({},c)),t.style=ws(c))}const i=re(e)?1:pl(e)?128:Ql(e)?64:Z(e)?4:W(e)?2:0;return Do(e,t,n,s,r,i,o,!0)}function tc(e){return e?Zr(e)||To(e)?ie({},e):e:null}function Qe(e,t,n=!1,s=!1){const{props:r,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?nc(r||{},t):r,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&jo(u),ref:t&&t.ref?n&&o?k(o)?o.concat(un(t)):[o,un(t)]:un(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==_e?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Qe(e.ssContent),ssFallback:e.ssFallback&&Qe(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&(f.transition=c.clone(f)),f}function Vo(e=" ",t=0){return se(wt,null,e,t)}function Qa(e,t){const n=se(Pt,null,e);return n.staticCount=t,n}function Za(e="",t=!1){return t?(Fo(),Ho(ye,null,e)):se(ye,null,e)}function Ae(e){return e==null||typeof e=="boolean"?se(ye):k(e)?se(_e,null,e.slice()):typeof e=="object"?qe(e):se(wt,null,String(e))}function qe(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Qe(e)}function Ns(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(k(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Ns(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!To(t)?t._ctx=ce:r===3&&ce&&(ce.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:ce},n=32):(t=String(t),s&64?(n=16,t=[Vo(t)]):n=8);e.children=t,e.shapeFlag|=n}function nc(...e){const t={};for(let n=0;nue||ce;let bn,gs;{const e=jr(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),o=>{r.length>1?r.forEach(i=>i(o)):r[0](o)}};bn=t("__VUE_INSTANCE_SETTERS__",n=>ue=n),gs=t("__VUE_SSR_SETTERS__",n=>Wt=n)}const Kt=e=>{const t=ue;return bn(e),e.scope.on(),()=>{e.scope.off(),bn(t)}},ar=()=>{ue&&ue.scope.off(),bn(null)};function Uo(e){return e.vnode.shapeFlag&4}let Wt=!1;function ic(e,t=!1){t&&gs(t);const{props:n,children:s}=e.vnode,r=Uo(e);Ul(e,n,r,t),Kl(e,s);const o=r?lc(e,t):void 0;return t&&gs(!1),o}function lc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ll);const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?ko(e):null,o=Kt(e);Ze();const i=Xe(s,e,0,[e.props,r]);if(et(),o(),Nr(i)){if(i.then(ar,ar),t)return i.then(l=>{ur(e,l,t)}).catch(l=>{Bt(l,e,0)});e.asyncDep=i}else ur(e,i,t)}else Bo(e,t)}function ur(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=ro(t)),Bo(e,n)}let fr;function Bo(e,t,n){const s=e.type;if(!e.render){if(!t&&fr&&!s.render){const r=s.template||Ps(e).template;if(r){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,u=ie(ie({isCustomElement:o,delimiters:l},i),c);s.render=fr(r,u)}}e.render=s.render||Ee}{const r=Kt(e);Ze();try{Ml(e)}finally{et(),r()}}}const cc={get(e,t){return ve(e,"get",""),e[t]}};function ko(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,cc),slots:e.slots,emit:e.emit,expose:t}}function $n(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(ro(an(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in It)return It[n](e)},has(t,n){return n in t||n in It}}))}function ac(e,t=!0){return W(e)?e.displayName||e.name:e.name||t&&e.__name}function uc(e){return W(e)&&"__vccOpts"in e}const ne=(e,t)=>zi(e,t,Wt);function ms(e,t,n){const s=arguments.length;return s===2?Z(t)&&!k(t)?vn(t)?se(e,null,[t]):se(e,t):se(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&vn(n)&&(n=[n]),se(e,t,n))}const fc="3.4.26";/** +* @vue/runtime-dom v3.4.26 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const dc="http://www.w3.org/2000/svg",hc="http://www.w3.org/1998/Math/MathML",Ge=typeof document<"u"?document:null,dr=Ge&&Ge.createElement("template"),pc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Ge.createElementNS(dc,e):t==="mathml"?Ge.createElementNS(hc,e):Ge.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Ge.createTextNode(e),createComment:e=>Ge.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ge.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,o){const i=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{dr.innerHTML=s==="svg"?`${e}`:s==="mathml"?`${e}`:e;const l=dr.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Be="transition",St="animation",Vt=Symbol("_vtc"),Ko=(e,{slots:t})=>ms(bl,gc(e),t);Ko.displayName="Transition";const Wo={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};Ko.props=ie({},mo,Wo);const st=(e,t=[])=>{k(e)?e.forEach(n=>n(...t)):e&&e(...t)},hr=e=>e?k(e)?e.some(t=>t.length>1):e.length>1:!1;function gc(e){const t={};for(const S in e)S in Wo||(t[S]=e[S]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:f=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:_=`${n}-leave-active`,leaveToClass:w=`${n}-leave-to`}=e,A=mc(r),M=A&&A[0],F=A&&A[1],{onBeforeEnter:q,onEnter:D,onEnterCancelled:g,onLeave:m,onLeaveCancelled:P,onBeforeAppear:I=q,onAppear:U=D,onAppearCancelled:R=g}=t,V=(S,G,le)=>{rt(S,G?f:l),rt(S,G?u:i),le&&le()},E=(S,G)=>{S._isLeaving=!1,rt(S,h),rt(S,w),rt(S,_),G&&G()},B=S=>(G,le)=>{const fe=S?U:D,H=()=>V(G,S,le);st(fe,[G,H]),pr(()=>{rt(G,S?c:o),ke(G,S?f:l),hr(fe)||gr(G,s,M,H)})};return ie(t,{onBeforeEnter(S){st(q,[S]),ke(S,o),ke(S,i)},onBeforeAppear(S){st(I,[S]),ke(S,c),ke(S,u)},onEnter:B(!1),onAppear:B(!0),onLeave(S,G){S._isLeaving=!0;const le=()=>E(S,G);ke(S,h),ke(S,_),vc(),pr(()=>{S._isLeaving&&(rt(S,h),ke(S,w),hr(m)||gr(S,s,F,le))}),st(m,[S,le])},onEnterCancelled(S){V(S,!1),st(g,[S])},onAppearCancelled(S){V(S,!0),st(R,[S])},onLeaveCancelled(S){E(S),st(P,[S])}})}function mc(e){if(e==null)return null;if(Z(e))return[Gn(e.enter),Gn(e.leave)];{const t=Gn(e);return[t,t]}}function Gn(e){return _i(e)}function ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Vt]||(e[Vt]=new Set)).add(t)}function rt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Vt];n&&(n.delete(t),n.size||(e[Vt]=void 0))}function pr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let _c=0;function gr(e,t,n,s){const r=e._endId=++_c,o=()=>{r===e._endId&&s()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=yc(e,t);if(!i)return s();const u=i+"end";let f=0;const h=()=>{e.removeEventListener(u,_),o()},_=w=>{w.target===e&&++f>=c&&h()};setTimeout(()=>{f(n[A]||"").split(", "),r=s(`${Be}Delay`),o=s(`${Be}Duration`),i=mr(r,o),l=s(`${St}Delay`),c=s(`${St}Duration`),u=mr(l,c);let f=null,h=0,_=0;t===Be?i>0&&(f=Be,h=i,_=o.length):t===St?u>0&&(f=St,h=u,_=c.length):(h=Math.max(i,u),f=h>0?i>u?Be:St:null,_=f?f===Be?o.length:c.length:0);const w=f===Be&&/\b(transform|all)(,|$)/.test(s(`${Be}Property`).toString());return{type:f,timeout:h,propCount:_,hasTransform:w}}function mr(e,t){for(;e.length_r(n)+_r(e[s])))}function _r(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function vc(){return document.body.offsetHeight}function bc(e,t,n){const s=e[Vt];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const wn=Symbol("_vod"),qo=Symbol("_vsh"),eu={beforeMount(e,{value:t},{transition:n}){e[wn]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Tt(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),Tt(e,!0),s.enter(e)):s.leave(e,()=>{Tt(e,!1)}):Tt(e,t))},beforeUnmount(e,{value:t}){Tt(e,t)}};function Tt(e,t){e.style.display=t?e[wn]:"none",e[qo]=!t}const wc=Symbol(""),Ec=/(^|;)\s*display\s*:/;function Cc(e,t,n){const s=e.style,r=re(n);let o=!1;if(n&&!r){if(t)if(re(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&fn(s,l,"")}else for(const i in t)n[i]==null&&fn(s,i,"");for(const i in n)i==="display"&&(o=!0),fn(s,i,n[i])}else if(r){if(t!==n){const i=s[wc];i&&(n+=";"+i),s.cssText=n,o=Ec.test(n)}}else t&&e.removeAttribute("style");wn in e&&(e[wn]=o?s.display:"",e[qo]&&(s.display="none"))}const yr=/\s*!important$/;function fn(e,t,n){if(k(n))n.forEach(s=>fn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=xc(e,t);yr.test(n)?e.setProperty(dt(s),n.replace(yr,""),"important"):e[s]=n}}const vr=["Webkit","Moz","ms"],zn={};function xc(e,t){const n=zn[t];if(n)return n;let s=Ne(t);if(s!=="filter"&&s in e)return zn[t]=s;s=xn(s);for(let r=0;rXn||(Lc.then(()=>Xn=0),Xn=Date.now());function Mc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Se(Nc(s,n.value),t,5,[s])};return n.value=e,n.attached=Pc(),n}function Nc(e,t){if(k(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Cr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Fc=(e,t,n,s,r,o,i,l,c)=>{const u=r==="svg";t==="class"?bc(e,s,u):t==="style"?Cc(e,n,s):Ut(t)?ys(t)||Oc(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):$c(e,t,s,u))?Tc(e,t,s,o,i,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Sc(e,t,s,u))};function $c(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Cr(t)&&W(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Cr(t)&&re(n)?!1:t in e}const Hc=["ctrl","shift","alt","meta"],jc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Hc.some(n=>e[`${n}Key`]&&!t.includes(n))},tu=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const o=dt(r.key);if(t.some(i=>i===o||Dc[i]===o))return e(r)})},Vc=ie({patchProp:Fc},pc);let Yn,xr=!1;function Uc(){return Yn=xr?Yn:Xl(Vc),xr=!0,Yn}const su=(...e)=>{const t=Uc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=kc(s);if(r)return n(r,!0,Bc(r))},t};function Bc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function kc(e){return re(e)?document.querySelector(e):e}const ru=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},ou="/Coalesce/coalesce-icon-color.svg",iu="/Coalesce/net-logo.svg",lu="/Coalesce/ef-logo.svg",cu="/Coalesce/ts-logo-512.svg",au="/Coalesce/vue-logo.svg",uu="/Coalesce/vite-logo.svg",Kc="modulepreload",Wc=function(e){return"/Coalesce/"+e},Sr={},fu=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),i=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));r=Promise.all(n.map(l=>{if(l=Wc(l),l in Sr)return;Sr[l]=!0;const c=l.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${u}`))return;const f=document.createElement("link");if(f.rel=c?"stylesheet":Kc,c||(f.as="script",f.crossOrigin=""),f.href=l,i&&f.setAttribute("nonce",i),document.head.appendChild(f),c)return new Promise((h,_)=>{f.addEventListener("load",h),f.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${l}`)))})}))}return r.then(()=>t()).catch(o=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o})},qc=window.__VP_SITE_DATA__;function Fs(e){return Ur()?(Ti(e),!0):!1}function Ye(e){return typeof e=="function"?e():so(e)}const Go=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Gc=Object.prototype.toString,zc=e=>Gc.call(e)==="[object Object]",zo=()=>{},Tr=Xc();function Xc(){var e,t;return Go&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function Yc(e,t){function n(...s){return new Promise((r,o)=>{Promise.resolve(e(()=>t.apply(this,s),{fn:t,thisArg:this,args:s})).then(r).catch(o)})}return n}const Xo=e=>e();function Jc(e=Xo){const t=oe(!0);function n(){t.value=!1}function s(){t.value=!0}const r=(...o)=>{t.value&&e(...o)};return{isActive:An(t),pause:n,resume:s,eventFilter:r}}function Qc(e){return Fn()}function Yo(...e){if(e.length!==1)return tl(...e);const t=e[0];return typeof t=="function"?An(Qi(()=>({get:t,set:zo}))):oe(t)}function Zc(e,t,n={}){const{eventFilter:s=Xo,...r}=n;return Me(e,Yc(s,t),r)}function ea(e,t,n={}){const{eventFilter:s,...r}=n,{eventFilter:o,pause:i,resume:l,isActive:c}=Jc(s);return{stop:Zc(e,t,{...r,eventFilter:o}),pause:i,resume:l,isActive:c}}function $s(e,t=!0,n){Qc()?Ct(e,n):t?e():Rn(e)}function Jo(e){var t;const n=Ye(e);return(t=n==null?void 0:n.$el)!=null?t:n}const je=Go?window:void 0;function Et(...e){let t,n,s,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,s,r]=e,t=je):[t,n,s,r]=e,!t)return zo;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const o=[],i=()=>{o.forEach(f=>f()),o.length=0},l=(f,h,_,w)=>(f.addEventListener(h,_,w),()=>f.removeEventListener(h,_,w)),c=Me(()=>[Jo(t),Ye(r)],([f,h])=>{if(i(),!f)return;const _=zc(h)?{...h}:h;o.push(...n.flatMap(w=>s.map(A=>l(f,w,A,_))))},{immediate:!0,flush:"post"}),u=()=>{c(),i()};return Fs(u),u}function ta(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function du(...e){let t,n,s={};e.length===3?(t=e[0],n=e[1],s=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],s=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=je,eventName:o="keydown",passive:i=!1,dedupe:l=!1}=s,c=ta(t);return Et(r,o,f=>{f.repeat&&Ye(l)||c(f)&&n(f)},i)}function na(){const e=oe(!1),t=Fn();return t&&Ct(()=>{e.value=!0},t),e}function sa(e){const t=na();return ne(()=>(t.value,!!e()))}function Qo(e,t={}){const{window:n=je}=t,s=sa(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let r;const o=oe(!1),i=u=>{o.value=u.matches},l=()=>{r&&("removeEventListener"in r?r.removeEventListener("change",i):r.removeListener(i))},c=po(()=>{s.value&&(l(),r=n.matchMedia(Ye(e)),"addEventListener"in r?r.addEventListener("change",i):r.addListener(i),o.value=r.matches)});return Fs(()=>{c(),l(),r=void 0}),o}const sn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},rn="__vueuse_ssr_handlers__",ra=oa();function oa(){return rn in sn||(sn[rn]=sn[rn]||{}),sn[rn]}function Zo(e,t){return ra[e]||t}function ia(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const la={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ar="vueuse-storage";function ca(e,t,n,s={}){var r;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:u=!1,shallow:f,window:h=je,eventFilter:_,onError:w=E=>{console.error(E)},initOnMounted:A}=s,M=(f?to:oe)(typeof t=="function"?t():t);if(!n)try{n=Zo("getDefaultStorage",()=>{var E;return(E=je)==null?void 0:E.localStorage})()}catch(E){w(E)}if(!n)return M;const F=Ye(t),q=ia(F),D=(r=s.serializer)!=null?r:la[q],{pause:g,resume:m}=ea(M,()=>I(M.value),{flush:o,deep:i,eventFilter:_});h&&l&&$s(()=>{Et(h,"storage",R),Et(h,Ar,V),A&&R()}),A||R();function P(E,B){h&&h.dispatchEvent(new CustomEvent(Ar,{detail:{key:e,oldValue:E,newValue:B,storageArea:n}}))}function I(E){try{const B=n.getItem(e);if(E==null)P(B,null),n.removeItem(e);else{const S=D.write(E);B!==S&&(n.setItem(e,S),P(B,S))}}catch(B){w(B)}}function U(E){const B=E?E.newValue:n.getItem(e);if(B==null)return c&&F!=null&&n.setItem(e,D.write(F)),F;if(!E&&u){const S=D.read(B);return typeof u=="function"?u(S,F):q==="object"&&!Array.isArray(S)?{...F,...S}:S}else return typeof B!="string"?B:D.read(B)}function R(E){if(!(E&&E.storageArea!==n)){if(E&&E.key==null){M.value=F;return}if(!(E&&E.key!==e)){g();try{(E==null?void 0:E.newValue)!==D.write(M.value)&&(M.value=U(E))}catch(B){w(B)}finally{E?Rn(m):m()}}}}function V(E){R(E.detail)}return M}function ei(e){return Qo("(prefers-color-scheme: dark)",e)}function aa(e={}){const{selector:t="html",attribute:n="class",initialValue:s="auto",window:r=je,storage:o,storageKey:i="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:u,disableTransition:f=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},_=ei({window:r}),w=ne(()=>_.value?"dark":"light"),A=c||(i==null?Yo(s):ca(i,s,o,{window:r,listenToStorageChanges:l})),M=ne(()=>A.value==="auto"?w.value:A.value),F=Zo("updateHTMLAttrs",(m,P,I)=>{const U=typeof m=="string"?r==null?void 0:r.document.querySelector(m):Jo(m);if(!U)return;let R;if(f&&(R=r.document.createElement("style"),R.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),r.document.head.appendChild(R)),P==="class"){const V=I.split(/\s/g);Object.values(h).flatMap(E=>(E||"").split(/\s/g)).filter(Boolean).forEach(E=>{V.includes(E)?U.classList.add(E):U.classList.remove(E)})}else U.setAttribute(P,I);f&&(r.getComputedStyle(R).opacity,document.head.removeChild(R))});function q(m){var P;F(t,n,(P=h[m])!=null?P:m)}function D(m){e.onChanged?e.onChanged(m,q):q(m)}Me(M,D,{flush:"post",immediate:!0}),$s(()=>D(M.value));const g=ne({get(){return u?A.value:M.value},set(m){A.value=m}});try{return Object.assign(g,{store:A,system:w,state:M})}catch{return g}}function ua(e={}){const{valueDark:t="dark",valueLight:n="",window:s=je}=e,r=aa({...e,onChanged:(l,c)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),o=ne(()=>r.system?r.system.value:ei({window:s}).value?"dark":"light");return ne({get(){return r.value==="dark"},set(l){const c=l?"dark":"light";o.value===c?r.value="auto":r.value=c}})}function Jn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function ti(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const on=new WeakMap;function hu(e,t=!1){const n=oe(t);let s=null;Me(Yo(e),i=>{const l=Jn(Ye(i));if(l){const c=l;on.get(c)||on.set(c,c.style.overflow),n.value&&(c.style.overflow="hidden")}},{immediate:!0});const r=()=>{const i=Jn(Ye(e));!i||n.value||(Tr&&(s=Et(i,"touchmove",l=>{fa(l)},{passive:!1})),i.style.overflow="hidden",n.value=!0)},o=()=>{var i;const l=Jn(Ye(e));!l||!n.value||(Tr&&(s==null||s()),l.style.overflow=(i=on.get(l))!=null?i:"",on.delete(l),n.value=!1)};return Fs(o),ne({get(){return n.value},set(i){i?r():o()}})}function pu(e={}){const{window:t=je,behavior:n="auto"}=e;if(!t)return{x:oe(0),y:oe(0)};const s=oe(t.scrollX),r=oe(t.scrollY),o=ne({get(){return s.value},set(l){scrollTo({left:l,behavior:n})}}),i=ne({get(){return r.value},set(l){scrollTo({top:l,behavior:n})}});return Et(t,"scroll",()=>{s.value=t.scrollX,r.value=t.scrollY},{capture:!1,passive:!0}),{x:o,y:i}}function gu(e={}){const{window:t=je,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:s=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:o=!0}=e,i=oe(n),l=oe(s),c=()=>{t&&(o?(i.value=t.innerWidth,l.value=t.innerHeight):(i.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),$s(c),Et("resize",c,{passive:!0}),r){const u=Qo("(orientation: portrait)");Me(u,()=>c())}return{width:i,height:l}}var Qn={BASE_URL:"/Coalesce/",MODE:"production",DEV:!1,PROD:!0,SSR:!1},Zn={};const ni=/^(?:[a-z]+:|\/\/)/i,da="vitepress-theme-appearance",ha=/#.*$/,pa=/[?#].*$/,ga=/(?:(^|\/)index)?\.(?:md|html)$/,ge=typeof document<"u",si={relativePath:"",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function ma(e,t,n=!1){if(t===void 0)return!1;if(e=Rr(`/${e}`),n)return new RegExp(t).test(e);if(Rr(t)!==e)return!1;const s=t.match(ha);return s?(ge?location.hash:"")===s[0]:!0}function Rr(e){return decodeURI(e).replace(pa,"").replace(ga,"$1")}function _a(e){return ni.test(e)}function ya(e,t){var s,r,o,i,l,c,u;const n=Object.keys(e.locales).find(f=>f!=="root"&&!_a(f)&&ma(t,`/${f}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((o=e.locales[n])==null?void 0:o.title)??e.title,titleTemplate:((i=e.locales[n])==null?void 0:i.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:oi(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(u=e.locales[n])==null?void 0:u.themeConfig}})}function ri(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=va(e.title,s);return n===r.slice(3)?n:`${n}${r}`}function va(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function ba(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([o,i])=>o===n&&i[r[0]]===r[1])}function oi(e,t){return[...e.filter(n=>!ba(t,n)),...t]}const wa=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Ea=/^[a-z]:/i;function Or(e){const t=Ea.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(wa,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const es=new Set;function Ca(e){if(es.size===0){const n=typeof process=="object"&&(Zn==null?void 0:Zn.VITE_EXTRA_EXTENSIONS)||(Qn==null?void 0:Qn.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(s=>es.add(s))}const t=e.split(".").pop();return t==null||!es.has(t.toLowerCase())}const xa=Symbol(),ut=to(qc);function mu(e){const t=ne(()=>ya(ut.value,e.data.relativePath)),n=t.value.appearance,s=n==="force-dark"?oe(!0):n?ua({storageKey:da,initialValue:()=>typeof n=="string"?n:"auto",...typeof n=="object"?n:{}}):oe(!1),r=oe(ge?location.hash:"");return ge&&window.addEventListener("hashchange",()=>{r.value=location.hash}),Me(()=>e.data,()=>{r.value=ge?location.hash:""}),{site:t,theme:ne(()=>t.value.themeConfig),page:ne(()=>e.data),frontmatter:ne(()=>e.data.frontmatter),params:ne(()=>e.data.params),lang:ne(()=>t.value.lang),dir:ne(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:ne(()=>t.value.localeIndex||"root"),title:ne(()=>ri(t.value,e.data)),description:ne(()=>e.data.description||t.value.description),isDark:s,hash:ne(()=>r.value)}}function Sa(){const e=bt(xa);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Ta(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Ir(e){return ni.test(e)||!e.startsWith("/")?e:Ta(ut.value.base,e)}function Aa(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),ge){const n="/Coalesce/";t=Or(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];if(s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),!s)return null;t=`${n}assets/${t}.${s}.js`}else t=`./${Or(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let dn=[];function _u(e){dn.push(e),Nn(()=>{dn=dn.filter(t=>t!==e)})}function Ra(){let e=ut.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Lr(e,n);else if(Array.isArray(e))for(const s of e){const r=Lr(s,n);if(r){t=r;break}}return t}function Lr(e,t){const n=document.querySelector(e);if(!n)return 0;const s=n.getBoundingClientRect().bottom;return s<0?0:s+t}const Oa=Symbol(),ii="http://a.com",Ia=()=>({path:"/",component:null,data:si});function yu(e,t){const n=Tn(Ia()),s={route:n,go:r};async function r(l=ge?location.href:"/"){var c,u;l=ts(l),await((c=s.onBeforeRouteChange)==null?void 0:c.call(s,l))!==!1&&(ge&&l!==ts(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await i(l),await((u=s.onAfterRouteChanged)==null?void 0:u.call(s,l)))}let o=null;async function i(l,c=0,u=!1){var _;if(await((_=s.onBeforePageLoad)==null?void 0:_.call(s,l))===!1)return;const f=new URL(l,ii),h=o=f.pathname;try{let w=await e(h);if(!w)throw new Error(`Page not found: ${h}`);if(o===h){o=null;const{default:A,__pageData:M}=w;if(!A)throw new Error(`Invalid route component: ${A}`);n.path=ge?h:Ir(h),n.component=an(A),n.data=an(M),ge&&Rn(()=>{let F=ut.value.base+M.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ut.value.cleanUrls&&!F.endsWith("/")&&(F+=".html"),F!==f.pathname&&(f.pathname=F,l=F+f.search+f.hash,history.replaceState({},"",l)),f.hash&&!c){let q=null;try{q=document.getElementById(decodeURIComponent(f.hash).slice(1))}catch(D){console.warn(D)}if(q){Pr(q,f.hash);return}}window.scrollTo(0,c)})}}catch(w){if(!/fetch|Page not found/.test(w.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(w),!u)try{const A=await fetch(ut.value.base+"hashmap.json");window.__VP_HASH_MAP__=await A.json(),await i(l,c,!0);return}catch{}o===h&&(o=null,n.path=ge?h:Ir(h),n.component=t?an(t):null,n.data=si)}}return ge&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.target.closest("button"))return;const u=l.target.closest("a");if(u&&!u.closest(".vp-raw")&&(u instanceof SVGElement||!u.download)){const{target:f}=u,{href:h,origin:_,pathname:w,hash:A,search:M}=new URL(u.href instanceof SVGAnimatedString?u.href.animVal:u.href,u.baseURI),F=new URL(location.href);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&!f&&_===F.origin&&Ca(w)&&(l.preventDefault(),w===F.pathname&&M===F.search?(A!==F.hash&&(history.pushState({},"",h),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:F.href,newURL:h}))),A?Pr(u,A,u.classList.contains("header-anchor")):window.scrollTo(0,0)):r(h))}},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await i(ts(location.href),l.state&&l.state.scrollPosition||0),(c=s.onAfterRouteChanged)==null||c.call(s,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function La(){const e=bt(Oa);if(!e)throw new Error("useRouter() is called without provider.");return e}function li(){return La().route}function Pr(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(r){console.warn(r)}if(s){let r=function(){!n||Math.abs(i-window.scrollY)>window.innerHeight?window.scrollTo(0,i):window.scrollTo({left:0,top:i,behavior:"smooth"})};const o=parseInt(window.getComputedStyle(s).paddingTop,10),i=window.scrollY+s.getBoundingClientRect().top-Ra()+o;requestAnimationFrame(r)}}function ts(e){const t=new URL(e,ii);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ut.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const ns=()=>dn.forEach(e=>e()),vu=Ls({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=li(),{site:n}=Sa();return()=>ms(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?ms(t.component,{onVnodeMounted:ns,onVnodeUpdated:ns,onVnodeUnmounted:ns}):"404 Page Not Found"])}}),bu="/Coalesce/intellitect-text-white.svg",wu="/Coalesce/intellitect-text-black.svg",Eu=Ls({setup(e,{slots:t}){const n=oe(!1);return Ct(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Cu(){ge&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const s=(n=t.parentElement)==null?void 0:n.parentElement;if(!s)return;const r=Array.from(s.querySelectorAll("input")).indexOf(t);if(r<0)return;const o=s.querySelector(".blocks");if(!o)return;const i=Array.from(o.children).find(u=>u.classList.contains("active"));if(!i)return;const l=o.children[r];if(!l||i===l)return;i.classList.remove("active"),l.classList.add("active");const c=s==null?void 0:s.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function xu(){if(ge){const e=new WeakMap;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,o=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!o)return;const i=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className),l=[".vp-copy-ignore",".diff.remove"],c=o.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(f=>f.remove());let u=c.textContent||"";i&&(u=u.replace(/^ *(\$|>) /gm,"").trim()),Pa(u).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const f=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,f)})}})}}async function Pa(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function Su(e,t){let n=!0,s=[];const r=o=>{if(n){n=!1,o.forEach(l=>{const c=ss(l);for(const u of document.head.children)if(u.isEqualNode(c)){s.push(u);return}});return}const i=o.map(ss);s.forEach((l,c)=>{const u=i.findIndex(f=>f==null?void 0:f.isEqualNode(l??null));u!==-1?delete i[u]:(l==null||l.remove(),delete s[c])}),i.forEach(l=>l&&document.head.appendChild(l)),s=[...s,...i].filter(Boolean)};po(()=>{const o=e.data,i=t.value,l=o&&o.description,c=o&&o.frontmatter.head||[],u=ri(i,o);u!==document.title&&(document.title=u);const f=l||i.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==f&&h.setAttribute("content",f):ss(["meta",{name:"description",content:f}]),r(oi(i.head,Na(c)))})}function ss([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),e==="script"&&!t.async&&(s.async=!1),s}function Ma(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Na(e){return e.filter(t=>!Ma(t))}const rs=new Set,ci=()=>document.createElement("link"),Fa=e=>{const t=ci();t.rel="prefetch",t.href=e,document.head.appendChild(t)},$a=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let ln;const Ha=ge&&(ln=ci())&&ln.relList&&ln.relList.supports&&ln.relList.supports("prefetch")?Fa:$a;function Tu(){if(!ge||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(o=>{o.forEach(i=>{if(i.isIntersecting){const l=i.target;n.unobserve(l);const{pathname:c}=l;if(!rs.has(c)){rs.add(c);const u=Aa(c);u&&Ha(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(o=>{const{hostname:i,pathname:l}=new URL(o.href instanceof SVGAnimatedString?o.href.animVal:o.href,o.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||o.target!=="_blank"&&i===location.hostname&&(l!==location.pathname?n.observe(o):rs.add(l))})})};Ct(s);const r=li();Me(()=>r.path,s),Nn(()=>{n&&n.disconnect()})}export{Xa as $,Ka as A,Tl as B,Ra as C,Ga as D,Ba as E,_e as F,to as G,_u as H,se as I,ka as J,ni as K,li as L,nc as M,bt as N,gu as O,ws as P,du as Q,Rn as R,pu as S,Ko as T,ge as U,An as V,qa as W,fu as X,hu as Y,Vl as Z,ru as _,Vo as a,nu as a0,tu as a1,Ya as a2,Tn as a3,Da as a4,Wa as a5,eu as a6,Qa as a7,bu as a8,wu as a9,ms as aa,ou as ab,iu as ac,lu as ad,cu as ae,au as af,uu as ag,Su as ah,Oa as ai,mu as aj,xa as ak,vu as al,Eu as am,ut as an,su as ao,yu as ap,Aa as aq,Tu as ar,xu as as,Cu as at,La as au,Ho as b,Ja as c,Ls as d,Za as e,Ca as f,Ir as g,ne as h,_a as i,oe as j,Ct as k,Do as l,so as m,Es as n,Fo as o,Va as p,Ua as q,za as r,ma as s,ja as t,Sa as u,Qo as v,al as w,Me as x,po as y,Nn as z}; diff --git a/assets/chunks/fsharp.COWl2xCs.js b/assets/chunks/fsharp.COWl2xCs.js new file mode 100644 index 000000000..4b611d1c3 --- /dev/null +++ b/assets/chunks/fsharp.COWl2xCs.js @@ -0,0 +1 @@ +import e from"./markdown.BdfWgkoX.js";const a=Object.freeze({displayName:"F#",name:"fsharp",patterns:[{include:"#compiler_directives"},{include:"#comments"},{include:"#constants"},{include:"#strings"},{include:"#chars"},{include:"#double_tick"},{include:"#definition"},{include:"#abstract_definition"},{include:"#attributes"},{include:"#modules"},{include:"#anonymous_functions"},{include:"#du_declaration"},{include:"#record_declaration"},{include:"#records"},{include:"#strp_inlined"},{include:"#keywords"},{include:"#cexprs"},{include:"#text"}],repository:{abstract_definition:{begin:"\\b(abstract)\\s+(member)?(\\s+\\[\\<.*\\>\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(<)?",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.fsharp"},3:{name:"support.function.attribute.fsharp"},5:{name:"keyword.symbol.fsharp"}},end:"\\s*(with)\\b|=|$",endCaptures:{1:{name:"keyword.fsharp"}},name:"abstract.definition.fsharp",patterns:[{include:"#comments"},{include:"#common_declaration"},{captures:{1:{name:"keyword.symbol.fsharp"},2:{name:"variable.parameter.fsharp"},3:{name:"keyword.symbol.fsharp"},4:{name:"entity.name.type.fsharp"}},match:"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}"},{captures:{1:{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words isn't blacklisted",match:"(?!with|get|set\\b)\\s*([\\w0-9'`^._]+)"},{include:"#keywords"}]},anonymous_functions:{patterns:[{begin:"\\b(fun)\\b",beginCaptures:{1:{name:"keyword.fsharp"}},end:"(->)",endCaptures:{1:{name:"keyword.symbol.arrow.fsharp"}},name:"function.anonymous",patterns:[{include:"#comments"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"\\s*(?=(->))",endCaptures:{1:{name:"keyword.symbol.arrow.fsharp"}},patterns:[{include:"#member_declaration"}]},{include:"#variables"}]}]},anonymous_record_declaration:{begin:"(\\{\\|)",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\|\\})",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"keyword.symbol.fsharp"}},match:"[[:alpha:]0-9'`^_ ]+(:)"},{captures:{1:{name:"entity.name.type.fsharp"}},match:"([[:alpha:]0-9'`^_ ]+)"},{include:"#anonymous_record_declaration"},{include:"#keywords"}]},attributes:{patterns:[{begin:"\\[\\<",end:"\\>\\]|\\]",name:"support.function.attribute.fsharp",patterns:[{include:"$self"}]}]},cexprs:{patterns:[{captures:{0:{name:"keyword.fsharp"}},match:"\\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)(?=\\s*\\{)",name:"cexpr.fsharp"}]},chars:{patterns:[{captures:{1:{name:"string.quoted.single.fsharp"}},match:"('\\\\?.')",name:"char.fsharp"}]},comments:{patterns:[{beginCaptures:{1:{name:"comment.block.fsharp"}},match:"(\\(\\*{3}.*\\*{3}\\))",name:"comment.literate.command.fsharp"},{begin:"^\\s*(\\(\\*\\*(?!\\)))((?!\\*\\)).)*$",beginCaptures:{1:{name:"comment.block.fsharp"}},endCaptures:{1:{name:"comment.block.fsharp"}},name:"comment.block.markdown.fsharp",patterns:[{include:"text.html.markdown"}],while:"^(?!\\s*(\\*)+\\)\\s*$)"},{begin:"(\\(\\*(?!\\)))",beginCaptures:{1:{name:"comment.block.fsharp"}},end:"(\\*+\\))",endCaptures:{1:{name:"comment.block.fsharp"}},name:"comment.block.fsharp",patterns:[{comments:"Capture // when inside of (* *) like that the rule which capture comments starting by // is not trigger. See https://github.com/ionide/ionide-fsgrammar/issues/155",match:"//",name:"fast-capture.comment.line.double-slash.fsharp"},{comments:"Capture (*) when inside of (* *) so that it doesn't prematurely end the comment block.",match:"\\(\\*\\)",name:"fast-capture.comment.line.mul-operator.fsharp"},{include:"#comments"}]},{captures:{1:{name:"comment.block.fsharp"}},match:"((??@^|/])///(?!/)",name:"comment.line.markdown.fsharp",patterns:[{include:"text.html.markdown"}],while:"(??@^|/])///(?!/)"},{match:"(??@^|/])//(.*$)",name:"comment.line.double-slash.fsharp"}]},common_binding_definition:{patterns:[{include:"#comments"},{include:"#attributes"},{begin:"(:)\\s*(\\()\\s*(static member|member)",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:"(\\))\\s*((?=,)|(?=\\=))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(\\^[[:alpha:]0-9'._]+)"},{include:"#variables"},{include:"#keywords"}]},{begin:"(:)\\s*(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"}},end:"(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))",endCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:"(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"},3:{name:"keyword.fsharp"}},end:"(?=:)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{match:"\\b(and|when|or)\\b",name:"keyword.fsharp"},{captures:{1:{name:"entity.name.type.fsharp"}},comment:"Because we first capture the keywords, we can capture what looks like a word and assume it's an entity definition",match:"([[:alpha:]0-9'^._]+)"},{match:"(\\(|\\))",name:"keyword.symbol.fsharp"}]},{captures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"}},match:"(:)\\s*([?[:alpha:]0-9'`^._ ]+)"},{captures:{1:{name:"keyword.symbol.arrow.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"entity.name.type.fsharp"}},match:"(->)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*"},{begin:"(\\*)\\s*(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"}},end:"(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))+)",endCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:"(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"}},end:"(?==)|(?=\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:"(<+(?![[:space:]]*\\)))",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},beginComment:"The group (?![[:space:]]*\\) is for protection against overload operator. static member (<)",end:"((?|\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},endComment:"The group (? when using SRTP synthax",patterns:[{include:"#generic_declaration"}]},{include:"#anonymous_record_declaration"},{begin:"({)",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(})",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#record_signature"}]},{include:"#definition"},{include:"#variables"},{include:"#keywords"}]},common_declaration:{patterns:[{begin:"\\s*(->)\\s*([[:alpha:]0-9'`^._ ]+)(<)",beginCaptures:{1:{name:"keyword.symbol.arrow.fsharp"},2:{name:"entity.name.type.fsharp"},3:{name:"keyword.symbol.fsharp"}},end:"(>)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"([[:alpha:]0-9'`^._ ]+)"},{include:"#keywords"}]},{captures:{1:{name:"keyword.symbol.arrow.fsharp"},2:{name:"entity.name.type.fsharp"}},match:"\\s*(->)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)"},{include:"#anonymous_record_declaration"},{begin:"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(<))",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"variable.parameter.fsharp"},3:{name:"keyword.symbol.fsharp"},4:{name:"keyword.symbol.fsharp"},5:{name:"entity.name.type.fsharp"}},end:"(>)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"([[:alpha:]0-9'`^._ ]+)"},{include:"#keywords"}]}]},compiler_directives:{patterns:[{captures:{},match:"\\s?(#if|#elif|#elseif|#else|#endif|#light|#nowarn)",name:"keyword.control.directive.fsharp"}]},constants:{patterns:[{match:"\\(\\)",name:"keyword.symbol.fsharp"},{match:"\\b-?[0-9][0-9_]*((\\.([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))",name:"constant.numeric.float.fsharp"},{match:"\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))",name:"constant.numeric.integer.nativeint.fsharp"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.fsharp"},{match:"\\b(null|void)\\b",name:"constant.other.fsharp"}]},definition:{patterns:[{begin:"\\b(let mutable|static let mutable|static let|let inline|let|and|member val|static member inline|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.fsharp"},3:{name:"support.function.attribute.fsharp"},4:{name:"storage.modifier.fsharp"},5:{name:"variable.fsharp"}},end:"\\s*((with\\b)|(=|\\n+=|(?<=\\=)))",endCaptures:{2:{name:"keyword.fsharp"},3:{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:"\\b(use|use!|and|and!)\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",beginCaptures:{1:{name:"keyword.fsharp"}},end:"\\s*(=)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:"(?<=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",beginCaptures:{4:{name:"variable.fsharp"}},end:"\\s*(=|\\n+=|(?<=\\=))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:"\\b(static val mutable|val mutable|val)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?<=,)\\s)*)?",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.fsharp"},3:{name:"support.function.attribute.fsharp"},4:{name:"storage.modifier.fsharp"},5:{name:"variable.fsharp"}},end:"\\n$",name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:"\\b(new)\\b\\s+(\\()",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]}]},double_tick:{patterns:[{captures:{1:{name:"string.quoted.single.fsharp"},2:{name:"variable.other.binding.fsharp"},3:{name:"string.quoted.single.fsharp"}},match:"(``)([^`]*)(``)",name:"variable.other.binding.fsharp"}]},du_declaration:{patterns:[{begin:"\\b(of)\\b",beginCaptures:{1:{name:"keyword.fsharp"}},end:"$|(\\|)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"du_declaration.fsharp",patterns:[{include:"#comments"},{captures:{1:{name:"variable.parameter.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"entity.name.type.fsharp"}},match:"([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)"},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)"},{include:"#anonymous_record_declaration"},{include:"#keywords"}]}]},generic_declaration:{patterns:[{begin:"(:)\\s*(\\()\\s*(static member|member)",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(('|\\^)[[:alpha:]0-9'._]+)"},{include:"#variables"},{include:"#keywords"}]},{match:"\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b",name:"keyword.fsharp"},{match:":",name:"keyword.symbol.fsharp"},{include:"#constants"},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(('|\\^)[[:alpha:]0-9'._]+)"},{begin:"(<)",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(>)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(('|\\^)[[:alpha:]0-9'._]+)"},{include:"#tuple_signature"},{include:"#generic_declaration"}]},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(([?[:alpha:]0-9'`^._ ]+))+"},{include:"#tuple_signature"}]},{captures:{1:{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words are allowed",match:"(?!when|and|or\\b)\\b([\\w0-9'`^._]+)"},{captures:{1:{name:"keyword.symbol.fsharp"}},comments:"Prevent captures of `|>` as a keyword when defining custom operator like `<|>`",match:"(\\|)"},{include:"#keywords"}]},keywords:{patterns:[{match:"\\b(private|public|internal)\\b",name:"storage.modifier"},{match:"\\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b",name:"keyword.fsharp"},{match:"\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\\b",name:"keyword.control"},{match:"(\\->|\\<\\-)",name:"keyword.symbol.arrow.fsharp"},{match:"(&&&|\\|\\|\\||\\^\\^\\^|~~~|~\\+|~\\-|<<<|>>>|\\|>|:>|:\\?>|:|\\[|\\]|\\;|<>|=|@|\\|\\||&&|&|%|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\>|\\>\\=|\\>\\>|\\<|\\<\\=|\\(|\\)|\\<\\<)",name:"keyword.symbol.fsharp"}]},member_declaration:{patterns:[{include:"#comments"},{include:"#common_declaration"},{begin:"(:)\\s*(\\()\\s*(static member|member)",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:"(\\))\\s*((?=,)|(?=\\=))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(\\^[[:alpha:]0-9'._]+)"},{include:"#variables"},{include:"#keywords"}]},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(\\^[[:alpha:]0-9'._]+)"},{match:"\\b(and|when|or)\\b",name:"keyword.fsharp"},{match:"(\\(|\\))",name:"keyword.symbol.fsharp"},{captures:{1:{name:"keyword.symbol.fsharp"},2:{name:"variable.parameter.fsharp"},3:{name:"keyword.symbol.fsharp"},4:{name:"entity.name.type.fsharp"}},match:"(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`<>._ ]+)){0,1}"},{include:"#keywords"}]},modules:{patterns:[{begin:"\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]|``][[:alpha:]0-9'_. ]*)",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.fsharp"},3:{name:"storage.modifier.fsharp"},4:{name:"entity.name.section.fsharp"}},end:"(\\s?=|\\s|$)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"entity.name.section.fsharp",patterns:[{captures:{1:{name:"punctuation.separator.namespace-reference.fsharp"},2:{name:"entity.name.section.fsharp"}},match:"(\\.)([A-Z][[:alpha:]0-9'_]*)",name:"entity.name.section.fsharp"}]},{begin:"\\b(open type|open)\\s+([[:alpha:]|``][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"entity.name.section.fsharp"}},end:"(\\s|$)",name:"namespace.open.fsharp",patterns:[{captures:{1:{name:"punctuation.separator.namespace-reference.fsharp"},2:{name:"entity.name.section.fsharp"}},match:"(\\.)([[:alpha:]][[:alpha:]0-9'_]*)",name:"entity.name.section.fsharp"},{include:"#comments"}]},{begin:"^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"entity.name.type.namespace.fsharp"},3:{name:"keyword.symbol.fsharp"},4:{name:"entity.name.section.fsharp"}},end:"(\\s|$)",name:"namespace.alias.fsharp",patterns:[{captures:{1:{name:"punctuation.separator.namespace-reference.fsharp"},2:{name:"entity.name.section.fsharp"}},match:"(\\.)([A-Z][[:alpha:]0-9'_]*)",name:"entity.name.section.fsharp"}]}]},record_declaration:{patterns:[{begin:"(\\{)",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(?<=\\})",patterns:[{include:"#comments"},{begin:"(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`<>^._]*)\\s*((?)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)"},{match:"\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b",name:"keyword.fsharp"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"keyword.fsharp"}},match:"(static member|member|new)"},{include:"#common_binding_definition"}]},{captures:{1:{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words isn't blacklisted",match:"([\\w0-9'`^._]+)"},{include:"#keywords"}]},{captures:{1:{name:"storage.modifier.fsharp"}},match:"\\s*(private|internal|public)"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"\\s*(?=(=)|[\\n=]|(\\(\\))|(as))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{include:"#keywords"}]}]},string_formatter:{patterns:[{captures:{1:{name:"keyword.format.specifier.fsharp"}},match:"(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))",name:"entity.name.type.format.specifier.fsharp"}]},strings:{patterns:[{begin:'(?=[^\\\\])(@")',beginCaptures:{1:{name:"punctuation.definition.string.begin.fsharp"}},end:'(")(?!")',endCaptures:{1:{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.literal.fsharp",patterns:[{match:'"(")',name:"constant.character.string.escape.fsharp"}]},{begin:'(?=[^\\\\])(""")',beginCaptures:{1:{name:"punctuation.definition.string.begin.fsharp"}},end:'(""")',endCaptures:{1:{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.triple.fsharp",patterns:[{include:"#string_formatter"}]},{begin:'(?=[^\\\\])(")',beginCaptures:{1:{name:"punctuation.definition.string.begin.fsharp"}},end:'(")',endCaptures:{1:{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.double.fsharp",patterns:[{match:"\\\\$[ \\t]*",name:"punctuation.separator.string.ignore-eol.fsharp"},{match:`\\\\(['"\\\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x[0-9a-fA-F]{2})|(u[0-9a-fA-F]{4})|(U00(0[0-9a-fA-F]|10)[0-9a-fA-F]{4}))`,name:"constant.character.string.escape.fsharp"},{match:"\\\\(([0-9]{1,3})|(x[^\\s]{0,2})|(u[^\\s]{0,4})|(U[^\\s]{0,8})|[^\\s])",name:"invalid.illegal.character.string.fsharp"},{include:"#string_formatter"}]}]},strp_inlined:{patterns:[{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#strp_inlined_body"}]}]},strp_inlined_body:{patterns:[{include:"#comments"},{include:"#anonymous_functions"},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(\\^[[:alpha:]0-9'._]+)"},{match:"\\b(and|when|or)\\b",name:"keyword.fsharp"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#strp_inlined_body"}]},{captures:{1:{name:"keyword.fsharp"},2:{name:"variable.fsharp"},3:{name:"keyword.symbol.fsharp"}},match:"(static member|member)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)"},{include:"#compiler_directives"},{include:"#constants"},{include:"#strings"},{include:"#chars"},{include:"#double_tick"},{include:"#keywords"},{include:"#text"},{include:"#definition"},{include:"#attributes"},{include:"#keywords"},{include:"#cexprs"},{include:"#text"}]},text:{patterns:[{match:"\\\\",name:"text.fsharp"}]},tuple_signature:{patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(([?[:alpha:]0-9'`^._ ]+))+"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(([?[:alpha:]0-9'`^._ ]+))+"},{include:"#tuple_signature"}]},{include:"#keywords"}]},variables:{patterns:[{match:"\\(\\)",name:"keyword.symbol.fsharp"},{captures:{1:{name:"keyword.symbol.fsharp"},2:{name:"variable.parameter.fsharp"}},match:"(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private|struct\\b)\\b[\\w[:alpha:]0-9'`<>^._ ]+)"}]}},scopeName:"source.fsharp",embeddedLangs:["markdown"],aliases:["f#","fs"]});var t=[...e,a];export{t as default}; diff --git a/assets/chunks/gdresource.Dyo1-XBj.js b/assets/chunks/gdresource.Dyo1-XBj.js new file mode 100644 index 000000000..22ab0110c --- /dev/null +++ b/assets/chunks/gdresource.Dyo1-XBj.js @@ -0,0 +1 @@ +import e from"./gdshader.B_SUYfiV.js";import r from"./gdscript.CoEqzGFw.js";const a=Object.freeze({displayName:"GDResource",name:"gdresource",patterns:[{include:"#embedded_shader"},{include:"#embedded_gdscript"},{include:"#comment"},{include:"#heading"},{include:"#key_value"}],repository:{comment:{captures:{1:{name:"punctuation.definition.comment.gdresource"}},match:"(;).*$\\n?",name:"comment.line.gdresource"},data:{patterns:[{include:"#comment"},{begin:"(?|\\+=|-=|\\*=|/=|%=|&=|\\|=|\\*|/|%|\\+|-|<<|>>|&|\\||\\^|~|!",name:"keyword.operator.arithmetic.gdscript"},assignment_operator:{match:"=",name:"keyword.operator.assignment.gdscript"},base_expression:{patterns:[{include:"#builtin_get_node_shorthand"},{include:"#nodepath_object"},{include:"#nodepath_function"},{include:"#strings"},{include:"#const_vars"},{include:"#keywords"},{include:"#logic_operator"},{include:"#compare_operator"},{include:"#arithmetic_operator"},{include:"#lambda_declaration"},{include:"#class_declaration"},{include:"#variable_declaration"},{include:"#signal_declaration_bare"},{include:"#signal_declaration"},{include:"#function_declaration"},{include:"#statement_keyword"},{include:"#assignment_operator"},{include:"#in_keyword"},{include:"#control_flow"},{include:"#round_braces"},{include:"#function_call"},{include:"#comment"},{include:"#self"},{include:"#func"},{include:"#letter"},{include:"#numbers"},{include:"#builtin_classes"},{include:"#pascal_case_class"},{include:"#line_continuation"}]},builtin_classes:{match:"(?=|==|<|>|!=",name:"keyword.operator.comparison.gdscript"},const_vars:{match:"\\b([A-Z_][A-Z_0-9]*)\\b",name:"constant.language.gdscript"},control_flow:{match:"\\b(?:if|elif|else|while|break|continue|pass|return|match|yield|await)\\b",name:"keyword.control.gdscript"},expression:{patterns:[{include:"#base_expression"},{include:"#getter_setter_godot4"},{include:"#assignment_operator"},{include:"#annotations"},{include:"#class_name"},{include:"#builtin_classes"},{include:"#class_new"},{include:"#class_is"},{include:"#class_enum"},{include:"#any_method"},{include:"#any_variable"},{include:"#any_property"}]},extends_statement:{captures:{1:{name:"keyword.language.gdscript"},2:{name:"entity.other.inherited-class.gdscript"}},match:"(extends)\\s+([a-zA-Z_]\\w*\\.[a-zA-Z_]\\w*)?"},func:{match:"\\bfunc\\b",name:"keyword.language.gdscript"},function_arguments:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.gdscript"}},contentName:"meta.function.parameters.gdscript",end:"(?=\\))(?!\\)\\s*\\()",patterns:[{match:"(,)",name:"punctuation.separator.arguments.gdscript"},{captures:{1:{name:"variable.parameter.function-call.gdscript"},2:{name:"keyword.operator.assignment.gdscript"}},match:"\\b([a-zA-Z_]\\w*)\\s*(=)(?!=)"},{match:"=(?!=)",name:"keyword.operator.assignment.gdscript"},{include:"#base_expression"},{captures:{1:{name:"punctuation.definition.arguments.end.gdscript"},2:{name:"punctuation.definition.arguments.begin.gdscript"}},match:"\\s*(\\))\\s*(\\()"},{include:"#letter"},{include:"#any_variable"},{include:"#any_property"},{include:"#keywords"}]},function_call:{begin:`(?x) +\\b(?= +([a-zA-Z_]\\w*) \\s* (\\() +) +`,beginCaptures:{2:{name:"punctuation.definition.arguments.begin.gdscript"}},comment:'Regular function call of the type "name(args)"',end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.gdscript"}},name:"meta.function-call.gdscript",patterns:[{include:"#function_name"},{include:"#function_arguments"}]},function_declaration:{begin:`(?x) \\s* +(func) \\s+ +([a-zA-Z_]\\w*) \\s* +(?=\\()`,beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:`(:|(?=[#'"\\n]))`,end2:"(\\s*(\\-\\>)\\s*(void\\w*)|([a-zA-Z_]\\w*)\\s*\\:)",endCaptures2:{1:{name:"punctuation.separator.annotation.result.gdscript"},2:{name:"keyword.language.void.gdscript"},3:{name:"entity.name.type.class.gdscript markup.italic"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"}]},function_name:{patterns:[{include:"#builtin_classes"},{comment:"Some color schemas support meta.function-call.generic scope",match:`(?x) +\\b ([a-zA-Z_]\\w*) \\b +`,name:"support.function.any-method.gdscript"}]},getter_setter_godot4:{patterns:[{captures:{1:{name:"entity.name.function.gdscript"}},match:"\\b(get):"},{begin:`(?x) \\s+ +(set) \\s* +(?=\\()`,beginCaptures:{1:{name:"entity.name.function.gdscript"}},end:`(:|(?=[#'"\\n]))`,name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"}]}]},in_keyword:{patterns:[{begin:"\\b(for)\\b",captures:{1:{name:"keyword.control.gdscript"}},end:":",patterns:[{match:"\\bin\\b",name:"keyword.control.gdscript"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},{match:"\\bin\\b",name:"keyword.operator.wordlike.gdscript"}]},keywords:{match:"\\b(?:class|class_name|is|onready|tool|static|export|as|void|enum|preload|assert|breakpoint|rpc|sync|remote|master|puppet|slave|remotesync|mastersync|puppetsync|trait|namespace)\\b",name:"keyword.language.gdscript"},lambda_declaration:{begin:"(func)\\s?(?=\\()",beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:`(:|(?=[#'"\\n]))`,end2:"(\\s*(\\-\\>)\\s*(void\\w*)|([a-zA-Z_]\\w*)\\s*\\:)",endCaptures2:{1:{name:"punctuation.separator.annotation.result.gdscript"},2:{name:"keyword.language.void.gdscript"},3:{name:"entity.name.type.class.gdscript markup.italic"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},letter:{match:"\\b(?:true|false|null)\\b",name:"constant.language.gdscript"},line_continuation:{patterns:[{captures:{1:{name:"punctuation.separator.continuation.line.gdscript"},2:{name:"invalid.illegal.line.continuation.gdscript"}},match:"(\\\\)\\s*(\\S.*$\\n?)"},{begin:"(\\\\)\\s*$\\n?",beginCaptures:{1:{name:"punctuation.separator.continuation.line.gdscript"}},end:`(?x) +(?=^\\s*$) +| +(?! (\\s* [rR]? (\\'\\'\\'|\\"\\"\\"|\\'|\\")) +| +(\\G $) (?# '\\G' is necessary for ST) +) +`,patterns:[{include:"#base_expression"}]}]},logic_operator:{match:"\\b(and|or|not|!)\\b",name:"keyword.operator.wordlike.gdscript"},loose_default:{begin:"(=)",beginCaptures:{1:{name:"keyword.operator.gdscript"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#base_expression"}]},nodepath_function:{begin:"(get_node_or_null|has_node|has_node_and_resource|find_node|get_node)\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.gdscript"},2:{name:"punctuation.definition.parameters.begin.gdscript"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.gdscript"}},patterns:[{begin:`("|')`,end:"\\1",name:"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape",patterns:[{match:"%",name:"keyword.control.flow"}]}]},nodepath_object:{begin:"(NodePath)\\s*(?:\\()",beginCaptures:{1:{name:"support.class.library.gdscript"}},end:"(?:\\))",name:"meta.literal.nodepath.gdscript",patterns:[{begin:`("|')`,end:"\\1",name:"string.quoted.gdscript constant.character.escape.gdscript",patterns:[{match:"%",name:"keyword.control.flow.gdscript"}]}]},numbers:{patterns:[{match:"0b[01_]+",name:"constant.numeric.integer.binary.gdscript"},{match:"0x[0-9A-Fa-f_]+",name:"constant.numeric.integer.hexadecimal.gdscript"},{match:"[-]?([0-9][0-9_]+\\.[0-9_]*(e[\\-\\+]?[0-9_]+)?)",name:"constant.numeric.float.gdscript"},{match:"[-]?(\\.[0-9][0-9_]*(e[\\-\\+]?[0-9_]+)?)",name:"constant.numeric.float.gdscript"},{match:"[-]?([0-9][0-9_]*e[\\-\\+]?\\[0-9_])",name:"constant.numeric.float.gdscript"},{match:"[-]?[0-9][0-9_]*",name:"constant.numeric.integer.gdscript"}]},parameters:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.gdscript"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.gdscript"}},name:"meta.function.parameters.gdscript",patterns:[{include:"#annotated_parameter"},{captures:{1:{name:"variable.parameter.function.language.gdscript"},2:{name:"punctuation.separator.parameters.gdscript"}},match:`(?x) +([a-zA-Z_]\\w*) +\\s* (?: (,) | (?=[)#\\n=])) +`},{include:"#comment"},{include:"#loose_default"}]},pascal_case_class:{match:"\\b([A-Z][a-z_0-9]*([A-Z]?[a-z_0-9]+)*[A-Z]?)\\b",name:"entity.name.type.class.gdscript"},round_braces:{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.begin.gdscript"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},self:{match:"\\bself\\b",name:"variable.language.gdscript"},signal_declaration:{begin:`(?x) \\s* +(signal) \\s+ +([a-zA-Z_]\\w*) \\s* +(?=\\()`,beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:`((?=[#'"\\n]))`,name:"meta.signal.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"}]},signal_declaration_bare:{captures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},match:`(?x) \\s* +(signal) \\s+ +([a-zA-Z_]\\w*)(?=[\\n\\s])`,name:"meta.signal.gdscript"},statement:{patterns:[{include:"#extends_statement"}]},statement_keyword:{patterns:[{match:`(?x) +\\b(?\\>\\=?|[-+*/&|<>=!]\\=|\\&\\&|[|][|]|[-+~!*/%<>&^|=]",name:"keyword.operator.gdshader"},precisionKeyword:{match:"\\b(?:low|medium|high)p\\b",name:"storage.type.built-in.primitive.precision.gdshader"},processorFunction:{match:"\\b(?:vertex|fragment|light|start|process|sky|fog)(?=(?:\\s|/\\*(?:\\*(?!/)|[^*])*\\*/)*[(])",name:"support.function.gdshader"},separator:{patterns:[{match:"[.]",name:"punctuation.accessor.gdshader"},{include:"#separatorComma"},{match:"[;]",name:"punctuation.terminator.statement.gdshader"},{match:"[:]",name:"keyword.operator.type.annotation.gdshader"}]},separatorComma:{match:"[,]",name:"punctuation.separator.comma.gdshader"},structDefinition:{begin:"(?=\\b(?:struct)\\b)",end:"(?<=;)",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#structName"},{include:"#structDefinitionBlock"},{include:"#separator"}]},structDefinitionBlock:{begin:"\\{",captures:{0:{name:"punctuation.definition.block.struct.gdshader"}},end:"\\}",name:"meta.definition.block.struct.gdshader",patterns:[{include:"#comment"},{include:"#precisionKeyword"},{include:"#fieldDefinition"},{include:"#keyword"},{include:"#any"}]},structKeyword:{match:"\\b(?:struct)\\b",name:"keyword.other.struct.gdshader"},structName:{match:"\\b[a-zA-Z_]\\w*\\b",name:"entity.name.type.struct.gdshader"},swizzling:{captures:{1:{name:"punctuation.accessor.gdshader"},2:{name:"variable.other.property.gdshader"}},match:"([.])\\s*([xyzw]{2,4}|[rgba]{2,4}|[stpq]{2,4})\\b"},typeKeyword:{match:"\\b(?:void|bool|[biu]?vec[234]|u?int|float|mat[234]|[iu]?sampler(?:3D|2D(?:Array)?)|samplerCube)\\b",name:"support.type.gdshader"}},scopeName:"source.gdshader"});var a=[e];export{a as default}; diff --git a/assets/chunks/gherkin.DjTlIhuc.js b/assets/chunks/gherkin.DjTlIhuc.js new file mode 100644 index 000000000..8a5a72d06 --- /dev/null +++ b/assets/chunks/gherkin.DjTlIhuc.js @@ -0,0 +1 @@ +const u=Object.freeze({displayName:"Gherkin",fileTypes:["feature"],firstLineMatch:"기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd(.*)",foldingStartMarker:"^\\s*\\b(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra)",foldingStopMarker:"^\\s*$",name:"gherkin",patterns:[{include:"#feature_element_keyword"},{include:"#feature_keyword"},{include:"#step_keyword"},{include:"#strings_triple_quote"},{include:"#strings_single_quote"},{include:"#strings_double_quote"},{include:"#comments"},{include:"#tags"},{include:"#scenario_outline_variable"},{include:"#table"}],repository:{comments:{captures:{0:{name:"comment.line.number-sign"}},match:"^\\s*(#.*)"},feature_element_keyword:{captures:{1:{name:"keyword.language.gherkin.feature.scenario"},2:{name:"string.language.gherkin.scenario.title.title"}},match:"^\\s*(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra):(.*)"},feature_keyword:{captures:{1:{name:"keyword.language.gherkin.feature"},2:{name:"string.language.gherkin.feature.title"}},match:"^\\s*(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Ability|Egenskap|Egenskab|Crikey|Característica|Arwedd):(.*)\\b"},scenario_outline_variable:{match:"<[a-zA-Z0-9 _-]*>",name:"variable.other"},step_keyword:{captures:{1:{name:"keyword.language.gherkin.feature.step"}},match:"^\\s*(En |و |Y |E |Եվ |Ya |Too right |Və |Həm |A |И |而且 |并且 |同时 |並且 |同時 |Ak |Epi |A také |Og |😂 |And |Kaj |Ja |Et que |Et qu' |Et |და |Und |Και |અને |וגם |और |तथा |És |Dan |Agus |かつ |Lan |ಮತ್ತು |'ej |latlh |그리고 |AN |Un |Ir |an |a |Мөн |Тэгээд |Ond |7 |ਅਤੇ |Aye |Oraz |Si |Și |Şi |К тому же |Также |An |A tiež |A taktiež |A zároveň |In |Ter |Och |மேலும் |மற்றும் |Һәм |Вә |మరియు |และ |Ve |І |А також |Та |اور |Ва |Và |Maar |لكن |Pero |Բայց |Peru |Yeah nah |Amma |Ancaq |Ali |Но |Però |但是 |Men |Ale |😔 |But |Sed |Kuid |Mutta |Mais que |Mais qu' |Mais |მაგ­რამ |Aber |Αλλά |પણ |אבל |पर |परन्तु |किन्तु |De |En |Tapi |Ach |Ma |しかし |但し |ただし |Nanging |Ananging |ಆದರೆ |'ach |'a |하지만 |단 |BUT |Bet |awer |mä |No |Tetapi |Гэхдээ |Харин |Ac |ਪਰ |اما |Avast! |Mas |Dar |А |Иначе |Buh |Али |Toda |Ampak |Vendar |ஆனால் |Ләкин |Әмма |కాని |แต่ |Fakat |Ama |Але |لیکن |Лекин |Бирок |Аммо |Nhưng |Ond |Dan |اذاً |ثم |Alavez |Allora |Antonces |Ապա |Entós |But at the end of the day I reckon |O halda |Zatim |То |Aleshores |Cal |那么 |那麼 |Lè sa a |Le sa a |Onda |Pak |Så |🙏 |Then |Do |Siis |Niin |Alors |Entón |Logo |მაშინ |Dann |Τότε |પછી |אז |אזי |तब |तदा |Akkor |Þá |Maka |Ansin |ならば |Njuk |Banjur |ನಂತರ |vaj |그러면 |DEN |Tad |Tada |dann |Тогаш |Togash |Kemudian |Тэгэхэд |Үүний дараа |Tha |Þa |Ða |Tha the |Þa þe |Ða ðe |ਤਦ |آنگاه |Let go and haul |Wtedy |Então |Entao |Atunci |Затем |Тогда |Dun |Den youse gotta |Онда |Tak |Potom |Nato |Potem |Takrat |Entonces |அப்பொழுது |Нәтиҗәдә |అప్పుడు |ดังนั้น |O zaman |Тоді |پھر |تب |Унда |Thì |Yna |Wanneer |متى |عندما |Cuan |Եթե |Երբ |Cuando |It's just unbelievable |Əgər |Nə vaxt ki |Kada |Когато |Quan |当 |當 |Lè |Le |Kad |Když |Når |Als |🎬 |When |Se |Kui |Kun |Quand |Lorsque |Lorsqu' |Cando |როდესაც |Wenn |Όταν |ક્યારે |כאשר |जब |कदा |Majd |Ha |Amikor |Þegar |Ketika |Nuair a |Nuair nach |Nuair ba |Nuair nár |Quando |もし |Manawa |Menawa |ಸ್ಥಿತಿಯನ್ನು |qaSDI' |만일 |만약 |WEN |Ja |Kai |wann |Кога |Koga |Apabila |Хэрэв |Tha |Þa |Ða |ਜਦੋਂ |هنگامی |Blimey! |Jeżeli |Jeśli |Gdy |Kiedy |Cand |Când |Когда |Если |Wun |Youse know like when |Када |Кад |Keď |Ak |Ko |Ce |Če |Kadar |När |எப்போது |Әгәр |ఈ పరిస్థితిలో |เมื่อ |Eğer ki |Якщо |Коли |جب |Агар |Khi |Pryd |Gegewe |بفرض |Dau |Dada |Daus |Dadas |Դիցուք |Dáu |Daos |Daes |Y'know |Tutaq ki |Verilir |Dato |Дадено |Donat |Donada |Atès |Atesa |假如 |假设 |假定 |假設 |Sipoze |Sipoze ke |Sipoze Ke |Zadan |Zadani |Zadano |Pokud |Za předpokladu |Givet |Gegeven |Stel |😐 |Given |Donitaĵo |Komence |Eeldades |Oletetaan |Soit |Etant donné que |Etant donné qu' |Etant donné |Etant donnée |Etant donnés |Etant données |Étant donné que |Étant donné qu' |Étant donné |Étant donnée |Étant donnés |Étant données |Dado |Dados |მოცემული |Angenommen |Gegeben sei |Gegeben seien |Δεδομένου |આપેલ છે |בהינתן |अगर |यदि |चूंकि |Amennyiben |Adott |Ef |Dengan |Cuir i gcás go |Cuir i gcás nach |Cuir i gcás gur |Cuir i gcás nár |Data |Dati |Date |前提 |Nalika |Nalikaning |ನೀಡಿದ |ghu' noblu' |DaH ghu' bejlu' |조건 |먼저 |I CAN HAZ |Kad |Duota |ugeholl |Дадена |Dadeno |Dadena |Diberi |Bagi |Өгөгдсөн нь |Анх |Gitt |Thurh |Þurh |Ðurh |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |با فرض |Gangway! |Zakładając |Mając |Zakładając, że |Date fiind |Dat fiind |Dată fiind |Dati fiind |Dați fiind |Daţi fiind |Допустим |Дано |Пусть |Givun |Youse know when youse got |За дато |За дате |За дати |Za dato |Za date |Za dati |Pokiaľ |Za predpokladu |Dano |Podano |Zaradi |Privzeto |கொடுக்கப்பட்ட |Әйтик |చెప్పబడినది |กำหนดให้ |Diyelim ki |Припустимо |Припустимо, що |Нехай |اگر |بالفرض |فرض کیا |Агар |Biết |Cho |Anrhegedig a |\\* )"},strings_double_quote:{begin:`(? 50 lines as deprecated, > 72 as illegal",match:"\\G.{0,50}(.{0,22}(.*))$",name:"meta.scope.subject.git-commit"}]},{begin:"^(?=#)",comment:"Git supplied metadata in a number of lines starting with #",contentName:"comment.line.number-sign.git-commit",end:"^(?!#)",name:"meta.scope.metadata.git-commit",patterns:[{captures:{1:{name:"markup.changed.git-commit"}},match:"^#\\t((modified|renamed):.*)$"},{captures:{1:{name:"markup.inserted.git-commit"}},match:"^#\\t(new file:.*)$"},{captures:{1:{name:"markup.deleted.git-commit"}},match:"^#\\t(deleted.*)$"},{captures:{1:{name:"keyword.other.file-type.git-commit"},2:{name:"string.unquoted.filename.git-commit"}},comment:"Fallback for non-English git commit template",match:"^#\\t([^:]+): *(.*)$"}]}],scopeName:"text.git-commit",embeddedLangs:["diff"]});var i=[...e,t];export{i as default}; diff --git a/assets/chunks/git-rebase.wSeoO_tD.js b/assets/chunks/git-rebase.wSeoO_tD.js new file mode 100644 index 000000000..945688dc3 --- /dev/null +++ b/assets/chunks/git-rebase.wSeoO_tD.js @@ -0,0 +1 @@ +import e from"./shellscript.BZfs-ost.js";const a=Object.freeze({displayName:"Git Rebase Message",name:"git-rebase",patterns:[{captures:{1:{name:"punctuation.definition.comment.git-rebase"}},match:"^\\s*(#).*$\\n?",name:"comment.line.number-sign.git-rebase"},{captures:{1:{name:"support.function.git-rebase"},2:{name:"constant.sha.git-rebase"},3:{name:"meta.commit-message.git-rebase"}},match:"^\\s*(pick|p|reword|r|edit|e|squash|s|fixup|f|drop|d)\\s+([0-9a-f]+)\\s+(.*)$",name:"meta.commit-command.git-rebase"},{captures:{1:{name:"support.function.git-rebase"},2:{patterns:[{include:"source.shell"}]}},match:"^\\s*(exec|x)\\s+(.*)$",name:"meta.commit-command.git-rebase"},{captures:{1:{name:"support.function.git-rebase"}},match:"^\\s*(break|b)\\s*$",name:"meta.commit-command.git-rebase"}],scopeName:"text.git-rebase",embeddedLangs:["shellscript"]});var s=[...e,a];export{s as default}; diff --git a/assets/chunks/github-dark-default.BXF7Vm5l.js b/assets/chunks/github-dark-default.BXF7Vm5l.js new file mode 100644 index 000000000..a0a0a7ad6 --- /dev/null +++ b/assets/chunks/github-dark-default.BXF7Vm5l.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#f78166","activityBar.background":"#0d1117","activityBar.border":"#30363d","activityBar.foreground":"#e6edf3","activityBar.inactiveForeground":"#7d8590","activityBarBadge.background":"#1f6feb","activityBarBadge.foreground":"#ffffff","badge.background":"#1f6feb","badge.foreground":"#ffffff","breadcrumb.activeSelectionForeground":"#7d8590","breadcrumb.focusForeground":"#e6edf3","breadcrumb.foreground":"#7d8590","breadcrumbPicker.background":"#161b22","button.background":"#238636","button.foreground":"#ffffff","button.hoverBackground":"#2ea043","button.secondaryBackground":"#282e33","button.secondaryForeground":"#c9d1d9","button.secondaryHoverBackground":"#30363d","checkbox.background":"#161b22","checkbox.border":"#30363d","debugConsole.errorForeground":"#ffa198","debugConsole.infoForeground":"#8b949e","debugConsole.sourceForeground":"#e3b341","debugConsole.warningForeground":"#d29922","debugConsoleInputIcon.foreground":"#bc8cff","debugIcon.breakpointForeground":"#f85149","debugTokenExpression.boolean":"#56d364","debugTokenExpression.error":"#ffa198","debugTokenExpression.name":"#79c0ff","debugTokenExpression.number":"#56d364","debugTokenExpression.string":"#a5d6ff","debugTokenExpression.value":"#a5d6ff","debugToolBar.background":"#161b22",descriptionForeground:"#7d8590","diffEditor.insertedLineBackground":"#23863626","diffEditor.insertedTextBackground":"#3fb9504d","diffEditor.removedLineBackground":"#da363326","diffEditor.removedTextBackground":"#ff7b724d","dropdown.background":"#161b22","dropdown.border":"#30363d","dropdown.foreground":"#e6edf3","dropdown.listBackground":"#161b22","editor.background":"#0d1117","editor.findMatchBackground":"#9e6a03","editor.findMatchHighlightBackground":"#f2cc6080","editor.focusedStackFrameHighlightBackground":"#2ea04366","editor.foldBackground":"#6e76811a","editor.foreground":"#e6edf3","editor.lineHighlightBackground":"#6e76811a","editor.linkedEditingBackground":"#2f81f712","editor.selectionHighlightBackground":"#3fb95040","editor.stackFrameHighlightBackground":"#bb800966","editor.wordHighlightBackground":"#6e768180","editor.wordHighlightBorder":"#6e768199","editor.wordHighlightStrongBackground":"#6e76814d","editor.wordHighlightStrongBorder":"#6e768199","editorBracketHighlight.foreground1":"#79c0ff","editorBracketHighlight.foreground2":"#56d364","editorBracketHighlight.foreground3":"#e3b341","editorBracketHighlight.foreground4":"#ffa198","editorBracketHighlight.foreground5":"#ff9bce","editorBracketHighlight.foreground6":"#d2a8ff","editorBracketHighlight.unexpectedBracket.foreground":"#7d8590","editorBracketMatch.background":"#3fb95040","editorBracketMatch.border":"#3fb95099","editorCursor.foreground":"#2f81f7","editorGroup.border":"#30363d","editorGroupHeader.tabsBackground":"#010409","editorGroupHeader.tabsBorder":"#30363d","editorGutter.addedBackground":"#2ea04366","editorGutter.deletedBackground":"#f8514966","editorGutter.modifiedBackground":"#bb800966","editorIndentGuide.activeBackground":"#e6edf33d","editorIndentGuide.background":"#e6edf31f","editorInlayHint.background":"#8b949e33","editorInlayHint.foreground":"#7d8590","editorInlayHint.paramBackground":"#8b949e33","editorInlayHint.paramForeground":"#7d8590","editorInlayHint.typeBackground":"#8b949e33","editorInlayHint.typeForeground":"#7d8590","editorLineNumber.activeForeground":"#e6edf3","editorLineNumber.foreground":"#6e7681","editorOverviewRuler.border":"#010409","editorWhitespace.foreground":"#484f58","editorWidget.background":"#161b22",errorForeground:"#f85149",focusBorder:"#1f6feb",foreground:"#e6edf3","gitDecoration.addedResourceForeground":"#3fb950","gitDecoration.conflictingResourceForeground":"#db6d28","gitDecoration.deletedResourceForeground":"#f85149","gitDecoration.ignoredResourceForeground":"#6e7681","gitDecoration.modifiedResourceForeground":"#d29922","gitDecoration.submoduleResourceForeground":"#7d8590","gitDecoration.untrackedResourceForeground":"#3fb950","icon.foreground":"#7d8590","input.background":"#0d1117","input.border":"#30363d","input.foreground":"#e6edf3","input.placeholderForeground":"#6e7681","keybindingLabel.foreground":"#e6edf3","list.activeSelectionBackground":"#6e768166","list.activeSelectionForeground":"#e6edf3","list.focusBackground":"#388bfd26","list.focusForeground":"#e6edf3","list.highlightForeground":"#2f81f7","list.hoverBackground":"#6e76811a","list.hoverForeground":"#e6edf3","list.inactiveFocusBackground":"#388bfd26","list.inactiveSelectionBackground":"#6e768166","list.inactiveSelectionForeground":"#e6edf3","minimapSlider.activeBackground":"#8b949e47","minimapSlider.background":"#8b949e33","minimapSlider.hoverBackground":"#8b949e3d","notificationCenterHeader.background":"#161b22","notificationCenterHeader.foreground":"#7d8590","notifications.background":"#161b22","notifications.border":"#30363d","notifications.foreground":"#e6edf3","notificationsErrorIcon.foreground":"#f85149","notificationsInfoIcon.foreground":"#2f81f7","notificationsWarningIcon.foreground":"#d29922","panel.background":"#010409","panel.border":"#30363d","panelInput.border":"#30363d","panelTitle.activeBorder":"#f78166","panelTitle.activeForeground":"#e6edf3","panelTitle.inactiveForeground":"#7d8590","peekViewEditor.background":"#6e76811a","peekViewEditor.matchHighlightBackground":"#bb800966","peekViewResult.background":"#0d1117","peekViewResult.matchHighlightBackground":"#bb800966","pickerGroup.border":"#30363d","pickerGroup.foreground":"#7d8590","progressBar.background":"#1f6feb","quickInput.background":"#161b22","quickInput.foreground":"#e6edf3","scrollbar.shadow":"#484f5833","scrollbarSlider.activeBackground":"#8b949e47","scrollbarSlider.background":"#8b949e33","scrollbarSlider.hoverBackground":"#8b949e3d","settings.headerForeground":"#e6edf3","settings.modifiedItemIndicator":"#bb800966","sideBar.background":"#010409","sideBar.border":"#30363d","sideBar.foreground":"#e6edf3","sideBarSectionHeader.background":"#010409","sideBarSectionHeader.border":"#30363d","sideBarSectionHeader.foreground":"#e6edf3","sideBarTitle.foreground":"#e6edf3","statusBar.background":"#0d1117","statusBar.border":"#30363d","statusBar.debuggingBackground":"#da3633","statusBar.debuggingForeground":"#ffffff","statusBar.focusBorder":"#1f6feb80","statusBar.foreground":"#7d8590","statusBar.noFolderBackground":"#0d1117","statusBarItem.activeBackground":"#e6edf31f","statusBarItem.focusBorder":"#1f6feb","statusBarItem.hoverBackground":"#e6edf314","statusBarItem.prominentBackground":"#6e768166","statusBarItem.remoteBackground":"#30363d","statusBarItem.remoteForeground":"#e6edf3","symbolIcon.arrayForeground":"#f0883e","symbolIcon.booleanForeground":"#58a6ff","symbolIcon.classForeground":"#f0883e","symbolIcon.colorForeground":"#79c0ff","symbolIcon.constantForeground":["#aff5b4","#7ee787","#56d364","#3fb950","#2ea043","#238636","#196c2e","#0f5323","#033a16","#04260f"],"symbolIcon.constructorForeground":"#d2a8ff","symbolIcon.enumeratorForeground":"#f0883e","symbolIcon.enumeratorMemberForeground":"#58a6ff","symbolIcon.eventForeground":"#6e7681","symbolIcon.fieldForeground":"#f0883e","symbolIcon.fileForeground":"#d29922","symbolIcon.folderForeground":"#d29922","symbolIcon.functionForeground":"#bc8cff","symbolIcon.interfaceForeground":"#f0883e","symbolIcon.keyForeground":"#58a6ff","symbolIcon.keywordForeground":"#ff7b72","symbolIcon.methodForeground":"#bc8cff","symbolIcon.moduleForeground":"#ff7b72","symbolIcon.namespaceForeground":"#ff7b72","symbolIcon.nullForeground":"#58a6ff","symbolIcon.numberForeground":"#3fb950","symbolIcon.objectForeground":"#f0883e","symbolIcon.operatorForeground":"#79c0ff","symbolIcon.packageForeground":"#f0883e","symbolIcon.propertyForeground":"#f0883e","symbolIcon.referenceForeground":"#58a6ff","symbolIcon.snippetForeground":"#58a6ff","symbolIcon.stringForeground":"#79c0ff","symbolIcon.structForeground":"#f0883e","symbolIcon.textForeground":"#79c0ff","symbolIcon.typeParameterForeground":"#79c0ff","symbolIcon.unitForeground":"#58a6ff","symbolIcon.variableForeground":"#f0883e","tab.activeBackground":"#0d1117","tab.activeBorder":"#0d1117","tab.activeBorderTop":"#f78166","tab.activeForeground":"#e6edf3","tab.border":"#30363d","tab.hoverBackground":"#0d1117","tab.inactiveBackground":"#010409","tab.inactiveForeground":"#7d8590","tab.unfocusedActiveBorder":"#0d1117","tab.unfocusedActiveBorderTop":"#30363d","tab.unfocusedHoverBackground":"#6e76811a","terminal.ansiBlack":"#484f58","terminal.ansiBlue":"#58a6ff","terminal.ansiBrightBlack":"#6e7681","terminal.ansiBrightBlue":"#79c0ff","terminal.ansiBrightCyan":"#56d4dd","terminal.ansiBrightGreen":"#56d364","terminal.ansiBrightMagenta":"#d2a8ff","terminal.ansiBrightRed":"#ffa198","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#e3b341","terminal.ansiCyan":"#39c5cf","terminal.ansiGreen":"#3fb950","terminal.ansiMagenta":"#bc8cff","terminal.ansiRed":"#ff7b72","terminal.ansiWhite":"#b1bac4","terminal.ansiYellow":"#d29922","terminal.foreground":"#e6edf3","textBlockQuote.background":"#010409","textBlockQuote.border":"#30363d","textCodeBlock.background":"#6e768166","textLink.activeForeground":"#2f81f7","textLink.foreground":"#2f81f7","textPreformat.foreground":"#7d8590","textSeparator.foreground":"#21262d","titleBar.activeBackground":"#0d1117","titleBar.activeForeground":"#7d8590","titleBar.border":"#30363d","titleBar.inactiveBackground":"#010409","titleBar.inactiveForeground":"#7d8590","tree.indentGuidesStroke":"#21262d","welcomePage.buttonBackground":"#21262d","welcomePage.buttonHoverBackground":"#30363d"},displayName:"GitHub Dark Default",name:"github-dark-default",semanticHighlighting:!0,tokenColors:[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#8b949e"}},{scope:["constant.other.placeholder","constant.character"],settings:{foreground:"#ff7b72"}},{scope:["constant","entity.name.constant","variable.other.constant","variable.other.enummember","variable.language","entity"],settings:{foreground:"#79c0ff"}},{scope:["entity.name","meta.export.default","meta.definition.variable"],settings:{foreground:"#ffa657"}},{scope:["variable.parameter.function","meta.jsx.children","meta.block","meta.tag.attributes","entity.name.constant","meta.object.member","meta.embedded.expression"],settings:{foreground:"#e6edf3"}},{scope:"entity.name.function",settings:{foreground:"#d2a8ff"}},{scope:["entity.name.tag","support.class.component"],settings:{foreground:"#7ee787"}},{scope:"keyword",settings:{foreground:"#ff7b72"}},{scope:["storage","storage.type"],settings:{foreground:"#ff7b72"}},{scope:["storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#e6edf3"}},{scope:["string","string punctuation.section.embedded source"],settings:{foreground:"#a5d6ff"}},{scope:"support",settings:{foreground:"#79c0ff"}},{scope:"meta.property-name",settings:{foreground:"#79c0ff"}},{scope:"variable",settings:{foreground:"#ffa657"}},{scope:"variable.other",settings:{foreground:"#e6edf3"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#ffa198"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#ffa198"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#ffa198"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#ffa198"}},{scope:"carriage-return",settings:{background:"#ff7b72",content:"^M",fontStyle:"italic underline",foreground:"#f0f6fc"}},{scope:"message.error",settings:{foreground:"#ffa198"}},{scope:"string variable",settings:{foreground:"#79c0ff"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#a5d6ff"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#a5d6ff"}},{scope:"string.regexp constant.character.escape",settings:{fontStyle:"bold",foreground:"#7ee787"}},{scope:"support.constant",settings:{foreground:"#79c0ff"}},{scope:"support.variable",settings:{foreground:"#79c0ff"}},{scope:"support.type.property-name.json",settings:{foreground:"#7ee787"}},{scope:"meta.module-reference",settings:{foreground:"#79c0ff"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#ffa657"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#79c0ff"}},{scope:"markup.quote",settings:{foreground:"#7ee787"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#e6edf3"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#e6edf3"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["markup.strikethrough"],settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#79c0ff"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#490202",foreground:"#ffa198"}},{scope:["punctuation.section.embedded"],settings:{foreground:"#ff7b72"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#04260f",foreground:"#7ee787"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#5a1e02",foreground:"#ffa657"}},{scope:["markup.ignored","markup.untracked"],settings:{background:"#79c0ff",foreground:"#161b22"}},{scope:"meta.diff.range",settings:{fontStyle:"bold",foreground:"#d2a8ff"}},{scope:"meta.diff.header",settings:{foreground:"#79c0ff"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#79c0ff"}},{scope:"meta.output",settings:{foreground:"#79c0ff"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#8b949e"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#ffa198"}},{scope:["constant.other.reference.link","string.other.link"],settings:{foreground:"#a5d6ff"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/github-dark-dimmed.CRDKj6ck.js b/assets/chunks/github-dark-dimmed.CRDKj6ck.js new file mode 100644 index 000000000..abb212391 --- /dev/null +++ b/assets/chunks/github-dark-dimmed.CRDKj6ck.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#ec775c","activityBar.background":"#22272e","activityBar.border":"#444c56","activityBar.foreground":"#adbac7","activityBar.inactiveForeground":"#768390","activityBarBadge.background":"#316dca","activityBarBadge.foreground":"#cdd9e5","badge.background":"#316dca","badge.foreground":"#cdd9e5","breadcrumb.activeSelectionForeground":"#768390","breadcrumb.focusForeground":"#adbac7","breadcrumb.foreground":"#768390","breadcrumbPicker.background":"#2d333b","button.background":"#347d39","button.foreground":"#ffffff","button.hoverBackground":"#46954a","button.secondaryBackground":"#3d444d","button.secondaryForeground":"#adbac7","button.secondaryHoverBackground":"#444c56","checkbox.background":"#2d333b","checkbox.border":"#444c56","debugConsole.errorForeground":"#ff938a","debugConsole.infoForeground":"#768390","debugConsole.sourceForeground":"#daaa3f","debugConsole.warningForeground":"#c69026","debugConsoleInputIcon.foreground":"#b083f0","debugIcon.breakpointForeground":"#e5534b","debugTokenExpression.boolean":"#6bc46d","debugTokenExpression.error":"#ff938a","debugTokenExpression.name":"#6cb6ff","debugTokenExpression.number":"#6bc46d","debugTokenExpression.string":"#96d0ff","debugTokenExpression.value":"#96d0ff","debugToolBar.background":"#2d333b",descriptionForeground:"#768390","diffEditor.insertedLineBackground":"#347d3926","diffEditor.insertedTextBackground":"#57ab5a4d","diffEditor.removedLineBackground":"#c93c3726","diffEditor.removedTextBackground":"#f470674d","dropdown.background":"#2d333b","dropdown.border":"#444c56","dropdown.foreground":"#adbac7","dropdown.listBackground":"#2d333b","editor.background":"#22272e","editor.findMatchBackground":"#966600","editor.findMatchHighlightBackground":"#eac55f80","editor.focusedStackFrameHighlightBackground":"#46954a66","editor.foldBackground":"#636e7b1a","editor.foreground":"#adbac7","editor.lineHighlightBackground":"#636e7b1a","editor.linkedEditingBackground":"#539bf512","editor.selectionHighlightBackground":"#57ab5a40","editor.stackFrameHighlightBackground":"#ae7c1466","editor.wordHighlightBackground":"#636e7b80","editor.wordHighlightBorder":"#636e7b99","editor.wordHighlightStrongBackground":"#636e7b4d","editor.wordHighlightStrongBorder":"#636e7b99","editorBracketHighlight.foreground1":"#6cb6ff","editorBracketHighlight.foreground2":"#6bc46d","editorBracketHighlight.foreground3":"#daaa3f","editorBracketHighlight.foreground4":"#ff938a","editorBracketHighlight.foreground5":"#fc8dc7","editorBracketHighlight.foreground6":"#dcbdfb","editorBracketHighlight.unexpectedBracket.foreground":"#768390","editorBracketMatch.background":"#57ab5a40","editorBracketMatch.border":"#57ab5a99","editorCursor.foreground":"#539bf5","editorGroup.border":"#444c56","editorGroupHeader.tabsBackground":"#1c2128","editorGroupHeader.tabsBorder":"#444c56","editorGutter.addedBackground":"#46954a66","editorGutter.deletedBackground":"#e5534b66","editorGutter.modifiedBackground":"#ae7c1466","editorIndentGuide.activeBackground":"#adbac73d","editorIndentGuide.background":"#adbac71f","editorInlayHint.background":"#76839033","editorInlayHint.foreground":"#768390","editorInlayHint.paramBackground":"#76839033","editorInlayHint.paramForeground":"#768390","editorInlayHint.typeBackground":"#76839033","editorInlayHint.typeForeground":"#768390","editorLineNumber.activeForeground":"#adbac7","editorLineNumber.foreground":"#636e7b","editorOverviewRuler.border":"#1c2128","editorWhitespace.foreground":"#545d68","editorWidget.background":"#2d333b",errorForeground:"#e5534b",focusBorder:"#316dca",foreground:"#adbac7","gitDecoration.addedResourceForeground":"#57ab5a","gitDecoration.conflictingResourceForeground":"#cc6b2c","gitDecoration.deletedResourceForeground":"#e5534b","gitDecoration.ignoredResourceForeground":"#636e7b","gitDecoration.modifiedResourceForeground":"#c69026","gitDecoration.submoduleResourceForeground":"#768390","gitDecoration.untrackedResourceForeground":"#57ab5a","icon.foreground":"#768390","input.background":"#22272e","input.border":"#444c56","input.foreground":"#adbac7","input.placeholderForeground":"#636e7b","keybindingLabel.foreground":"#adbac7","list.activeSelectionBackground":"#636e7b66","list.activeSelectionForeground":"#adbac7","list.focusBackground":"#4184e426","list.focusForeground":"#adbac7","list.highlightForeground":"#539bf5","list.hoverBackground":"#636e7b1a","list.hoverForeground":"#adbac7","list.inactiveFocusBackground":"#4184e426","list.inactiveSelectionBackground":"#636e7b66","list.inactiveSelectionForeground":"#adbac7","minimapSlider.activeBackground":"#76839047","minimapSlider.background":"#76839033","minimapSlider.hoverBackground":"#7683903d","notificationCenterHeader.background":"#2d333b","notificationCenterHeader.foreground":"#768390","notifications.background":"#2d333b","notifications.border":"#444c56","notifications.foreground":"#adbac7","notificationsErrorIcon.foreground":"#e5534b","notificationsInfoIcon.foreground":"#539bf5","notificationsWarningIcon.foreground":"#c69026","panel.background":"#1c2128","panel.border":"#444c56","panelInput.border":"#444c56","panelTitle.activeBorder":"#ec775c","panelTitle.activeForeground":"#adbac7","panelTitle.inactiveForeground":"#768390","peekViewEditor.background":"#636e7b1a","peekViewEditor.matchHighlightBackground":"#ae7c1466","peekViewResult.background":"#22272e","peekViewResult.matchHighlightBackground":"#ae7c1466","pickerGroup.border":"#444c56","pickerGroup.foreground":"#768390","progressBar.background":"#316dca","quickInput.background":"#2d333b","quickInput.foreground":"#adbac7","scrollbar.shadow":"#545d6833","scrollbarSlider.activeBackground":"#76839047","scrollbarSlider.background":"#76839033","scrollbarSlider.hoverBackground":"#7683903d","settings.headerForeground":"#adbac7","settings.modifiedItemIndicator":"#ae7c1466","sideBar.background":"#1c2128","sideBar.border":"#444c56","sideBar.foreground":"#adbac7","sideBarSectionHeader.background":"#1c2128","sideBarSectionHeader.border":"#444c56","sideBarSectionHeader.foreground":"#adbac7","sideBarTitle.foreground":"#adbac7","statusBar.background":"#22272e","statusBar.border":"#444c56","statusBar.debuggingBackground":"#c93c37","statusBar.debuggingForeground":"#cdd9e5","statusBar.focusBorder":"#316dca80","statusBar.foreground":"#768390","statusBar.noFolderBackground":"#22272e","statusBarItem.activeBackground":"#adbac71f","statusBarItem.focusBorder":"#316dca","statusBarItem.hoverBackground":"#adbac714","statusBarItem.prominentBackground":"#636e7b66","statusBarItem.remoteBackground":"#444c56","statusBarItem.remoteForeground":"#adbac7","symbolIcon.arrayForeground":"#e0823d","symbolIcon.booleanForeground":"#539bf5","symbolIcon.classForeground":"#e0823d","symbolIcon.colorForeground":"#6cb6ff","symbolIcon.constantForeground":["#b4f1b4","#8ddb8c","#6bc46d","#57ab5a","#46954a","#347d39","#2b6a30","#245829","#1b4721","#113417"],"symbolIcon.constructorForeground":"#dcbdfb","symbolIcon.enumeratorForeground":"#e0823d","symbolIcon.enumeratorMemberForeground":"#539bf5","symbolIcon.eventForeground":"#636e7b","symbolIcon.fieldForeground":"#e0823d","symbolIcon.fileForeground":"#c69026","symbolIcon.folderForeground":"#c69026","symbolIcon.functionForeground":"#b083f0","symbolIcon.interfaceForeground":"#e0823d","symbolIcon.keyForeground":"#539bf5","symbolIcon.keywordForeground":"#f47067","symbolIcon.methodForeground":"#b083f0","symbolIcon.moduleForeground":"#f47067","symbolIcon.namespaceForeground":"#f47067","symbolIcon.nullForeground":"#539bf5","symbolIcon.numberForeground":"#57ab5a","symbolIcon.objectForeground":"#e0823d","symbolIcon.operatorForeground":"#6cb6ff","symbolIcon.packageForeground":"#e0823d","symbolIcon.propertyForeground":"#e0823d","symbolIcon.referenceForeground":"#539bf5","symbolIcon.snippetForeground":"#539bf5","symbolIcon.stringForeground":"#6cb6ff","symbolIcon.structForeground":"#e0823d","symbolIcon.textForeground":"#6cb6ff","symbolIcon.typeParameterForeground":"#6cb6ff","symbolIcon.unitForeground":"#539bf5","symbolIcon.variableForeground":"#e0823d","tab.activeBackground":"#22272e","tab.activeBorder":"#22272e","tab.activeBorderTop":"#ec775c","tab.activeForeground":"#adbac7","tab.border":"#444c56","tab.hoverBackground":"#22272e","tab.inactiveBackground":"#1c2128","tab.inactiveForeground":"#768390","tab.unfocusedActiveBorder":"#22272e","tab.unfocusedActiveBorderTop":"#444c56","tab.unfocusedHoverBackground":"#636e7b1a","terminal.ansiBlack":"#545d68","terminal.ansiBlue":"#539bf5","terminal.ansiBrightBlack":"#636e7b","terminal.ansiBrightBlue":"#6cb6ff","terminal.ansiBrightCyan":"#56d4dd","terminal.ansiBrightGreen":"#6bc46d","terminal.ansiBrightMagenta":"#dcbdfb","terminal.ansiBrightRed":"#ff938a","terminal.ansiBrightWhite":"#cdd9e5","terminal.ansiBrightYellow":"#daaa3f","terminal.ansiCyan":"#39c5cf","terminal.ansiGreen":"#57ab5a","terminal.ansiMagenta":"#b083f0","terminal.ansiRed":"#f47067","terminal.ansiWhite":"#909dab","terminal.ansiYellow":"#c69026","terminal.foreground":"#adbac7","textBlockQuote.background":"#1c2128","textBlockQuote.border":"#444c56","textCodeBlock.background":"#636e7b66","textLink.activeForeground":"#539bf5","textLink.foreground":"#539bf5","textPreformat.foreground":"#768390","textSeparator.foreground":"#373e47","titleBar.activeBackground":"#22272e","titleBar.activeForeground":"#768390","titleBar.border":"#444c56","titleBar.inactiveBackground":"#1c2128","titleBar.inactiveForeground":"#768390","tree.indentGuidesStroke":"#373e47","welcomePage.buttonBackground":"#373e47","welcomePage.buttonHoverBackground":"#444c56"},displayName:"GitHub Dark Dimmed",name:"github-dark-dimmed",semanticHighlighting:!0,tokenColors:[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#768390"}},{scope:["constant.other.placeholder","constant.character"],settings:{foreground:"#f47067"}},{scope:["constant","entity.name.constant","variable.other.constant","variable.other.enummember","variable.language","entity"],settings:{foreground:"#6cb6ff"}},{scope:["entity.name","meta.export.default","meta.definition.variable"],settings:{foreground:"#f69d50"}},{scope:["variable.parameter.function","meta.jsx.children","meta.block","meta.tag.attributes","entity.name.constant","meta.object.member","meta.embedded.expression"],settings:{foreground:"#adbac7"}},{scope:"entity.name.function",settings:{foreground:"#dcbdfb"}},{scope:["entity.name.tag","support.class.component"],settings:{foreground:"#8ddb8c"}},{scope:"keyword",settings:{foreground:"#f47067"}},{scope:["storage","storage.type"],settings:{foreground:"#f47067"}},{scope:["storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#adbac7"}},{scope:["string","string punctuation.section.embedded source"],settings:{foreground:"#96d0ff"}},{scope:"support",settings:{foreground:"#6cb6ff"}},{scope:"meta.property-name",settings:{foreground:"#6cb6ff"}},{scope:"variable",settings:{foreground:"#f69d50"}},{scope:"variable.other",settings:{foreground:"#adbac7"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#ff938a"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#ff938a"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#ff938a"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#ff938a"}},{scope:"carriage-return",settings:{background:"#f47067",content:"^M",fontStyle:"italic underline",foreground:"#cdd9e5"}},{scope:"message.error",settings:{foreground:"#ff938a"}},{scope:"string variable",settings:{foreground:"#6cb6ff"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#96d0ff"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#96d0ff"}},{scope:"string.regexp constant.character.escape",settings:{fontStyle:"bold",foreground:"#8ddb8c"}},{scope:"support.constant",settings:{foreground:"#6cb6ff"}},{scope:"support.variable",settings:{foreground:"#6cb6ff"}},{scope:"support.type.property-name.json",settings:{foreground:"#8ddb8c"}},{scope:"meta.module-reference",settings:{foreground:"#6cb6ff"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#f69d50"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#6cb6ff"}},{scope:"markup.quote",settings:{foreground:"#8ddb8c"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#adbac7"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#adbac7"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["markup.strikethrough"],settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#6cb6ff"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#5d0f12",foreground:"#ff938a"}},{scope:["punctuation.section.embedded"],settings:{foreground:"#f47067"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#113417",foreground:"#8ddb8c"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#682d0f",foreground:"#f69d50"}},{scope:["markup.ignored","markup.untracked"],settings:{background:"#6cb6ff",foreground:"#2d333b"}},{scope:"meta.diff.range",settings:{fontStyle:"bold",foreground:"#dcbdfb"}},{scope:"meta.diff.header",settings:{foreground:"#6cb6ff"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#6cb6ff"}},{scope:"meta.output",settings:{foreground:"#6cb6ff"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#768390"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#ff938a"}},{scope:["constant.other.reference.link","string.other.link"],settings:{foreground:"#96d0ff"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/github-dark.CzPA46E-.js b/assets/chunks/github-dark.CzPA46E-.js new file mode 100644 index 000000000..c61633a5d --- /dev/null +++ b/assets/chunks/github-dark.CzPA46E-.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#f9826c","activityBar.background":"#24292e","activityBar.border":"#1b1f23","activityBar.foreground":"#e1e4e8","activityBar.inactiveForeground":"#6a737d","activityBarBadge.background":"#0366d6","activityBarBadge.foreground":"#fff","badge.background":"#044289","badge.foreground":"#c8e1ff","breadcrumb.activeSelectionForeground":"#d1d5da","breadcrumb.focusForeground":"#e1e4e8","breadcrumb.foreground":"#959da5","breadcrumbPicker.background":"#2b3036","button.background":"#176f2c","button.foreground":"#dcffe4","button.hoverBackground":"#22863a","button.secondaryBackground":"#444d56","button.secondaryForeground":"#fff","button.secondaryHoverBackground":"#586069","checkbox.background":"#444d56","checkbox.border":"#1b1f23","debugToolBar.background":"#2b3036",descriptionForeground:"#959da5","diffEditor.insertedTextBackground":"#28a74530","diffEditor.removedTextBackground":"#d73a4930","dropdown.background":"#2f363d","dropdown.border":"#1b1f23","dropdown.foreground":"#e1e4e8","dropdown.listBackground":"#24292e","editor.background":"#24292e","editor.findMatchBackground":"#ffd33d44","editor.findMatchHighlightBackground":"#ffd33d22","editor.focusedStackFrameHighlightBackground":"#2b6a3033","editor.foldBackground":"#58606915","editor.foreground":"#e1e4e8","editor.inactiveSelectionBackground":"#3392FF22","editor.lineHighlightBackground":"#2b3036","editor.linkedEditingBackground":"#3392FF22","editor.selectionBackground":"#3392FF44","editor.selectionHighlightBackground":"#17E5E633","editor.selectionHighlightBorder":"#17E5E600","editor.stackFrameHighlightBackground":"#C6902625","editor.wordHighlightBackground":"#17E5E600","editor.wordHighlightBorder":"#17E5E699","editor.wordHighlightStrongBackground":"#17E5E600","editor.wordHighlightStrongBorder":"#17E5E666","editorBracketHighlight.foreground1":"#79b8ff","editorBracketHighlight.foreground2":"#ffab70","editorBracketHighlight.foreground3":"#b392f0","editorBracketHighlight.foreground4":"#79b8ff","editorBracketHighlight.foreground5":"#ffab70","editorBracketHighlight.foreground6":"#b392f0","editorBracketMatch.background":"#17E5E650","editorBracketMatch.border":"#17E5E600","editorCursor.foreground":"#c8e1ff","editorError.foreground":"#f97583","editorGroup.border":"#1b1f23","editorGroupHeader.tabsBackground":"#1f2428","editorGroupHeader.tabsBorder":"#1b1f23","editorGutter.addedBackground":"#28a745","editorGutter.deletedBackground":"#ea4a5a","editorGutter.modifiedBackground":"#2188ff","editorIndentGuide.activeBackground":"#444d56","editorIndentGuide.background":"#2f363d","editorLineNumber.activeForeground":"#e1e4e8","editorLineNumber.foreground":"#444d56","editorOverviewRuler.border":"#1b1f23","editorWarning.foreground":"#ffea7f","editorWhitespace.foreground":"#444d56","editorWidget.background":"#1f2428",errorForeground:"#f97583",focusBorder:"#005cc5",foreground:"#d1d5da","gitDecoration.addedResourceForeground":"#34d058","gitDecoration.conflictingResourceForeground":"#ffab70","gitDecoration.deletedResourceForeground":"#ea4a5a","gitDecoration.ignoredResourceForeground":"#6a737d","gitDecoration.modifiedResourceForeground":"#79b8ff","gitDecoration.submoduleResourceForeground":"#6a737d","gitDecoration.untrackedResourceForeground":"#34d058","input.background":"#2f363d","input.border":"#1b1f23","input.foreground":"#e1e4e8","input.placeholderForeground":"#959da5","list.activeSelectionBackground":"#39414a","list.activeSelectionForeground":"#e1e4e8","list.focusBackground":"#044289","list.hoverBackground":"#282e34","list.hoverForeground":"#e1e4e8","list.inactiveFocusBackground":"#1d2d3e","list.inactiveSelectionBackground":"#282e34","list.inactiveSelectionForeground":"#e1e4e8","notificationCenterHeader.background":"#24292e","notificationCenterHeader.foreground":"#959da5","notifications.background":"#2f363d","notifications.border":"#1b1f23","notifications.foreground":"#e1e4e8","notificationsErrorIcon.foreground":"#ea4a5a","notificationsInfoIcon.foreground":"#79b8ff","notificationsWarningIcon.foreground":"#ffab70","panel.background":"#1f2428","panel.border":"#1b1f23","panelInput.border":"#2f363d","panelTitle.activeBorder":"#f9826c","panelTitle.activeForeground":"#e1e4e8","panelTitle.inactiveForeground":"#959da5","peekViewEditor.background":"#1f242888","peekViewEditor.matchHighlightBackground":"#ffd33d33","peekViewResult.background":"#1f2428","peekViewResult.matchHighlightBackground":"#ffd33d33","pickerGroup.border":"#444d56","pickerGroup.foreground":"#e1e4e8","progressBar.background":"#0366d6","quickInput.background":"#24292e","quickInput.foreground":"#e1e4e8","scrollbar.shadow":"#0008","scrollbarSlider.activeBackground":"#6a737d88","scrollbarSlider.background":"#6a737d33","scrollbarSlider.hoverBackground":"#6a737d44","settings.headerForeground":"#e1e4e8","settings.modifiedItemIndicator":"#0366d6","sideBar.background":"#1f2428","sideBar.border":"#1b1f23","sideBar.foreground":"#d1d5da","sideBarSectionHeader.background":"#1f2428","sideBarSectionHeader.border":"#1b1f23","sideBarSectionHeader.foreground":"#e1e4e8","sideBarTitle.foreground":"#e1e4e8","statusBar.background":"#24292e","statusBar.border":"#1b1f23","statusBar.debuggingBackground":"#931c06","statusBar.debuggingForeground":"#fff","statusBar.foreground":"#d1d5da","statusBar.noFolderBackground":"#24292e","statusBarItem.prominentBackground":"#282e34","statusBarItem.remoteBackground":"#24292e","statusBarItem.remoteForeground":"#d1d5da","tab.activeBackground":"#24292e","tab.activeBorder":"#24292e","tab.activeBorderTop":"#f9826c","tab.activeForeground":"#e1e4e8","tab.border":"#1b1f23","tab.hoverBackground":"#24292e","tab.inactiveBackground":"#1f2428","tab.inactiveForeground":"#959da5","tab.unfocusedActiveBorder":"#24292e","tab.unfocusedActiveBorderTop":"#1b1f23","tab.unfocusedHoverBackground":"#24292e","terminal.ansiBlack":"#586069","terminal.ansiBlue":"#2188ff","terminal.ansiBrightBlack":"#959da5","terminal.ansiBrightBlue":"#79b8ff","terminal.ansiBrightCyan":"#56d4dd","terminal.ansiBrightGreen":"#85e89d","terminal.ansiBrightMagenta":"#b392f0","terminal.ansiBrightRed":"#f97583","terminal.ansiBrightWhite":"#fafbfc","terminal.ansiBrightYellow":"#ffea7f","terminal.ansiCyan":"#39c5cf","terminal.ansiGreen":"#34d058","terminal.ansiMagenta":"#b392f0","terminal.ansiRed":"#ea4a5a","terminal.ansiWhite":"#d1d5da","terminal.ansiYellow":"#ffea7f","terminal.foreground":"#d1d5da","terminal.tab.activeBorder":"#f9826c","terminalCursor.background":"#586069","terminalCursor.foreground":"#79b8ff","textBlockQuote.background":"#24292e","textBlockQuote.border":"#444d56","textCodeBlock.background":"#2f363d","textLink.activeForeground":"#c8e1ff","textLink.foreground":"#79b8ff","textPreformat.foreground":"#d1d5da","textSeparator.foreground":"#586069","titleBar.activeBackground":"#24292e","titleBar.activeForeground":"#e1e4e8","titleBar.border":"#1b1f23","titleBar.inactiveBackground":"#1f2428","titleBar.inactiveForeground":"#959da5","tree.indentGuidesStroke":"#2f363d","welcomePage.buttonBackground":"#2f363d","welcomePage.buttonHoverBackground":"#444d56"},displayName:"GitHub Dark",name:"github-dark",semanticHighlighting:!0,tokenColors:[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#6a737d"}},{scope:["constant","entity.name.constant","variable.other.constant","variable.other.enummember","variable.language"],settings:{foreground:"#79b8ff"}},{scope:["entity","entity.name"],settings:{foreground:"#b392f0"}},{scope:"variable.parameter.function",settings:{foreground:"#e1e4e8"}},{scope:"entity.name.tag",settings:{foreground:"#85e89d"}},{scope:"keyword",settings:{foreground:"#f97583"}},{scope:["storage","storage.type"],settings:{foreground:"#f97583"}},{scope:["storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#e1e4e8"}},{scope:["string","punctuation.definition.string","string punctuation.section.embedded source"],settings:{foreground:"#9ecbff"}},{scope:"support",settings:{foreground:"#79b8ff"}},{scope:"meta.property-name",settings:{foreground:"#79b8ff"}},{scope:"variable",settings:{foreground:"#ffab70"}},{scope:"variable.other",settings:{foreground:"#e1e4e8"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"carriage-return",settings:{background:"#f97583",content:"^M",fontStyle:"italic underline",foreground:"#24292e"}},{scope:"message.error",settings:{foreground:"#fdaeb7"}},{scope:"string variable",settings:{foreground:"#79b8ff"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#dbedff"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#dbedff"}},{scope:"string.regexp constant.character.escape",settings:{fontStyle:"bold",foreground:"#85e89d"}},{scope:"support.constant",settings:{foreground:"#79b8ff"}},{scope:"support.variable",settings:{foreground:"#79b8ff"}},{scope:"meta.module-reference",settings:{foreground:"#79b8ff"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#ffab70"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#79b8ff"}},{scope:"markup.quote",settings:{foreground:"#85e89d"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#e1e4e8"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#e1e4e8"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["markup.strikethrough"],settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#79b8ff"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#86181d",foreground:"#fdaeb7"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#144620",foreground:"#85e89d"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#c24e00",foreground:"#ffab70"}},{scope:["markup.ignored","markup.untracked"],settings:{background:"#79b8ff",foreground:"#2f363d"}},{scope:"meta.diff.range",settings:{fontStyle:"bold",foreground:"#b392f0"}},{scope:"meta.diff.header",settings:{foreground:"#79b8ff"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#79b8ff"}},{scope:"meta.output",settings:{foreground:"#79b8ff"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#d1d5da"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#fdaeb7"}},{scope:["constant.other.reference.link","string.other.link"],settings:{fontStyle:"underline",foreground:"#dbedff"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/github-light-default.UREJT2Bw.js b/assets/chunks/github-light-default.UREJT2Bw.js new file mode 100644 index 000000000..5f1389516 --- /dev/null +++ b/assets/chunks/github-light-default.UREJT2Bw.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#fd8c73","activityBar.background":"#ffffff","activityBar.border":"#d0d7de","activityBar.foreground":"#1f2328","activityBar.inactiveForeground":"#656d76","activityBarBadge.background":"#0969da","activityBarBadge.foreground":"#ffffff","badge.background":"#0969da","badge.foreground":"#ffffff","breadcrumb.activeSelectionForeground":"#656d76","breadcrumb.focusForeground":"#1f2328","breadcrumb.foreground":"#656d76","breadcrumbPicker.background":"#ffffff","button.background":"#1f883d","button.foreground":"#ffffff","button.hoverBackground":"#1a7f37","button.secondaryBackground":"#ebecf0","button.secondaryForeground":"#24292f","button.secondaryHoverBackground":"#f3f4f6","checkbox.background":"#f6f8fa","checkbox.border":"#d0d7de","debugConsole.errorForeground":"#cf222e","debugConsole.infoForeground":"#57606a","debugConsole.sourceForeground":"#9a6700","debugConsole.warningForeground":"#7d4e00","debugConsoleInputIcon.foreground":"#6639ba","debugIcon.breakpointForeground":"#cf222e","debugTokenExpression.boolean":"#116329","debugTokenExpression.error":"#a40e26","debugTokenExpression.name":"#0550ae","debugTokenExpression.number":"#116329","debugTokenExpression.string":"#0a3069","debugTokenExpression.value":"#0a3069","debugToolBar.background":"#ffffff",descriptionForeground:"#656d76","diffEditor.insertedLineBackground":"#aceebb4d","diffEditor.insertedTextBackground":"#6fdd8b80","diffEditor.removedLineBackground":"#ffcecb4d","diffEditor.removedTextBackground":"#ff818266","dropdown.background":"#ffffff","dropdown.border":"#d0d7de","dropdown.foreground":"#1f2328","dropdown.listBackground":"#ffffff","editor.background":"#ffffff","editor.findMatchBackground":"#bf8700","editor.findMatchHighlightBackground":"#fae17d80","editor.focusedStackFrameHighlightBackground":"#4ac26b66","editor.foldBackground":"#6e77811a","editor.foreground":"#1f2328","editor.lineHighlightBackground":"#eaeef280","editor.linkedEditingBackground":"#0969da12","editor.selectionHighlightBackground":"#4ac26b40","editor.stackFrameHighlightBackground":"#d4a72c66","editor.wordHighlightBackground":"#eaeef280","editor.wordHighlightBorder":"#afb8c199","editor.wordHighlightStrongBackground":"#afb8c14d","editor.wordHighlightStrongBorder":"#afb8c199","editorBracketHighlight.foreground1":"#0969da","editorBracketHighlight.foreground2":"#1a7f37","editorBracketHighlight.foreground3":"#9a6700","editorBracketHighlight.foreground4":"#cf222e","editorBracketHighlight.foreground5":"#bf3989","editorBracketHighlight.foreground6":"#8250df","editorBracketHighlight.unexpectedBracket.foreground":"#656d76","editorBracketMatch.background":"#4ac26b40","editorBracketMatch.border":"#4ac26b99","editorCursor.foreground":"#0969da","editorGroup.border":"#d0d7de","editorGroupHeader.tabsBackground":"#f6f8fa","editorGroupHeader.tabsBorder":"#d0d7de","editorGutter.addedBackground":"#4ac26b66","editorGutter.deletedBackground":"#ff818266","editorGutter.modifiedBackground":"#d4a72c66","editorIndentGuide.activeBackground":"#1f23283d","editorIndentGuide.background":"#1f23281f","editorInlayHint.background":"#afb8c133","editorInlayHint.foreground":"#656d76","editorInlayHint.paramBackground":"#afb8c133","editorInlayHint.paramForeground":"#656d76","editorInlayHint.typeBackground":"#afb8c133","editorInlayHint.typeForeground":"#656d76","editorLineNumber.activeForeground":"#1f2328","editorLineNumber.foreground":"#8c959f","editorOverviewRuler.border":"#ffffff","editorWhitespace.foreground":"#afb8c1","editorWidget.background":"#ffffff",errorForeground:"#cf222e",focusBorder:"#0969da",foreground:"#1f2328","gitDecoration.addedResourceForeground":"#1a7f37","gitDecoration.conflictingResourceForeground":"#bc4c00","gitDecoration.deletedResourceForeground":"#cf222e","gitDecoration.ignoredResourceForeground":"#6e7781","gitDecoration.modifiedResourceForeground":"#9a6700","gitDecoration.submoduleResourceForeground":"#656d76","gitDecoration.untrackedResourceForeground":"#1a7f37","icon.foreground":"#656d76","input.background":"#ffffff","input.border":"#d0d7de","input.foreground":"#1f2328","input.placeholderForeground":"#6e7781","keybindingLabel.foreground":"#1f2328","list.activeSelectionBackground":"#afb8c133","list.activeSelectionForeground":"#1f2328","list.focusBackground":"#ddf4ff","list.focusForeground":"#1f2328","list.highlightForeground":"#0969da","list.hoverBackground":"#eaeef280","list.hoverForeground":"#1f2328","list.inactiveFocusBackground":"#ddf4ff","list.inactiveSelectionBackground":"#afb8c133","list.inactiveSelectionForeground":"#1f2328","minimapSlider.activeBackground":"#8c959f47","minimapSlider.background":"#8c959f33","minimapSlider.hoverBackground":"#8c959f3d","notificationCenterHeader.background":"#f6f8fa","notificationCenterHeader.foreground":"#656d76","notifications.background":"#ffffff","notifications.border":"#d0d7de","notifications.foreground":"#1f2328","notificationsErrorIcon.foreground":"#cf222e","notificationsInfoIcon.foreground":"#0969da","notificationsWarningIcon.foreground":"#9a6700","panel.background":"#f6f8fa","panel.border":"#d0d7de","panelInput.border":"#d0d7de","panelTitle.activeBorder":"#fd8c73","panelTitle.activeForeground":"#1f2328","panelTitle.inactiveForeground":"#656d76","pickerGroup.border":"#d0d7de","pickerGroup.foreground":"#656d76","progressBar.background":"#0969da","quickInput.background":"#ffffff","quickInput.foreground":"#1f2328","scrollbar.shadow":"#6e778133","scrollbarSlider.activeBackground":"#8c959f47","scrollbarSlider.background":"#8c959f33","scrollbarSlider.hoverBackground":"#8c959f3d","settings.headerForeground":"#1f2328","settings.modifiedItemIndicator":"#d4a72c66","sideBar.background":"#f6f8fa","sideBar.border":"#d0d7de","sideBar.foreground":"#1f2328","sideBarSectionHeader.background":"#f6f8fa","sideBarSectionHeader.border":"#d0d7de","sideBarSectionHeader.foreground":"#1f2328","sideBarTitle.foreground":"#1f2328","statusBar.background":"#ffffff","statusBar.border":"#d0d7de","statusBar.debuggingBackground":"#cf222e","statusBar.debuggingForeground":"#ffffff","statusBar.focusBorder":"#0969da80","statusBar.foreground":"#656d76","statusBar.noFolderBackground":"#ffffff","statusBarItem.activeBackground":"#1f23281f","statusBarItem.focusBorder":"#0969da","statusBarItem.hoverBackground":"#1f232814","statusBarItem.prominentBackground":"#afb8c133","statusBarItem.remoteBackground":"#eaeef2","statusBarItem.remoteForeground":"#1f2328","symbolIcon.arrayForeground":"#953800","symbolIcon.booleanForeground":"#0550ae","symbolIcon.classForeground":"#953800","symbolIcon.colorForeground":"#0a3069","symbolIcon.constantForeground":"#116329","symbolIcon.constructorForeground":"#3e1f79","symbolIcon.enumeratorForeground":"#953800","symbolIcon.enumeratorMemberForeground":"#0550ae","symbolIcon.eventForeground":"#57606a","symbolIcon.fieldForeground":"#953800","symbolIcon.fileForeground":"#7d4e00","symbolIcon.folderForeground":"#7d4e00","symbolIcon.functionForeground":"#6639ba","symbolIcon.interfaceForeground":"#953800","symbolIcon.keyForeground":"#0550ae","symbolIcon.keywordForeground":"#a40e26","symbolIcon.methodForeground":"#6639ba","symbolIcon.moduleForeground":"#a40e26","symbolIcon.namespaceForeground":"#a40e26","symbolIcon.nullForeground":"#0550ae","symbolIcon.numberForeground":"#116329","symbolIcon.objectForeground":"#953800","symbolIcon.operatorForeground":"#0a3069","symbolIcon.packageForeground":"#953800","symbolIcon.propertyForeground":"#953800","symbolIcon.referenceForeground":"#0550ae","symbolIcon.snippetForeground":"#0550ae","symbolIcon.stringForeground":"#0a3069","symbolIcon.structForeground":"#953800","symbolIcon.textForeground":"#0a3069","symbolIcon.typeParameterForeground":"#0a3069","symbolIcon.unitForeground":"#0550ae","symbolIcon.variableForeground":"#953800","tab.activeBackground":"#ffffff","tab.activeBorder":"#ffffff","tab.activeBorderTop":"#fd8c73","tab.activeForeground":"#1f2328","tab.border":"#d0d7de","tab.hoverBackground":"#ffffff","tab.inactiveBackground":"#f6f8fa","tab.inactiveForeground":"#656d76","tab.unfocusedActiveBorder":"#ffffff","tab.unfocusedActiveBorderTop":"#d0d7de","tab.unfocusedHoverBackground":"#eaeef280","terminal.ansiBlack":"#24292f","terminal.ansiBlue":"#0969da","terminal.ansiBrightBlack":"#57606a","terminal.ansiBrightBlue":"#218bff","terminal.ansiBrightCyan":"#3192aa","terminal.ansiBrightGreen":"#1a7f37","terminal.ansiBrightMagenta":"#a475f9","terminal.ansiBrightRed":"#a40e26","terminal.ansiBrightWhite":"#8c959f","terminal.ansiBrightYellow":"#633c01","terminal.ansiCyan":"#1b7c83","terminal.ansiGreen":"#116329","terminal.ansiMagenta":"#8250df","terminal.ansiRed":"#cf222e","terminal.ansiWhite":"#6e7781","terminal.ansiYellow":"#4d2d00","terminal.foreground":"#1f2328","textBlockQuote.background":"#f6f8fa","textBlockQuote.border":"#d0d7de","textCodeBlock.background":"#afb8c133","textLink.activeForeground":"#0969da","textLink.foreground":"#0969da","textPreformat.foreground":"#656d76","textSeparator.foreground":"#d8dee4","titleBar.activeBackground":"#ffffff","titleBar.activeForeground":"#656d76","titleBar.border":"#d0d7de","titleBar.inactiveBackground":"#f6f8fa","titleBar.inactiveForeground":"#656d76","tree.indentGuidesStroke":"#d8dee4","welcomePage.buttonBackground":"#f6f8fa","welcomePage.buttonHoverBackground":"#f3f4f6"},displayName:"GitHub Light Default",name:"github-light-default",semanticHighlighting:!0,tokenColors:[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#6e7781"}},{scope:["constant.other.placeholder","constant.character"],settings:{foreground:"#cf222e"}},{scope:["constant","entity.name.constant","variable.other.constant","variable.other.enummember","variable.language","entity"],settings:{foreground:"#0550ae"}},{scope:["entity.name","meta.export.default","meta.definition.variable"],settings:{foreground:"#953800"}},{scope:["variable.parameter.function","meta.jsx.children","meta.block","meta.tag.attributes","entity.name.constant","meta.object.member","meta.embedded.expression"],settings:{foreground:"#1f2328"}},{scope:"entity.name.function",settings:{foreground:"#8250df"}},{scope:["entity.name.tag","support.class.component"],settings:{foreground:"#116329"}},{scope:"keyword",settings:{foreground:"#cf222e"}},{scope:["storage","storage.type"],settings:{foreground:"#cf222e"}},{scope:["storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#1f2328"}},{scope:["string","string punctuation.section.embedded source"],settings:{foreground:"#0a3069"}},{scope:"support",settings:{foreground:"#0550ae"}},{scope:"meta.property-name",settings:{foreground:"#0550ae"}},{scope:"variable",settings:{foreground:"#953800"}},{scope:"variable.other",settings:{foreground:"#1f2328"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#82071e"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#82071e"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#82071e"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#82071e"}},{scope:"carriage-return",settings:{background:"#cf222e",content:"^M",fontStyle:"italic underline",foreground:"#f6f8fa"}},{scope:"message.error",settings:{foreground:"#82071e"}},{scope:"string variable",settings:{foreground:"#0550ae"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#0a3069"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#0a3069"}},{scope:"string.regexp constant.character.escape",settings:{fontStyle:"bold",foreground:"#116329"}},{scope:"support.constant",settings:{foreground:"#0550ae"}},{scope:"support.variable",settings:{foreground:"#0550ae"}},{scope:"support.type.property-name.json",settings:{foreground:"#116329"}},{scope:"meta.module-reference",settings:{foreground:"#0550ae"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#953800"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#0550ae"}},{scope:"markup.quote",settings:{foreground:"#116329"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#1f2328"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#1f2328"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["markup.strikethrough"],settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#0550ae"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#ffebe9",foreground:"#82071e"}},{scope:["punctuation.section.embedded"],settings:{foreground:"#cf222e"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#dafbe1",foreground:"#116329"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#ffd8b5",foreground:"#953800"}},{scope:["markup.ignored","markup.untracked"],settings:{background:"#0550ae",foreground:"#eaeef2"}},{scope:"meta.diff.range",settings:{fontStyle:"bold",foreground:"#8250df"}},{scope:"meta.diff.header",settings:{foreground:"#0550ae"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#0550ae"}},{scope:"meta.output",settings:{foreground:"#0550ae"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#57606a"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#82071e"}},{scope:["constant.other.reference.link","string.other.link"],settings:{foreground:"#0a3069"}}],type:"light"});export{e as default}; diff --git a/assets/chunks/github-light.CRlnGVMD.js b/assets/chunks/github-light.CRlnGVMD.js new file mode 100644 index 000000000..8cead181b --- /dev/null +++ b/assets/chunks/github-light.CRlnGVMD.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#f9826c","activityBar.background":"#fff","activityBar.border":"#e1e4e8","activityBar.foreground":"#2f363d","activityBar.inactiveForeground":"#959da5","activityBarBadge.background":"#2188ff","activityBarBadge.foreground":"#fff","badge.background":"#dbedff","badge.foreground":"#005cc5","breadcrumb.activeSelectionForeground":"#586069","breadcrumb.focusForeground":"#2f363d","breadcrumb.foreground":"#6a737d","breadcrumbPicker.background":"#fafbfc","button.background":"#159739","button.foreground":"#fff","button.hoverBackground":"#138934","button.secondaryBackground":"#e1e4e8","button.secondaryForeground":"#1b1f23","button.secondaryHoverBackground":"#d1d5da","checkbox.background":"#fafbfc","checkbox.border":"#d1d5da","debugToolBar.background":"#fff",descriptionForeground:"#6a737d","diffEditor.insertedTextBackground":"#34d05822","diffEditor.removedTextBackground":"#d73a4922","dropdown.background":"#fafbfc","dropdown.border":"#e1e4e8","dropdown.foreground":"#2f363d","dropdown.listBackground":"#fff","editor.background":"#fff","editor.findMatchBackground":"#ffdf5d","editor.findMatchHighlightBackground":"#ffdf5d66","editor.focusedStackFrameHighlightBackground":"#28a74525","editor.foldBackground":"#d1d5da11","editor.foreground":"#24292e","editor.inactiveSelectionBackground":"#0366d611","editor.lineHighlightBackground":"#f6f8fa","editor.linkedEditingBackground":"#0366d611","editor.selectionBackground":"#0366d625","editor.selectionHighlightBackground":"#34d05840","editor.selectionHighlightBorder":"#34d05800","editor.stackFrameHighlightBackground":"#ffd33d33","editor.wordHighlightBackground":"#34d05800","editor.wordHighlightBorder":"#24943e99","editor.wordHighlightStrongBackground":"#34d05800","editor.wordHighlightStrongBorder":"#24943e50","editorBracketHighlight.foreground1":"#005cc5","editorBracketHighlight.foreground2":"#e36209","editorBracketHighlight.foreground3":"#5a32a3","editorBracketHighlight.foreground4":"#005cc5","editorBracketHighlight.foreground5":"#e36209","editorBracketHighlight.foreground6":"#5a32a3","editorBracketMatch.background":"#34d05840","editorBracketMatch.border":"#34d05800","editorCursor.foreground":"#044289","editorError.foreground":"#cb2431","editorGroup.border":"#e1e4e8","editorGroupHeader.tabsBackground":"#f6f8fa","editorGroupHeader.tabsBorder":"#e1e4e8","editorGutter.addedBackground":"#28a745","editorGutter.deletedBackground":"#d73a49","editorGutter.modifiedBackground":"#2188ff","editorIndentGuide.activeBackground":"#d7dbe0","editorIndentGuide.background":"#eff2f6","editorLineNumber.activeForeground":"#24292e","editorLineNumber.foreground":"#1b1f234d","editorOverviewRuler.border":"#fff","editorWarning.foreground":"#f9c513","editorWhitespace.foreground":"#d1d5da","editorWidget.background":"#f6f8fa",errorForeground:"#cb2431",focusBorder:"#2188ff",foreground:"#444d56","gitDecoration.addedResourceForeground":"#28a745","gitDecoration.conflictingResourceForeground":"#e36209","gitDecoration.deletedResourceForeground":"#d73a49","gitDecoration.ignoredResourceForeground":"#959da5","gitDecoration.modifiedResourceForeground":"#005cc5","gitDecoration.submoduleResourceForeground":"#959da5","gitDecoration.untrackedResourceForeground":"#28a745","input.background":"#fafbfc","input.border":"#e1e4e8","input.foreground":"#2f363d","input.placeholderForeground":"#959da5","list.activeSelectionBackground":"#e2e5e9","list.activeSelectionForeground":"#2f363d","list.focusBackground":"#cce5ff","list.hoverBackground":"#ebf0f4","list.hoverForeground":"#2f363d","list.inactiveFocusBackground":"#dbedff","list.inactiveSelectionBackground":"#e8eaed","list.inactiveSelectionForeground":"#2f363d","notificationCenterHeader.background":"#e1e4e8","notificationCenterHeader.foreground":"#6a737d","notifications.background":"#fafbfc","notifications.border":"#e1e4e8","notifications.foreground":"#2f363d","notificationsErrorIcon.foreground":"#d73a49","notificationsInfoIcon.foreground":"#005cc5","notificationsWarningIcon.foreground":"#e36209","panel.background":"#f6f8fa","panel.border":"#e1e4e8","panelInput.border":"#e1e4e8","panelTitle.activeBorder":"#f9826c","panelTitle.activeForeground":"#2f363d","panelTitle.inactiveForeground":"#6a737d","pickerGroup.border":"#e1e4e8","pickerGroup.foreground":"#2f363d","progressBar.background":"#2188ff","quickInput.background":"#fafbfc","quickInput.foreground":"#2f363d","scrollbar.shadow":"#6a737d33","scrollbarSlider.activeBackground":"#959da588","scrollbarSlider.background":"#959da533","scrollbarSlider.hoverBackground":"#959da544","settings.headerForeground":"#2f363d","settings.modifiedItemIndicator":"#2188ff","sideBar.background":"#f6f8fa","sideBar.border":"#e1e4e8","sideBar.foreground":"#586069","sideBarSectionHeader.background":"#f6f8fa","sideBarSectionHeader.border":"#e1e4e8","sideBarSectionHeader.foreground":"#2f363d","sideBarTitle.foreground":"#2f363d","statusBar.background":"#fff","statusBar.border":"#e1e4e8","statusBar.debuggingBackground":"#f9826c","statusBar.debuggingForeground":"#fff","statusBar.foreground":"#586069","statusBar.noFolderBackground":"#fff","statusBarItem.prominentBackground":"#e8eaed","statusBarItem.remoteBackground":"#fff","statusBarItem.remoteForeground":"#586069","tab.activeBackground":"#fff","tab.activeBorder":"#fff","tab.activeBorderTop":"#f9826c","tab.activeForeground":"#2f363d","tab.border":"#e1e4e8","tab.hoverBackground":"#fff","tab.inactiveBackground":"#f6f8fa","tab.inactiveForeground":"#6a737d","tab.unfocusedActiveBorder":"#fff","tab.unfocusedActiveBorderTop":"#e1e4e8","tab.unfocusedHoverBackground":"#fff","terminal.ansiBlack":"#24292e","terminal.ansiBlue":"#0366d6","terminal.ansiBrightBlack":"#959da5","terminal.ansiBrightBlue":"#005cc5","terminal.ansiBrightCyan":"#3192aa","terminal.ansiBrightGreen":"#22863a","terminal.ansiBrightMagenta":"#5a32a3","terminal.ansiBrightRed":"#cb2431","terminal.ansiBrightWhite":"#d1d5da","terminal.ansiBrightYellow":"#b08800","terminal.ansiCyan":"#1b7c83","terminal.ansiGreen":"#28a745","terminal.ansiMagenta":"#5a32a3","terminal.ansiRed":"#d73a49","terminal.ansiWhite":"#6a737d","terminal.ansiYellow":"#dbab09","terminal.foreground":"#586069","terminal.tab.activeBorder":"#f9826c","terminalCursor.background":"#d1d5da","terminalCursor.foreground":"#005cc5","textBlockQuote.background":"#fafbfc","textBlockQuote.border":"#e1e4e8","textCodeBlock.background":"#f6f8fa","textLink.activeForeground":"#005cc5","textLink.foreground":"#0366d6","textPreformat.foreground":"#586069","textSeparator.foreground":"#d1d5da","titleBar.activeBackground":"#fff","titleBar.activeForeground":"#2f363d","titleBar.border":"#e1e4e8","titleBar.inactiveBackground":"#f6f8fa","titleBar.inactiveForeground":"#6a737d","tree.indentGuidesStroke":"#e1e4e8","welcomePage.buttonBackground":"#f6f8fa","welcomePage.buttonHoverBackground":"#e1e4e8"},displayName:"GitHub Light",name:"github-light",semanticHighlighting:!0,tokenColors:[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#6a737d"}},{scope:["constant","entity.name.constant","variable.other.constant","variable.other.enummember","variable.language"],settings:{foreground:"#005cc5"}},{scope:["entity","entity.name"],settings:{foreground:"#6f42c1"}},{scope:"variable.parameter.function",settings:{foreground:"#24292e"}},{scope:"entity.name.tag",settings:{foreground:"#22863a"}},{scope:"keyword",settings:{foreground:"#d73a49"}},{scope:["storage","storage.type"],settings:{foreground:"#d73a49"}},{scope:["storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#24292e"}},{scope:["string","punctuation.definition.string","string punctuation.section.embedded source"],settings:{foreground:"#032f62"}},{scope:"support",settings:{foreground:"#005cc5"}},{scope:"meta.property-name",settings:{foreground:"#005cc5"}},{scope:"variable",settings:{foreground:"#e36209"}},{scope:"variable.other",settings:{foreground:"#24292e"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"carriage-return",settings:{background:"#d73a49",content:"^M",fontStyle:"italic underline",foreground:"#fafbfc"}},{scope:"message.error",settings:{foreground:"#b31d28"}},{scope:"string variable",settings:{foreground:"#005cc5"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#032f62"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#032f62"}},{scope:"string.regexp constant.character.escape",settings:{fontStyle:"bold",foreground:"#22863a"}},{scope:"support.constant",settings:{foreground:"#005cc5"}},{scope:"support.variable",settings:{foreground:"#005cc5"}},{scope:"meta.module-reference",settings:{foreground:"#005cc5"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#e36209"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#005cc5"}},{scope:"markup.quote",settings:{foreground:"#22863a"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#24292e"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#24292e"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["markup.strikethrough"],settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#005cc5"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#ffeef0",foreground:"#b31d28"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#f0fff4",foreground:"#22863a"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#ffebda",foreground:"#e36209"}},{scope:["markup.ignored","markup.untracked"],settings:{background:"#005cc5",foreground:"#f6f8fa"}},{scope:"meta.diff.range",settings:{fontStyle:"bold",foreground:"#6f42c1"}},{scope:"meta.diff.header",settings:{foreground:"#005cc5"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#005cc5"}},{scope:"meta.output",settings:{foreground:"#005cc5"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#586069"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#b31d28"}},{scope:["constant.other.reference.link","string.other.link"],settings:{fontStyle:"underline",foreground:"#032f62"}}],type:"light"});export{e as default}; diff --git a/assets/chunks/gleam.Dz2Ca8U2.js b/assets/chunks/gleam.Dz2Ca8U2.js new file mode 100644 index 000000000..9413db13d --- /dev/null +++ b/assets/chunks/gleam.Dz2Ca8U2.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Gleam",name:"gleam",patterns:[{include:"#comments"},{include:"#keywords"},{include:"#strings"},{include:"#constant"},{include:"#entity"}],repository:{binary_number:{match:"\\b0b[0-1]+\\b",name:"constant.numeric.binary.gleam",patterns:[]},boolean:{match:"\\b(True|False)\\b",name:"constant.language.boolean.gleam",patterns:[]},comments:{patterns:[{match:"//.*",name:"comment.line.gleam"}]},constant:{patterns:[{include:"#binary_number"},{include:"#octal_number"},{include:"#hexadecimal_number"},{include:"#decimal_number"},{include:"#boolean"},{match:"[[:upper:]][[:word:]]*",name:"entity.name.type.gleam"}]},decimal_number:{match:"\\b[[:digit:]]+(_?[[:digit:]])*(\\.[[:digit:]]*)?(e-?[[:digit:]]*)?\\b",name:"constant.numeric.decimal.gleam",patterns:[]},entity:{patterns:[{begin:"\\b([[:lower:]][[:word:]]*)([[:space:]]*)?\\(",captures:{1:{name:"entity.name.function.gleam"}},end:"\\)",patterns:[{include:"$self"}]},{match:"\\b([[:lower:]][[:word:]]*):\\s",name:"variable.parameter.gleam"},{match:"\\b([[:lower:]][[:word:]]*):",name:"entity.name.namespace.gleam"}]},hexadecimal_number:{match:"\\b0x[[:xdigit:]]+\\b",name:"constant.numeric.hexadecimal.gleam",patterns:[]},keywords:{patterns:[{match:"\\b(as|use|case|if|fn|import|let|assert|pub|type|opaque|const|todo|panic)\\b",name:"keyword.control.gleam"},{match:"(<\\-|\\->)",name:"keyword.operator.arrow.gleam"},{match:"\\|>",name:"keyword.operator.pipe.gleam"},{match:"\\.\\.",name:"keyword.operator.splat.gleam"},{match:"(<=\\.|>=\\.|==\\.|!=\\.|<\\.|>\\.)",name:"keyword.operator.comparison.float.gleam"},{match:"(<=|>=|==|!=|<|>)",name:"keyword.operator.comparison.int.gleam"},{match:"(&&|\\|\\|)",name:"keyword.operator.logical.gleam"},{match:"<>",name:"keyword.operator.string.gleam"},{match:"\\|",name:"keyword.operator.other.gleam"},{match:"(\\+\\.|\\-\\.|/\\.|\\*\\.|%\\.)",name:"keyword.operator.arithmetic.float.gleam"},{match:"(\\+|\\-|/|\\*|%)",name:"keyword.operator.arithmetic.int.gleam"},{match:"=",name:"keyword.operator.assignment.gleam"}]},octal_number:{match:"\\b0o[0-7]+\\b",name:"constant.numeric.octal.gleam",patterns:[]},strings:{begin:'"',end:'"',name:"string.quoted.double.gleam",patterns:[{match:"\\\\.",name:"constant.character.escape.gleam"}]}},scopeName:"source.gleam"});var a=[e];export{a as default}; diff --git a/assets/chunks/glimmer-js.CKLJpqca.js b/assets/chunks/glimmer-js.CKLJpqca.js new file mode 100644 index 000000000..88a8b9959 --- /dev/null +++ b/assets/chunks/glimmer-js.CKLJpqca.js @@ -0,0 +1,13 @@ +import e from"./javascript.Dch3xQiY.js";import n from"./typescript.DC8MraHL.js";import t from"./css.CbYhyuC0.js";import a from"./html.CuK0VrWf.js";const i=Object.freeze({displayName:"Glimmer JS",injections:{"L:source.gjs -comment -(string -meta.embedded)":{patterns:[{include:"#main"}]}},name:"glimmer-js",patterns:[{include:"#main"},{include:"source.js"}],repository:{"as-keyword":{match:"\\s\\b(as)\\b(?=\\s\\|)",name:"keyword.control",patterns:[]},"as-params":{begin:"(?)",endCaptures:{1:{name:"punctuation.definition.tag"},2:{name:"punctuation.definition.tag"}},name:"meta.tag.any.ember-handlebars",patterns:[{include:"#tag-like-content"}]},digit:{captures:{0:{name:"constant.numeric"},1:{name:"constant.numeric"},2:{name:"constant.numeric"}},match:"\\d*(\\.)?\\d+",patterns:[]},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html.ember-handlebars"},3:{name:"punctuation.definition.entity.html.ember-handlebars"}},match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.html.ember-handlebars"},{match:"&",name:"invalid.illegal.bad-ampersand.html.ember-handlebars"}]},"glimmer-argument":{captures:{1:{name:"entity.other.attribute-name.ember-handlebars.argument",patterns:[{match:"(@)",name:"markup.italic"}]},2:{name:"punctuation.separator.key-value.html.ember-handlebars"}},match:"\\s(@[a-zA-Z0-9:_.-]+)(=)?"},"glimmer-as-stuff":{patterns:[{include:"#as-keyword"},{include:"#as-params"}]},"glimmer-block":{begin:"({{~?)(#|/)(([@\\$a-zA-Z0-9_/.-]+))",captures:{1:{name:"punctuation.definition.tag"},2:{name:"punctuation.definition.tag"},3:{name:"keyword.control",patterns:[{include:"#glimmer-component-path"},{match:"(\\/)+",name:"punctuation.definition.tag"},{match:"(\\.)+",name:"punctuation.definition.tag"}]}},end:"(~?}})",name:"entity.expression.ember-handlebars",patterns:[{include:"#glimmer-as-stuff"},{include:"#glimmer-supexp-content"}]},"glimmer-bools":{captures:{0:{name:"keyword.operator"},1:{name:"keyword.operator"},2:{name:"string.regexp"},3:{name:"string.regexp"},4:{name:"keyword.operator"}},match:"({{~?)(true|false|null|undefined|\\d*(\\.)?\\d+)(~?}})",name:"entity.expression.ember-handlebars"},"glimmer-comment-block":{begin:"{{!--",captures:{0:{name:"punctuation.definition.block.comment.glimmer"}},end:"--}}",name:"comment.block.glimmer",patterns:[{include:"#script"},{include:"#attention"}]},"glimmer-comment-inline":{begin:"{{!",captures:{0:{name:"punctuation.definition.block.comment.glimmer"}},end:"}}",name:"comment.inline.glimmer",patterns:[{include:"#script"},{include:"#attention"}]},"glimmer-component-path":{captures:{1:{name:"punctuation.definition.tag"}},match:"(::|_|\\$|\\.)"},"glimmer-control-expression":{begin:"({{~?)(([-a-zA-Z_0-9/]+)\\s)",captures:{1:{name:"keyword.operator"},2:{name:"keyword.operator"},3:{name:"keyword.control"}},end:"(~?}})",name:"entity.expression.ember-handlebars",patterns:[{include:"#glimmer-supexp-content"}]},"glimmer-else-block":{captures:{0:{name:"punctuation.definition.tag"},1:{name:"punctuation.definition.tag"},2:{name:"keyword.control"},3:{name:"keyword.control",patterns:[{include:"#glimmer-subexp"},{include:"#string-single-quoted-handlebars"},{include:"#string-double-quoted-handlebars"},{include:"#boolean"},{include:"#digit"},{include:"#param"},{include:"#glimmer-parameter-name"},{include:"#glimmer-parameter-value"}]},4:{name:"punctuation.definition.tag"}},match:"({{~?)(else\\s[a-z]+\\s|else)([()@a-zA-Z0-9\\.\\s\\b]+)?(~?}})",name:"entity.expression.ember-handlebars"},"glimmer-expression":{begin:"({{~?)(([()\\s@a-zA-Z0-9_.-]+))",captures:{1:{name:"keyword.operator"},2:{name:"keyword.operator"},3:{name:"support.function",patterns:[{match:"[(]+",name:"string.regexp"},{match:"[)]+",name:"string.regexp"},{match:"(\\.)+",name:"punctuation.definition.tag"},{include:"#glimmer-supexp-content"}]}},end:"(~?}})",name:"entity.expression.ember-handlebars",patterns:[{include:"#glimmer-supexp-content"}]},"glimmer-expression-property":{begin:"({{~?)((@|this.)([a-zA-Z0-9_.-]+))",captures:{1:{name:"keyword.operator"},2:{name:"keyword.operator"},3:{name:"support.function",patterns:[{match:"(@|this)",name:"variable.language"},{match:"(\\.)+",name:"punctuation.definition.tag"}]},4:{name:"support.function",patterns:[{match:"(\\.)+",name:"punctuation.definition.tag"}]}},end:"(~?}})",name:"entity.expression.ember-handlebars",patterns:[{include:"#glimmer-supexp-content"}]},"glimmer-parameter-name":{captures:{1:{name:"variable.parameter.name.ember-handlebars"},2:{name:"punctuation.definition.expression.ember-handlebars"}},match:"\\b([a-zA-Z0-9_-]+)(\\s?=)",patterns:[]},"glimmer-parameter-value":{captures:{1:{name:"support.function",patterns:[{match:"(\\.)+",name:"punctuation.definition.tag"}]}},match:"\\b([a-zA-Z0-9:_.-]+)\\b(?!=)",patterns:[]},"glimmer-special-block":{captures:{0:{name:"keyword.operator"},1:{name:"keyword.operator"},2:{name:"keyword.control"},3:{name:"keyword.operator"}},match:"({{~?)(yield|outlet)(~?}})",name:"entity.expression.ember-handlebars"},"glimmer-subexp":{begin:"(\\()([@a-zA-Z0-9.-]+)",captures:{1:{name:"keyword.other"},2:{name:"keyword.control"}},end:"(\\))",name:"entity.subexpression.ember-handlebars",patterns:[{include:"#glimmer-supexp-content"}]},"glimmer-supexp-content":{patterns:[{include:"#glimmer-subexp"},{include:"#string-single-quoted-handlebars"},{include:"#string-double-quoted-handlebars"},{include:"#boolean"},{include:"#digit"},{include:"#param"},{include:"#glimmer-parameter-name"},{include:"#glimmer-parameter-value"}]},"glimmer-unescaped-expression":{begin:"{{{",captures:{0:{name:"keyword.operator"}},end:"}}}",name:"entity.unescaped.expression.ember-handlebars",patterns:[{include:"#string-single-quoted-handlebars"},{include:"#string-double-quoted-handlebars"},{include:"#glimmer-subexp"},{include:"#param"}]},"html-attribute":{captures:{1:{name:"entity.other.attribute-name.ember-handlebars",patterns:[{match:"(\\.\\.\\.attributes)",name:"markup.bold"}]},2:{name:"punctuation.separator.key-value.html.ember-handlebars"}},match:"\\s([a-zA-Z0-9:_.-]+)(=)?"},"html-comment":{begin:"",name:"comment.block.html",patterns:[{match:"\\G-?>",name:"invalid.illegal.characters-not-allowed-here.html"},{match:")",name:"invalid.illegal.characters-not-allowed-here.html"},{match:"--!>",name:"invalid.illegal.characters-not-allowed-here.html"}]},"core-minus-invalid":{comment:"This should be the root pattern array includes minus #tags-invalid",patterns:[{include:"#xml-processing"},{include:"#comment"},{include:"#doctype"},{include:"#cdata"},{include:"#tags-valid"},{include:"#entities"}]},doctype:{begin:"",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.doctype.html",patterns:[{match:"\\G(?i:DOCTYPE)",name:"entity.name.tag.html"},{begin:'"',end:'"',name:"string.quoted.double.html"},{match:"[^\\s>]+",name:"entity.other.attribute-name.html"}]},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html"},912:{name:"punctuation.definition.entity.html"}},comment:"Yes this is a bit ridiculous, there are quite a lot of these",match:`(?x) +(&) (?=[a-zA-Z]) +( +(a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve)) +| (B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?)) +| (c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross)) +| (d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger))) +| (e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr))) +| (f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr)) +| (G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve)) +| (h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy)) +| (i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?)) +| (j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr)) +| (k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa)) +| (l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot)) +| (M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker))) +| (n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute)) +| (o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr))) +| (p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?)) +| (q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr)) +| (R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))) +| (s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle)) +| (t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot)) +| (u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve))) +| (v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar)) +| (w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr)) +| (X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map)) +| (y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy)) +| (z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute)) +) +(;) +`,name:"constant.character.entity.named.$2.html"},{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)#[0-9]+(;)",name:"constant.character.entity.numeric.decimal.html"},{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)#[xX][0-9a-fA-F]+(;)",name:"constant.character.entity.numeric.hexadecimal.html"},{match:"&(?=[a-zA-Z0-9]+;)",name:"invalid.illegal.ambiguous-ampersand.html"}]},math:{patterns:[{begin:`(?i)(<)(math)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.structure.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()",endCaptures:{0:{name:"meta.tag.structure.$2.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"punctuation.definition.tag.end.html"}},name:"meta.element.structure.$2.html",patterns:[{begin:"(?)\\G",end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]}],repository:{attribute:{patterns:[{begin:"(s(hift|ymmetric|cript(sizemultiplier|level|minsize)|t(ackalign|retchy)|ide|u(pscriptshift|bscriptshift)|e(parator(s)?|lection)|rc)|h(eight|ref)|n(otation|umalign)|c(haralign|olumn(spa(n|cing)|width|lines|align)|lose|rossout)|i(n(dent(shift(first|last)?|target|align(first|last)?)|fixlinebreakstyle)|d)|o(pen|verflow)|d(i(splay(style)?|r)|e(nomalign|cimalpoint|pth))|position|e(dge|qual(columns|rows))|voffset|f(orm|ence|rame(spacing)?)|width|l(space|ine(thickness|leading|break(style|multchar)?)|o(ngdivstyle|cation)|ength|quote|argeop)|a(c(cent(under)?|tiontype)|l(t(text|img(-(height|valign|width))?)|ign(mentscope)?))|r(space|ow(spa(n|cing)|lines|align)|quote)|groupalign|x(link:href|mlns)|m(in(size|labelspacing)|ovablelimits|a(th(size|color|variant|background)|xsize))|bevelled)(?![\\w:-])",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.html",patterns:[{include:"#attribute-interior"}]},{begin:`([^\\x{0020}"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)`,beginCaptures:{0:{name:"entity.other.attribute-name.html"}},comment:"Anything else that is valid",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.unrecognized.$1.html",patterns:[{include:"#attribute-interior"}]},{match:"[^\\s>]+",name:"invalid.illegal.character-not-allowed-here.html"}]},tags:{patterns:[{include:"#comment"},{include:"#cdata"},{captures:{0:{name:"meta.tag.structure.math.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.structure.math.$2.html"},{begin:`(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.structure.math.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.inline.math.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.inline.math.$2.html"},{begin:`(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.inline.math.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.object.math.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.object.math.$2.html"},{begin:`(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.object.math.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.other.invalid.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.unrecognized-tag.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(([\\w:]+))(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.other.invalid.html"},{begin:`(?i)(<)((\\w[^\\s>]*))(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.other.invalid.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.unrecognized-tag.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.invalid.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{include:"#tags-invalid"}]}}},svg:{patterns:[{begin:`(?i)(<)(svg)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.structure.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()",endCaptures:{0:{name:"meta.tag.structure.$2.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"punctuation.definition.tag.end.html"}},name:"meta.element.structure.$2.html",patterns:[{begin:"(?)\\G",end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]}],repository:{attribute:{patterns:[{begin:"(s(hape-rendering|ystemLanguage|cale|t(yle|itchTiles|op-(color|opacity)|dDeviation|em(h|v)|artOffset|r(i(ng|kethrough-(thickness|position))|oke(-(opacity|dash(offset|array)|width|line(cap|join)|miterlimit))?))|urfaceScale|p(e(cular(Constant|Exponent)|ed)|acing|readMethod)|eed|lope)|h(oriz-(origin-x|adv-x)|eight|anging|ref(lang)?)|y(1|2|ChannelSelector)?|n(umOctaves|ame)|c(y|o(ntentS(criptType|tyleType)|lor(-(interpolation(-filters)?|profile|rendering))?)|ursor|l(ip(-(path|rule)|PathUnits)?|ass)|a(p-height|lcMode)|x)|t(ype|o|ext(-(decoration|anchor|rendering)|Length)|a(rget(X|Y)?|b(index|leValues))|ransform)|i(n(tercept|2)?|d(eographic)?|mage-rendering)|z(oomAndPan)?|o(p(erator|acity)|ver(flow|line-(thickness|position))|ffset|r(i(ent(ation)?|gin)|der))|d(y|i(splay|visor|ffuseConstant|rection)|ominant-baseline|ur|e(scent|celerate)|x)?|u(1|n(i(code(-(range|bidi))?|ts-per-em)|derline-(thickness|position))|2)|p(ing|oint(s(At(X|Y|Z))?|er-events)|a(nose-1|t(h(Length)?|tern(ContentUnits|Transform|Units))|int-order)|r(imitiveUnits|eserveA(spectRatio|lpha)))|e(n(d|able-background)|dgeMode|levation|x(ternalResourcesRequired|ponent))|v(i(sibility|ew(Box|Target))|-(hanging|ideographic|alphabetic|mathematical)|e(ctor-effect|r(sion|t-(origin-(y|x)|adv-y)))|alues)|k(1|2|3|e(y(Splines|Times|Points)|rn(ing|el(Matrix|UnitLength)))|4)?|f(y|il(ter(Res|Units)?|l(-(opacity|rule))?)|o(nt-(s(t(yle|retch)|ize(-adjust)?)|variant|family|weight)|rmat)|lood-(color|opacity)|r(om)?|x)|w(idth(s)?|ord-spacing|riting-mode)|l(i(ghting-color|mitingConeAngle)|ocal|e(ngthAdjust|tter-spacing)|ang)|a(scent|cc(umulate|ent-height)|ttribute(Name|Type)|zimuth|dditive|utoReverse|l(ignment-baseline|phabetic|lowReorder)|rabic-form|mplitude)|r(y|otate|e(s(tart|ult)|ndering-intent|peat(Count|Dur)|quired(Extensions|Features)|f(X|Y|errerPolicy)|l)|adius|x)?|g(1|2|lyph(Ref|-(name|orientation-(horizontal|vertical)))|radient(Transform|Units))|x(1|2|ChannelSelector|-height|link:(show|href|t(ype|itle)|a(ctuate|rcrole)|role)|ml:(space|lang|base))?|m(in|ode|e(thod|dia)|a(sk(ContentUnits|Units)?|thematical|rker(Height|-(start|end|mid)|Units|Width)|x))|b(y|ias|egin|ase(Profile|line-shift|Frequency)|box))(?![\\w:-])",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.html",patterns:[{include:"#attribute-interior"}]},{begin:`([^\\x{0020}"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)`,beginCaptures:{0:{name:"entity.other.attribute-name.html"}},comment:"Anything else that is valid",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.unrecognized.$1.html",patterns:[{include:"#attribute-interior"}]},{match:"[^\\s>]+",name:"invalid.illegal.character-not-allowed-here.html"}]},tags:{patterns:[{include:"#comment"},{include:"#cdata"},{captures:{0:{name:"meta.tag.metadata.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.metadata.svg.$2.html"},{begin:`(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.metadata.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.structure.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.structure.svg.$2.html"},{begin:`(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.structure.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.inline.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.inline.svg.$2.html"},{begin:`(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.inline.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.object.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.object.svg.$2.html"},{begin:`(?i)(<)(a|circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.object.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.other.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.other.svg.$2.html"},{begin:`(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.other.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.other.invalid.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.unrecognized-tag.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},match:`(?i)(<)(([\\w:]+))(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>))`,name:"meta.element.other.invalid.html"},{begin:`(?i)(<)((\\w[^\\s>]*))(?=\\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))?`,beginCaptures:{0:{name:"meta.tag.other.invalid.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.unrecognized-tag.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.invalid.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{include:"#tags-invalid"}]}}},"tags-invalid":{patterns:[{begin:"(]*))(?)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.$2.html",patterns:[{include:"#attribute"}]}]},"tags-valid":{patterns:[{begin:"(^[ \\t]+)?(?=<(?i:style)\\b(?!-))",beginCaptures:{1:{name:"punctuation.whitespace.embedded.leading.html"}},end:"(?!\\G)([ \\t]*$\\n?)?",endCaptures:{1:{name:"punctuation.whitespace.embedded.trailing.html"}},patterns:[{begin:"(?i)(<)(style)(?=\\s|/?>)",beginCaptures:{0:{name:"meta.tag.metadata.style.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"(?i)((<)/)(style)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.style.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"source.css-ignored-vscode"},3:{name:"entity.name.tag.html"},4:{name:"punctuation.definition.tag.end.html"}},name:"meta.embedded.block.html",patterns:[{begin:"\\G",captures:{1:{name:"punctuation.definition.tag.end.html"}},end:"(>)",name:"meta.tag.metadata.style.start.html",patterns:[{include:"#attribute"}]},{begin:"(?!\\G)",end:"(?=)",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"punctuation.definition.tag.end.html"}},name:"meta.embedded.block.html",patterns:[{begin:"\\G",end:"(?=/)",patterns:[{begin:"(>)",beginCaptures:{0:{name:"meta.tag.metadata.script.start.html"},1:{name:"punctuation.definition.tag.end.html"}},end:"((<))(?=/(?i:script))",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"source.js-ignored-vscode"}},patterns:[{begin:"\\G",end:"(?= +| type(?=[\\s=]) +(?!\\s*=\\s* +( +'' +| "" +| ('|"|) +( +text/ +( +javascript(1\\.[0-5])? +| x-javascript +| jscript +| livescript +| (x-)?ecmascript +| babel + +) +| application/ +( +(x-)?javascript +| (x-)?ecmascript +) +| module +) +[\\s"'>] +) +) +) +)`,name:"meta.tag.metadata.script.start.html",patterns:[{include:"#attribute"}]},{begin:`(?ix: +(?= +type\\s*=\\s* +('|"|) +text/ +( +x-handlebars +| (x-(handlebars-)?|ng-)?template +| html +) +[\\s"'>] +) +)`,end:"((<))(?=/(?i:script))",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"text.html.basic"}},patterns:[{begin:"\\G",end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.script.start.html",patterns:[{include:"#attribute"}]},{begin:"(?!\\G)",end:"(?=)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.script.start.html",patterns:[{include:"#attribute"}]},{begin:"(?!\\G)",end:"(?=)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(noscript|title)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(col|hr|input)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(address|article|aside|blockquote|body|button|caption|colgroup|datalist|dd|details|dialog|div|dl|dt|fieldset|figcaption|figure|footer|form|head|header|hgroup|html|h[1-6]|label|legend|li|main|map|menu|meter|nav|ol|optgroup|option|output|p|pre|progress|section|select|slot|summary|table|tbody|td|template|textarea|tfoot|th|thead|tr|ul)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(area|br|wbr)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(a|abbr|b|bdi|bdo|cite|code|data|del|dfn|em|i|ins|kbd|mark|q|rp|rt|ruby|s|samp|small|span|strong|sub|sup|time|u|var)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(embed|img|param|source|track)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(audio|canvas|iframe|object|picture|video)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((basefont|isindex))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((center|frameset|noembed|noframes))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((acronym|big|blink|font|strike|tt|xmp))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((frame))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((applet))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((dir|keygen|listing|menuitem|plaintext|spacer))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.no-longer-supported.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.no-longer-supported.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.$2.end.html",patterns:[{include:"#attribute"}]},{include:"#math"},{include:"#svg"},{begin:"(<)([a-zA-Z][.0-9_a-zA-Z\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}-\\x{200D}\\x{203F}-\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}]*-[\\-.0-9_a-zA-Z\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}-\\x{200D}\\x{203F}-\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}]*)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.custom.start.html",patterns:[{include:"#attribute"}]},{begin:"()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.custom.end.html",patterns:[{include:"#attribute"}]}]},"xml-processing":{begin:"(<\\?)(xml)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.html"}},end:"(\\?>)",name:"meta.tag.metadata.processing.xml.html",patterns:[{include:"#attribute"}]}},scopeName:"text.html.basic",embeddedLangs:["javascript","css"]});var r=[...t,...e,n];export{r as default}; diff --git a/assets/chunks/http.DvBm4YdT.js b/assets/chunks/http.DvBm4YdT.js new file mode 100644 index 000000000..47725a069 --- /dev/null +++ b/assets/chunks/http.DvBm4YdT.js @@ -0,0 +1 @@ +import t from"./shellscript.BZfs-ost.js";import e from"./json.CupVZNk8.js";import n from"./xml.BzTcx3OS.js";import a from"./graphql.C4V4xKFR.js";import"./java.ClXEvkw9.js";import"./javascript.Dch3xQiY.js";import"./typescript.DC8MraHL.js";import"./jsx.CsyrCbsw.js";import"./tsx.BlxWTfDV.js";const s=Object.freeze({displayName:"HTTP",fileTypes:["http","rest"],name:"http",patterns:[{begin:"^\\s*(?=curl)",end:"^\\s*(\\#{3,}.*?)?\\s*$",endCaptures:{0:{name:"comment.line.sharp.http"}},name:"http.request.curl",patterns:[{include:"source.shell"}]},{begin:"\\s*(?=(\\[|{[^{]))",end:"^\\s*(\\#{3,}.*?)?\\s*$",endCaptures:{0:{name:"comment.line.sharp.http"}},name:"http.request.body.json",patterns:[{include:"source.json"}]},{begin:"^\\s*(?=<\\S)",end:"^\\s*(\\#{3,}.*?)?\\s*$",endCaptures:{0:{name:"comment.line.sharp.http"}},name:"http.request.body.xml",patterns:[{include:"text.xml"}]},{begin:"\\s*(?=(query|mutation))",end:"^\\s*(\\#{3,}.*?)?\\s*$",endCaptures:{0:{name:"comment.line.sharp.http"}},name:"http.request.body.graphql",patterns:[{include:"source.graphql"}]},{begin:"\\s*(?=(query|mutation))",end:"^\\{\\s*$",name:"http.request.body.graphql",patterns:[{include:"source.graphql"}]},{include:"#metadata"},{include:"#comments"},{captures:{1:{name:"keyword.other.http"},2:{name:"variable.other.http"},3:{name:"string.other.http"}},match:"^\\s*(@)([^\\s=]+)\\s*=\\s*(.*?)\\s*$",name:"http.filevariable"},{captures:{1:{name:"keyword.operator.http"},2:{name:"variable.other.http"},3:{name:"string.other.http"}},match:"^\\s*(\\?|&)([^=\\s]+)=(.*)$",name:"http.query"},{captures:{1:{name:"entity.name.tag.http"},2:{name:"keyword.other.http"},3:{name:"string.other.http"}},match:"^([\\w\\-]+)\\s*(\\:)\\s*([^/].*?)\\s*$",name:"http.headers"},{include:"#request-line"},{include:"#response-line"}],repository:{comments:{patterns:[{match:"^\\s*\\#{1,}.*$",name:"comment.line.sharp.http"},{match:"^\\s*\\/{2,}.*$",name:"comment.line.double-slash.http"}]},metadata:{patterns:[{captures:{1:{name:"entity.other.attribute-name"},2:{name:"punctuation.definition.block.tag.metadata"},3:{name:"entity.name.type.http"}},match:"^\\s*\\#{1,}\\s+(?:((@)name)\\s+([^\\s\\.]+))$",name:"comment.line.sharp.http"},{captures:{1:{name:"entity.other.attribute-name"},2:{name:"punctuation.definition.block.tag.metadata"},3:{name:"entity.name.type.http"}},match:"^\\s*\\/{2,}\\s+(?:((@)name)\\s+([^\\s\\.]+))$",name:"comment.line.double-slash.http"},{captures:{1:{name:"entity.other.attribute-name"},2:{name:"punctuation.definition.block.tag.metadata"}},match:"^\\s*\\#{1,}\\s+((@)note)\\s*$",name:"comment.line.sharp.http"},{captures:{1:{name:"entity.other.attribute-name"},2:{name:"punctuation.definition.block.tag.metadata"}},match:"^\\s*\\/{2,}\\s+((@)note)\\s*$",name:"comment.line.double-slash.http"},{captures:{1:{name:"entity.other.attribute-name"},2:{name:"punctuation.definition.block.tag.metadata"},3:{name:"variable.other.http"},4:{name:"string.other.http"}},match:"^\\s*\\#{1,}\\s+(?:((@)prompt)\\s+([^\\s]+)(?:\\s+(.*))?\\s*)$",name:"comment.line.sharp.http"},{captures:{1:{name:"entity.other.attribute-name"},2:{name:"punctuation.definition.block.tag.metadata"},3:{name:"variable.other.http"},4:{name:"string.other.http"}},match:"^\\s*\\/{2,}\\s+(?:((@)prompt)\\s+([^\\s]+)(?:\\s+(.*))?\\s*)$",name:"comment.line.double-slash.http"}]},protocol:{patterns:[{captures:{1:{name:"keyword.other.http"},2:{name:"constant.numeric.http"}},match:"(HTTP)/(\\d+.\\d+)",name:"http.version"}]},"request-line":{captures:{1:{name:"keyword.control.http"},2:{name:"const.language.http"},3:{patterns:[{include:"#protocol"}]}},match:"(?i)^(?:(get|post|put|delete|patch|head|options|connect|trace|lock|unlock|propfind|proppatch|copy|move|mkcol|mkcalendar|acl|search)\\s+)?\\s*(.+?)(?:\\s+(HTTP\\/\\S+))?$",name:"http.requestline"},"response-line":{captures:{1:{patterns:[{include:"#protocol"}]},2:{name:"constant.numeric.http"},3:{name:"string.other.http"}},match:"(?i)^\\s*(HTTP\\/\\S+)\\s([1-5][0-9][0-9])\\s(.*)$",name:"http.responseLine"}},scopeName:"source.http",embeddedLangs:["shellscript","json","xml","graphql"]});var d=[...t,...e,...n,...a,s];export{d as default}; diff --git a/assets/chunks/hy.C3qJFuQy.js b/assets/chunks/hy.C3qJFuQy.js new file mode 100644 index 000000000..dea06ffd7 --- /dev/null +++ b/assets/chunks/hy.C3qJFuQy.js @@ -0,0 +1,3 @@ +const e=Object.freeze({displayName:"Hy",name:"hy",patterns:[{include:"#all"}],repository:{all:{patterns:[{include:"#comment"},{include:"#constants"},{include:"#keywords"},{include:"#strings"},{include:"#operators"},{include:"#keysym"},{include:"#symbol"}]},comment:{patterns:[{match:"(;).*$",name:"comment.line.hy"}]},constants:{patterns:[{match:`(?<=[\\{\\[\\(\\s])([0-9]+(\\.[0-9]+)?|(#x)[0-9a-fA-F]+|(#o)[0-7]+|(#b)[01]+)(?=[\\s;()'",\\[\\]\\{\\}])`,name:"constant.numeric.hy"}]},keysym:{match:"(?*]):[\\.:\\w_\\-=!@\\$%^&?\\/<>*]*",name:"variable.other.constant"},keywords:{patterns:[{match:"\\b(\\.|->|->>|and|match|let|await|annotate|as->|as-model|assert|assoc|break|chainc|comment|cond|continue|do|doc|#doc|([dgls])?for|set[vx]|defclass|defmain|defmacro|defmacro\\/g!|defmacro!|deftag|del|doto|eval-and-compile|eval-when-compile|first|gensym|get|global|if|if\\*|if-not|import|(de)?fn(\\/a)?|last|nonlocal|not(\\?|-in)?|or|print|(quasi)?quote|require|rest|return|cut|raise|try|unless|unpack-iterable|unpack-mapping|unquote|unquote-splice|when|while|with(\\/a)?|with-decorator|with-gensyms|xor|yield(-from)?|butlast|coll\\?|comp|complement|constantly|dec|disassemble|empty\\?|eval|every\\?|exec|float\\?|fraction|even\\?|identity|inc|instance\\?|integer\\?|interleave|interpose|iterable\\?|iterator\\?|juxt|keyword|keyword\\?|macroexpand(-1)?|mangle|merge-with|name|neg\\?|none\\?|nth|numeric\\?|odd\\?|partition|pos\\?|second|some|string\\?|symbol\\?|zero\\?|cycle|distinct|drop|drop-last|drop-while|filter|flatten|iterate|read|read-str|remove|repeat|repeatedly|take|take-nth|take-while|unmangle|False|None|True|as|in|is|py(s)?|lambda|nonlocal|not|pass|abs|all|any|ascii|bin|bool|bytearray|bytes|callable|chr|classmethod|compile|complex|delattr|dict|dir|divmod|enumerate|eval|exec|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|isinstance|issubclass|iter|len|list|locals|map|max|memoryview|min|next|object|oct|open|ord|pow|print|property|range|repr(-register)?|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|vars|zip|__import__|abs|acos|angle|asin|assoc|assq|assv|atan|ceiling|cos|floor|round|sin|sqrt|tan|(?:real|imag)-part|numerator|denominatormodulo|exp|expt|remainder|quotient|lcm|call-with-(?:input|output)-file|(?:close|current)-(?:input|output)-port|with-(?:input|output)-from-file|open-(?:input|output)-file|char-(?:downcase|upcase|ready)|make-(?:polar|promise|rectangular|string|vector)|string(?:-(?:append|copy|length|ref))|vector(?:-length|-ref))[\\s\\)]",name:"keyword.control.hy"}]},operators:{patterns:[{match:"(?<=\\()\\s*(\\+=?|\\/+|\\*+|-=?|[!<>]?=|@|%|<<|>>|<|>|&|\\||\\^|~)",name:"keyword.control.hy"}]},strings:{begin:`(f?"|}(?=[^ +]*?[{"]))`,end:`("|(?<=["}][^ +]*?){)`,name:"string.quoted.double.hy",patterns:[{match:"\\\\.",name:"constant.character.escape.hy"}]},symbol:{match:"(?*#])[\\.a-zA-ZΑ-Ωα-ω_\\-=!@\\$%^*#][\\.:\\w_\\-=!@\\$%^&?/<>*#]*",name:"variable.other.hy"}},scopeName:"source.hy"});var t=[e];export{t as default}; diff --git a/assets/chunks/imba.DxX1Vuw3.js b/assets/chunks/imba.DxX1Vuw3.js new file mode 100644 index 000000000..4447a28cf --- /dev/null +++ b/assets/chunks/imba.DxX1Vuw3.js @@ -0,0 +1,223 @@ +import e from"./typescript.DC8MraHL.js";const n=Object.freeze({displayName:"Imba",fileTypes:["imba","imba2"],name:"imba",patterns:[{include:"#root"},{captures:{1:{name:"punctuation.definition.comment.imba"}},match:"\\A(#!).*(?=$)",name:"comment.line.shebang.imba"}],repository:{"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.imba"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.imba"}},name:"meta.array.literal.imba",patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},block:{patterns:[{include:"#style-declaration"},{include:"#mixin-declaration"},{include:"#object-keys"},{include:"#generics-literal"},{include:"#tag-literal"},{include:"#regex"},{include:"#keywords"},{include:"#comment"},{include:"#literal"},{include:"#plain-identifiers"},{include:"#plain-accessors"},{include:"#pairs"},{include:"#invalid-indentation"}]},"boolean-literal":{patterns:[{match:"(?>>|>>|>|\\+|~",name:"punctuation.separator.combinator.css"},{match:"&",name:"keyword.other.parent-selector.css"}]},"css-commas":{match:",",name:"punctuation.separator.list.comma.css"},"css-comment":{patterns:[{match:"\\#(\\s.+)?(\\n|$)",name:"comment.line.imba"},{match:"(^\\t+)(\\#(\\s.+)?(\\n|$))",name:"comment.line.imba"}]},"css-escapes":{patterns:[{match:"\\\\[0-9a-fA-F]{1,6}",name:"constant.character.escape.codepoint.css"},{begin:"\\\\$\\s*",end:"^(?[\\w-]|[^\\\\x00-\\\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+) +\\s* +(?=[~|^\\]$*=]|/\\*)`}]},{include:"#css-pseudo-classes"},{include:"#css-pseudo-elements"},{include:"#css-mixin"}]},"css-size-keywords":{patterns:[{match:"(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w-])",name:"support.constant.size.property-value.css"}]},"curly-braces":{begin:"\\s*(\\{)",beginCaptures:{1:{name:"meta.brace.curly.imba"}},end:"\\}",endCaptures:{0:{name:"meta.brace.curly.imba"}},patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},decorator:{begin:"(?\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.imba"}},end:"(?=$)",name:"comment.line.triple-slash.directive.imba",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.imba"},2:{name:"entity.name.tag.directive.imba"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.imba"}},name:"meta.tag.imba",patterns:[{match:"path|types|no-default-lib|lib|name",name:"entity.other.attribute-name.directive.imba"},{match:"=",name:"keyword.operator.assignment.imba"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:`(?x) +((@)(?:access|api)) +\\s+ +(private|protected|public) +\\b`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:`(?x) +((@)author) +\\s+ +( +[^@\\s<>*/] +(?:[^@<>*/]|\\*[^/])* +) +(?: +\\s* +(<) +([^>\\s]+) +(>) +)?`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +((@)borrows) \\s+ +((?:[^@\\s*/]|\\*[^/])+) +\\s+ (as) \\s+ +((?:[^@\\s*/]|\\*[^/])+)`},{begin:"((@)example)\\s+",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=@|\\*/)",name:"meta.example.jsdoc",patterns:[{match:"^\\s\\*\\s+"},{begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},contentName:"constant.other.description.jsdoc",end:"()|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{0:{name:"source.embedded.imba"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +((@)see) +\\s+ +(?: + +( +(?=https?://) +(?:[^\\s*]|\\*[^/])+ +) +| + +( +(?! + +https?:// +| + +(?:\\[[^\\[\\]]*\\])? +{@(?:link|linkcode|linkplain|tutorial)\\b +) + +(?:[^@\\s*/]|\\*[^/])+ +) +)`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:`(?x) +((@)template) +\\s+ +# One or more valid identifiers +( +[A-Za-z_$] +[\\w$.\\[\\]]* +(?: +\\s* , \\s* +[A-Za-z_$] +[\\w$.\\[\\]]* +)* +)`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:`(?x) +( +(@) +(?:arg|argument|const|constant|member|namespace|param|var) +) +\\s+ +( +[A-Za-z_$] +[\\w$.\\[\\]]* +)`},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"(?:[^@\\s*/]|\\*[^/])+",name:"entity.name.type.instance.jsdoc"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"},{captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.imba"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:`(?x) +(\\[)\\s* +[\\w$]+ +(?: +(?:\\[\\])? +\\. +[\\w$]+ +)* +(?: +\\s* +(=) +\\s* +( + +(?> +"(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?" | +'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | +\\[ (?:(?:\\*(?!/))|[^*])*? \\] | +(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* +)* +) +)? +\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,name:"variable.other.jsdoc"}]},{begin:`(?x) +( +(@) +(?:define|enum|exception|export|extends|lends|implements|modifies +|namespace|private|protected|returns?|suppress|this|throws|type +|yields?) +) +\\s+(?={)`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +( +(@) +(?:alias|augments|callback|constructs|emits|event|fires|exports? +|extends|external|function|func|host|lends|listens|interface|memberof!? +|method|module|mixes|mixin|name|requires|see|this|typedef|uses) +) +\\s+ +( +(?: +[^{}@\\s*] | \\*[^/] +)+ +)`},{begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))(?=\\s+)"}]},expr:{patterns:[{include:"#style-declaration"},{include:"#object-keys"},{include:"#generics-literal"},{include:"#tag-literal"},{include:"#regex"},{include:"#keywords"},{include:"#comment"},{include:"#literal"},{include:"#plain-identifiers"},{include:"#plain-accessors"},{include:"#pairs"}]},expression:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.imba"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.imba"}},patterns:[{include:"#expr"}]},{include:"#tag-literal"},{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#literal"},{include:"#support-objects"}]},"generics-literal":{begin:"(?<=[\\w\\]\\)])\\<",beginCaptures:{1:{name:"meta.generics.annotation.open.imba"}},end:"\\>",endCaptures:{0:{name:"meta.generics.annotation.close.imba"}},name:"meta.generics.annotation.imba",patterns:[{include:"#type-brackets"}]},"global-literal":{match:"(?\\=?|\\<\\=?)",name:"keyword.operator.imba"},{match:"(of|delete|\\!?isa|typeof|\\!?in|new|\\!?is|isnt)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.imba"}]},literal:{patterns:[{include:"#number-with-unit-literal"},{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#this-literal"},{include:"#global-literal"},{include:"#super-literal"},{include:"#type-literal"},{include:"#generics-literal"},{include:"#string"}]},"mixin-css-selector":{begin:"(\\%[\\w\\-]+)",beginCaptures:{1:{name:"entity.other.attribute-name.mixin.css"}},end:"(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",endCaptures:{0:{name:"punctuation.separator.sel-properties.css"}},name:"meta.selector.css",patterns:[{include:"#css-selector-innards"}]},"mixin-css-selector-after":{begin:"(?<=%[\\w\\-]+)(?!(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])",end:"(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",endCaptures:{0:{name:"punctuation.separator.sel-properties.css"}},name:"meta.selector.css",patterns:[{include:"#css-selector-innards"}]},"mixin-declaration":{begin:"^(\\t*)(\\%[\\w\\-]+)",beginCaptures:{2:{name:"entity.other.attribute-name.mixin.css"}},end:"^(?!(\\1\\t|\\s*$))",name:"meta.style.imba",patterns:[{include:"#mixin-css-selector-after"},{include:"#css-comment"},{include:"#nested-css-selector"},{include:"#inline-styles"}]},"nested-css-selector":{begin:"(^\\t+)(?!(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])",end:"(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",endCaptures:{0:{name:"punctuation.separator.sel-properties.css"}},name:"meta.selector.css",patterns:[{include:"#css-selector-innards"}]},"nested-style-declaration":{begin:"^(\\t+)(?=[\\n^]*\\&)",end:"^(?!(\\1\\t|\\s*$))",name:"meta.style.imba",patterns:[{include:"#nested-css-selector"},{include:"#inline-styles"}]},"null-literal":{match:"(?>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.imba"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.imba"},{match:"===|!==|==|!=|~=",name:"keyword.operator.comparison.imba"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.imba"},{captures:{1:{name:"keyword.operator.logical.imba"},2:{name:"keyword.operator.arithmetic.imba"}},match:"(\\!)\\s*(/)(?![/*])"},{match:"\\!|&&|\\|\\||\\?\\?|or\\b(?=\\s|$)|and\\b(?=\\s|$)|\\@\\b(?=\\s|$)",name:"keyword.operator.logical.imba"},{match:"\\?(?=\\s|$)",name:"keyword.operator.bitwise.imba"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.ternary.imba"},{match:"\\=",name:"keyword.operator.assignment.imba"},{match:"--",name:"keyword.operator.decrement.imba"},{match:"\\+\\+",name:"keyword.operator.increment.imba"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.imba"}]},pairs:{patterns:[{include:"#curly-braces"},{include:"#square-braces"},{include:"#round-braces"}]},"plain-accessors":{patterns:[{captures:{1:{name:"punctuation.accessor.imba"},2:{name:"variable.other.property.imba"}},match:"(\\.\\.?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)"}]},"plain-identifiers":{patterns:[{match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",name:"variable.other.constant.imba"},{match:"[[:upper:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\!]?",name:"variable.other.class.imba"},{match:"\\$\\d+",name:"variable.special.imba"},{match:"\\$[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.internal.imba"},{match:"\\@\\@+[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.symbol.imba"},{match:"[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.readwrite.imba"},{match:"\\@[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.instance.imba"},{match:"\\#+[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.private.imba"},{match:"\\:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"string.symbol.imba"}]},"punctuation-accessor":{captures:{1:{name:"punctuation.accessor.imba"},2:{name:"punctuation.accessor.optional.imba"}},match:"(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))"},"punctuation-comma":{match:",",name:"punctuation.separator.comma.imba"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.imba"},"qstring-double":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.imba"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.imba"}},name:"string.quoted.double.imba",patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]},"qstring-single":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.imba"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.imba"},2:{name:"invalid.illegal.newline.imba"}},name:"string.quoted.single.imba",patterns:[{include:"#string-character-escape"}]},"qstring-single-multi":{begin:"'''",beginCaptures:{0:{name:"punctuation.definition.string.begin.imba"}},end:"'''",endCaptures:{0:{name:"punctuation.definition.string.end.imba"}},name:"string.quoted.single.imba",patterns:[{include:"#string-character-escape"}]},regex:{patterns:[{begin:"(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.imba"}},end:"(/)([gimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.imba"},2:{name:"keyword.other.imba"}},name:"string.regexp.imba",patterns:[{include:"#regexp"}]},{begin:"((?"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},root:{patterns:[{include:"#block"}]},"round-braces":{begin:"\\s*(\\()",beginCaptures:{1:{name:"meta.brace.round.imba"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.imba"}},patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//|\\#\\s)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.imba"},2:{name:"comment.line.double-slash.imba"},3:{name:"punctuation.definition.comment.imba"},4:{name:"storage.type.internaldeclaration.imba"},5:{name:"punctuation.decorator.internaldeclaration.imba"}},contentName:"comment.line.double-slash.imba",end:"(?=^)"},"square-braces":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.imba"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.imba"}},patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},string:{patterns:[{include:"#qstring-single-multi"},{include:"#qstring-double-multi"},{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"string-character-escape":{match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)",name:"constant.character.escape.imba"},"style-declaration":{begin:"^(\\t*)(?:(global|local|export)\\s+)?(?:(scoped)\\s+)?(css)\\s",beginCaptures:{2:{name:"keyword.control.export.imba"},3:{name:"storage.modifier.imba"},4:{name:"storage.type.style.imba"}},end:"^(?!(\\1\\t|\\s*$))",name:"meta.style.imba",patterns:[{include:"#css-selector"},{include:"#css-comment"},{include:"#nested-css-selector"},{include:"#inline-styles"}]},"style-expr":{patterns:[{captures:{1:{name:"constant.numeric.integer.decimal.css"},2:{name:"keyword.other.unit.css"}},match:"(\\b[0-9][0-9_]*)(\\w+|%)?"},{match:"--[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"support.constant.property-value.var.css"},{match:"(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w-])",name:"support.constant.property-value.size.css"},{match:"[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"support.constant.property-value.css"},{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.function.begin.bracket.round.css"}},end:"\\)",name:"meta.function.css",patterns:[{include:"#style-expr"}]}]},"style-property":{patterns:[{begin:"(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=]))",beginCaptures:{1:{name:"support.function.calc.css"},2:{name:"punctuation.section.function.begin.bracket.round.css"}},end:"\\s*[\\:\\=]",endCaptures:{0:{name:"punctuation.separator.key-value.css"}},name:"meta.property-name.css",patterns:[{match:"(?:--|\\$)[\\w\\-\\$]+",name:"support.type.property-name.variable.css"},{match:"\\@[\\!\\<\\>]?[0-9]+",name:"support.type.property-name.modifier.breakpoint.css"},{match:"\\^?\\@+[\\w\\-\\$]+",name:"support.type.property-name.modifier.css"},{match:"\\^?\\.+[\\w\\-\\$]+",name:"support.type.property-name.modifier.flag.css"},{match:"\\^?\\%+[\\w\\-\\$]+",name:"support.type.property-name.modifier.state.css"},{match:"\\.\\.[\\w\\-\\$]+|\\^+[\\.\\@\\%][\\w\\-\\$]+",name:"support.type.property-name.modifier.up.css"},{match:"\\.[\\w\\-\\$]+",name:"support.type.property-name.modifier.is.css"},{match:"[\\w\\-\\$]+",name:"support.type.property-name.css"}]}]},"super-literal":{match:"(?\\=])"},"tag-attr-value":{begin:"(\\=)",beginCaptures:{0:{name:"keyword.operator.tag.assignment"}},contentName:"meta.tag.attribute-value.imba",end:"(?=>|\\s)",patterns:[{include:"#expr"}]},"tag-classname":{begin:"\\.",contentName:"entity.other.attribute-name.class.css",end:"(?=[\\.\\[\\>\\s\\(\\=])",patterns:[{include:"#tag-interpolated-content"}]},"tag-content":{patterns:[{include:"#tag-name"},{include:"#tag-expr-name"},{include:"#tag-interpolated-content"},{include:"#tag-interpolated-parens"},{include:"#tag-interpolated-brackets"},{include:"#tag-event-handler"},{include:"#tag-mixin-name"},{include:"#tag-classname"},{include:"#tag-ref"},{include:"#tag-attr-value"},{include:"#tag-attr-name"},{include:"#comment"}]},"tag-event-handler":{begin:"(\\@[\\w$_]+(?:\\-[\\w$_]+)*)",beginCaptures:{0:{name:"entity.other.event-name.imba"}},contentName:"entity.other.tag.event",end:"(?=[\\[\\>\\s\\=])",patterns:[{include:"#tag-interpolated-content"},{include:"#tag-interpolated-parens"},{begin:"\\.",beginCaptures:{0:{name:"punctuation.section.tag"}},end:"(?=[\\.\\[\\>\\s\\=]|$)",name:"entity.other.event-modifier.imba",patterns:[{include:"#tag-interpolated-parens"},{include:"#tag-interpolated-content"}]}]},"tag-expr-name":{begin:"(?<=<)(?=[\\w\\{])",contentName:"entity.name.tag.imba",end:"(?=[\\%\\$\\#\\.\\[\\>\\s\\(])",patterns:[{include:"#tag-interpolated-content"}]},"tag-interpolated-brackets":{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.tag.imba"}},contentName:"meta.embedded.line.imba",end:"\\]",endCaptures:{0:{name:"punctuation.section.tag.imba"}},name:"meta.tag.expression.imba",patterns:[{include:"#inline-css-selector"},{include:"#inline-styles"}]},"tag-interpolated-content":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.tag.imba"}},contentName:"meta.embedded.line.imba",end:"\\}",endCaptures:{0:{name:"punctuation.section.tag.imba"}},name:"meta.tag.expression.imba",patterns:[{include:"#expression"}]},"tag-interpolated-parens":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.tag.imba"}},contentName:"meta.embedded.line.imba",end:"\\)",endCaptures:{0:{name:"punctuation.section.tag.imba"}},name:"meta.tag.expression.imba",patterns:[{include:"#expression"}]},"tag-literal":{patterns:[{begin:"(<)(?=[\\%\\~\\w\\{\\[\\.\\#\\$\\@\\(])",beginCaptures:{1:{name:"punctuation.section.tag.open.imba"}},contentName:"meta.tag.attributes.imba",end:"(>)",endCaptures:{1:{name:"punctuation.section.tag.close.imba"}},name:"meta.tag.imba",patterns:[{include:"#tag-content"}]}]},"tag-mixin-name":{match:"(\\%[\\w\\-]+)",name:"entity.other.tag-mixin.imba"},"tag-name":{patterns:[{match:"(?<=<)(self|global|slot)(?=[\\.\\[\\>\\s\\(])",name:"entity.name.tag.special.imba"}]},"tag-ref":{match:"(\\$[\\w\\-]+)",name:"entity.other.tag-ref.imba"},template:{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)({{typeArguments}}\\s*)?`)",end:"(?=`)",name:"string.template.imba",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))",end:"(?=({{typeArguments}}\\s*)?`)",patterns:[{match:"([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)",name:"entity.name.function.tagged-template.imba"}]}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)\\s*(?=({{typeArguments}}\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.imba"}},end:"(?=`)",name:"string.template.imba",patterns:[{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.imba"},2:{name:"punctuation.definition.string.template.begin.imba"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.template.end.imba"}},name:"string.template.imba",patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-substitution-element":{begin:"(?",patterns:[{include:"#type-brackets"}]},{begin:"\\(",end:"\\)",patterns:[{include:"#type-brackets"}]}]},"type-literal":{begin:"(\\\\)",beginCaptures:{1:{name:"meta.type.annotation.open.imba"}},end:"(?=[\\s\\]\\)\\,\\.\\=\\}]|$)",name:"meta.type.annotation.imba",patterns:[{include:"#type-brackets"}]},"undefined-literal":{match:"(?i.map(i=>__vite__fileDeps[i]); +var Xt=Object.defineProperty;var Jt=(i,e,t)=>e in i?Xt(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var p=(i,e,t)=>(Jt(i,typeof e!="symbol"?e+"":e,t),t);import{X as u}from"./framework.Be4oCqIX.js";const dt=[{id:"abap",name:"ABAP",import:()=>u(()=>import("./abap.DXFkqnOI.js"),[])},{id:"actionscript-3",name:"ActionScript",import:()=>u(()=>import("./actionscript-3.D6NljDpC.js"),[])},{id:"ada",name:"Ada",import:()=>u(()=>import("./ada.CowR2XfX.js"),[])},{id:"angular-html",name:"Angular HTML",import:()=>u(()=>import("./angular-html.833w9gUK.js").then(i=>i.e),__vite__mapDeps([0,1,2,3]))},{id:"angular-ts",name:"Angular TypeScript",import:()=>u(()=>import("./angular-ts.BCBvF5Sf.js"),__vite__mapDeps([4,0,1,2,3,5]))},{id:"apache",name:"Apache Conf",import:()=>u(()=>import("./apache.rS0jd3Ly.js"),[])},{id:"apex",name:"Apex",import:()=>u(()=>import("./apex.Sfo2eW0G.js"),[])},{id:"apl",name:"APL",import:()=>u(()=>import("./apl.7kPAH7yp.js"),__vite__mapDeps([6,1,2,3,7,8,9]))},{id:"applescript",name:"AppleScript",import:()=>u(()=>import("./applescript.B4yE-MfL.js"),[])},{id:"ara",name:"Ara",import:()=>u(()=>import("./ara.CG4fK2Nq.js"),[])},{id:"asm",name:"Assembly",import:()=>u(()=>import("./asm.PWN5J14X.js"),[])},{id:"astro",name:"Astro",import:()=>u(()=>import("./astro.Dtt22nl1.js"),__vite__mapDeps([10,9,2,11,12,13,3,5,14,15,16]))},{id:"awk",name:"AWK",import:()=>u(()=>import("./awk.i0IPvypD.js"),[])},{id:"ballerina",name:"Ballerina",import:()=>u(()=>import("./ballerina.T9ysyp6P.js"),[])},{id:"bat",name:"Batch File",aliases:["batch"],import:()=>u(()=>import("./bat.BPiaQZfK.js"),[])},{id:"beancount",name:"Beancount",import:()=>u(()=>import("./beancount.Urb1RsFe.js"),[])},{id:"berry",name:"Berry",aliases:["be"],import:()=>u(()=>import("./berry.CxrokwfH.js"),[])},{id:"bibtex",name:"BibTeX",import:()=>u(()=>import("./bibtex.BaedD2tq.js"),[])},{id:"bicep",name:"Bicep",import:()=>u(()=>import("./bicep.3ghuYFLd.js"),[])},{id:"blade",name:"Blade",import:()=>u(()=>import("./blade.Ge7MpD7w.js"),__vite__mapDeps([17,1,2,3,7,8,18,9]))},{id:"c",name:"C",import:()=>u(()=>import("./c.RCJZWN-0.js"),[])},{id:"cadence",name:"Cadence",aliases:["cdc"],import:()=>u(()=>import("./cadence.Bgpqy2XC.js"),[])},{id:"clarity",name:"Clarity",import:()=>u(()=>import("./clarity.CIekO_uJ.js"),[])},{id:"clojure",name:"Clojure",aliases:["clj"],import:()=>u(()=>import("./clojure.BF6G6X0H.js"),[])},{id:"cmake",name:"CMake",import:()=>u(()=>import("./cmake.DXZpi2gR.js"),[])},{id:"cobol",name:"COBOL",import:()=>u(()=>import("./cobol.Be8n44jy.js"),__vite__mapDeps([19,18,1,2,3,8]))},{id:"codeql",name:"CodeQL",aliases:["ql"],import:()=>u(()=>import("./codeql.BOpLLL-w.js"),[])},{id:"coffee",name:"CoffeeScript",aliases:["coffeescript"],import:()=>u(()=>import("./coffee.t_LrLW_f.js"),__vite__mapDeps([20,2]))},{id:"common-lisp",name:"Common Lisp",aliases:["lisp"],import:()=>u(()=>import("./common-lisp.CX2EUjC8.js"),[])},{id:"cpp",name:"C++",aliases:["c++"],import:()=>u(()=>import("./cpp.BnO_O5bK.js"),__vite__mapDeps([21,22,23,18]))},{id:"crystal",name:"Crystal",import:()=>u(()=>import("./crystal.DUeHF1Px.js"),__vite__mapDeps([24,1,2,3,18,23,25]))},{id:"csharp",name:"C#",aliases:["c#","cs"],import:()=>u(()=>import("./csharp.DISxKEhY.js"),[])},{id:"css",name:"CSS",import:()=>u(()=>import("./css.CbYhyuC0.js"),[])},{id:"csv",name:"CSV",import:()=>u(()=>import("./csv.B2DkETJQ.js"),[])},{id:"cue",name:"CUE",import:()=>u(()=>import("./cue.C6Aznpr-.js"),[])},{id:"cypher",name:"Cypher",aliases:["cql"],import:()=>u(()=>import("./cypher.ByMv4Xf1.js"),[])},{id:"d",name:"D",import:()=>u(()=>import("./d.PifQWv0n.js"),[])},{id:"dart",name:"Dart",import:()=>u(()=>import("./dart.DZLoTQm4.js"),[])},{id:"dax",name:"DAX",import:()=>u(()=>import("./dax.DsfXcHUZ.js"),[])},{id:"desktop",name:"Desktop",import:()=>u(()=>import("./desktop.D71BffLY.js"),[])},{id:"diff",name:"Diff",import:()=>u(()=>import("./diff.DvyTQcux.js"),[])},{id:"docker",name:"Dockerfile",aliases:["dockerfile"],import:()=>u(()=>import("./docker.DNR26wTC.js"),[])},{id:"dream-maker",name:"Dream Maker",import:()=>u(()=>import("./dream-maker.Eh5U-gDp.js"),[])},{id:"elixir",name:"Elixir",import:()=>u(()=>import("./elixir.CpdO1lki.js"),__vite__mapDeps([26,1,2,3]))},{id:"elm",name:"Elm",import:()=>u(()=>import("./elm.DbZvrHdh.js"),__vite__mapDeps([27,22,23]))},{id:"erb",name:"ERB",import:()=>u(()=>import("./erb.C8njeWMx.js"),__vite__mapDeps([28,1,2,3,29,7,8,18,23,25,30]))},{id:"erlang",name:"Erlang",aliases:["erl"],import:()=>u(()=>import("./erlang.DS9ZWoKD.js"),[])},{id:"fennel",name:"Fennel",import:()=>u(()=>import("./fennel.C6XIsc4F.js"),[])},{id:"fish",name:"Fish",import:()=>u(()=>import("./fish.DfeQjIbs.js"),[])},{id:"fortran-fixed-form",name:"Fortran (Fixed Form)",aliases:["f","for","f77"],import:()=>u(()=>import("./fortran-fixed-form.Cx0tWteX.js"),__vite__mapDeps([31,32]))},{id:"fortran-free-form",name:"Fortran (Free Form)",aliases:["f90","f95","f03","f08","f18"],import:()=>u(()=>import("./fortran-free-form.D6pmzCqS.js"),[])},{id:"fsharp",name:"F#",aliases:["f#","fs"],import:()=>u(()=>import("./fsharp.COWl2xCs.js"),__vite__mapDeps([33,34]))},{id:"gdresource",name:"GDResource",import:()=>u(()=>import("./gdresource.Dyo1-XBj.js"),__vite__mapDeps([35,36,37]))},{id:"gdscript",name:"GDScript",import:()=>u(()=>import("./gdscript.CoEqzGFw.js"),[])},{id:"gdshader",name:"GDShader",import:()=>u(()=>import("./gdshader.B_SUYfiV.js"),[])},{id:"gherkin",name:"Gherkin",import:()=>u(()=>import("./gherkin.DjTlIhuc.js"),[])},{id:"git-commit",name:"Git Commit Message",import:()=>u(()=>import("./git-commit.aPmGthaS.js"),__vite__mapDeps([38,39]))},{id:"git-rebase",name:"Git Rebase Message",import:()=>u(()=>import("./git-rebase.wSeoO_tD.js"),__vite__mapDeps([40,25]))},{id:"gleam",name:"Gleam",import:()=>u(()=>import("./gleam.Dz2Ca8U2.js"),[])},{id:"glimmer-js",name:"Glimmer JS",aliases:["gjs"],import:()=>u(()=>import("./glimmer-js.CKLJpqca.js"),__vite__mapDeps([41,2,11,3,1]))},{id:"glimmer-ts",name:"Glimmer TS",aliases:["gts"],import:()=>u(()=>import("./glimmer-ts.Bp7XmXVh.js"),__vite__mapDeps([42,11,3,2,1]))},{id:"glsl",name:"GLSL",import:()=>u(()=>import("./glsl.-GlVTnW0.js"),__vite__mapDeps([22,23]))},{id:"gnuplot",name:"Gnuplot",import:()=>u(()=>import("./gnuplot.nclm9rTJ.js"),[])},{id:"go",name:"Go",import:()=>u(()=>import("./go.BAMIS8DD.js"),[])},{id:"graphql",name:"GraphQL",aliases:["gql"],import:()=>u(()=>import("./graphql.C4V4xKFR.js"),__vite__mapDeps([43,2,11,44,16]))},{id:"groovy",name:"Groovy",import:()=>u(()=>import("./groovy.wChcbJ1V.js"),[])},{id:"hack",name:"Hack",import:()=>u(()=>import("./hack.B30vrIHT.js"),__vite__mapDeps([45,1,2,3,18]))},{id:"haml",name:"Ruby Haml",import:()=>u(()=>import("./haml.RaSm5nLU.js"),__vite__mapDeps([46,29,1,2,3,7,8,18,23,25,30,13,20,34]))},{id:"handlebars",name:"Handlebars",aliases:["hbs"],import:()=>u(()=>import("./handlebars.W0zz18bm.js"),__vite__mapDeps([47,1,2,3,48]))},{id:"haskell",name:"Haskell",aliases:["hs"],import:()=>u(()=>import("./haskell.DAGYewaG.js"),[])},{id:"hcl",name:"HashiCorp HCL",import:()=>u(()=>import("./hcl.CudBhkk3.js"),[])},{id:"hjson",name:"Hjson",import:()=>u(()=>import("./hjson.DZqG9GXz.js"),[])},{id:"hlsl",name:"HLSL",import:()=>u(()=>import("./hlsl.DmDrTTlz.js"),[])},{id:"html",name:"HTML",import:()=>u(()=>import("./html.CuK0VrWf.js"),__vite__mapDeps([1,2,3]))},{id:"html-derivative",name:"HTML (Derivative)",import:()=>u(()=>import("./html-derivative.fiapQfxX.js"),__vite__mapDeps([49,1,2,3]))},{id:"http",name:"HTTP",import:()=>u(()=>import("./http.DvBm4YdT.js"),__vite__mapDeps([50,25,9,7,8,43,2,11,44,16]))},{id:"hy",name:"Hy",import:()=>u(()=>import("./hy.C3qJFuQy.js"),[])},{id:"imba",name:"Imba",import:()=>u(()=>import("./imba.DxX1Vuw3.js"),__vite__mapDeps([51,11]))},{id:"ini",name:"INI",aliases:["properties"],import:()=>u(()=>import("./ini.DeVv6D4_.js"),[])},{id:"java",name:"Java",import:()=>u(()=>import("./java.ClXEvkw9.js"),[])},{id:"javascript",name:"JavaScript",aliases:["js"],import:()=>u(()=>import("./javascript.Dch3xQiY.js"),[])},{id:"jinja",name:"Jinja",import:()=>u(()=>import("./jinja.DWD-OL5F.js"),__vite__mapDeps([52,1,2,3]))},{id:"jison",name:"Jison",import:()=>u(()=>import("./jison.CHwQvgii.js"),__vite__mapDeps([53,2]))},{id:"json",name:"JSON",import:()=>u(()=>import("./json.CupVZNk8.js"),[])},{id:"json5",name:"JSON5",import:()=>u(()=>import("./json5.Bh8mriwU.js"),[])},{id:"jsonc",name:"JSON with Comments",import:()=>u(()=>import("./jsonc.DYI1rfmx.js"),[])},{id:"jsonl",name:"JSON Lines",import:()=>u(()=>import("./jsonl.BUpeXbsf.js"),[])},{id:"jsonnet",name:"Jsonnet",import:()=>u(()=>import("./jsonnet.C9d3aiqh.js"),[])},{id:"jssm",name:"JSSM",aliases:["fsl"],import:()=>u(()=>import("./jssm.Dble9ECP.js"),[])},{id:"jsx",name:"JSX",import:()=>u(()=>import("./jsx.CsyrCbsw.js"),[])},{id:"julia",name:"Julia",aliases:["jl"],import:()=>u(()=>import("./julia.CyGW3mcn.js"),__vite__mapDeps([54,21,22,23,18,55,2,56]))},{id:"kotlin",name:"Kotlin",aliases:["kt","kts"],import:()=>u(()=>import("./kotlin.BIxS-Weu.js"),[])},{id:"kusto",name:"Kusto",aliases:["kql"],import:()=>u(()=>import("./kusto.DIr-ordK.js"),[])},{id:"latex",name:"LaTeX",import:()=>u(()=>import("./latex.CbyClHu1.js"),__vite__mapDeps([57,58,56,25,3,59,60,1,2,8,54,21,22,23,18,55,30,29,7,61,11,48,62]))},{id:"less",name:"Less",import:()=>u(()=>import("./less.Du6_OKDb.js"),[])},{id:"liquid",name:"Liquid",import:()=>u(()=>import("./liquid.Cp8214eI.js"),__vite__mapDeps([63,1,2,3,9]))},{id:"log",name:"Log file",import:()=>u(()=>import("./log.Ksn5IXup.js"),[])},{id:"logo",name:"Logo",import:()=>u(()=>import("./logo.DdacRhvC.js"),[])},{id:"lua",name:"Lua",import:()=>u(()=>import("./lua.CHJYZA-p.js"),__vite__mapDeps([30,23]))},{id:"make",name:"Makefile",aliases:["makefile"],import:()=>u(()=>import("./make.B9S9BZZh.js"),[])},{id:"markdown",name:"Markdown",aliases:["md"],import:()=>u(()=>import("./markdown.BdfWgkoX.js"),[])},{id:"marko",name:"Marko",import:()=>u(()=>import("./marko.DXVuwHdi.js"),__vite__mapDeps([64,3,14,5,2]))},{id:"matlab",name:"MATLAB",import:()=>u(()=>import("./matlab.Btshr8M_.js"),[])},{id:"mdc",name:"MDC",import:()=>u(()=>import("./mdc.BtXAnNXs.js"),__vite__mapDeps([65,34,48,49,1,2,3]))},{id:"mdx",name:"MDX",import:()=>u(()=>import("./mdx.CBPJd_fO.js"),[])},{id:"mermaid",name:"Mermaid",import:()=>u(()=>import("./mermaid.Dkb1Nx48.js"),[])},{id:"mojo",name:"Mojo",import:()=>u(()=>import("./mojo.-7WWnkdy.js"),[])},{id:"move",name:"Move",import:()=>u(()=>import("./move.C9UBdavN.js"),[])},{id:"narrat",name:"Narrat Language",aliases:["nar"],import:()=>u(()=>import("./narrat.B9CT-1u6.js"),[])},{id:"nextflow",name:"Nextflow",aliases:["nf"],import:()=>u(()=>import("./nextflow.DBxHOdLe.js"),[])},{id:"nginx",name:"Nginx",import:()=>u(()=>import("./nginx.CFCDRImM.js"),__vite__mapDeps([66,30,23]))},{id:"nim",name:"Nim",import:()=>u(()=>import("./nim.whBoXTHG.js"),__vite__mapDeps([67,23,1,2,3,7,8,22,34]))},{id:"nix",name:"Nix",import:()=>u(()=>import("./nix.Dszwcx0o.js"),[])},{id:"nushell",name:"nushell",aliases:["nu"],import:()=>u(()=>import("./nushell.CrgTADc5.js"),[])},{id:"objective-c",name:"Objective-C",aliases:["objc"],import:()=>u(()=>import("./objective-c.DHmGyzbM.js"),[])},{id:"objective-cpp",name:"Objective-C++",import:()=>u(()=>import("./objective-cpp.BWKJ1FCf.js"),[])},{id:"ocaml",name:"OCaml",import:()=>u(()=>import("./ocaml.RqY_Nz63.js"),[])},{id:"pascal",name:"Pascal",import:()=>u(()=>import("./pascal.B6ZnTe72.js"),[])},{id:"perl",name:"Perl",import:()=>u(()=>import("./perl.Czv4QcIx.js"),__vite__mapDeps([68,1,2,3,7,8,18]))},{id:"php",name:"PHP",import:()=>u(()=>import("./php.DEqKwr-6.js"),__vite__mapDeps([69,1,2,3,7,8,18,9]))},{id:"plsql",name:"PL/SQL",import:()=>u(()=>import("./plsql.BbJj1K1w.js"),[])},{id:"po",name:"Gettext PO",aliases:["pot","potx"],import:()=>u(()=>import("./po.HrnDn_2Q.js"),[])},{id:"postcss",name:"PostCSS",import:()=>u(()=>import("./postcss.DXT9h7v2.js"),[])},{id:"powerquery",name:"PowerQuery",import:()=>u(()=>import("./powerquery.CApMHEaB.js"),[])},{id:"powershell",name:"PowerShell",aliases:["ps","ps1"],import:()=>u(()=>import("./powershell.9ZOzOPqN.js"),[])},{id:"prisma",name:"Prisma",import:()=>u(()=>import("./prisma.BBJYjQ0k.js"),[])},{id:"prolog",name:"Prolog",import:()=>u(()=>import("./prolog.BH_RS3WO.js"),[])},{id:"proto",name:"Protocol Buffer 3",import:()=>u(()=>import("./proto.DOtRmeXT.js"),[])},{id:"pug",name:"Pug",aliases:["jade"],import:()=>u(()=>import("./pug.BWq4yR4F.js"),__vite__mapDeps([70,2,3,13,5,12,20,1]))},{id:"puppet",name:"Puppet",import:()=>u(()=>import("./puppet.37ic6j3l.js"),[])},{id:"purescript",name:"PureScript",import:()=>u(()=>import("./purescript.CfPQhs6g.js"),[])},{id:"python",name:"Python",aliases:["py"],import:()=>u(()=>import("./python.DwuVtWc2.js"),[])},{id:"r",name:"R",import:()=>u(()=>import("./r.BXfENWL6.js"),[])},{id:"racket",name:"Racket",import:()=>u(()=>import("./racket.B5NHDIr7.js"),[])},{id:"raku",name:"Raku",aliases:["perl6"],import:()=>u(()=>import("./raku.D384ylkT.js"),[])},{id:"razor",name:"ASP.NET Razor",import:()=>u(()=>import("./razor.BPIJn9no.js"),__vite__mapDeps([71,1,2,3,72]))},{id:"reg",name:"Windows Registry Script",import:()=>u(()=>import("./reg.CrhH3_Og.js"),[])},{id:"rel",name:"Rel",import:()=>u(()=>import("./rel.6Kuza3Wr.js"),[])},{id:"riscv",name:"RISC-V",import:()=>u(()=>import("./riscv.AgnqFTPX.js"),[])},{id:"rst",name:"reStructuredText",import:()=>u(()=>import("./rst.MQSXyo4o.js"),__vite__mapDeps([73,49,1,2,3,21,22,23,18,55,25,48,74,29,7,8,30]))},{id:"ruby",name:"Ruby",aliases:["rb"],import:()=>u(()=>import("./ruby.BYVeyLWu.js"),__vite__mapDeps([29,1,2,3,7,8,18,23,25,30]))},{id:"rust",name:"Rust",aliases:["rs"],import:()=>u(()=>import("./rust.DGxQkqYo.js"),[])},{id:"sas",name:"SAS",import:()=>u(()=>import("./sas.2Dj3KWk-.js"),__vite__mapDeps([75,18]))},{id:"sass",name:"Sass",import:()=>u(()=>import("./sass.CMDmr8et.js"),[])},{id:"scala",name:"Scala",import:()=>u(()=>import("./scala.vMsNTMhM.js"),[])},{id:"scheme",name:"Scheme",import:()=>u(()=>import("./scheme.1Je9_Reo.js"),[])},{id:"scss",name:"SCSS",import:()=>u(()=>import("./scss.Dr-_CcBd.js"),__vite__mapDeps([5,3]))},{id:"shaderlab",name:"ShaderLab",aliases:["shader"],import:()=>u(()=>import("./shaderlab.D_C8j_yu.js"),__vite__mapDeps([76,77]))},{id:"shellscript",name:"Shell",aliases:["bash","sh","shell","zsh"],import:()=>u(()=>import("./shellscript.BZfs-ost.js"),[])},{id:"shellsession",name:"Shell Session",aliases:["console"],import:()=>u(()=>import("./shellsession.D2P9pGgM.js"),__vite__mapDeps([78,25]))},{id:"smalltalk",name:"Smalltalk",import:()=>u(()=>import("./smalltalk.DSsji4Hu.js"),[])},{id:"solidity",name:"Solidity",import:()=>u(()=>import("./solidity.CThH5sBG.js"),[])},{id:"sparql",name:"SPARQL",import:()=>u(()=>import("./sparql.DJ46LgWq.js"),__vite__mapDeps([79,80]))},{id:"splunk",name:"Splunk Query Language",aliases:["spl"],import:()=>u(()=>import("./splunk.6XBPEST2.js"),[])},{id:"sql",name:"SQL",import:()=>u(()=>import("./sql.DbK06e1c.js"),[])},{id:"ssh-config",name:"SSH Config",import:()=>u(()=>import("./ssh-config.BH1M7C1g.js"),[])},{id:"stata",name:"Stata",import:()=>u(()=>import("./stata.DCIeX9IZ.js"),__vite__mapDeps([81,18]))},{id:"stylus",name:"Stylus",aliases:["styl"],import:()=>u(()=>import("./stylus.DSrLtGYv.js"),[])},{id:"svelte",name:"Svelte",import:()=>u(()=>import("./svelte.CpQM5Shq.js"),__vite__mapDeps([82,2,11,20,12,13,3,5,14,15,70,1,34]))},{id:"swift",name:"Swift",import:()=>u(()=>import("./swift.Dez-Qvcc.js"),[])},{id:"system-verilog",name:"SystemVerilog",import:()=>u(()=>import("./system-verilog.BscxmKrE.js"),[])},{id:"systemd",name:"Systemd Units",import:()=>u(()=>import("./systemd.CuJfdYLG.js"),[])},{id:"tasl",name:"Tasl",import:()=>u(()=>import("./tasl.BxwAa5i0.js"),[])},{id:"tcl",name:"Tcl",import:()=>u(()=>import("./tcl.C_8Fx7bH.js"),[])},{id:"terraform",name:"Terraform",aliases:["tf","tfvars"],import:()=>u(()=>import("./terraform.DBeuZS66.js"),[])},{id:"tex",name:"TeX",import:()=>u(()=>import("./tex.-C-BpcSB.js"),__vite__mapDeps([58,56]))},{id:"toml",name:"TOML",import:()=>u(()=>import("./toml.BT9ZzGyQ.js"),[])},{id:"tsv",name:"TSV",import:()=>u(()=>import("./tsv.DnLUQrgA.js"),[])},{id:"tsx",name:"TSX",import:()=>u(()=>import("./tsx.BlxWTfDV.js"),[])},{id:"turtle",name:"Turtle",import:()=>u(()=>import("./turtle.C15OxdQ5.js"),[])},{id:"twig",name:"Twig",import:()=>u(()=>import("./twig.C7WLmjjl.js"),__vite__mapDeps([83,3,2,5,69,1,7,8,18,9,55,29,23,25,30]))},{id:"typescript",name:"TypeScript",aliases:["ts"],import:()=>u(()=>import("./typescript.DC8MraHL.js"),[])},{id:"typst",name:"Typst",aliases:["typ"],import:()=>u(()=>import("./typst.I4qd5QHW.js"),[])},{id:"v",name:"V",import:()=>u(()=>import("./v.C2TBxDwV.js"),[])},{id:"vb",name:"Visual Basic",aliases:["cmd"],import:()=>u(()=>import("./vb.beD-FUib.js"),[])},{id:"verilog",name:"Verilog",import:()=>u(()=>import("./verilog.DVfdqzEq.js"),[])},{id:"vhdl",name:"VHDL",import:()=>u(()=>import("./vhdl.QZ3jNtnE.js"),[])},{id:"viml",name:"Vim Script",aliases:["vim","vimscript"],import:()=>u(()=>import("./viml.BLluXI4E.js"),[])},{id:"vue",name:"Vue",import:()=>u(()=>import("./vue.DT8Wph6y.js"),__vite__mapDeps([84,1,2,3,34,70,13,5,12,20,14,11,44,16,9,85,86,48,87,43,49]))},{id:"vue-html",name:"Vue HTML",import:()=>u(()=>import("./vue-html.B4wQFpQy.js"),__vite__mapDeps([88,84,1,2,3,34,70,13,5,12,20,14,11,44,16,9,85,86,48,87,43,49]))},{id:"vyper",name:"Vyper",aliases:["vy"],import:()=>u(()=>import("./vyper.o-cPXEvd.js"),[])},{id:"wasm",name:"WebAssembly",import:()=>u(()=>import("./wasm.Cicx_DS6.js"),[])},{id:"wenyan",name:"Wenyan",aliases:["文言"],import:()=>u(()=>import("./wenyan.D3VXSfF0.js"),[])},{id:"wgsl",name:"WGSL",import:()=>u(()=>import("./wgsl.BZz1Hhek.js"),[])},{id:"wolfram",name:"Wolfram",aliases:["wl"],import:()=>u(()=>import("./wolfram.BICIrM8O.js"),[])},{id:"xml",name:"XML",import:()=>u(()=>import("./xml.BzTcx3OS.js"),__vite__mapDeps([7,8]))},{id:"xsl",name:"XSL",import:()=>u(()=>import("./xsl.lJB8dDLf.js"),__vite__mapDeps([89,7,8]))},{id:"yaml",name:"YAML",aliases:["yml"],import:()=>u(()=>import("./yaml.C5gCGmDW.js"),[])},{id:"zenscript",name:"ZenScript",import:()=>u(()=>import("./zenscript.B1nm99XP.js"),[])},{id:"zig",name:"Zig",import:()=>u(()=>import("./zig.Bsp1M94H.js"),[])}],Qt=Object.fromEntries(dt.map(i=>[i.id,i.import])),Zt=Object.fromEntries(dt.flatMap(i=>{var e;return((e=i.aliases)==null?void 0:e.map(t=>[t,i.import]))||[]})),en={...Qt,...Zt},tn=async i=>u(()=>import("./wasm.CsTmP73Z.js"),[]).then(e=>e.default(i)),nn=[{id:"andromeeda",displayName:"Andromeeda",type:"dark",import:()=>u(()=>import("./andromeeda.YxQm0tCS.js"),[])},{id:"aurora-x",displayName:"Aurora X",type:"dark",import:()=>u(()=>import("./aurora-x.BaWyeHV_.js"),[])},{id:"ayu-dark",displayName:"Ayu Dark",type:"dark",import:()=>u(()=>import("./ayu-dark.Bn5gmY5k.js"),[])},{id:"catppuccin-frappe",displayName:"Catppuccin Frappé",type:"dark",import:()=>u(()=>import("./catppuccin-frappe.CSPeAESR.js"),[])},{id:"catppuccin-latte",displayName:"Catppuccin Latte",type:"light",import:()=>u(()=>import("./catppuccin-latte.BYdKNJ10.js"),[])},{id:"catppuccin-macchiato",displayName:"Catppuccin Macchiato",type:"dark",import:()=>u(()=>import("./catppuccin-macchiato.DVLwECkk.js"),[])},{id:"catppuccin-mocha",displayName:"Catppuccin Mocha",type:"dark",import:()=>u(()=>import("./catppuccin-mocha.CEfge3mM.js"),[])},{id:"dark-plus",displayName:"Dark Plus",type:"dark",import:()=>u(()=>import("./dark-plus.KEYLhlmT.js"),[])},{id:"dracula",displayName:"Dracula",type:"dark",import:()=>u(()=>import("./dracula.DGO8GyiP.js"),[])},{id:"dracula-soft",displayName:"Dracula Soft",type:"dark",import:()=>u(()=>import("./dracula-soft.9B1nZgL-.js"),[])},{id:"github-dark",displayName:"GitHub Dark",type:"dark",import:()=>u(()=>import("./github-dark.CzPA46E-.js"),[])},{id:"github-dark-default",displayName:"GitHub Dark Default",type:"dark",import:()=>u(()=>import("./github-dark-default.BXF7Vm5l.js"),[])},{id:"github-dark-dimmed",displayName:"GitHub Dark Dimmed",type:"dark",import:()=>u(()=>import("./github-dark-dimmed.CRDKj6ck.js"),[])},{id:"github-light",displayName:"GitHub Light",type:"light",import:()=>u(()=>import("./github-light.CRlnGVMD.js"),[])},{id:"github-light-default",displayName:"GitHub Light Default",type:"light",import:()=>u(()=>import("./github-light-default.UREJT2Bw.js"),[])},{id:"houston",displayName:"Houston",type:"dark",import:()=>u(()=>import("./houston.CZZ6oYdA.js"),[])},{id:"light-plus",displayName:"Light Plus",type:"light",import:()=>u(()=>import("./light-plus.BsvsQ1iS.js"),[])},{id:"material-theme",displayName:"Material Theme",type:"dark",import:()=>u(()=>import("./material-theme.B2BuIiKK.js"),[])},{id:"material-theme-darker",displayName:"Material Theme Darker",type:"dark",import:()=>u(()=>import("./material-theme-darker.BrGg7AAd.js"),[])},{id:"material-theme-lighter",displayName:"Material Theme Lighter",type:"light",import:()=>u(()=>import("./material-theme-lighter.DDRuGeQH.js"),[])},{id:"material-theme-ocean",displayName:"Material Theme Ocean",type:"dark",import:()=>u(()=>import("./material-theme-ocean.CBL0qBdF.js"),[])},{id:"material-theme-palenight",displayName:"Material Theme Palenight",type:"dark",import:()=>u(()=>import("./material-theme-palenight.D7gg1Usp.js"),[])},{id:"min-dark",displayName:"Min Dark",type:"dark",import:()=>u(()=>import("./min-dark.iSbrOpM4.js"),[])},{id:"min-light",displayName:"Min Light",type:"light",import:()=>u(()=>import("./min-light.BITGhEdf.js"),[])},{id:"monokai",displayName:"Monokai",type:"dark",import:()=>u(()=>import("./monokai.sMI-pExk.js"),[])},{id:"night-owl",displayName:"Night Owl",type:"dark",import:()=>u(()=>import("./night-owl.BeocmOPF.js"),[])},{id:"nord",displayName:"Nord",type:"dark",import:()=>u(()=>import("./nord.CsyjKwr8.js"),[])},{id:"one-dark-pro",displayName:"One Dark Pro",type:"dark",import:()=>u(()=>import("./one-dark-pro.BTtaZsq5.js"),[])},{id:"one-light",displayName:"One Light",type:"light",import:()=>u(()=>import("./one-light.alpzPJ78.js"),[])},{id:"poimandres",displayName:"Poimandres",type:"dark",import:()=>u(()=>import("./poimandres.Cda-MJFk.js"),[])},{id:"red",displayName:"Red",type:"dark",import:()=>u(()=>import("./red.jaXbsbtS.js"),[])},{id:"rose-pine",displayName:"Rosé Pine",type:"dark",import:()=>u(()=>import("./rose-pine.CX_FIdg1.js"),[])},{id:"rose-pine-dawn",displayName:"Rosé Pine Dawn",type:"light",import:()=>u(()=>import("./rose-pine-dawn.Bj5xdiaE.js"),[])},{id:"rose-pine-moon",displayName:"Rosé Pine Moon",type:"dark",import:()=>u(()=>import("./rose-pine-moon.CdedUr_-.js"),[])},{id:"slack-dark",displayName:"Slack Dark",type:"dark",import:()=>u(()=>import("./slack-dark.C7oZ9nno.js"),[])},{id:"slack-ochin",displayName:"Slack Ochin",type:"light",import:()=>u(()=>import("./slack-ochin.hXH8Gyq8.js"),[])},{id:"snazzy-light",displayName:"Snazzy Light",type:"light",import:()=>u(()=>import("./snazzy-light.CA9nliXM.js"),[])},{id:"solarized-dark",displayName:"Solarized Dark",type:"dark",import:()=>u(()=>import("./solarized-dark.C86elO-m.js"),[])},{id:"solarized-light",displayName:"Solarized Light",type:"light",import:()=>u(()=>import("./solarized-light.xPNGhBYe.js"),[])},{id:"synthwave-84",displayName:"Synthwave '84",type:"dark",import:()=>u(()=>import("./synthwave-84.BBDuFDsq.js"),[])},{id:"tokyo-night",displayName:"Tokyo Night",type:"dark",import:()=>u(()=>import("./tokyo-night.eJfcURhx.js"),[])},{id:"vesper",displayName:"Vesper",type:"dark",import:()=>u(()=>import("./vesper.BSB_bK09.js"),[])},{id:"vitesse-black",displayName:"Vitesse Black",type:"dark",import:()=>u(()=>import("./vitesse-black.CDJL3WWm.js"),[])},{id:"vitesse-dark",displayName:"Vitesse Dark",type:"dark",import:()=>u(()=>import("./vitesse-dark.V_y36BGi.js"),[])},{id:"vitesse-light",displayName:"Vitesse Light",type:"light",import:()=>u(()=>import("./vitesse-light.BGq4KZyx.js"),[])}],rn=Object.fromEntries(nn.map(i=>[i.id,i.import]));var B;(function(i){i[i.NotSet=-1]="NotSet",i[i.None=0]="None",i[i.Italic=1]="Italic",i[i.Bold=2]="Bold",i[i.Underline=4]="Underline"})(B||(B={}));var J;(function(i){function e(d){return d.toString(2).padStart(32,"0")}i.toBinaryStr=e;function t(d){const m=i.getLanguageId(d),h=i.getTokenType(d),f=i.getFontStyle(d),_=i.getForeground(d),E=i.getBackground(d);console.log({languageId:m,tokenType:h,fontStyle:f,foreground:_,background:E})}i.print=t;function n(d){return(d&255)>>>0}i.getLanguageId=n;function r(d){return(d&768)>>>8}i.getTokenType=r;function o(d){return(d&1024)!==0}i.containsBalancedBrackets=o;function s(d){return(d&30720)>>>11}i.getFontStyle=s;function l(d){return(d&16744448)>>>15}i.getForeground=l;function a(d){return(d&4278190080)>>>24}i.getBackground=a;function c(d,m,h,f,_,E,y){let v=i.getLanguageId(d),b=i.getTokenType(d),P=i.containsBalancedBrackets(d)?1:0,O=i.getFontStyle(d),A=i.getForeground(d),T=i.getBackground(d);return m!==0&&(v=m),h!==8&&(b=h),f!==null&&(P=f?1:0),_!==-1&&(O=_),E!==0&&(A=E),y!==0&&(T=y),(v<<0|b<<8|P<<10|O<<11|A<<15|T<<24)>>>0}i.set=c})(J||(J={}));function he(i,e){const t=[],n=on(i);let r=n.next();for(;r!==null;){let a=0;if(r.length===2&&r.charAt(1)===":"){switch(r.charAt(0)){case"R":a=1;break;case"L":a=-1;break;default:console.log(`Unknown priority ${r} in scope selector`)}r=n.next()}let c=s();if(t.push({matcher:c,priority:a}),r!==",")break;r=n.next()}return t;function o(){if(r==="-"){r=n.next();const a=o();return c=>!!a&&!a(c)}if(r==="("){r=n.next();const a=l();return r===")"&&(r=n.next()),a}if(We(r)){const a=[];do a.push(r),r=n.next();while(We(r));return c=>e(a,c)}return null}function s(){const a=[];let c=o();for(;c;)a.push(c),c=o();return d=>a.every(m=>m(d))}function l(){const a=[];let c=s();for(;c&&(a.push(c),r==="|"||r===",");){do r=n.next();while(r==="|"||r===",");c=s()}return d=>a.some(m=>m(d))}}function We(i){return!!i&&!!i.match(/[\w\.:]+/)}function on(i){let e=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,t=e.exec(i);return{next:()=>{if(!t)return null;const n=t[0];return t=e.exec(i),n}}}function pt(i){typeof i.dispose=="function"&&i.dispose()}function sn(i){return Be(i)}function Be(i){return Array.isArray(i)?an(i):typeof i=="object"?ln(i):i}function an(i){let e=[];for(let t=0,n=i.length;t{for(let n in t)i[n]=t[n]}),i}function mt(i){const e=~i.lastIndexOf("/")||~i.lastIndexOf("\\");return e===0?i:~e===i.length-1?mt(i.substring(0,i.length-1)):i.substr(~e+1)}let Le=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g;class ae{static hasCaptures(e){return e===null?!1:(Le.lastIndex=0,Le.test(e))}static replaceCaptures(e,t,n){return e.replace(Le,(r,o,s,l)=>{let a=n[parseInt(o||s,10)];if(a){let c=t.substring(a.start,a.end);for(;c[0]===".";)c=c.substring(1);switch(l){case"downcase":return c.toLowerCase();case"upcase":return c.toUpperCase();default:return c}}else return r})}}function ft(i,e){return ie?1:0}function _t(i,e){if(i===null&&e===null)return 0;if(!i)return-1;if(!e)return 1;let t=i.length,n=e.length;if(t===n){for(let r=0;r`);return}const o=t.lookup(e);i instanceof te?pe({baseGrammar:o,selfGrammar:r},n):ke(i.ruleName,{baseGrammar:o,selfGrammar:r,repository:r.repository},n);const s=t.injections(i.scopeName);if(s)for(const l of s)n.add(new te(l))}function ke(i,e,t){if(e.repository&&e.repository[i]){const n=e.repository[i];me([n],e,t)}}function pe(i,e){i.selfGrammar.patterns&&Array.isArray(i.selfGrammar.patterns)&&me(i.selfGrammar.patterns,{...i,repository:i.selfGrammar.repository},e),i.selfGrammar.injections&&me(Object.values(i.selfGrammar.injections),{...i,repository:i.selfGrammar.repository},e)}function me(i,e,t){for(const n of i){if(t.visitedRule.has(n))continue;t.visitedRule.add(n);const r=n.repository?ht({},e.repository,n.repository):e.repository;Array.isArray(n.patterns)&&me(n.patterns,{...e,repository:r},t);const o=n.include;if(!o)continue;const s=Et(o);switch(s.kind){case 0:pe({...e,selfGrammar:e.baseGrammar},t);break;case 1:pe(e,t);break;case 2:ke(s.ruleName,{...e,repository:r},t);break;case 3:case 4:const l=s.scopeName===e.selfGrammar.scopeName?e.selfGrammar:s.scopeName===e.baseGrammar.scopeName?e.baseGrammar:void 0;if(l){const a={baseGrammar:e.baseGrammar,selfGrammar:l,repository:r};s.kind===4?ke(s.ruleName,a,t):pe(a,t)}else s.kind===4?t.add(new cn(s.scopeName,s.ruleName)):t.add(new te(s.scopeName));break}}}class hn{constructor(){p(this,"kind",0)}}class mn{constructor(){p(this,"kind",1)}}class fn{constructor(e){p(this,"ruleName");p(this,"kind",2);this.ruleName=e}}class _n{constructor(e){p(this,"scopeName");p(this,"kind",3);this.scopeName=e}}class gn{constructor(e,t){p(this,"scopeName");p(this,"ruleName");p(this,"kind",4);this.scopeName=e,this.ruleName=t}}function Et(i){if(i==="$base")return new hn;if(i==="$self")return new mn;const e=i.indexOf("#");if(e===-1)return new _n(i);if(e===0)return new fn(i.substring(1));{const t=i.substring(0,e),n=i.substring(e+1);return new gn(t,n)}}const yn=/\\(\d+)/,qe=/\\(\d+)/g,En=-1,vt=-2;class oe{constructor(e,t,n,r){p(this,"$location");p(this,"id");p(this,"_nameIsCapturing");p(this,"_name");p(this,"_contentNameIsCapturing");p(this,"_contentName");this.$location=e,this.id=t,this._name=n||null,this._nameIsCapturing=ae.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=ae.hasCaptures(this._contentName)}get debugName(){const e=this.$location?`${mt(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return!this._nameIsCapturing||this._name===null||e===null||t===null?this._name:ae.replaceCaptures(this._name,e,t)}getContentName(e,t){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:ae.replaceCaptures(this._contentName,e,t)}}class vn extends oe{constructor(t,n,r,o,s){super(t,n,r,o);p(this,"retokenizeCapturedWithRuleId");this.retokenizeCapturedWithRuleId=s}dispose(){}collectPatterns(t,n){throw new Error("Not supported!")}compile(t,n){throw new Error("Not supported!")}compileAG(t,n,r,o){throw new Error("Not supported!")}}class bn extends oe{constructor(t,n,r,o,s){super(t,n,r,null);p(this,"_match");p(this,"captures");p(this,"_cachedCompiledPatterns");this._match=new W(o,this.id),this.captures=s,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(t,n){n.push(this._match)}compile(t,n){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,n,r,o){return this._getCachedCompiledPatterns(t).compileAG(t,r,o)}_getCachedCompiledPatterns(t){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new ne,this.collectPatterns(t,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class Ke extends oe{constructor(t,n,r,o,s){super(t,n,r,o);p(this,"hasMissingPatterns");p(this,"patterns");p(this,"_cachedCompiledPatterns");this.patterns=s.patterns,this.hasMissingPatterns=s.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(t,n){for(const r of this.patterns)t.getRule(r).collectPatterns(t,n)}compile(t,n){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,n,r,o){return this._getCachedCompiledPatterns(t).compileAG(t,r,o)}_getCachedCompiledPatterns(t){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new ne,this.collectPatterns(t,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class De extends oe{constructor(t,n,r,o,s,l,a,c,d,m){super(t,n,r,o);p(this,"_begin");p(this,"beginCaptures");p(this,"_end");p(this,"endHasBackReferences");p(this,"endCaptures");p(this,"applyEndPatternLast");p(this,"hasMissingPatterns");p(this,"patterns");p(this,"_cachedCompiledPatterns");this._begin=new W(s,this.id),this.beginCaptures=l,this._end=new W(a||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=c,this.applyEndPatternLast=d||!1,this.patterns=m.patterns,this.hasMissingPatterns=m.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(t,n){return this._end.resolveBackReferences(t,n)}collectPatterns(t,n){n.push(this._begin)}compile(t,n){return this._getCachedCompiledPatterns(t,n).compile(t)}compileAG(t,n,r,o){return this._getCachedCompiledPatterns(t,n).compileAG(t,r,o)}_getCachedCompiledPatterns(t,n){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new ne;for(const r of this.patterns)t.getRule(r).collectPatterns(t,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,n):this._cachedCompiledPatterns.setSource(0,n)),this._cachedCompiledPatterns}}class fe extends oe{constructor(t,n,r,o,s,l,a,c,d){super(t,n,r,o);p(this,"_begin");p(this,"beginCaptures");p(this,"whileCaptures");p(this,"_while");p(this,"whileHasBackReferences");p(this,"hasMissingPatterns");p(this,"patterns");p(this,"_cachedCompiledPatterns");p(this,"_cachedCompiledWhilePatterns");this._begin=new W(s,this.id),this.beginCaptures=l,this.whileCaptures=c,this._while=new W(a,vt),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=d.patterns,this.hasMissingPatterns=d.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(t,n){return this._while.resolveBackReferences(t,n)}collectPatterns(t,n){n.push(this._begin)}compile(t,n){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,n,r,o){return this._getCachedCompiledPatterns(t).compileAG(t,r,o)}_getCachedCompiledPatterns(t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new ne;for(const n of this.patterns)t.getRule(n).collectPatterns(t,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(t,n){return this._getCachedCompiledWhilePatterns(t,n).compile(t)}compileWhileAG(t,n,r,o){return this._getCachedCompiledWhilePatterns(t,n).compileAG(t,r,o)}_getCachedCompiledWhilePatterns(t,n){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new ne,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,n||"￿"),this._cachedCompiledWhilePatterns}}class I{static createCaptureRule(e,t,n,r,o){return e.registerRule(s=>new vn(t,s,n,r,o))}static getCompiledRuleId(e,t,n){return e.id||t.registerRule(r=>{if(e.id=r,e.match)return new bn(e.$vscodeTextmateLocation,e.id,e.name,e.match,I._compileCaptures(e.captures,t,n));if(typeof e.begin>"u"){e.repository&&(n=ht({},n,e.repository));let o=e.patterns;return typeof o>"u"&&e.include&&(o=[{include:e.include}]),new Ke(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,I._compilePatterns(o,t,n))}return e.while?new fe(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,I._compileCaptures(e.beginCaptures||e.captures,t,n),e.while,I._compileCaptures(e.whileCaptures||e.captures,t,n),I._compilePatterns(e.patterns,t,n)):new De(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,I._compileCaptures(e.beginCaptures||e.captures,t,n),e.end,I._compileCaptures(e.endCaptures||e.captures,t,n),e.applyEndPatternLast,I._compilePatterns(e.patterns,t,n))}),e.id}static _compileCaptures(e,t,n){let r=[];if(e){let o=0;for(const s in e){if(s==="$vscodeTextmateLocation")continue;const l=parseInt(s,10);l>o&&(o=l)}for(let s=0;s<=o;s++)r[s]=null;for(const s in e){if(s==="$vscodeTextmateLocation")continue;const l=parseInt(s,10);let a=0;e[s].patterns&&(a=I.getCompiledRuleId(e[s],t,n)),r[l]=I.createCaptureRule(t,e[s].$vscodeTextmateLocation,e[s].name,e[s].contentName,a)}}return r}static _compilePatterns(e,t,n){let r=[];if(e)for(let o=0,s=e.length;oe.substring(r.start,r.end));return qe.lastIndex=0,this.source.replace(qe,(r,o)=>gt(n[parseInt(o,10)]||""))}_buildAnchorCache(){let e=[],t=[],n=[],r=[],o,s,l,a;for(o=0,s=this.source.length;on.source);this._cached=new Ye(e,t,this._items.map(n=>n.ruleId))}return this._cached}compileAG(e,t,n){return this._hasAnchors?t?n?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G0):n?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,n){let r=this._items.map(o=>o.resolveAnchors(t,n));return new Ye(e,r,this._items.map(o=>o.ruleId))}}class Ye{constructor(e,t,n){p(this,"regExps");p(this,"rules");p(this,"scanner");this.regExps=t,this.rules=n,this.scanner=e.createOnigScanner(t)}dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){const e=[];for(let t=0,n=this.rules.length;tthis._root.match(e)));this._colorMap=e,this._defaults=t,this._root=n}static createFromRawTheme(e,t){return this.createFromParsedTheme(Tn(e),t)}static createFromParsedTheme(e,t){return Ln(e,t)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(e){if(e===null)return this._defaults;const t=e.scopeName,r=this._cachedMatchRoot.get(t).find(o=>Rn(e.parent,o.parentScopes));return r?new bt(r.fontStyle,r.foreground,r.background):null}}class H{constructor(e,t){p(this,"parent");p(this,"scopeName");this.parent=e,this.scopeName=t}static push(e,t){for(const n of t)e=new H(e,n);return e}static from(...e){let t=null;for(let n=0;n1&&(y=_.slice(0,_.length-1),y.reverse()),t[n++]=new Pn(E,y,r,a,c,d)}}return t}class Pn{constructor(e,t,n,r,o,s){p(this,"scope");p(this,"parentScopes");p(this,"index");p(this,"fontStyle");p(this,"foreground");p(this,"background");this.scope=e,this.parentScopes=t,this.index=n,this.fontStyle=r,this.foreground=o,this.background=s}}function Ln(i,e){i.sort((a,c)=>{let d=ft(a.scope,c.scope);return d!==0||(d=_t(a.parentScopes,c.parentScopes),d!==0)?d:a.index-c.index});let t=0,n="#000000",r="#ffffff";for(;i.length>=1&&i[0].scope==="";){let a=i.shift();a.fontStyle!==-1&&(t=a.fontStyle),a.foreground!==null&&(n=a.foreground),a.background!==null&&(r=a.background)}let o=new Sn(e),s=new bt(t,o.getId(n),o.getId(r)),l=new ee(new re(0,null,-1,0,0),[]);for(let a=0,c=i.length;ae?console.log("how did this happen?"):this.scopeDepth=e,t!==-1&&(this.fontStyle=t),n!==0&&(this.foreground=n),r!==0&&(this.background=r)}}class ee{constructor(e,t=[],n={}){p(this,"_mainRule");p(this,"_children");p(this,"_rulesWithParentScopes");this._mainRule=e,this._children=n,this._rulesWithParentScopes=t}static _sortBySpecificity(e){return e.length===1||e.sort(this._cmpBySpecificity),e}static _cmpBySpecificity(e,t){if(e.scopeDepth===t.scopeDepth){const n=e.parentScopes,r=t.parentScopes;let o=n===null?0:n.length,s=r===null?0:r.length;if(o===s)for(let l=0;l{const t=this._scopeToLanguage(e),n=this._toStandardTokenType(e);return new Se(t,n)}));this._defaultAttributes=new Se(e,8),this._embeddedLanguagesMatcher=new On(Object.entries(t||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(e){return e===null?K._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(e)}_scopeToLanguage(e){return this._embeddedLanguagesMatcher.match(e)||0}_toStandardTokenType(e){const t=e.match(K.STANDARD_TOKEN_TYPE_REGEXP);if(!t)return 8;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}};p(K,"_NULL_SCOPE_METADATA",new Se(0,0)),p(K,"STANDARD_TOKEN_TYPE_REGEXP",/\b(comment|string|regex|meta\.embedded)\b/);let Ne=K;class On{constructor(e){p(this,"values");p(this,"scopesRegExp");if(e.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);const t=e.map(([n,r])=>gt(n));t.sort(),t.reverse(),this.scopesRegExp=new RegExp(`^((${t.join(")|(")}))($|\\.)`,"")}}match(e){if(!this.scopesRegExp)return;const t=e.match(this.scopesRegExp);if(t)return this.values.get(t[1])}}class Xe{constructor(e,t){p(this,"stack");p(this,"stoppedEarly");this.stack=e,this.stoppedEarly=t}}function Rt(i,e,t,n,r,o,s,l){const a=e.content.length;let c=!1,d=-1;if(s){const f=Cn(i,e,t,n,r,o);r=f.stack,n=f.linePos,t=f.isFirstLine,d=f.anchorPosition}const m=Date.now();for(;!c;){if(l!==0&&Date.now()-m>l)return new Xe(r,!0);h()}return new Xe(r,!1);function h(){const f=In(i,e,t,n,r,d);if(!f){o.produce(r,a),c=!0;return}const _=f.captureIndices,E=f.matchedRuleId,y=_&&_.length>0?_[0].end>n:!1;if(E===En){const v=r.getRule(i);o.produce(r,_[0].start),r=r.withContentNameScopesList(r.nameScopesList),Z(i,e,t,r,o,v.endCaptures,_),o.produce(r,_[0].end);const b=r;if(r=r.parent,d=b.getAnchorPos(),!y&&b.getEnterPos()===n){r=b,o.produce(r,a),c=!0;return}}else{const v=i.getRule(E);o.produce(r,_[0].start);const b=r,P=v.getName(e.content,_),O=r.contentNameScopesList.pushAttributed(P,i);if(r=r.push(E,n,d,_[0].end===a,null,O,O),v instanceof De){const A=v;Z(i,e,t,r,o,A.beginCaptures,_),o.produce(r,_[0].end),d=_[0].end;const T=A.getContentName(e.content,_),G=O.pushAttributed(T,i);if(r=r.withContentNameScopesList(G),A.endHasBackReferences&&(r=r.withEndRule(A.getEndWithResolvedBackReferences(e.content,_))),!y&&b.hasSameRuleAs(r)){r=r.pop(),o.produce(r,a),c=!0;return}}else if(v instanceof fe){const A=v;Z(i,e,t,r,o,A.beginCaptures,_),o.produce(r,_[0].end),d=_[0].end;const T=A.getContentName(e.content,_),G=O.pushAttributed(T,i);if(r=r.withContentNameScopesList(G),A.whileHasBackReferences&&(r=r.withEndRule(A.getWhileWithResolvedBackReferences(e.content,_))),!y&&b.hasSameRuleAs(r)){r=r.pop(),o.produce(r,a),c=!0;return}}else if(Z(i,e,t,r,o,v.captures,_),o.produce(r,_[0].end),r=r.pop(),!y){r=r.safePop(),o.produce(r,a),c=!0;return}}_[0].end>n&&(n=_[0].end,t=!1)}}function Cn(i,e,t,n,r,o){let s=r.beginRuleCapturedEOL?0:-1;const l=[];for(let a=r;a;a=a.pop()){const c=a.getRule(i);c instanceof fe&&l.push({rule:c,stack:a})}for(let a=l.pop();a;a=l.pop()){const{ruleScanner:c,findOptions:d}=Dn(a.rule,i,a.stack.endRule,t,n===s),m=c.findNextMatchSync(e,n,d);if(m){if(m.ruleId!==vt){r=a.stack.pop();break}m.captureIndices&&m.captureIndices.length&&(o.produce(a.stack,m.captureIndices[0].start),Z(i,e,t,a.stack,o,a.rule.whileCaptures,m.captureIndices),o.produce(a.stack,m.captureIndices[0].end),s=m.captureIndices[0].end,m.captureIndices[0].end>n&&(n=m.captureIndices[0].end,t=!1))}else{r=a.stack.pop();break}}return{stack:r,linePos:n,anchorPosition:s,isFirstLine:t}}function In(i,e,t,n,r,o){const s=wn(i,e,t,n,r,o),l=i.getInjections();if(l.length===0)return s;const a=kn(l,i,e,t,n,r,o);if(!a)return s;if(!s)return a;const c=s.captureIndices[0].start,d=a.captureIndices[0].start;return d=l)&&(l=P,a=b.captureIndices,c=b.ruleId,d=_.priority,l===r))break}return a?{priorityMatch:d===-1,captureIndices:a,matchedRuleId:c}:null}function At(i,e,t,n,r){return{ruleScanner:i.compileAG(e,t,n,r),findOptions:0}}function Dn(i,e,t,n,r){return{ruleScanner:i.compileWhileAG(e,t,n,r),findOptions:0}}function Z(i,e,t,n,r,o,s){if(o.length===0)return;const l=e.content,a=Math.min(o.length,s.length),c=[],d=s[0].end;for(let m=0;md)break;for(;c.length>0&&c[c.length-1].endPos<=f.start;)r.produceFromScopes(c[c.length-1].scopes,c[c.length-1].endPos),c.pop();if(c.length>0?r.produceFromScopes(c[c.length-1].scopes,f.start):r.produce(n,f.start),h.retokenizeCapturedWithRuleId){const E=h.getName(l,s),y=n.contentNameScopesList.pushAttributed(E,i),v=h.getContentName(l,s),b=y.pushAttributed(v,i),P=n.push(h.retokenizeCapturedWithRuleId,f.start,-1,!1,null,y,b),O=i.createOnigString(l.substring(0,f.end));Rt(i,O,t&&f.start===0,f.start,P,r,!1,0),pt(O);continue}const _=h.getName(l,s);if(_!==null){const y=(c.length>0?c[c.length-1].scopes:n.contentNameScopesList).pushAttributed(_,i);c.push(new Nn(y,f.end))}}for(;c.length>0;)r.produceFromScopes(c[c.length-1].scopes,c[c.length-1].endPos),c.pop()}class Nn{constructor(e,t){p(this,"scopes");p(this,"endPos");this.scopes=e,this.endPos=t}}function xn(i,e,t,n,r,o,s,l){return new Mn(i,e,t,n,r,o,s,l)}function Je(i,e,t,n,r){const o=he(e,ge),s=I.getCompiledRuleId(t,n,r.repository);for(const l of o)i.push({debugSelector:e,matcher:l.matcher,ruleId:s,grammar:r,priority:l.priority})}function ge(i,e){if(e.length{for(let r=t;rt&&i.substr(0,t)===e&&i[t]==="."}class Mn{constructor(e,t,n,r,o,s,l,a){p(this,"_rootScopeName");p(this,"balancedBracketSelectors");p(this,"_onigLib");p(this,"_rootId");p(this,"_lastRuleId");p(this,"_ruleId2desc");p(this,"_includedGrammars");p(this,"_grammarRepository");p(this,"_grammar");p(this,"_injections");p(this,"_basicScopeAttributesProvider");p(this,"_tokenTypeMatchers");if(this._rootScopeName=e,this.balancedBracketSelectors=s,this._onigLib=a,this._basicScopeAttributesProvider=new Ne(n,r),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=l,this._grammar=Qe(t,null),this._injections=null,this._tokenTypeMatchers=[],o)for(const c of Object.keys(o)){const d=he(c,ge);for(const m of d)this._tokenTypeMatchers.push({matcher:m.matcher,type:o[c]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){const e={lookup:o=>o===this._rootScopeName?this._grammar:this.getExternalGrammar(o),injections:o=>this._grammarRepository.injections(o)},t=[],n=this._rootScopeName,r=e.lookup(n);if(r){const o=r.injections;if(o)for(let l in o)Je(t,l,o[l],this,r);const s=this._grammarRepository.injections(n);s&&s.forEach(l=>{const a=this.getExternalGrammar(l);if(a){const c=a.injectionSelector;c&&Je(t,c,a,this,a)}})}return t.sort((o,s)=>o.priority-s.priority),t}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(e){const t=++this._lastRuleId,n=e(t);return this._ruleId2desc[t]=n,n}getRule(e){return this._ruleId2desc[e]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){const n=this._grammarRepository.lookup(e);if(n)return this._includedGrammars[e]=Qe(n,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,n=0){const r=this._tokenize(e,t,!1,n);return{tokens:r.lineTokens.getResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}tokenizeLine2(e,t,n=0){const r=this._tokenize(e,t,!0,n);return{tokens:r.lineTokens.getBinaryResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}_tokenize(e,t,n,r){this._rootId===-1&&(this._rootId=I.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let o;if(!t||t===ie.NULL){o=!0;const d=this._basicScopeAttributesProvider.getDefaultAttributes(),m=this.themeProvider.getDefaults(),h=J.set(0,d.languageId,d.tokenType,null,m.fontStyle,m.foregroundId,m.backgroundId),f=this.getRule(this._rootId).getName(null,null);let _;f?_=N.createRootAndLookUpScopeName(f,h,this):_=N.createRoot("unknown",h),t=new ie(null,this._rootId,-1,-1,!1,null,_,_)}else o=!1,t.reset();e=e+` +`;const s=this.createOnigString(e),l=s.content.length,a=new Gn(n,e,this._tokenTypeMatchers,this.balancedBracketSelectors),c=Rt(this,s,o,0,t,a,!0,r);return pt(s),{lineLength:l,lineTokens:a,ruleStack:c.stack,stoppedEarly:c.stoppedEarly}}}function Qe(i,e){return i=sn(i),i.repository=i.repository||{},i.repository.$self={$vscodeTextmateLocation:i.$vscodeTextmateLocation,patterns:i.patterns,name:i.scopeName},i.repository.$base=e||i.repository.$self,i}class N{constructor(e,t,n){p(this,"parent");p(this,"scopePath");p(this,"tokenAttributes");this.parent=e,this.scopePath=t,this.tokenAttributes=n}static fromExtension(e,t){let n=e,r=(e==null?void 0:e.scopePath)??null;for(const o of t)r=H.push(r,o.scopeNames),n=new N(n,r,o.encodedTokenAttributes);return n}static createRoot(e,t){return new N(null,new H(null,e),t)}static createRootAndLookUpScopeName(e,t,n){const r=n.getMetadataForScope(e),o=new H(null,e),s=n.themeProvider.themeMatch(o),l=N.mergeAttributes(t,r,s);return new N(null,o,l)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(e){return N.equals(this,e)}static equals(e,t){do{if(e===t||!e&&!t)return!0;if(!e||!t||e.scopeName!==t.scopeName||e.tokenAttributes!==t.tokenAttributes)return!1;e=e.parent,t=t.parent}while(!0)}static mergeAttributes(e,t,n){let r=-1,o=0,s=0;return n!==null&&(r=n.fontStyle,o=n.foregroundId,s=n.backgroundId),J.set(e,t.languageId,t.tokenType,null,r,o,s)}pushAttributed(e,t){if(e===null)return this;if(e.indexOf(" ")===-1)return N._pushAttributed(this,e,t);const n=e.split(/ /g);let r=this;for(const o of n)r=N._pushAttributed(r,o,t);return r}static _pushAttributed(e,t,n){const r=n.getMetadataForScope(t),o=e.scopePath.push(t),s=n.themeProvider.themeMatch(o),l=N.mergeAttributes(e.tokenAttributes,r,s);return new N(e,o,l)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(e){var r;const t=[];let n=this;for(;n&&n!==e;)t.push({encodedTokenAttributes:n.tokenAttributes,scopeNames:n.scopePath.getExtensionIfDefined(((r=n.parent)==null?void 0:r.scopePath)??null)}),n=n.parent;return n===e?t.reverse():void 0}}const j=class j{constructor(e,t,n,r,o,s,l,a){p(this,"parent");p(this,"ruleId");p(this,"beginRuleCapturedEOL");p(this,"endRule");p(this,"nameScopesList");p(this,"contentNameScopesList");p(this,"_stackElementBrand");p(this,"_enterPos");p(this,"_anchorPos");p(this,"depth");this.parent=e,this.ruleId=t,this.beginRuleCapturedEOL=o,this.endRule=s,this.nameScopesList=l,this.contentNameScopesList=a,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=n,this._anchorPos=r}equals(e){return e===null?!1:j._equals(this,e)}static _equals(e,t){return e===t?!0:this._structuralEquals(e,t)?N.equals(e.contentNameScopesList,t.contentNameScopesList):!1}static _structuralEquals(e,t){do{if(e===t||!e&&!t)return!0;if(!e||!t||e.depth!==t.depth||e.ruleId!==t.ruleId||e.endRule!==t.endRule)return!1;e=e.parent,t=t.parent}while(!0)}clone(){return this}static _reset(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent}reset(){j._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(e,t,n,r,o,s,l){return new j(this,e,t,n,r,o,s,l)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(e){return e.getRule(this.ruleId)}toString(){const e=[];return this._writeString(e,0),"["+e.join(",")+"]"}_writeString(e,t){var n,r;return this.parent&&(t=this.parent._writeString(e,t)),e[t++]=`(${this.ruleId}, ${(n=this.nameScopesList)==null?void 0:n.toString()}, ${(r=this.contentNameScopesList)==null?void 0:r.toString()})`,t}withContentNameScopesList(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)}withEndRule(e){return this.endRule===e?this:new j(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,e,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(e){let t=this;for(;t&&t._enterPos===e._enterPos;){if(t.ruleId===e.ruleId)return!0;t=t.parent}return!1}toStateStackFrame(){var e,t,n;return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:((t=this.nameScopesList)==null?void 0:t.getExtensionIfDefined(((e=this.parent)==null?void 0:e.nameScopesList)??null))??[],contentNameScopesList:((n=this.contentNameScopesList)==null?void 0:n.getExtensionIfDefined(this.nameScopesList))??[]}}static pushFrame(e,t){const n=N.fromExtension((e==null?void 0:e.nameScopesList)??null,t.nameScopesList);return new j(e,t.ruleId,t.enterPos??-1,t.anchorPos??-1,t.beginRuleCapturedEOL,t.endRule,n,N.fromExtension(n,t.contentNameScopesList))}};p(j,"NULL",new j(null,0,0,0,!1,null,null,null));let ie=j;class Bn{constructor(e,t){p(this,"balancedBracketScopes");p(this,"unbalancedBracketScopes");p(this,"allowAny",!1);this.balancedBracketScopes=e.flatMap(n=>n==="*"?(this.allowAny=!0,[]):he(n,ge).map(r=>r.matcher)),this.unbalancedBracketScopes=t.flatMap(n=>he(n,ge).map(r=>r.matcher))}get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.length===0}get matchesNever(){return this.balancedBracketScopes.length===0&&!this.allowAny}match(e){for(const t of this.unbalancedBracketScopes)if(t(e))return!1;for(const t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}}class Gn{constructor(e,t,n,r){p(this,"balancedBracketSelectors");p(this,"_emitBinaryTokens");p(this,"_lineText");p(this,"_tokens");p(this,"_binaryTokens");p(this,"_lastTokenEndIndex");p(this,"_tokenTypeOverrides");this.balancedBracketSelectors=r,this._emitBinaryTokens=e,this._tokenTypeOverrides=n,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){var r;if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let o=(e==null?void 0:e.tokenAttributes)??0,s=!1;if((r=this.balancedBracketSelectors)!=null&&r.matchesAlways&&(s=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const l=(e==null?void 0:e.getScopeNames())??[];for(const a of this._tokenTypeOverrides)a.matcher(l)&&(o=J.set(o,0,a.type,null,-1,0,0));this.balancedBracketSelectors&&(s=this.balancedBracketSelectors.match(l))}if(s&&(o=J.set(o,0,8,s,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===o){this._lastTokenEndIndex=t;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(o),this._lastTokenEndIndex=t;return}const n=(e==null?void 0:e.getScopeNames())??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:t,scopes:n}),this._lastTokenEndIndex=t}getResult(e,t){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),this._tokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),this._binaryTokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);const n=new Uint32Array(this._binaryTokens.length);for(let r=0,o=this._binaryTokens.length;r0;)await Promise.all(s.Q.map(l=>this._loadSingleGrammar(l.scopeName))),s.processQueue();return this._grammarForScopeName(e,t,n,r,o)}async _loadSingleGrammar(e){return this._ensureGrammarCache.has(e)||this._ensureGrammarCache.set(e,this._doLoadSingleGrammar(e)),this._ensureGrammarCache.get(e)}async _doLoadSingleGrammar(e){const t=await this._options.loadGrammar(e);if(t){const n=typeof this._options.getInjections=="function"?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(t,n)}}async addGrammar(e,t=[],n=0,r=null){return this._syncRegistry.addGrammar(e,t),await this._grammarForScopeName(e.scopeName,n,r)}_grammarForScopeName(e,t=0,n=null,r=null,o=null){return this._syncRegistry.grammarForScopeName(e,t,n,r,o)}};const Un=ie.NULL,k={LANGUAGEID_MASK:255,TOKEN_TYPE_MASK:768,BALANCED_BRACKETS_MASK:1024,FONT_STYLE_MASK:14336,FOREGROUND_MASK:8372224,BACKGROUND_MASK:4286578688,LANGUAGEID_OFFSET:0,TOKEN_TYPE_OFFSET:8,BALANCED_BRACKETS_OFFSET:10,FONT_STYLE_OFFSET:11,FOREGROUND_OFFSET:15,BACKGROUND_OFFSET:24};class F{static toBinaryStr(e){let t=e.toString(2);for(;t.length<32;)t=`0${t}`;return t}static getLanguageId(e){return(e&k.LANGUAGEID_MASK)>>>k.LANGUAGEID_OFFSET}static getTokenType(e){return(e&k.TOKEN_TYPE_MASK)>>>k.TOKEN_TYPE_OFFSET}static getFontStyle(e){return(e&k.FONT_STYLE_MASK)>>>k.FONT_STYLE_OFFSET}static getForeground(e){return(e&k.FOREGROUND_MASK)>>>k.FOREGROUND_OFFSET}static getBackground(e){return(e&k.BACKGROUND_MASK)>>>k.BACKGROUND_OFFSET}static containsBalancedBrackets(e){return(e&k.BALANCED_BRACKETS_MASK)!==0}static set(e,t,n,r,o,s){let l=F.getLanguageId(e),a=F.getTokenType(e),c=F.getFontStyle(e),d=F.getForeground(e),m=F.getBackground(e);const h=F.containsBalancedBrackets(e)?1:0;return t!==0&&(l=t),n!==0&&(a=n===8?0:n),r!==B.NotSet&&(c=r),o!==0&&(d=o),s!==0&&(m=s),(l<>>0}}function le(i){return Array.isArray(i)?i:[i]}function Re(i,e=!1){var o;const t=i.split(/(\r?\n)/g);let n=0;const r=[];for(let s=0;st&&n.push({...i,content:i.content.slice(t,r),offset:i.offset+t}),t=r;return tn-r);return t.length?i.map(n=>n.flatMap(r=>{const o=t.filter(s=>r.offsets-r.offset).sort((s,l)=>s-l);return o.length?$n(r,o):r})):i}function U(i,e){return i&&((e==null?void 0:e[i==null?void 0:i.toLowerCase()])||i)}function Ct(i){const e={};return i.color&&(e.color=i.color),i.bgColor&&(e["background-color"]=i.bgColor),i.fontStyle&&(i.fontStyle&B.Italic&&(e["font-style"]="italic"),i.fontStyle&B.Bold&&(e["font-weight"]="bold"),i.fontStyle&B.Underline&&(e["text-decoration"]="underline")),e}function It(i){return Object.entries(i).map(([e,t])=>`${e}:${t}`).join(";")}function Wn(i){const e=Re(i,!0).map(([r])=>r);function t(r){let o=r,s=0;for(const l of e){if(oNumber.parseInt(s));o.length===3&&!o.some(s=>Number.isNaN(s))&&(r={type:"rgb",rgb:o})}else if(n==="5"){const o=Number.parseInt(i[e+t]);Number.isNaN(o)||(r={type:"table",index:Number(o)})}return[t,r]}function qn(i){const e=[];for(let t=0;t=90&&r<=97?e.push({type:"setForegroundColor",value:{type:"named",name:$[r-90+8]}}):r>=100&&r<=107&&e.push({type:"setBackgroundColor",value:{type:"named",name:$[r-100+8]}})}return e}function Kn(){let i=null,e=null,t=new Set;return{parse(n){const r=[];let o=0;do{const s=zn(n,o),l=s.sequence?n.substring(o,s.startPosition):n.substring(o);if(l.length>0&&r.push({value:l,foreground:i,background:e,decorations:new Set(t)}),s.sequence){const a=qn(s.sequence);for(const c of a)c.type==="resetAll"?(i=null,e=null,t.clear()):c.type==="resetForegroundColor"?i=null:c.type==="resetBackgroundColor"?e=null:c.type==="resetDecoration"&&t.delete(c.value);for(const c of a)c.type==="setForegroundColor"?i=c.value:c.type==="setBackgroundColor"?e=c.value:c.type==="setDecoration"&&t.add(c.value)}o=s.position}while(oMath.max(0,Math.min(a,255)).toString(16).padStart(2,"0")).join("")}`}let n;function r(){if(n)return n;n=[];for(let c=0;c<$.length;c++)n.push(e($[c]));let l=[0,95,135,175,215,255];for(let c=0;c<6;c++)for(let d=0;d<6;d++)for(let m=0;m<6;m++)n.push(t([l[c],l[d],l[m]]));let a=8;for(let c=0;c<24;c++,a+=10)n.push(t([a,a,a]));return n}function o(l){return r()[l]}function s(l){switch(l.type){case"named":return e(l.name);case"rgb":return t(l.rgb);case"table":return o(l.index)}}return{value:s}}function Jn(i,e,t){const n={...i.colorReplacements,...t==null?void 0:t.colorReplacements},r=Re(e),o=Xn(Object.fromEntries($.map(l=>{var a;return[l,(a=i.colors)==null?void 0:a[`terminal.ansi${l[0].toUpperCase()}${l.substring(1)}`]]}))),s=Kn();return r.map(l=>s.parse(l[0]).map(a=>{let c,d;a.decorations.has("reverse")?(c=a.background?o.value(a.background):i.bg,d=a.foreground?o.value(a.foreground):i.fg):(c=a.foreground?o.value(a.foreground):i.fg,d=a.background?o.value(a.background):void 0),c=U(c,n),d=U(d,n),a.decorations.has("dim")&&(c=Qn(c));let m=B.None;return a.decorations.has("bold")&&(m|=B.Bold),a.decorations.has("italic")&&(m|=B.Italic),a.decorations.has("underline")&&(m|=B.Underline),{content:a.value,offset:l[1],color:c,bgColor:d,fontStyle:m}}))}function Qn(i){const e=i.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);if(e)if(e[3]){const n=Math.round(Number.parseInt(e[3],16)/2).toString(16).padStart(2,"0");return`#${e[1]}${e[2]}${n}`}else return e[2]?`#${e[1]}${e[2]}80`:`#${Array.from(e[1]).map(n=>`${n}${n}`).join("")}80`;const t=i.match(/var\((--[\w-]+-ansi-[\w-]+)\)/);return t?`var(${t[1]}-dim)`:i}function Ge(i,e,t={}){const{lang:n="text",theme:r=i.getLoadedThemes()[0]}=t;if(Tt(n)||Lt(r))return Re(e).map(a=>[{content:a[0],offset:a[1]}]);const{theme:o,colorMap:s}=i.setTheme(r);if(n==="ansi")return Jn(o,e,t);const l=i.getLanguage(n);return Zn(e,l,o,s,t)}function Zn(i,e,t,n,r){const o={...t.colorReplacements,...r==null?void 0:r.colorReplacements},{tokenizeMaxLineLength:s=0,tokenizeTimeLimit:l=500}=r,a=Re(i);let c=Un,d=[];const m=[];for(let h=0,f=a.length;h0&&_.length>=s){d=[],m.push([{content:_,offset:E,color:"",fontStyle:0}]);continue}let y,v,b;r.includeExplanation&&(y=e.tokenizeLine(_,c),v=y.tokens,b=0);const P=e.tokenizeLine2(_,c,l),O=P.tokens.length/2;for(let A=0;A=0&&o>=0;)et(e[r],n[o])&&(r-=1),o-=1;return r===-1}function nr(i,e,t){const n=[];let r=0;for(let o=0,s=i.settings.length;oc.trim());else if(Array.isArray(l.scope))a=l.scope;else continue;for(let c=0,d=a.length;cs[1]).map(s=>({color:s[0],theme:s[1]})),r=rr(...n.map(s=>Ge(i,e,{...t,theme:s.theme})));return r[0].map((s,l)=>s.map((a,c)=>{const d={content:a.content,variants:{},offset:a.offset};return r.forEach((m,h)=>{const{content:f,explanation:_,offset:E,...y}=m[l][c];d.variants[n[h].color]=y}),d}))}function rr(...i){const e=i.map(()=>[]),t=i.length;for(let n=0;na[n]),o=e.map(()=>[]);e.forEach((a,c)=>a.push(o[c]));const s=r.map(()=>0),l=r.map(a=>a[0]);for(;l.every(a=>a);){const a=Math.min(...l.map(c=>c.content.length));for(let c=0;cE[1]).map(E=>({color:E[0],theme:E[1]})).sort((E,y)=>E.color===a?-1:y.color===a?1:0);if(m.length===0)throw new D("`themes` option must not be empty");const h=wt(i,e,t);if(a&&!m.find(E=>E.color===a))throw new D(`\`themes\` option must contain the defaultColor key \`${a}\``);const f=m.map(E=>i.getTheme(E.theme)),_=m.map(E=>E.color);o=h.map(E=>E.map(y=>ir(y,_,c,a))),r=m.map((E,y)=>(y===0&&a?"":`${c+E.color}:`)+(U(f[y].fg,d)||"inherit")).join(";"),n=m.map((E,y)=>(y===0&&a?"":`${c+E.color}-bg:`)+(U(f[y].bg,d)||"inherit")).join(";"),s=`shiki-themes ${f.map(E=>E.name).join(" ")}`,l=a?void 0:[r,n].join(";")}else if("theme"in t){const{colorReplacements:a}=t;o=Ge(i,e,t);const c=i.getTheme(t.theme);n=U(c.bg,a),r=U(c.fg,a),s=c.name}else throw new D("Invalid options, either `theme` or `themes` must be provided");return{tokens:o,fg:r,bg:n,themeName:s,rootStyle:l}}function ir(i,e,t,n){const r={content:i.content,explanation:i.explanation,offset:i.offset},o=e.map(a=>Ct(i.variants[a])),s=new Set(o.flatMap(a=>Object.keys(a))),l=o.reduce((a,c,d)=>{for(const m of s){const h=c[m]||"inherit";if(d===0&&n)a[m]=h;else{const f=m==="color"?"":m==="background-color"?"-bg":`-${m}`,_=t+e[d]+(m==="color"?"":f);a[m]?a[m]+=`;${_}:${h}`:a[m]=`${_}:${h}`}}return a},{});return r.htmlStyle=n?It(l):Object.values(l).join(";"),r}function or(){const i=new WeakMap;function e(n){if(!i.has(n.meta)){let o=function(l){return typeof l=="number"?{...r.indexToPos(l),offset:l}:{...l,offset:r.posToIndex(l.line,l.character)}};const r=Wn(n.source),s=(n.options.decorations||[]).map(l=>({...l,start:o(l.start),end:o(l.end)}));t(s),i.set(n.meta,{decorations:s,converter:r,source:n.source})}return i.get(n.meta)}function t(n){for(let r=0;ro.end.offset)throw new D(`Invalid decoration range: ${JSON.stringify(o.start)} - ${JSON.stringify(o.end)}`);for(let s=r+1;s[a.start.offset,a.end.offset]);return Hn(n,o)},code(n){var m;if(!((m=this.options.decorations)!=null&&m.length))return;const r=e(this),o=Array.from(n.children).filter(h=>h.type==="element"&&h.tagName==="span");if(o.length!==r.converter.lines.length)throw new D(`Number of lines in code element (${o.length}) does not match the number of lines in the source (${r.converter.lines.length}). Failed to apply decorations.`);function s(h,f,_,E){const y=o[h];let v="",b=-1,P=-1;function O(T){return T.type==="text"?T.value:T.type==="element"?T.children.map(O).join(""):""}if(f===0&&(b=0),_===0&&(P=0),_===Number.POSITIVE_INFINITY&&(P=y.children.length),b===-1||P===-1)for(let T=0;Tb);return h.tagName=f.tagName||"span",h.properties={...h.properties,...E,class:h.properties.class},(v=f.properties)!=null&&v.class&&Ot(h,f.properties.class),h=y(h,_)||h,h}const c=[],d=r.decorations.sort((h,f)=>f.start.offset-h.start.offset);for(const h of d){const{start:f,end:_}=h;if(f.line===_.line)s(f.line,f.character,_.character,h);else if(f.line<_.line){s(f.line,f.character,Number.POSITIVE_INFINITY,h);for(let E=f.line+1;E<_.line;E++)c.unshift(()=>l(E,h));s(_.line,0,_.character,h)}}c.forEach(h=>h())}}}const sr=[or()];function Ee(i){return[...i.transformers||[],...sr]}function ve(i,e,t,n={meta:{},options:t,codeToHast:(r,o)=>ve(i,r,o),codeToTokens:(r,o)=>ye(i,r,o)}){var h,f;let r=e;for(const _ of Ee(t))r=((h=_.preprocess)==null?void 0:h.call(n,r,t))||r;let{tokens:o,fg:s,bg:l,themeName:a,rootStyle:c}=ye(i,r,t);const{mergeWhitespaces:d=!0}=t;d===!0?o=lr(o):d==="never"&&(o=cr(o));const m={...n,get source(){return r}};for(const _ of Ee(t))o=((f=_.tokens)==null?void 0:f.call(m,o))||o;return ar(o,{...t,fg:s,bg:l,themeName:a,rootStyle:c},m)}function ar(i,e,t){var h,f,_;const n=Ee(e),r=[],o={type:"root",children:[]},{structure:s="classic"}=e;let l={type:"element",tagName:"pre",properties:{class:`shiki ${e.themeName||""}`,style:e.rootStyle||`background-color:${e.bg};color:${e.fg}`,tabindex:"0",...Object.fromEntries(Array.from(Object.entries(e.meta||{})).filter(([E])=>!E.startsWith("_")))},children:[]},a={type:"element",tagName:"code",properties:{},children:r};const c=[],d={...t,structure:s,addClassToHast:Ot,get source(){return t.source},get tokens(){return i},get options(){return e},get root(){return o},get pre(){return l},get code(){return a},get lines(){return c}};if(i.forEach((E,y)=>{var P,O;y&&(s==="inline"?o.children.push({type:"element",tagName:"br",properties:{},children:[]}):s==="classic"&&r.push({type:"text",value:` +`}));let v={type:"element",tagName:"span",properties:{class:"line"},children:[]},b=0;for(const A of E){let T={type:"element",tagName:"span",properties:{},children:[{type:"text",value:A.content}]};const G=A.htmlStyle||It(Ct(A));G&&(T.properties.style=G);for(const q of n)T=((P=q==null?void 0:q.span)==null?void 0:P.call(d,T,y+1,b,v))||T;s==="inline"?o.children.push(T):s==="classic"&&v.children.push(T),b+=A.content.length}if(s==="classic"){for(const A of n)v=((O=A==null?void 0:A.line)==null?void 0:O.call(d,v,y+1))||v;c.push(v),r.push(v)}}),s==="classic"){for(const E of n)a=((h=E==null?void 0:E.code)==null?void 0:h.call(d,a))||a;l.children.push(a);for(const E of n)l=((f=E==null?void 0:E.pre)==null?void 0:f.call(d,l))||l;o.children.push(l)}let m=o;for(const E of n)m=((_=E==null?void 0:E.root)==null?void 0:_.call(d,m))||m;return m}function lr(i){return i.map(e=>{const t=[];let n="",r=0;return e.forEach((o,s)=>{const a=!(o.fontStyle&&o.fontStyle&B.Underline);a&&o.content.match(/^\s+$/)&&e[s+1]?(r||(r=o.offset),n+=o.content):n?(a?t.push({...o,offset:r,content:n+o.content}):t.push({content:n,offset:r},o),r=0,n=""):t.push(o)}),t})}function cr(i){return i.map(e=>e.flatMap(t=>{if(t.content.match(/^\s+$/))return t;const n=t.content.match(/^(\s*)(.*?)(\s*)$/);if(!n)return t;const[,r,o,s]=n;if(!r&&!s)return t;const l=[{...t,offset:t.offset+r.length,content:o}];return r&&l.unshift({content:r,offset:t.offset}),s&&l.push({content:s,offset:t.offset+r.length+o.length}),l}))}const ur=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","keygen","link","meta","param","source","track","wbr"];class se{constructor(e,t,n){this.property=e,this.normal=t,n&&(this.space=n)}}se.prototype.property={};se.prototype.normal={};se.prototype.space=null;function kt(i,e){const t={},n={};let r=-1;for(;++r4&&t.slice(0,4)==="data"&&fr.test(e)){if(e.charAt(4)==="-"){const o=e.slice(5).replace(nt,Er);n="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=e.slice(4);if(!nt.test(o)){let s=o.replace(_r,yr);s.charAt(0)!=="-"&&(s="-"+s),e="data"+s}}r=je}return new r(n,e)}function yr(i){return"-"+i.toLowerCase()}function Er(i){return i.charAt(1).toUpperCase()}const vr=kt([xt,Nt,Bt,Gt,hr],"html"),jt=kt([xt,Nt,Bt,Gt,mr],"svg"),rt={}.hasOwnProperty;function br(i,e){const t=e||{};function n(r,...o){let s=n.invalid;const l=n.handlers;if(r&&rt.call(r,i)){const a=String(r[i]);s=rt.call(l,a)?l[a]:n.unknown}if(s)return s.call(this,r,...o)}return n.handlers=t.handlers||{},n.invalid=t.invalid,n.unknown=t.unknown,n}function Rr(i,e){if(i=i.replace(e.subset?Ar(e.subset):/["&'<>`]/g,n),e.subset||e.escapeOnly)return i;return i.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,t).replace(/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,n);function t(r,o,s){return e.format((r.charCodeAt(0)-55296)*1024+r.charCodeAt(1)-56320+65536,s.charCodeAt(o+2),e)}function n(r,o,s){return e.format(r.charCodeAt(0),s.charCodeAt(o+1),e)}}function Ar(i){const e=[];let t=-1;for(;++t",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›",euro:"€"},Sr=["cent","copy","divide","gt","lt","not","para","times"],Ft={}.hasOwnProperty,Me={};let ce;for(ce in Ie)Ft.call(Ie,ce)&&(Me[Ie[ce]]=ce);function Or(i,e,t,n){const r=String.fromCharCode(i);if(Ft.call(Me,r)){const o=Me[r],s="&"+o;return t&&Lr.includes(o)&&!Sr.includes(o)&&(!n||e&&e!==61&&/[^\da-z]/i.test(String.fromCharCode(e)))?s:s+";"}return""}function Cr(i,e,t){let n=Tr(i,e,t.omitOptionalSemicolons),r;if((t.useNamedReferences||t.useShortestReferences)&&(r=Or(i,e,t.omitOptionalSemicolons,t.attribute)),(t.useShortestReferences||!r)&&t.useShortestReferences){const o=Pr(i,e,t.omitOptionalSemicolons);o.length|^->||--!>|"],kr=["<",">"];function Dr(i,e,t,n){return n.settings.bogusComments?"":"";function r(o){return X(o,Object.assign({},n.settings.characterReferences,{subset:kr}))}}function Nr(i,e,t,n){return""}function it(i,e){const t=String(i);if(typeof e!="string")throw new TypeError("Expected character");let n=0,r=t.indexOf(e);for(;r!==-1;)n++,r=t.indexOf(e,r+e.length);return n}function xr(i,e){const t=e||{};return(i[i.length-1]===""?[...i,""]:i).join((t.padRight?" ":"")+","+(t.padLeft===!1?"":" ")).trim()}function Vr(i){return i.join(" ").trim()}const Mr=/[ \t\n\f\r]/g;function Fe(i){return typeof i=="object"?i.type==="text"?ot(i.value):!1:ot(i)}function ot(i){return i.replace(Mr,"")===""}const C=$t(1),Ut=$t(-1),Br=[];function $t(i){return e;function e(t,n,r){const o=t?t.children:Br;let s=(n||0)+i,l=o[s];if(!r)for(;l&&Fe(l);)s+=i,l=o[s];return l}}const Gr={}.hasOwnProperty;function Ht(i){return e;function e(t,n,r){return Gr.call(i,t.tagName)&&i[t.tagName](t,n,r)}}const Ue=Ht({body:Fr,caption:we,colgroup:we,dd:Wr,dt:Hr,head:we,html:jr,li:$r,optgroup:zr,option:qr,p:Ur,rp:st,rt:st,tbody:Yr,td:at,tfoot:Xr,th:at,thead:Kr,tr:Jr});function we(i,e,t){const n=C(t,e,!0);return!n||n.type!=="comment"&&!(n.type==="text"&&Fe(n.value.charAt(0)))}function jr(i,e,t){const n=C(t,e);return!n||n.type!=="comment"}function Fr(i,e,t){const n=C(t,e);return!n||n.type!=="comment"}function Ur(i,e,t){const n=C(t,e);return n?n.type==="element"&&(n.tagName==="address"||n.tagName==="article"||n.tagName==="aside"||n.tagName==="blockquote"||n.tagName==="details"||n.tagName==="div"||n.tagName==="dl"||n.tagName==="fieldset"||n.tagName==="figcaption"||n.tagName==="figure"||n.tagName==="footer"||n.tagName==="form"||n.tagName==="h1"||n.tagName==="h2"||n.tagName==="h3"||n.tagName==="h4"||n.tagName==="h5"||n.tagName==="h6"||n.tagName==="header"||n.tagName==="hgroup"||n.tagName==="hr"||n.tagName==="main"||n.tagName==="menu"||n.tagName==="nav"||n.tagName==="ol"||n.tagName==="p"||n.tagName==="pre"||n.tagName==="section"||n.tagName==="table"||n.tagName==="ul"):!t||!(t.type==="element"&&(t.tagName==="a"||t.tagName==="audio"||t.tagName==="del"||t.tagName==="ins"||t.tagName==="map"||t.tagName==="noscript"||t.tagName==="video"))}function $r(i,e,t){const n=C(t,e);return!n||n.type==="element"&&n.tagName==="li"}function Hr(i,e,t){const n=C(t,e);return!!(n&&n.type==="element"&&(n.tagName==="dt"||n.tagName==="dd"))}function Wr(i,e,t){const n=C(t,e);return!n||n.type==="element"&&(n.tagName==="dt"||n.tagName==="dd")}function st(i,e,t){const n=C(t,e);return!n||n.type==="element"&&(n.tagName==="rp"||n.tagName==="rt")}function zr(i,e,t){const n=C(t,e);return!n||n.type==="element"&&n.tagName==="optgroup"}function qr(i,e,t){const n=C(t,e);return!n||n.type==="element"&&(n.tagName==="option"||n.tagName==="optgroup")}function Kr(i,e,t){const n=C(t,e);return!!(n&&n.type==="element"&&(n.tagName==="tbody"||n.tagName==="tfoot"))}function Yr(i,e,t){const n=C(t,e);return!n||n.type==="element"&&(n.tagName==="tbody"||n.tagName==="tfoot")}function Xr(i,e,t){return!C(t,e)}function Jr(i,e,t){const n=C(t,e);return!n||n.type==="element"&&n.tagName==="tr"}function at(i,e,t){const n=C(t,e);return!n||n.type==="element"&&(n.tagName==="td"||n.tagName==="th")}const Qr=Ht({body:ti,colgroup:ni,head:ei,html:Zr,tbody:ri});function Zr(i){const e=C(i,-1);return!e||e.type!=="comment"}function ei(i){const e=i.children,t=[];let n=-1;for(;++n0}function ti(i){const e=C(i,-1,!0);return!e||e.type!=="comment"&&!(e.type==="text"&&Fe(e.value.charAt(0)))&&!(e.type==="element"&&(e.tagName==="meta"||e.tagName==="link"||e.tagName==="script"||e.tagName==="style"||e.tagName==="template"))}function ni(i,e,t){const n=Ut(t,e),r=C(i,-1,!0);return t&&n&&n.type==="element"&&n.tagName==="colgroup"&&Ue(n,t.children.indexOf(n),t)?!1:!!(r&&r.type==="element"&&r.tagName==="col")}function ri(i,e,t){const n=Ut(t,e),r=C(i,-1);return t&&n&&n.type==="element"&&(n.tagName==="thead"||n.tagName==="tbody")&&Ue(n,t.children.indexOf(n),t)?!1:!!(r&&r.type==="element"&&r.tagName==="tr")}const ue={name:[[` +\f\r &/=>`.split(""),` +\f\r "&'/=>\``.split("")],[`\0 +\f\r "&'/<=>`.split(""),`\0 +\f\r "&'/<=>\``.split("")]],unquoted:[[` +\f\r &>`.split(""),`\0 +\f\r "&'<=>\``.split("")],[`\0 +\f\r "&'<=>\``.split(""),`\0 +\f\r "&'<=>\``.split("")]],single:[["&'".split(""),"\"&'`".split("")],["\0&'".split(""),"\0\"&'`".split("")]],double:[['"&'.split(""),"\"&'`".split("")],['\0"&'.split(""),"\0\"&'`".split("")]]};function ii(i,e,t,n){const r=n.schema,o=r.space==="svg"?!1:n.settings.omitOptionalTags;let s=r.space==="svg"?n.settings.closeEmptyElements:n.settings.voids.includes(i.tagName.toLowerCase());const l=[];let a;r.space==="html"&&i.tagName==="svg"&&(n.schema=jt);const c=oi(n,i.properties),d=n.all(r.space==="html"&&i.tagName==="template"?i.content:i);return n.schema=r,d&&(s=!1),(c||!o||!Qr(i,e,t))&&(l.push("<",i.tagName,c?" "+c:""),s&&(r.space==="svg"||n.settings.closeSelfClosing)&&(a=c.charAt(c.length-1),(!n.settings.tightSelfClosing||a==="/"||a&&a!=='"'&&a!=="'")&&l.push(" "),l.push("/")),l.push(">")),l.push(d),!s&&(!o||!Ue(i,e,t))&&l.push(""),l.join("")}function oi(i,e){const t=[];let n=-1,r;if(e){for(r in e)if(e[r]!==null&&e[r]!==void 0){const o=si(i,r,e[r]);o&&t.push(o)}}for(;++nit(t,i.alternative)&&(s=i.alternative),l=s+X(t,Object.assign({},i.settings.characterReferences,{subset:(s==="'"?ue.single:ue.double)[r][o],attribute:!0}))+s),a+(l&&"="+l))}const ai=["<","&"];function Wt(i,e,t,n){return t&&t.type==="element"&&(t.tagName==="script"||t.tagName==="style")?i.value:X(i.value,Object.assign({},n.settings.characterReferences,{subset:ai}))}function li(i,e,t,n){return n.settings.allowDangerousHtml?i.value:Wt(i,e,t,n)}function ci(i,e,t,n){return n.all(i)}const ui=br("type",{invalid:di,unknown:pi,handlers:{comment:Dr,doctype:Nr,element:ii,raw:li,root:ci,text:Wt}});function di(i){throw new Error("Expected node, not `"+i+"`")}function pi(i){const e=i;throw new Error("Cannot compile unknown node `"+e.type+"`")}const hi={},mi={},fi=[];function _i(i,e){const t=e||hi,n=t.quote||'"',r=n==='"'?"'":'"';if(n!=='"'&&n!=="'")throw new Error("Invalid quote `"+n+"`, expected `'` or `\"`");return{one:gi,all:yi,settings:{omitOptionalTags:t.omitOptionalTags||!1,allowParseErrors:t.allowParseErrors||!1,allowDangerousCharacters:t.allowDangerousCharacters||!1,quoteSmart:t.quoteSmart||!1,preferUnquoted:t.preferUnquoted||!1,tightAttributes:t.tightAttributes||!1,upperDoctype:t.upperDoctype||!1,tightDoctype:t.tightDoctype||!1,bogusComments:t.bogusComments||!1,tightCommaSeparatedLists:t.tightCommaSeparatedLists||!1,tightSelfClosing:t.tightSelfClosing||!1,collapseEmptyAttributes:t.collapseEmptyAttributes||!1,allowDangerousHtml:t.allowDangerousHtml||!1,voids:t.voids||ur,characterReferences:t.characterReferences||mi,closeSelfClosing:t.closeSelfClosing||!1,closeEmptyElements:t.closeEmptyElements||!1},schema:t.space==="svg"?jt:vr,quote:n,alternative:r}.one(Array.isArray(i)?{type:"root",children:i}:i,void 0,void 0)}function gi(i,e,t){return ui(i,e,t,this)}function yi(i){const e=[],t=i&&i.children||fi;let n=-1;for(;++nve(i,s,l),codeToTokens:(s,l)=>ye(i,s,l)};let r=_i(ve(i,e,t,n));for(const s of Ee(t))r=((o=s.postprocess)==null?void 0:o.call(n,r,t))||r;return r}async function vi(i){let e,t;const n={};function r(h){t=h,n.HEAPU8=new Uint8Array(h),n.HEAPU32=new Uint32Array(h)}function o(){return typeof performance<"u"?performance.now():Date.now()}function s(h,f,_){n.HEAPU8.copyWithin(h,f,f+_)}function l(){return 2147483648}function a(h){try{return e.grow(h-t.byteLength+65535>>>16),r(e.buffer),1}catch{}}function c(h){const f=n.HEAPU8.length;h=h>>>0;const _=l();if(h>_)return!1;const E=(y,v)=>y+(v-y%v)%v;for(let y=1;y<=4;y*=2){let v=f*(1+.2/y);v=Math.min(v,h+100663296);const b=Math.min(_,E(Math.max(h,v),65536));if(a(b))return!0}return!1}const d={emscripten_get_now:o,emscripten_memcpy_big:s,emscripten_resize_heap:c,fd_write:()=>0};async function m(){const f=await i({env:d,wasi_snapshot_preview1:d});e=f.memory,r(e.buffer),Object.assign(n,f)}return await m(),n}let w=null,bi=!1;function Ri(i){throw new D(i.UTF8ToString(i.getLastOnigError()))}class Ae{constructor(e){p(this,"utf16Length");p(this,"utf8Length");p(this,"utf16Value");p(this,"utf8Value");p(this,"utf16OffsetToUtf8");p(this,"utf8OffsetToUtf16");const t=e.length,n=Ae._utf8ByteLength(e),r=n!==t,o=r?new Uint32Array(t+1):null;r&&(o[t]=n);const s=r?new Uint32Array(n+1):null;r&&(s[n]=t);const l=new Uint8Array(n);let a=0;for(let c=0;c=55296&&d<=56319&&c+1=56320&&f<=57343&&(m=(d-55296<<10)+65536|f-56320,h=!0)}r&&(o[c]=a,h&&(o[c+1]=a),m<=127?s[a+0]=c:m<=2047?(s[a+0]=c,s[a+1]=c):m<=65535?(s[a+0]=c,s[a+1]=c,s[a+2]=c):(s[a+0]=c,s[a+1]=c,s[a+2]=c,s[a+3]=c)),m<=127?l[a++]=m:m<=2047?(l[a++]=192|(m&1984)>>>6,l[a++]=128|(m&63)>>>0):m<=65535?(l[a++]=224|(m&61440)>>>12,l[a++]=128|(m&4032)>>>6,l[a++]=128|(m&63)>>>0):(l[a++]=240|(m&1835008)>>>18,l[a++]=128|(m&258048)>>>12,l[a++]=128|(m&4032)>>>6,l[a++]=128|(m&63)>>>0),h&&c++}this.utf16Length=t,this.utf8Length=n,this.utf16Value=e,this.utf8Value=l,this.utf16OffsetToUtf8=o,this.utf8OffsetToUtf16=s}static _utf8ByteLength(e){let t=0;for(let n=0,r=e.length;n=55296&&o<=56319&&n+1=56320&&a<=57343&&(s=(o-55296<<10)+65536|a-56320,l=!0)}s<=127?t+=1:s<=2047?t+=2:s<=65535?t+=3:t+=4,l&&n++}return t}createString(e){const t=e.omalloc(this.utf8Length);return e.HEAPU8.set(this.utf8Value,t),t}}const x=class x{constructor(e){p(this,"id",++x.LAST_ID);p(this,"_onigBinding");p(this,"content");p(this,"utf16Length");p(this,"utf8Length");p(this,"utf16OffsetToUtf8");p(this,"utf8OffsetToUtf16");p(this,"ptr");if(!w)throw new D("Must invoke loadWasm first.");this._onigBinding=w,this.content=e;const t=new Ae(e);this.utf16Length=t.utf16Length,this.utf8Length=t.utf8Length,this.utf16OffsetToUtf8=t.utf16OffsetToUtf8,this.utf8OffsetToUtf16=t.utf8OffsetToUtf16,this.utf8Length<1e4&&!x._sharedPtrInUse?(x._sharedPtr||(x._sharedPtr=w.omalloc(1e4)),x._sharedPtrInUse=!0,w.HEAPU8.set(t.utf8Value,x._sharedPtr),this.ptr=x._sharedPtr):this.ptr=t.createString(w)}convertUtf8OffsetToUtf16(e){return this.utf8OffsetToUtf16?e<0?0:e>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[e]:e}convertUtf16OffsetToUtf8(e){return this.utf16OffsetToUtf8?e<0?0:e>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[e]:e}dispose(){this.ptr===x._sharedPtr?x._sharedPtrInUse=!1:this._onigBinding.ofree(this.ptr)}};p(x,"LAST_ID",0),p(x,"_sharedPtr",0),p(x,"_sharedPtrInUse",!1);let be=x;class Ai{constructor(e){p(this,"_onigBinding");p(this,"_ptr");if(!w)throw new D("Must invoke loadWasm first.");const t=[],n=[];for(let l=0,a=e.length;l{let n=i;return n=await n,typeof n=="function"&&(n=await n(t)),typeof n=="function"&&(n=await n(t)),Ti(n)?n=await n.instantiator(t):Pi(n)?n=await n.default(t):(Li(n)&&(n=n.data),Si(n)?typeof WebAssembly.instantiateStreaming=="function"?n=await wi(n)(t):n=await ki(n)(t):Oi(n)&&(n=await Ii(n)(t))),"instance"in n&&(n=n.instance),"exports"in n&&(n=n.exports),n})}return de=e(),de}function Ii(i){return e=>WebAssembly.instantiate(i,e)}function wi(i){return e=>WebAssembly.instantiateStreaming(i,e)}function ki(i){return async e=>{const t=await i.arrayBuffer();return WebAssembly.instantiate(t,e)}}function Di(i){return new be(i)}function Ni(i){return new Ai(i)}const lt={light:"#333333",dark:"#bbbbbb"},ct={light:"#fffffe",dark:"#1e1e1e"},ut="__shiki_resolved";function zt(i){var l,a,c,d,m;if(i!=null&&i[ut])return i;const e={...i};e.tokenColors&&!e.settings&&(e.settings=e.tokenColors,delete e.tokenColors),e.type||(e.type="dark"),e.colorReplacements={...e.colorReplacements},e.settings||(e.settings=[]);let{bg:t,fg:n}=e;if(!t||!n){const h=e.settings?e.settings.find(f=>!f.name&&!f.scope):void 0;(l=h==null?void 0:h.settings)!=null&&l.foreground&&(n=h.settings.foreground),(a=h==null?void 0:h.settings)!=null&&a.background&&(t=h.settings.background),!n&&((c=e==null?void 0:e.colors)!=null&&c["editor.foreground"])&&(n=e.colors["editor.foreground"]),!t&&((d=e==null?void 0:e.colors)!=null&&d["editor.background"])&&(t=e.colors["editor.background"]),n||(n=e.type==="light"?lt.light:lt.dark),t||(t=e.type==="light"?ct.light:ct.dark),e.fg=n,e.bg=t}e.settings[0]&&e.settings[0].settings&&!e.settings[0].scope||e.settings.unshift({settings:{foreground:e.fg,background:e.bg}});let r=0;const o=new Map;function s(h){var _;if(o.has(h))return o.get(h);r+=1;const f=`#${r.toString(16).padStart(8,"0").toLowerCase()}`;return(_=e.colorReplacements)!=null&&_[`#${f}`]?s(h):(o.set(h,f),f)}e.settings=e.settings.map(h=>{var y,v;const f=((y=h.settings)==null?void 0:y.foreground)&&!h.settings.foreground.startsWith("#"),_=((v=h.settings)==null?void 0:v.background)&&!h.settings.background.startsWith("#");if(!f&&!_)return h;const E={...h,settings:{...h.settings}};if(f){const b=s(h.settings.foreground);e.colorReplacements[b]=h.settings.foreground,E.settings.foreground=b}if(_){const b=s(h.settings.background);e.colorReplacements[b]=h.settings.background,E.settings.background=b}return E});for(const h of Object.keys(e.colors||{}))if((h==="editor.foreground"||h==="editor.background"||h.startsWith("terminal.ansi"))&&!((m=e.colors[h])!=null&&m.startsWith("#"))){const f=s(e.colors[h]);e.colorReplacements[f]=e.colors[h],e.colors[h]=f}return Object.defineProperty(e,ut,{enumerable:!1,writable:!1,value:!0}),e}class xi extends Fn{constructor(t,n,r,o={}){super(t);p(this,"_resolver");p(this,"_themes");p(this,"_langs");p(this,"_alias");p(this,"_resolvedThemes",{});p(this,"_resolvedGrammars",{});p(this,"_langMap",{});p(this,"_langGraph",new Map);p(this,"_textmateThemeCache",new WeakMap);p(this,"_loadedThemesCache",null);p(this,"_loadedLanguagesCache",null);this._resolver=t,this._themes=n,this._langs=r,this._alias=o,n.forEach(s=>this.loadTheme(s)),r.forEach(s=>this.loadLanguage(s))}getTheme(t){return typeof t=="string"?this._resolvedThemes[t]:this.loadTheme(t)}loadTheme(t){const n=zt(t);return n.name&&(this._resolvedThemes[n.name]=n,this._loadedThemesCache=null),n}getLoadedThemes(){return this._loadedThemesCache||(this._loadedThemesCache=Object.keys(this._resolvedThemes)),this._loadedThemesCache}setTheme(t){let n=this._textmateThemeCache.get(t);n||(n=_e.createFromRawTheme(t),this._textmateThemeCache.set(t,n)),this._syncRegistry.setTheme(n)}getGrammar(t){if(this._alias[t]){const n=new Set([t]);for(;this._alias[t];){if(t=this._alias[t],n.has(t))throw new D(`Circular alias \`${Array.from(n).join(" -> ")} -> ${t}\``);n.add(t)}}return this._resolvedGrammars[t]}async loadLanguage(t){var s,l,a,c;if(this.getGrammar(t.name))return;const n=new Set(Object.values(this._langMap).filter(d=>{var m;return(m=d.embeddedLangsLazy)==null?void 0:m.includes(t.name)}));this._resolver.addLanguage(t);const r={balancedBracketSelectors:t.balancedBracketSelectors||["*"],unbalancedBracketSelectors:t.unbalancedBracketSelectors||[]};this._syncRegistry._rawGrammars.set(t.scopeName,t);const o=await this.loadGrammarWithConfiguration(t.scopeName,1,r);if(this._resolvedGrammars[t.name]=o,t.aliases&&t.aliases.forEach(d=>{this._alias[d]=t.name}),this._loadedLanguagesCache=null,n.size)for(const d of n)delete this._resolvedGrammars[d.name],this._loadedLanguagesCache=null,(l=(s=this._syncRegistry)==null?void 0:s._injectionGrammars)==null||l.delete(d.scopeName),(c=(a=this._syncRegistry)==null?void 0:a._grammars)==null||c.delete(d.scopeName),await this.loadLanguage(this._langMap[d.name])}async init(){this._themes.map(t=>this.loadTheme(t)),await this.loadLanguages(this._langs)}async loadLanguages(t){for(const o of t)this.resolveEmbeddedLanguages(o);const n=Array.from(this._langGraph.entries()),r=n.filter(([o,s])=>!s);if(r.length){const o=n.filter(([s,l])=>{var a;return l&&((a=l.embeddedLangs)==null?void 0:a.some(c=>r.map(([d])=>d).includes(c)))}).filter(s=>!r.includes(s));throw new D(`Missing languages ${r.map(([s])=>`\`${s}\``).join(", ")}, required by ${o.map(([s])=>`\`${s}\``).join(", ")}`)}for(const[o,s]of n)this._resolver.addLanguage(s);for(const[o,s]of n)await this.loadLanguage(s)}getLoadedLanguages(){return this._loadedLanguagesCache||(this._loadedLanguagesCache=Object.keys({...this._resolvedGrammars,...this._alias})),this._loadedLanguagesCache}resolveEmbeddedLanguages(t){if(this._langMap[t.name]=t,this._langGraph.set(t.name,t),t.embeddedLangs)for(const n of t.embeddedLangs)this._langGraph.set(n,this._langMap[n])}}class Vi{constructor(e,t){p(this,"_langs",new Map);p(this,"_scopeToLang",new Map);p(this,"_injections",new Map);p(this,"_onigLibPromise");this._onigLibPromise=e,t.forEach(n=>this.addLanguage(n))}get onigLib(){return this._onigLibPromise}getLangRegistration(e){return this._langs.get(e)}async loadGrammar(e){return this._scopeToLang.get(e)}addLanguage(e){this._langs.set(e.name,e),e.aliases&&e.aliases.forEach(t=>{this._langs.set(t,e)}),this._scopeToLang.set(e.scopeName,e),e.injectTo&&e.injectTo.forEach(t=>{this._injections.get(t)||this._injections.set(t,[]),this._injections.get(t).push(e.scopeName)})}getInjections(e){const t=e.split(".");let n=[];for(let r=1;r<=t.length;r++){const o=t.slice(0,r).join(".");n=[...n,...this._injections.get(o)||[]]}return n}}let qt;function Wi(i){qt=i}async function Mi(i={}){async function e(y){return Promise.resolve(typeof y=="function"?y():y).then(v=>v.default||v)}async function t(y){return Array.from(new Set((await Promise.all(y.filter(v=>!Pt(v)).map(async v=>await e(v).then(b=>Array.isArray(b)?b:[b])))).flat()))}const n=i.loadWasm||qt,[r,o]=await Promise.all([Promise.all((i.themes||[]).map(e)).then(y=>y.map(zt)),t(i.langs||[]),n?Ci(n):void 0]),s=new Vi(Promise.resolve({createOnigScanner(y){return Ni(y)},createOnigString(y){return Di(y)}}),o),l=new xi(s,r,o,i.langAlias);await l.init();let a;function c(y){const v=l.getGrammar(typeof y=="string"?y:y.name);if(!v)throw new D(`Language \`${y}\` not found, you may need to load it first`);return v}function d(y){if(y==="none")return{bg:"",fg:"",name:"none",settings:[],type:"dark"};const v=l.getTheme(y);if(!v)throw new D(`Theme \`${y}\` not found, you may need to load it first`);return v}function m(y){const v=d(y);a!==y&&(l.setTheme(v),a=y);const b=l.getColorMap();return{theme:v,colorMap:b}}function h(){return l.getLoadedThemes()}function f(){return l.getLoadedLanguages()}async function _(...y){await l.loadLanguages(await t(y))}async function E(...y){await Promise.all(y.map(async v=>St(v)?null:l.loadTheme(await e(v))))}return{setTheme:m,getTheme:d,getLanguage:c,getLoadedThemes:h,getLoadedLanguages:f,loadLanguage:_,loadTheme:E}}async function Bi(i={}){const e=await Mi(i);return{codeToTokensBase:(t,n)=>Ge(e,t,n),codeToTokensWithThemes:(t,n)=>wt(e,t,n),codeToTokens:(t,n)=>ye(e,t,n),codeToHast:(t,n)=>ve(e,t,n),codeToHtml:(t,n)=>Ei(e,t,n),...e,getInternalContext:()=>e}}function Gi(i,e,t){async function n(r){function o(d){if(typeof d=="string"){if(Pt(d))return[];const m=i[d];if(!m)throw new D(`Language \`${d}\` is not included in this bundle. You may want to load it from external source.`);return m}return d}function s(d){if(St(d))return"none";if(typeof d=="string"){const m=e[d];if(!m)throw new D(`Theme \`${d}\` is not included in this bundle. You may want to load it from external source.`);return m}return d}const l=(r.themes??[]).map(d=>s(d)),a=(r.langs??[]).map(d=>o(d)),c=await Bi({...r,themes:l,langs:a,loadWasm:t});return{...c,loadLanguage(...d){return c.loadLanguage(...d.map(o))},loadTheme(...d){return c.loadTheme(...d.map(s))}}}return n}function ji(i){let e;async function t(n={}){if(e){const r=await e;return await Promise.all([r.loadTheme(...le(n.theme||[])),r.loadLanguage(...le(n.lang||[]))]),r}else return e=i({themes:le(n.theme||[]),langs:le(n.lang||[])}),e}return{getSingletonHighlighter:()=>t(),async codeToHtml(n,r){return(await t({lang:r.lang,theme:"theme"in r?[r.theme]:Object.values(r.themes)})).codeToHtml(n,r)},async codeToHast(n,r){return(await t({lang:r.lang,theme:"theme"in r?[r.theme]:Object.values(r.themes)})).codeToHast(n,r)},async codeToTokens(n,r){return(await t({lang:r.lang,theme:"theme"in r?[r.theme]:Object.values(r.themes)})).codeToTokens(n,r)},async codeToTokensBase(n,r){return(await t(r)).codeToTokensBase(n,r)},async codeToTokensWithThemes(n,r){return(await t({lang:r.lang,theme:Object.values(r.themes).filter(Boolean)})).codeToTokensWithThemes(n,r)}}}const Fi=Gi(en,rn,tn),{codeToHtml:zi,codeToHast:qi,codeToTokens:Ki,codeToTokensBase:Yi,codeToTokensWithThemes:Xi,getSingletonHighlighter:Ji}=ji(Fi);function Qi(i={}){var s;const{name:e="css-variables",variablePrefix:t="--shiki-",fontStyle:n=!0}=i,r=l=>{var a;return(a=i.variableDefaults)!=null&&a[l]?`var(${t}${l}, ${i.variableDefaults[l]})`:`var(${t}${l})`},o={name:e,type:"dark",colors:{"editor.foreground":r("foreground"),"editor.background":r("background"),"terminal.ansiBlack":r("ansi-black"),"terminal.ansiRed":r("ansi-red"),"terminal.ansiGreen":r("ansi-green"),"terminal.ansiYellow":r("ansi-yellow"),"terminal.ansiBlue":r("ansi-blue"),"terminal.ansiMagenta":r("ansi-magenta"),"terminal.ansiCyan":r("ansi-cyan"),"terminal.ansiWhite":r("ansi-white"),"terminal.ansiBrightBlack":r("ansi-bright-black"),"terminal.ansiBrightRed":r("ansi-bright-red"),"terminal.ansiBrightGreen":r("ansi-bright-green"),"terminal.ansiBrightYellow":r("ansi-bright-yellow"),"terminal.ansiBrightBlue":r("ansi-bright-blue"),"terminal.ansiBrightMagenta":r("ansi-bright-magenta"),"terminal.ansiBrightCyan":r("ansi-bright-cyan"),"terminal.ansiBrightWhite":r("ansi-bright-white")},tokenColors:[{scope:["keyword.operator.accessor","meta.group.braces.round.function.arguments","meta.template.expression","markup.fenced_code meta.embedded.block"],settings:{foreground:r("foreground")}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:["strong","markup.heading.markdown","markup.bold.markdown"],settings:{fontStyle:"bold"}},{scope:["markup.italic.markdown"],settings:{fontStyle:"italic"}},{scope:"meta.link.inline.markdown",settings:{fontStyle:"underline",foreground:r("token-link")}},{scope:["string","markup.fenced_code","markup.inline"],settings:{foreground:r("token-string")}},{scope:["comment","string.quoted.docstring.multi"],settings:{foreground:r("token-comment")}},{scope:["constant.numeric","constant.language","constant.other.placeholder","constant.character.format.placeholder","variable.language.this","variable.other.object","variable.other.class","variable.other.constant","meta.property-name","meta.property-value","support"],settings:{foreground:r("token-constant")}},{scope:["keyword","storage.modifier","storage.type","storage.control.clojure","entity.name.function.clojure","entity.name.tag.yaml","support.function.node","support.type.property-name.json","punctuation.separator.key-value","punctuation.definition.template-expression"],settings:{foreground:r("token-keyword")}},{scope:"variable.parameter.function",settings:{foreground:r("token-parameter")}},{scope:["support.function","entity.name.type","entity.other.inherited-class","meta.function-call","meta.instance.constructor","entity.other.attribute-name","entity.name.function","constant.keyword.clojure"],settings:{foreground:r("token-function")}},{scope:["entity.name.tag","string.quoted","string.regexp","string.interpolated","string.template","string.unquoted.plain.out.yaml","keyword.other.template"],settings:{foreground:r("token-string-expression")}},{scope:["punctuation.definition.arguments","punctuation.definition.dict","punctuation.separator","meta.function-call.arguments"],settings:{foreground:r("token-punctuation")}},{scope:["markup.underline.link","punctuation.definition.metadata.markdown"],settings:{foreground:r("token-link")}},{scope:["beginning.punctuation.definition.list.markdown"],settings:{foreground:r("token-string")}},{scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","string.other.link.title.markdown","string.other.link.description.markdown"],settings:{foreground:r("token-keyword")}}]};return n||(o.tokenColors=(s=o.tokenColors)==null?void 0:s.map(l=>{var a;return(a=l.settings)!=null&&a.fontStyle&&delete l.settings.fontStyle,l})),o}export{B as FontStyle,D as ShikiError,Ot as addClassToHast,U as applyColorReplacements,en as bundledLanguages,Zt as bundledLanguagesAlias,Qt as bundledLanguagesBase,dt as bundledLanguagesInfo,rn as bundledThemes,nn as bundledThemesInfo,qi as codeToHast,zi as codeToHtml,Ki as codeToTokens,Yi as codeToTokensBase,Xi as codeToTokensWithThemes,Qi as createCssVariablesTheme,Wn as createPositionConverter,ji as createSingletonShorthands,Gi as createdBundledHighlighter,Fi as getHighlighter,Bi as getHighlighterCore,Mi as getShikiInternal,Ji as getSingletonHighlighter,Ct as getTokenStyleObject,tn as getWasmInlined,_i as hastToHtml,Lt as isNoneTheme,Tt as isPlainLang,Pt as isSpecialLang,St as isSpecialTheme,Ci as loadWasm,zt as normalizeTheme,Wi as setDefaultWasmLoader,Re as splitLines,$n as splitToken,Hn as splitTokens,It as stringifyTokenStyle,le as toArray,Jn as tokenizeAnsiWithTheme,Zn as tokenizeWithTheme,ar as tokensToHast,or as transformerDecorations}; diff --git a/assets/chunks/ini.DeVv6D4_.js b/assets/chunks/ini.DeVv6D4_.js new file mode 100644 index 000000000..705ff684f --- /dev/null +++ b/assets/chunks/ini.DeVv6D4_.js @@ -0,0 +1 @@ +const n=Object.freeze({displayName:"INI",name:"ini",patterns:[{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ini"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.ini"}},end:"\\n",name:"comment.line.number-sign.ini"}]},{begin:"(^[ \\t]+)?(?=;)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ini"}},end:"(?!\\G)",patterns:[{begin:";",beginCaptures:{0:{name:"punctuation.definition.comment.ini"}},end:"\\n",name:"comment.line.semicolon.ini"}]},{captures:{1:{name:"keyword.other.definition.ini"},2:{name:"punctuation.separator.key-value.ini"}},match:"\\b([a-zA-Z0-9_.-]+)\\b\\s*(=)"},{captures:{1:{name:"punctuation.definition.entity.ini"},3:{name:"punctuation.definition.entity.ini"}},match:"^(\\[)(.*?)(\\])",name:"entity.name.section.group-title.ini"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.ini"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.ini"}},name:"string.quoted.single.ini",patterns:[{match:"\\\\.",name:"constant.character.escape.ini"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.ini"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.ini"}},name:"string.quoted.double.ini"}],scopeName:"source.ini",aliases:["properties"]});var i=[n];export{i as default}; diff --git a/assets/chunks/java.ClXEvkw9.js b/assets/chunks/java.ClXEvkw9.js new file mode 100644 index 000000000..0d3dff69a --- /dev/null +++ b/assets/chunks/java.ClXEvkw9.js @@ -0,0 +1,68 @@ +const e=Object.freeze({displayName:"Java",name:"java",patterns:[{begin:"\\b(package)\\b\\s*",beginCaptures:{1:{name:"keyword.other.package.java"}},contentName:"storage.modifier.package.java",end:"\\s*(;)",endCaptures:{1:{name:"punctuation.terminator.java"}},name:"meta.package.java",patterns:[{include:"#comments"},{match:"(?<=\\.)\\s*\\.|\\.(?=\\s*;)",name:"invalid.illegal.character_not_allowed_here.java"},{match:"(?",endCaptures:{0:{name:"punctuation.bracket.angle.java"}},patterns:[{match:"\\b(extends|super)\\b",name:"storage.modifier.$1.java"},{captures:{1:{name:"storage.type.java"}},match:"(?>>?|~|\\^)",name:"keyword.operator.bitwise.java"},{match:"((&|\\^|\\||<<|>>>?)=)",name:"keyword.operator.assignment.bitwise.java"},{match:"(===?|!=|<=|>=|<>|<|>)",name:"keyword.operator.comparison.java"},{match:"([+*/%-]=)",name:"keyword.operator.assignment.arithmetic.java"},{match:"(=)",name:"keyword.operator.assignment.java"},{match:"(\\-\\-|\\+\\+)",name:"keyword.operator.increment-decrement.java"},{match:"(\\-|\\+|\\*|\\/|%)",name:"keyword.operator.arithmetic.java"},{match:"(!|&&|\\|\\|)",name:"keyword.operator.logical.java"},{match:"(\\||&)",name:"keyword.operator.bitwise.java"},{match:"\\b(const|goto)\\b",name:"keyword.reserved.java"}]},"lambda-expression":{patterns:[{match:"->",name:"storage.type.function.arrow.java"}]},"member-variables":{begin:"(?=private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)",end:"(?=\\=|;)",patterns:[{include:"#storage-modifiers"},{include:"#variables"},{include:"#primitive-arrays"},{include:"#object-types"}]},"method-call":{begin:"(\\.)\\s*([A-Za-z_$][\\w$]*)\\s*(\\()",beginCaptures:{1:{name:"punctuation.separator.period.java"},2:{name:"entity.name.function.java"},3:{name:"punctuation.definition.parameters.begin.bracket.round.java"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.java"}},name:"meta.method-call.java",patterns:[{include:"#code"}]},methods:{begin:"(?!new)(?=[\\w<].*\\s+)(?=([^=/]|/(?!/))+\\()",end:"(})|(?=;)",endCaptures:{1:{name:"punctuation.section.method.end.bracket.curly.java"}},name:"meta.method.java",patterns:[{include:"#storage-modifiers"},{begin:"(\\w+)\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.java"},2:{name:"punctuation.definition.parameters.begin.bracket.round.java"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.java"}},name:"meta.method.identifier.java",patterns:[{include:"#parameters"},{include:"#parens"},{include:"#comments"}]},{include:"#generics"},{begin:"(?=\\w.*\\s+\\w+\\s*\\()",end:"(?=\\s+\\w+\\s*\\()",name:"meta.method.return-type.java",patterns:[{include:"#all-types"},{include:"#parens"},{include:"#comments"}]},{include:"#throws"},{begin:"{",beginCaptures:{0:{name:"punctuation.section.method.begin.bracket.curly.java"}},contentName:"meta.method.body.java",end:"(?=})",patterns:[{include:"#code"}]},{include:"#comments"}]},module:{begin:"((open)\\s)?(module)\\s+(\\w+)",beginCaptures:{1:{name:"storage.modifier.java"},3:{name:"storage.modifier.java"},4:{name:"entity.name.type.module.java"}},end:"}",endCaptures:{0:{name:"punctuation.section.module.end.bracket.curly.java"}},name:"meta.module.java",patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.module.begin.bracket.curly.java"}},contentName:"meta.module.body.java",end:"(?=})",patterns:[{include:"#comments"},{include:"#comments-javadoc"},{match:"\\b(requires|transitive|exports|opens|to|uses|provides|with)\\b",name:"keyword.module.java"}]}]},numbers:{patterns:[{match:`(?x) +\\b(?)?(\\()",beginCaptures:{1:{name:"storage.modifier.java"},2:{name:"entity.name.type.record.java"},3:{patterns:[{include:"#generics"}]},4:{name:"punctuation.definition.parameters.begin.bracket.round.java"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.java"}},name:"meta.record.identifier.java",patterns:[{include:"#code"}]},{begin:"(implements)\\s",beginCaptures:{1:{name:"storage.modifier.implements.java"}},end:"(?=\\s*\\{)",name:"meta.definition.class.implemented.interfaces.java",patterns:[{include:"#object-types-inherited"},{include:"#comments"}]},{include:"#record-body"}]},"record-body":{begin:"{",beginCaptures:{0:{name:"punctuation.section.class.begin.bracket.curly.java"}},end:"(?=})",name:"meta.record.body.java",patterns:[{include:"#record-constructor"},{include:"#class-body"}]},"record-constructor":{begin:"(?!new)(?=[\\w<].*\\s+)(?=([^\\(=/]|/(?!/))+(?={))",end:"(})|(?=;)",endCaptures:{1:{name:"punctuation.section.method.end.bracket.curly.java"}},name:"meta.method.java",patterns:[{include:"#storage-modifiers"},{begin:"(\\w+)",beginCaptures:{1:{name:"entity.name.function.java"}},end:"(?=\\s*{)",name:"meta.method.identifier.java",patterns:[{include:"#comments"}]},{include:"#comments"},{begin:"{",beginCaptures:{0:{name:"punctuation.section.method.begin.bracket.curly.java"}},contentName:"meta.method.body.java",end:"(?=})",patterns:[{include:"#code"}]}]},"static-initializer":{patterns:[{include:"#anonymous-block-and-instance-initializer"},{match:"static",name:"storage.modifier.java"}]},"storage-modifiers":{match:"\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient|volatile|default|strictfp|sealed|non-sealed)\\b",name:"storage.modifier.java"},strings:{patterns:[{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.java"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.java"}},name:"string.quoted.triple.java",patterns:[{match:'(\\\\""")(?!")|(\\\\.)',name:"constant.character.escape.java"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.java"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.java"}},name:"string.quoted.double.java",patterns:[{match:"\\\\.",name:"constant.character.escape.java"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.java"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.java"}},name:"string.quoted.single.java",patterns:[{match:"\\\\.",name:"constant.character.escape.java"}]}]},throws:{begin:"throws",beginCaptures:{0:{name:"storage.modifier.java"}},end:"(?={|;)",name:"meta.throwables.java",patterns:[{match:",",name:"punctuation.separator.delimiter.java"},{match:"[a-zA-Z$_][\\.a-zA-Z0-9$_]*",name:"storage.type.java"},{include:"#comments"}]},"try-catch-finally":{patterns:[{begin:"\\btry\\b",beginCaptures:{0:{name:"keyword.control.try.java"}},end:"}",endCaptures:{0:{name:"punctuation.section.try.end.bracket.curly.java"}},name:"meta.try.java",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.try.resources.begin.bracket.round.java"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.try.resources.end.bracket.round.java"}},name:"meta.try.resources.java",patterns:[{include:"#code"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.try.begin.bracket.curly.java"}},contentName:"meta.try.body.java",end:"(?=})",patterns:[{include:"#code"}]}]},{begin:"\\b(catch)\\b",beginCaptures:{1:{name:"keyword.control.catch.java"}},end:"}",endCaptures:{0:{name:"punctuation.section.catch.end.bracket.curly.java"}},name:"meta.catch.java",patterns:[{include:"#comments"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.bracket.round.java"}},contentName:"meta.catch.parameters.java",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.java"}},patterns:[{include:"#comments"},{include:"#storage-modifiers"},{begin:"[a-zA-Z$_][\\.a-zA-Z0-9$_]*",beginCaptures:{0:{name:"storage.type.java"}},end:"(\\|)|(?=\\))",endCaptures:{1:{name:"punctuation.catch.separator.java"}},patterns:[{include:"#comments"},{captures:{0:{name:"variable.parameter.java"}},match:"\\w+"}]}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.catch.begin.bracket.curly.java"}},contentName:"meta.catch.body.java",end:"(?=})",patterns:[{include:"#code"}]}]},{begin:"\\bfinally\\b",beginCaptures:{0:{name:"keyword.control.finally.java"}},end:"}",endCaptures:{0:{name:"punctuation.section.finally.end.bracket.curly.java"}},name:"meta.finally.java",patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.finally.begin.bracket.curly.java"}},contentName:"meta.finally.body.java",end:"(?=})",patterns:[{include:"#code"}]}]}]},variables:{begin:`(?x) +(?= +\\b +( +(void|boolean|byte|char|short|int|float|long|double) +| +(?>(\\w+\\.)*[A-Z_]+\\w*) +) +\\b +\\s* +( +<[\\w<>,\\.?\\s\\[\\]]*> +)? +\\s* +( +(\\[\\])* +)? +\\s+ +[A-Za-z_$][\\w$]* +([\\w\\[\\],$][\\w\\[\\],\\s]*)? +\\s*(=|:|;) +)`,end:"(?=\\=|:|;)",name:"meta.definition.variable.java",patterns:[{captures:{1:{name:"variable.other.definition.java"}},match:"([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(;|:|=|,))"},{include:"#all-types"},{include:"#code"}]},"variables-local":{begin:"(?=\\b(var)\\b\\s+[A-Za-z_$][\\w$]*\\s*(=|:|;))",end:"(?=\\=|:|;)",name:"meta.definition.variable.local.java",patterns:[{match:"\\bvar\\b",name:"storage.type.local.java"},{captures:{1:{name:"variable.other.definition.java"}},match:"([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(=|:|;))"},{include:"#code"}]}},scopeName:"source.java"});var a=[e];export{a as default}; diff --git a/assets/chunks/javascript.Dch3xQiY.js b/assets/chunks/javascript.Dch3xQiY.js new file mode 100644 index 000000000..f429ddc37 --- /dev/null +++ b/assets/chunks/javascript.Dch3xQiY.js @@ -0,0 +1,699 @@ +const e=Object.freeze({displayName:"JavaScript",name:"javascript",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{"access-modifier":{match:"(?]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.js"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js"}},name:"meta.objectliteral.js",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js"},2:{name:"punctuation.definition.binding-pattern.array.js"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js"},2:{name:"punctuation.definition.binding-pattern.array.js"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.js"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.js"}},name:"meta.array.literal.js",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{1:{name:"storage.modifier.async.js"},2:{name:"variable.parameter.js"}},match:"(?:(?)",name:"meta.arrow.js"},{begin:`(?x) (?: +(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +) +)`,beginCaptures:{1:{name:"storage.modifier.async.js"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.arrow.js",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.js"}},end:"((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",name:"meta.arrow.js",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"arrow-return-type":{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.return.type.arrow.js",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"async-modifier":{match:"(?\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.js"}},end:"(?=$)",name:"comment.line.triple-slash.directive.js",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.js"},2:{name:"entity.name.tag.directive.js"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.js"}},name:"meta.tag.js",patterns:[{match:"path|types|no-default-lib|lib|name|resolution-mode",name:"entity.other.attribute-name.directive.js"},{match:"=",name:"keyword.operator.assignment.js"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:`(?x) +((@)(?:access|api)) +\\s+ +(private|protected|public) +\\b`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:`(?x) +((@)author) +\\s+ +( +[^@\\s<>*/] +(?:[^@<>*/]|\\*[^/])* +) +(?: +\\s* +(<) +([^>\\s]+) +(>) +)?`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +((@)borrows) \\s+ +((?:[^@\\s*/]|\\*[^/])+) +\\s+ (as) \\s+ +((?:[^@\\s*/]|\\*[^/])+)`},{begin:"((@)example)\\s+",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=@|\\*/)",name:"meta.example.jsdoc",patterns:[{match:"^\\s\\*\\s+"},{begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},contentName:"constant.other.description.jsdoc",end:"()|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{0:{name:"source.embedded.js"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +((@)see) +\\s+ +(?: + +( +(?=https?://) +(?:[^\\s*]|\\*[^/])+ +) +| + +( +(?! + +https?:// +| + +(?:\\[[^\\[\\]]*\\])? +{@(?:link|linkcode|linkplain|tutorial)\\b +) + +(?:[^@\\s*/]|\\*[^/])+ +) +)`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:`(?x) +((@)template) +\\s+ +# One or more valid identifiers +( +[A-Za-z_$] +[\\w$.\\[\\]]* +(?: +\\s* , \\s* +[A-Za-z_$] +[\\w$.\\[\\]]* +)* +)`},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:`(?x) +( +(@) +(?:arg|argument|const|constant|member|namespace|param|var) +) +\\s+ +( +[A-Za-z_$] +[\\w$.\\[\\]]* +)`},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"(?:[^@\\s*/]|\\*[^/])+",name:"entity.name.type.instance.jsdoc"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"},{captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.js"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:`(?x) +(\\[)\\s* +[\\w$]+ +(?: +(?:\\[\\])? +\\. +[\\w$]+ +)* +(?: +\\s* +(=) +\\s* +( + +(?> +"(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?" | +'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | +\\[ (?:(?:\\*(?!/))|[^*])*? \\] | +(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* +)* +) +)? +\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,name:"variable.other.jsdoc"}]},{begin:`(?x) +( +(@) +(?:define|enum|exception|export|extends|lends|implements|modifies +|namespace|private|protected|returns?|satisfies|suppress|this|throws|type +|yields?) +) +\\s+(?={)`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +( +(@) +(?:alias|augments|callback|constructs|emits|event|fires|exports? +|extends|external|function|func|host|lends|listens|interface|memberof!? +|method|module|mixes|mixin|name|requires|see|this|typedef|uses) +) +\\s+ +( +(?: +[^{}@\\s*] | \\*[^/] +)+ +)`},{begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)"}]},"enum-declaration":{begin:"(?) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{captures:{1:{name:"storage.modifier.js"},2:{name:"keyword.operator.rest.js"},3:{name:"variable.parameter.js variable.language.this.js"},4:{name:"variable.parameter.js"},5:{name:"keyword.operator.optional.js"}},match:"(?x)(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.js"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.js"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.js"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.js"},{captures:{1:{name:"keyword.operator.logical.js"},2:{name:"keyword.operator.assignment.compound.js"},3:{name:"keyword.operator.arithmetic.js"}},match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.js"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.js"},{match:"\\=",name:"keyword.operator.assignment.js"},{match:"--",name:"keyword.operator.decrement.js"},{match:"\\+\\+",name:"keyword.operator.increment.js"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.js"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.js"},2:{name:"keyword.operator.arithmetic.js"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.operator.assignment.compound.js"},2:{name:"keyword.operator.arithmetic.js"}},match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#jsx"},{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:`(?x)(?) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{match:"\\#?[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.property.js variable.object.property.js"},{match:"\\?",name:"keyword.operator.optional.js"},{match:"\\!",name:"keyword.operator.definiteassignment.js"}]},"for-loop":{begin:"(?\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",name:"meta.function-call.js",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",name:"meta.function-call.js",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:"\\?\\.",name:"meta.function-call.js punctuation.accessor.optional.js"},{match:"\\!",name:"meta.function-call.js keyword.operator.definiteassignment.js"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.js"}]},"function-declaration":{begin:"(?) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +))`},{captures:{1:{name:"punctuation.accessor.js"},2:{name:"punctuation.accessor.optional.js"},3:{name:"variable.other.constant.property.js"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{captures:{1:{name:"punctuation.accessor.js"},2:{name:"punctuation.accessor.optional.js"},3:{name:"variable.other.property.js"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",name:"variable.other.constant.js"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.other.readwrite.js"}]},"if-statement":{patterns:[{begin:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?))",end:"(/>)|(?:())",endCaptures:{1:{name:"punctuation.definition.tag.end.js"},2:{name:"punctuation.definition.tag.begin.js"},3:{name:"entity.name.tag.namespace.js"},4:{name:"punctuation.separator.namespace.js"},5:{name:"entity.name.tag.js"},6:{name:"support.class.component.js"},7:{name:"punctuation.definition.tag.end.js"}},name:"meta.tag.js",patterns:[{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.js"},2:{name:"entity.name.tag.namespace.js"},3:{name:"punctuation.separator.namespace.js"},4:{name:"entity.name.tag.js"},5:{name:"support.class.component.js"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.end.js"}},contentName:"meta.jsx.children.js",end:"(?=|/\\*|//)`},"jsx-tag-attributes":{begin:"\\s+",end:"(?=[/]?>)",name:"meta.tag.attributes.js",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attributes-illegal":{match:"\\S+",name:"invalid.illegal.attribute.js"},"jsx-tag-in-expression":{begin:`(?x) +(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s* +(?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) +(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))`,end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag"}]},"jsx-tag-without-attributes":{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.js"},2:{name:"entity.name.tag.namespace.js"},3:{name:"punctuation.separator.namespace.js"},4:{name:"entity.name.tag.js"},5:{name:"support.class.component.js"},6:{name:"punctuation.definition.tag.end.js"}},contentName:"meta.jsx.children.js",end:"()",endCaptures:{1:{name:"punctuation.definition.tag.begin.js"},2:{name:"entity.name.tag.namespace.js"},3:{name:"punctuation.separator.namespace.js"},4:{name:"entity.name.tag.js"},5:{name:"support.class.component.js"},6:{name:"punctuation.definition.tag.end.js"}},name:"meta.tag.without-attributes.js",patterns:[{include:"#jsx-children"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag-without-attributes"}]},label:{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{1:{name:"entity.name.label.js"},2:{name:"punctuation.separator.label.js"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{captures:{1:{name:"entity.name.label.js"},2:{name:"punctuation.separator.label.js"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"method-declaration":{patterns:[{begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.js"},2:{name:"storage.modifier.js"},3:{name:"storage.modifier.js"},4:{name:"storage.modifier.async.js"},5:{name:"keyword.operator.new.js"},6:{name:"keyword.generator.asterisk.js"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:`(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.js"},2:{name:"storage.modifier.js"},3:{name:"storage.modifier.js"},4:{name:"storage.modifier.async.js"},5:{name:"storage.type.property.js"},6:{name:"keyword.generator.asterisk.js"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:`(?x)(?=((\\b(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.js"},2:{name:"storage.type.property.js"},3:{name:"keyword.generator.asterisk.js"}},end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:`(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.js"},2:{name:"storage.type.property.js"},3:{name:"keyword.generator.asterisk.js"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.js meta.object-literal.key.js",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",name:"meta.object.member.js meta.object-literal.key.js",patterns:[{include:"#comment"},{include:"#string"}]},{begin:`(?x)(?=(\\b(?) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,name:"meta.object.member.js"},{captures:{0:{name:"meta.object-literal.key.js"}},match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.js"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.js"}},end:"(?=,|\\})",name:"meta.object.member.js",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.js"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.js"},{captures:{1:{name:"keyword.control.as.js"},2:{name:"storage.modifier.js"}},match:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js"},2:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js"},2:{name:"punctuation.definition.binding-pattern.array.js"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"parameter-name":{patterns:[{captures:{1:{name:"storage.modifier.js"}},match:"(?) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{captures:{1:{name:"storage.modifier.js"},2:{name:"keyword.operator.rest.js"},3:{name:"variable.parameter.js variable.language.this.js"},4:{name:"variable.parameter.js"},5:{name:"keyword.operator.optional.js"}},match:"(?x)(?:(?])",name:"meta.type.annotation.js",patterns:[{include:"#type"}]}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.js meta.return.type.arrow.js keyword.operator.type.annotation.js"}},contentName:"meta.arrow.js meta.return.type.arrow.js",end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:"(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.js"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.js"},2:{name:"keyword.other.js"}},name:"string.regexp.js",patterns:[{include:"#regexp"}]},{begin:"((?"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"return-type":{patterns:[{begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js"}},end:"(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\()) +| +(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))`},{captures:{1:{name:"support.type.object.module.js"},2:{name:"support.type.object.module.js"},3:{name:"punctuation.accessor.js"},4:{name:"punctuation.accessor.optional.js"},5:{name:"support.type.object.module.js"}},match:"(?\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.tagged-template.js"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js"}},contentName:"meta.embedded.line.js",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js"}},name:"meta.template.expression.js",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js"},2:{name:"string.template.js punctuation.definition.string.template.begin.js"}},contentName:"string.template.js",end:"`",endCaptures:{0:{name:"string.template.js punctuation.definition.string.template.end.js"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js"}},contentName:"meta.embedded.line.js",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js"}},name:"meta.template.expression.js",patterns:[{include:"#type"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.js"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.js"}},patterns:[{include:"#expression"}]},"this-literal":{match:"(?])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.js",patterns:[{include:"#type"}]},{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js"}},end:"(?])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.js",patterns:[{include:"#type"}]}]},"type-arguments":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.js"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.js"}},name:"meta.type.parameters.js",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{0:{name:"keyword.operator.type.js"}},match:"(?)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:"(?) +)) +) +) +)`,end:"(?<=\\))",name:"meta.type.function.js",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.js"}},end:"(?)(?:\\?]|//|$)",name:"meta.type.function.return.js",patterns:[{include:"#type-function-return-type-core"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.js"}},end:"(?)(?]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.type.function.return.js",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-infer":{patterns:[{captures:{1:{name:"keyword.operator.expression.infer.js"},2:{name:"entity.name.type.js"},3:{name:"keyword.operator.expression.extends.js"}},match:"(?)",endCaptures:{1:{name:"meta.type.parameters.js punctuation.definition.typeparameters.end.js"}},patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.js"},2:{name:"meta.type.parameters.js punctuation.definition.typeparameters.begin.js"}},contentName:"meta.type.parameters.js",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.js punctuation.definition.typeparameters.end.js"}},patterns:[{include:"#type-arguments-body"}]},{captures:{1:{name:"entity.name.type.module.js"},2:{name:"punctuation.accessor.js"},3:{name:"punctuation.accessor.optional.js"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"entity.name.type.js"}]},"type-object":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.js"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js"}},name:"meta.object.type.js",patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.js"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.js"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.js"}},end:"(?=\\S)"},{match:"(?)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.js"}},name:"meta.type.parameters.js",patterns:[{include:"#comment"},{match:"(?)",name:"keyword.operator.assignment.js"}]},"type-paren-or-function-parameters":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},name:"meta.type.paren.cover.js",patterns:[{captures:{1:{name:"storage.modifier.js"},2:{name:"keyword.operator.rest.js"},3:{name:"entity.name.function.js variable.language.this.js"},4:{name:"entity.name.function.js"},5:{name:"keyword.operator.optional.js"}},match:`(?x)(?:(?) +)) +)) +)) | +(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))`},{captures:{1:{name:"storage.modifier.js"},2:{name:"keyword.operator.rest.js"},3:{name:"variable.parameter.js variable.language.this.js"},4:{name:"variable.parameter.js"},5:{name:"keyword.operator.optional.js"}},match:"(?x)(?:(?:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:"(?) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,beginCaptures:{1:{name:"meta.definition.variable.js variable.other.constant.js entity.name.function.js"}},end:"(?=$|^|[;,=}]|((?) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,beginCaptures:{1:{name:"meta.definition.variable.js entity.name.function.js"},2:{name:"keyword.operator.definiteassignment.js"}},end:"(?=$|^|[;,=}]|((?\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.js"}},end:"(?=$|^|[,);}\\]]|((?|{%\\s*(block|filter|for|if|macro|raw))",foldingStopMarker:"(|{%\\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\\s*%})",name:"jinja-html",patterns:[{include:"source.jinja"},{include:"text.html.basic"}],scopeName:"text.html.jinja",embeddedLangs:["html"]});var n=[...e,a];const t=Object.freeze({displayName:"Jinja",foldingStartMarker:"({%\\s*(block|filter|for|if|macro|raw))",foldingStopMarker:"({%\\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\\s*%})",name:"jinja",patterns:[{begin:"({%)\\s*(raw)\\s*(%})",captures:{1:{name:"entity.other.jinja.delimiter.tag"},2:{name:"keyword.control.jinja"},3:{name:"entity.other.jinja.delimiter.tag"}},end:"({%)\\s*(endraw)\\s*(%})",name:"comment.block.jinja.raw"},{include:"#comments"},{begin:"{{-?",captures:[{name:"variable.entity.other.jinja.delimiter"}],end:"-?}}",name:"variable.meta.scope.jinja",patterns:[{include:"#expression"}]},{begin:"{%-?",captures:[{name:"entity.other.jinja.delimiter.tag"}],end:"-?%}",name:"meta.scope.jinja.tag",patterns:[{include:"#expression"}]}],repository:{comments:{begin:"{#-?",captures:[{name:"entity.other.jinja.delimiter.comment"}],end:"-?#}",name:"comment.block.jinja",patterns:[{include:"#comments"}]},escaped_char:{match:"\\\\x[0-9A-F]{2}",name:"constant.character.escape.hex.jinja"},escaped_unicode_char:{captures:{1:{name:"constant.character.escape.unicode.16-bit-hex.jinja"},2:{name:"constant.character.escape.unicode.32-bit-hex.jinja"},3:{name:"constant.character.escape.unicode.name.jinja"}},match:"(\\\\U[0-9A-Fa-f]{8})|(\\\\u[0-9A-Fa-f]{4})|(\\\\N\\{[a-zA-Z ]+\\})"},expression:{patterns:[{captures:{1:{name:"keyword.control.jinja"},2:{name:"variable.other.jinja.block"}},match:"\\s*\\b(block)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b"},{captures:{1:{name:"keyword.control.jinja"},2:{name:"variable.other.jinja.filter"}},match:"\\s*\\b(filter)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b"},{captures:{1:{name:"keyword.control.jinja"},2:{name:"variable.other.jinja.test"}},match:"\\s*\\b(is)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b"},{captures:{1:{name:"keyword.control.jinja"}},match:"(?<=\\{\\%-|\\{\\%)\\s*\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?!\\s*[,=])"},{match:"\\b(and|else|if|in|import|not|or|recursive|with(out)?\\s+context)\\b",name:"keyword.control.jinja"},{match:"\\b(true|false|none)\\b",name:"constant.language.jinja"},{match:"\\b(loop|super|self|varargs|kwargs)\\b",name:"variable.language.jinja"},{match:"[a-zA-Z_][a-zA-Z0-9_]*",name:"variable.other.jinja"},{match:"(\\+|\\-|\\*\\*|\\*|//|/|%)",name:"keyword.operator.arithmetic.jinja"},{captures:{1:{name:"punctuation.other.jinja"},2:{name:"variable.other.jinja.filter"}},match:"(\\|)([a-zA-Z_][a-zA-Z0-9_]*)"},{captures:{1:{name:"punctuation.other.jinja"},2:{name:"variable.other.jinja.attribute"}},match:"(\\.)([a-zA-Z_][a-zA-Z0-9_]*)"},{begin:"\\[",captures:[{name:"punctuation.other.jinja"}],end:"\\]",patterns:[{include:"#expression"}]},{begin:"\\(",captures:[{name:"punctuation.other.jinja"}],end:"\\)",patterns:[{include:"#expression"}]},{begin:"\\{",captures:[{name:"punctuation.other.jinja"}],end:"\\}",patterns:[{include:"#expression"}]},{match:"(\\.|:|\\||,)",name:"punctuation.other.jinja"},{match:"(==|<=|=>|<|>|!=)",name:"keyword.operator.comparison.jinja"},{match:"=",name:"keyword.operator.assignment.jinja"},{begin:'"',beginCaptures:[{name:"punctuation.definition.string.begin.jinja"}],end:'"',endCaptures:[{name:"punctuation.definition.string.end.jinja"}],name:"string.quoted.double.jinja",patterns:[{include:"#string"}]},{begin:"'",beginCaptures:[{name:"punctuation.definition.string.begin.jinja"}],end:"'",endCaptures:[{name:"punctuation.definition.string.end.jinja"}],name:"string.quoted.single.jinja",patterns:[{include:"#string"}]},{begin:"@/",beginCaptures:[{name:"punctuation.definition.regexp.begin.jinja"}],end:"/",endCaptures:[{name:"punctuation.definition.regexp.end.jinja"}],name:"string.regexp.jinja",patterns:[{include:"#simple_escapes"}]}]},simple_escapes:{captures:{1:{name:"constant.character.escape.newline.jinja"},2:{name:"constant.character.escape.backlash.jinja"},3:{name:"constant.character.escape.double-quote.jinja"},4:{name:"constant.character.escape.single-quote.jinja"},5:{name:"constant.character.escape.bell.jinja"},6:{name:"constant.character.escape.backspace.jinja"},7:{name:"constant.character.escape.formfeed.jinja"},8:{name:"constant.character.escape.linefeed.jinja"},9:{name:"constant.character.escape.return.jinja"},10:{name:"constant.character.escape.tab.jinja"},11:{name:"constant.character.escape.vertical-tab.jinja"}},match:`(\\\\\\n)|(\\\\\\\\)|(\\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)`},string:{patterns:[{include:"#simple_escapes"},{include:"#escaped_char"},{include:"#escaped_unicode_char"}]}},scopeName:"source.jinja",embeddedLangs:["jinja-html"]});var s=[...n,t];export{s as default}; diff --git a/assets/chunks/jison.CHwQvgii.js b/assets/chunks/jison.CHwQvgii.js new file mode 100644 index 000000000..e5eff1bcf --- /dev/null +++ b/assets/chunks/jison.CHwQvgii.js @@ -0,0 +1 @@ +import e from"./javascript.Dch3xQiY.js";const n=Object.freeze({displayName:"Jison",fileTypes:["jison"],injections:{"L:(meta.action.jison - (comment | string)), source.js.embedded.jison - (comment | string), source.js.embedded.source - (comment | string.quoted.double | string.quoted.single)":{patterns:[{match:"\\${2}",name:"variable.language.semantic-value.jison"},{match:"@\\$",name:"variable.language.result-location.jison"},{match:"##\\$|\\byysp\\b",name:"variable.language.stack-index-0.jison"},{match:"#\\S+#",name:"support.variable.token-reference.jison"},{match:"#\\$",name:"variable.language.result-id.jison"},{match:"\\$(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)",name:"support.variable.token-value.jison"},{match:"@(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)",name:"support.variable.token-location.jison"},{match:"##(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)",name:"support.variable.stack-index.jison"},{match:"#(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)",name:"support.variable.token-id.jison"},{match:"\\byy(?:l(?:eng|ineno|oc|stack)|rulelength|s(?:tate|s?tack)|text|vstack)\\b",name:"variable.language.jison"},{match:"\\byy(?:clearin|erro[kr])\\b",name:"keyword.other.jison"}]}},name:"jison",patterns:[{begin:"%%",beginCaptures:{0:{name:"meta.separator.section.jison"}},end:"\\z",patterns:[{begin:"%%",beginCaptures:{0:{name:"meta.separator.section.jison"}},end:"\\z",patterns:[{begin:"\\G",contentName:"source.js.embedded.jison",end:"\\z",name:"meta.section.epilogue.jison",patterns:[{include:"#epilogue_section"}]}]},{begin:"\\G",end:"(?=%%)",name:"meta.section.rules.jison",patterns:[{include:"#rules_section"}]}]},{begin:"^",end:"(?=%%)",name:"meta.section.declarations.jison",patterns:[{include:"#declarations_section"}]}],repository:{actions:{patterns:[{begin:"\\{\\{",beginCaptures:{0:{name:"punctuation.definition.action.begin.jison"}},contentName:"source.js.embedded.jison",end:"\\}\\}",endCaptures:{0:{name:"punctuation.definition.action.end.jison"}},name:"meta.action.jison",patterns:[{include:"source.js"}]},{begin:"(?=%\\{)",end:"(?<=%\\})",name:"meta.action.jison",patterns:[{include:"#user_code_blocks"}]}]},comments:{patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.jison"}},end:"$",name:"comment.line.double-slash.jison"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.jison"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.jison"}},name:"comment.block.jison"}]},declarations_section:{patterns:[{include:"#comments"},{begin:"^\\s*(%lex)\\s*$",beginCaptures:{1:{name:"entity.name.tag.lexer.begin.jison"}},end:"^\\s*(/lex)\\b",endCaptures:{1:{name:"entity.name.tag.lexer.end.jison"}},patterns:[{begin:"%%",beginCaptures:{0:{name:"meta.separator.section.jisonlex"}},end:"(?=/lex)",patterns:[{begin:"^%%",beginCaptures:{0:{name:"meta.separator.section.jisonlex"}},end:"(?=/lex)",patterns:[{begin:"\\G",contentName:"source.js.embedded.jisonlex",end:"(?=/lex)",name:"meta.section.user-code.jisonlex",patterns:[{include:"source.jisonlex#user_code_section"}]}]},{begin:"\\G",end:"^(?=%%|/lex)",name:"meta.section.rules.jisonlex",patterns:[{include:"source.jisonlex#rules_section"}]}]},{begin:"^",end:"(?=%%|/lex)",name:"meta.section.definitions.jisonlex",patterns:[{include:"source.jisonlex#definitions_section"}]}]},{begin:"(?=%\\{)",end:"(?<=%\\})",name:"meta.section.prologue.jison",patterns:[{include:"#user_code_blocks"}]},{include:"#options_declarations"},{match:"%(ebnf|left|nonassoc|parse-param|right|start)\\b",name:"keyword.other.declaration.$1.jison"},{include:"#include_declarations"},{begin:"%(code)\\b",beginCaptures:{0:{name:"keyword.other.declaration.$1.jison"}},end:"$",name:"meta.code.jison",patterns:[{include:"#comments"},{include:"#rule_actions"},{match:"(init|required)",name:"keyword.other.code-qualifier.$1.jison"},{include:"#quoted_strings"},{match:"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b",name:"string.unquoted.jison"}]},{begin:"%(parser-type)\\b",beginCaptures:{0:{name:"keyword.other.declaration.$1.jison"}},end:"$",name:"meta.parser-type.jison",patterns:[{include:"#comments"},{include:"#quoted_strings"},{match:"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b",name:"string.unquoted.jison"}]},{begin:"%(token)\\b",beginCaptures:{0:{name:"keyword.other.declaration.$1.jison"}},end:"$|(%%|;)",endCaptures:{1:{name:"punctuation.terminator.declaration.token.jison"}},name:"meta.token.jison",patterns:[{include:"#comments"},{include:"#numbers"},{include:"#quoted_strings"},{match:"<[[:alpha:]_](?:[\\w-]*\\w)?>",name:"invalid.unimplemented.jison"},{match:"\\S+",name:"entity.other.token.jison"}]},{match:"%(debug|import)\\b",name:"keyword.other.declaration.$1.jison"},{match:"%prec\\b",name:"invalid.illegal.jison"},{match:"%[[:alpha:]_](?:[\\w-]*\\w)?\\b",name:"invalid.unimplemented.jison"},{include:"#numbers"},{include:"#quoted_strings"}]},epilogue_section:{patterns:[{include:"#user_code_include_declarations"},{include:"source.js"}]},include_declarations:{patterns:[{begin:"(%(include))\\s*",beginCaptures:{1:{name:"keyword.other.declaration.$2.jison"}},end:`(?<=['"])|(?=\\s)`,name:"meta.include.jison",patterns:[{include:"#include_paths"}]}]},include_paths:{patterns:[{include:"#quoted_strings"},{begin:"(?=\\S)",end:"(?=\\s)",name:"string.unquoted.jison",patterns:[{include:"source.js#string_escapes"}]}]},numbers:{patterns:[{captures:{1:{name:"storage.type.number.jison"},2:{name:"constant.numeric.integer.hexadecimal.jison"}},match:"(0[Xx])([0-9A-Fa-f]+)"},{match:"\\d+",name:"constant.numeric.integer.decimal.jison"}]},options_declarations:{patterns:[{begin:"%options\\b",beginCaptures:{0:{name:"keyword.other.options.jison"}},end:"^(?=\\S|\\s*$)",name:"meta.options.jison",patterns:[{include:"#comments"},{match:"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b",name:"entity.name.constant.jison"},{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.option.assignment.jison"}},end:`(?<=['"])|(?=\\s)`,patterns:[{include:"#comments"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.$1.jison"},{include:"#numbers"},{include:"#quoted_strings"},{match:"\\S+",name:"string.unquoted.jison"}]},{include:"#quoted_strings"}]}]},quoted_strings:{patterns:[{begin:'"',end:'"',name:"string.quoted.double.jison",patterns:[{include:"source.js#string_escapes"}]},{begin:"'",end:"'",name:"string.quoted.single.jison",patterns:[{include:"source.js#string_escapes"}]}]},rule_actions:{patterns:[{include:"#actions"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.action.begin.jison"}},contentName:"source.js.embedded.jison",end:"\\}",endCaptures:{0:{name:"punctuation.definition.action.end.jison"}},name:"meta.action.jison",patterns:[{include:"source.js"}]},{include:"#include_declarations"},{begin:"->|→",beginCaptures:{0:{name:"punctuation.definition.action.arrow.jison"}},contentName:"source.js.embedded.jison",end:"$",name:"meta.action.jison",patterns:[{include:"source.js"}]}]},rules_section:{patterns:[{include:"#comments"},{include:"#actions"},{include:"#include_declarations"},{begin:"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b",beginCaptures:{0:{name:"entity.name.constant.rule-result.jison"}},end:";",endCaptures:{0:{name:"punctuation.terminator.rule.jison"}},name:"meta.rule.jison",patterns:[{include:"#comments"},{begin:":",beginCaptures:{0:{name:"keyword.operator.rule-components.assignment.jison"}},end:"(?=;)",name:"meta.rule-components.jison",patterns:[{include:"#comments"},{include:"#quoted_strings"},{captures:{1:{name:"punctuation.definition.named-reference.begin.jison"},2:{name:"entity.name.other.reference.jison"},3:{name:"punctuation.definition.named-reference.end.jison"}},match:"(\\[)([[:alpha:]_](?:[\\w-]*\\w)?)(\\])"},{begin:"(%(prec))\\s*",beginCaptures:{1:{name:"keyword.other.$2.jison"}},end:`(?<=['"])|(?=\\s)`,name:"meta.prec.jison",patterns:[{include:"#comments"},{include:"#quoted_strings"},{begin:"(?=\\S)",end:"(?=\\s)",name:"constant.other.token.jison"}]},{match:"\\|",name:"keyword.operator.rule-components.separator.jison"},{match:"\\b(?:EOF|error)\\b",name:"keyword.other.$0.jison"},{match:"(?:%(?:e(?:mpty|psilon))|\\b[Ɛɛεϵ])\\b",name:"keyword.other.empty.jison"},{include:"#rule_actions"}]}]}]},user_code_blocks:{patterns:[{begin:"%\\{",beginCaptures:{0:{name:"punctuation.definition.user-code-block.begin.jison"}},contentName:"source.js.embedded.jison",end:"%\\}",endCaptures:{0:{name:"punctuation.definition.user-code-block.end.jison"}},name:"meta.user-code-block.jison",patterns:[{include:"source.js"}]}]},user_code_include_declarations:{patterns:[{begin:"^(%(include))\\s*",beginCaptures:{1:{name:"keyword.other.declaration.$2.jison"}},end:`(?<=['"])|(?=\\s)`,name:"meta.include.jison",patterns:[{include:"#include_paths"}]}]}},scopeName:"source.jison",embeddedLangs:["javascript"]});var i=[...e,n];export{i as default}; diff --git a/assets/chunks/json.CupVZNk8.js b/assets/chunks/json.CupVZNk8.js new file mode 100644 index 000000000..312d1d8ef --- /dev/null +++ b/assets/chunks/json.CupVZNk8.js @@ -0,0 +1,25 @@ +const n=Object.freeze({displayName:"JSON",name:"json",patterns:[{include:"#value"}],repository:{array:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.json"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.json"}},name:"meta.structure.array.json",patterns:[{include:"#value"},{match:",",name:"punctuation.separator.array.json"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json"}]},comments:{patterns:[{begin:"/\\*\\*(?!/)",captures:{0:{name:"punctuation.definition.comment.json"}},end:"\\*/",name:"comment.block.documentation.json"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.json"}},end:"\\*/",name:"comment.block.json"},{captures:{1:{name:"punctuation.definition.comment.json"}},match:"(//).*$\\n?",name:"comment.line.double-slash.js"}]},constant:{match:"\\b(?:true|false|null)\\b",name:"constant.language.json"},number:{match:`(?x) +-? +(?: +0 +| +[1-9] +\\d* +) +(?: +(?: +\\. +\\d+ +)? +(?: +[eE] +[+-]? +\\d+ +)? +)?`,name:"constant.numeric.json"},object:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dictionary.begin.json"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dictionary.end.json"}},name:"meta.structure.dictionary.json",patterns:[{comment:"the JSON object key",include:"#objectkey"},{include:"#comments"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.dictionary.key-value.json"}},end:"(,)|(?=\\})",endCaptures:{1:{name:"punctuation.separator.dictionary.pair.json"}},name:"meta.structure.dictionary.value.json",patterns:[{comment:"the JSON object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json"}]},objectkey:{begin:'"',beginCaptures:{0:{name:"punctuation.support.type.property-name.begin.json"}},end:'"',endCaptures:{0:{name:"punctuation.support.type.property-name.end.json"}},name:"string.json support.type.property-name.json",patterns:[{include:"#stringcontent"}]},string:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.json"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.json"}},name:"string.quoted.double.json",patterns:[{include:"#stringcontent"}]},stringcontent:{patterns:[{match:`(?x) +\\\\ +(?: +["\\\\/bfnrt] +| +u +[0-9a-fA-F]{4})`,name:"constant.character.escape.json"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json"}]},value:{patterns:[{include:"#constant"},{include:"#number"},{include:"#string"},{include:"#array"},{include:"#object"},{include:"#comments"}]}},scopeName:"source.json"});var e=[n];export{e as default}; diff --git a/assets/chunks/json5.Bh8mriwU.js b/assets/chunks/json5.Bh8mriwU.js new file mode 100644 index 000000000..d4970bf42 --- /dev/null +++ b/assets/chunks/json5.Bh8mriwU.js @@ -0,0 +1,17 @@ +const n=Object.freeze({displayName:"JSON5",fileTypes:["json5"],name:"json5",patterns:[{include:"#comments"},{include:"#value"}],repository:{array:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.json5"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.json5"}},name:"meta.structure.array.json5",patterns:[{include:"#comments"},{include:"#value"},{match:",",name:"punctuation.separator.array.json5"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json5"}]},comments:{patterns:[{match:"/{2}.*",name:"comment.single.json5"},{begin:"/\\*\\*(?!/)",captures:{0:{name:"punctuation.definition.comment.json5"}},end:"\\*/",name:"comment.block.documentation.json5"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.json5"}},end:"\\*/",name:"comment.block.json5"}]},constant:{match:"\\b(?:true|false|null|Infinity|NaN)\\b",name:"constant.language.json5"},infinity:{match:"(-)*\\b(?:Infinity|NaN)\\b",name:"constant.language.json5"},key:{name:"string.key.json5",patterns:[{include:"#stringSingle"},{include:"#stringDouble"},{match:"[a-zA-Z0-9_-]",name:"string.key.json5"}]},number:{patterns:[{comment:"handles hexadecimal numbers",match:"(0x)[0-9a-fA-f]*",name:"constant.hex.numeric.json5"},{comment:"handles integer and decimal numbers",match:"[+-.]?(?=[1-9]|0(?!\\d))\\d+(\\.\\d+)?([eE][+-]?\\d+)?",name:"constant.dec.numeric.json5"}]},object:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dictionary.begin.json5"}},comment:"a json5 object",end:"\\}",endCaptures:{0:{name:"punctuation.definition.dictionary.end.json5"}},name:"meta.structure.dictionary.json5",patterns:[{include:"#comments"},{comment:"the json5 object key",include:"#key"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.dictionary.key-value.json5"}},end:"(,)|(?=\\})",endCaptures:{1:{name:"punctuation.separator.dictionary.pair.json5"}},name:"meta.structure.dictionary.value.json5",patterns:[{comment:"the json5 object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json5"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json5"}]},stringDouble:{begin:'["]',beginCaptures:{0:{name:"punctuation.definition.string.begin.json5"}},end:'["]',endCaptures:{0:{name:"punctuation.definition.string.end.json5"}},name:"string.quoted.json5",patterns:[{match:`(?x: +\\\\ +(?: +["\\\\/bfnrt] +| +u +[0-9a-fA-F]{4} +) +)`,name:"constant.character.escape.json5"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json5"}]},stringSingle:{begin:"[']",beginCaptures:{0:{name:"punctuation.definition.string.begin.json5"}},end:"[']",endCaptures:{0:{name:"punctuation.definition.string.end.json5"}},name:"string.quoted.json5",patterns:[{match:`(?x: +\\\\ +(?: +["\\\\/bfnrt] +| +u +[0-9a-fA-F]{4} +) +)`,name:"constant.character.escape.json5"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json5"}]},value:{comment:"the 'value' diagram at http://json.org",patterns:[{include:"#constant"},{include:"#infinity"},{include:"#number"},{include:"#stringSingle"},{include:"#stringDouble"},{include:"#array"},{include:"#object"}]}},scopeName:"source.json5"});var e=[n];export{e as default}; diff --git a/assets/chunks/jsonc.DYI1rfmx.js b/assets/chunks/jsonc.DYI1rfmx.js new file mode 100644 index 000000000..151a4816b --- /dev/null +++ b/assets/chunks/jsonc.DYI1rfmx.js @@ -0,0 +1,25 @@ +const n=Object.freeze({displayName:"JSON with Comments",name:"jsonc",patterns:[{include:"#value"}],repository:{array:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.json.comments"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.json.comments"}},name:"meta.structure.array.json.comments",patterns:[{include:"#value"},{match:",",name:"punctuation.separator.array.json.comments"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json.comments"}]},comments:{patterns:[{begin:"/\\*\\*(?!/)",captures:{0:{name:"punctuation.definition.comment.json.comments"}},end:"\\*/",name:"comment.block.documentation.json.comments"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.json.comments"}},end:"\\*/",name:"comment.block.json.comments"},{captures:{1:{name:"punctuation.definition.comment.json.comments"}},match:"(//).*$\\n?",name:"comment.line.double-slash.js"}]},constant:{match:"\\b(?:true|false|null)\\b",name:"constant.language.json.comments"},number:{match:`(?x) +-? +(?: +0 +| +[1-9] +\\d* +) +(?: +(?: +\\. +\\d+ +)? +(?: +[eE] +[+-]? +\\d+ +)? +)?`,name:"constant.numeric.json.comments"},object:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dictionary.begin.json.comments"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dictionary.end.json.comments"}},name:"meta.structure.dictionary.json.comments",patterns:[{comment:"the JSON object key",include:"#objectkey"},{include:"#comments"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.dictionary.key-value.json.comments"}},end:"(,)|(?=\\})",endCaptures:{1:{name:"punctuation.separator.dictionary.pair.json.comments"}},name:"meta.structure.dictionary.value.json.comments",patterns:[{comment:"the JSON object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json.comments"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json.comments"}]},objectkey:{begin:'"',beginCaptures:{0:{name:"punctuation.support.type.property-name.begin.json.comments"}},end:'"',endCaptures:{0:{name:"punctuation.support.type.property-name.end.json.comments"}},name:"string.json.comments support.type.property-name.json.comments",patterns:[{include:"#stringcontent"}]},string:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.json.comments"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.json.comments"}},name:"string.quoted.double.json.comments",patterns:[{include:"#stringcontent"}]},stringcontent:{patterns:[{match:`(?x) +\\\\ +(?: +["\\\\/bfnrt] +| +u +[0-9a-fA-F]{4})`,name:"constant.character.escape.json.comments"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json.comments"}]},value:{patterns:[{include:"#constant"},{include:"#number"},{include:"#string"},{include:"#array"},{include:"#object"},{include:"#comments"}]}},scopeName:"source.json.comments"});var e=[n];export{e as default}; diff --git a/assets/chunks/jsonl.BUpeXbsf.js b/assets/chunks/jsonl.BUpeXbsf.js new file mode 100644 index 000000000..d18f3192c --- /dev/null +++ b/assets/chunks/jsonl.BUpeXbsf.js @@ -0,0 +1,25 @@ +const n=Object.freeze({displayName:"JSON Lines",name:"jsonl",patterns:[{include:"#value"}],repository:{array:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.json.lines"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.json.lines"}},name:"meta.structure.array.json.lines",patterns:[{include:"#value"},{match:",",name:"punctuation.separator.array.json.lines"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json.lines"}]},comments:{patterns:[{begin:"/\\*\\*(?!/)",captures:{0:{name:"punctuation.definition.comment.json.lines"}},end:"\\*/",name:"comment.block.documentation.json.lines"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.json.lines"}},end:"\\*/",name:"comment.block.json.lines"},{captures:{1:{name:"punctuation.definition.comment.json.lines"}},match:"(//).*$\\n?",name:"comment.line.double-slash.js"}]},constant:{match:"\\b(?:true|false|null)\\b",name:"constant.language.json.lines"},number:{match:`(?x) +-? +(?: +0 +| +[1-9] +\\d* +) +(?: +(?: +\\. +\\d+ +)? +(?: +[eE] +[+-]? +\\d+ +)? +)?`,name:"constant.numeric.json.lines"},object:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dictionary.begin.json.lines"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dictionary.end.json.lines"}},name:"meta.structure.dictionary.json.lines",patterns:[{comment:"the JSON object key",include:"#objectkey"},{include:"#comments"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.dictionary.key-value.json.lines"}},end:"(,)|(?=\\})",endCaptures:{1:{name:"punctuation.separator.dictionary.pair.json.lines"}},name:"meta.structure.dictionary.value.json.lines",patterns:[{comment:"the JSON object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json.lines"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json.lines"}]},objectkey:{begin:'"',beginCaptures:{0:{name:"punctuation.support.type.property-name.begin.json.lines"}},end:'"',endCaptures:{0:{name:"punctuation.support.type.property-name.end.json.lines"}},name:"string.json.lines support.type.property-name.json.lines",patterns:[{include:"#stringcontent"}]},string:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.json.lines"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.json.lines"}},name:"string.quoted.double.json.lines",patterns:[{include:"#stringcontent"}]},stringcontent:{patterns:[{match:`(?x) +\\\\ +(?: +["\\\\/bfnrt] +| +u +[0-9a-fA-F]{4})`,name:"constant.character.escape.json.lines"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json.lines"}]},value:{patterns:[{include:"#constant"},{include:"#number"},{include:"#string"},{include:"#array"},{include:"#object"},{include:"#comments"}]}},scopeName:"source.json.lines"});var e=[n];export{e as default}; diff --git a/assets/chunks/jsonnet.C9d3aiqh.js b/assets/chunks/jsonnet.C9d3aiqh.js new file mode 100644 index 000000000..f6af7941b --- /dev/null +++ b/assets/chunks/jsonnet.C9d3aiqh.js @@ -0,0 +1 @@ +const n=Object.freeze({displayName:"Jsonnet",name:"jsonnet",patterns:[{include:"#expression"},{include:"#keywords"}],repository:{"builtin-functions":{patterns:[{match:"\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](filter|floor|force|length|log|makeArray|mantissa)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](objectFields|objectHas|pow|sin|sqrt|tan|type|thisFile)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](abs|assertEqual|escapeString(Bash|Dollars|Json|Python))\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](filterMap|flattenArrays|foldl|foldr|format|join)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](lines|manifest(Ini|Python(Vars)?)|map|max|min|mod)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](set|set(Diff|Inter|Member|Union)|sort)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](range|split|stringChars|substr|toString|uniq)\\b",name:"support.function.jsonnet"}]},comment:{patterns:[{begin:"/\\*",end:"\\*/",name:"comment.block.jsonnet"},{match:"//.*$",name:"comment.line.jsonnet"},{match:"#.*$",name:"comment.block.jsonnet"}]},"double-quoted-strings":{begin:'"',end:'"',name:"string.quoted.double.jsonnet",patterns:[{match:'\\\\(["\\\\/bfnrt]|(u[0-9a-fA-F]{4}))',name:"constant.character.escape.jsonnet"},{match:'\\\\[^"\\\\/bfnrtu]',name:"invalid.illegal.jsonnet"}]},expression:{patterns:[{include:"#literals"},{include:"#comment"},{include:"#single-quoted-strings"},{include:"#double-quoted-strings"},{include:"#triple-quoted-strings"},{include:"#builtin-functions"},{include:"#functions"}]},functions:{patterns:[{begin:"\\b([a-zA-Z_][a-z0-9A-Z_]*)\\s*\\(",beginCaptures:{1:{name:"entity.name.function.jsonnet"}},end:"\\)",name:"meta.function",patterns:[{include:"#expression"}]}]},keywords:{patterns:[{match:"[!:~\\+\\-&\\|\\^=<>\\*\\/%]",name:"keyword.operator.jsonnet"},{match:"\\$",name:"keyword.other.jsonnet"},{match:"\\b(self|super|import|importstr|local|tailstrict)\\b",name:"keyword.other.jsonnet"},{match:"\\b(if|then|else|for|in|error|assert)\\b",name:"keyword.control.jsonnet"},{match:"\\b(function)\\b",name:"storage.type.jsonnet"},{match:"[a-zA-Z_][a-z0-9A-Z_]*\\s*(:::|\\+:::)",name:"variable.parameter.jsonnet"},{match:"[a-zA-Z_][a-z0-9A-Z_]*\\s*(::|\\+::)",name:"entity.name.type"},{match:"[a-zA-Z_][a-z0-9A-Z_]*\\s*(:|\\+:)",name:"variable.parameter.jsonnet"}]},literals:{patterns:[{match:"\\b(true|false|null)\\b",name:"constant.language.jsonnet"},{match:"\\b(\\d+([Ee][+-]?\\d+)?)\\b",name:"constant.numeric.jsonnet"},{match:"\\b\\d+[.]\\d*([Ee][+-]?\\d+)?\\b",name:"constant.numeric.jsonnet"},{match:"\\b[.]\\d+([Ee][+-]?\\d+)?\\b",name:"constant.numeric.jsonnet"}]},"single-quoted-strings":{begin:"'",end:"'",name:"string.quoted.double.jsonnet",patterns:[{match:"\\\\(['\\\\/bfnrt]|(u[0-9a-fA-F]{4}))",name:"constant.character.escape.jsonnet"},{match:"\\\\[^'\\\\/bfnrtu]",name:"invalid.illegal.jsonnet"}]},"triple-quoted-strings":{patterns:[{begin:"\\|\\|\\|",end:"\\|\\|\\|",name:"string.quoted.triple.jsonnet"}]}},scopeName:"source.jsonnet"});var t=[n];export{t as default}; diff --git a/assets/chunks/jssm.Dble9ECP.js b/assets/chunks/jssm.Dble9ECP.js new file mode 100644 index 000000000..5009443e9 --- /dev/null +++ b/assets/chunks/jssm.Dble9ECP.js @@ -0,0 +1 @@ +const n=Object.freeze({displayName:"JSSM",fileTypes:["jssm","jssm_state"],name:"jssm",patterns:[{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.mn"}},comment:"block comment",end:"\\*/",name:"comment.block.jssm"},{begin:"//",comment:"block comment",end:"$",name:"comment.line.jssm"},{begin:"\\${",captures:{0:{name:"entity.name.function"}},comment:"js outcalls",end:"}",name:"keyword.other"},{comment:"semver",match:"([0-9]*)(\\.)([0-9]*)(\\.)([0-9]*)",name:"constant.numeric"},{comment:"jssm language tokens",match:"graph_layout(\\s*)(:)",name:"constant.language.jssmLanguage"},{comment:"jssm language tokens",match:"machine_name(\\s*)(:)",name:"constant.language.jssmLanguage"},{comment:"jssm language tokens",match:"machine_version(\\s*)(:)",name:"constant.language.jssmLanguage"},{comment:"jssm language tokens",match:"jssm_version(\\s*)(:)",name:"constant.language.jssmLanguage"},{comment:"transitions",match:"<->",name:"keyword.control.transition.jssmArrow.legal_legal"},{comment:"transitions",match:"<-",name:"keyword.control.transition.jssmArrow.legal_none"},{comment:"transitions",match:"->",name:"keyword.control.transition.jssmArrow.none_legal"},{comment:"transitions",match:"<=>",name:"keyword.control.transition.jssmArrow.main_main"},{comment:"transitions",match:"=>",name:"keyword.control.transition.jssmArrow.none_main"},{comment:"transitions",match:"<=",name:"keyword.control.transition.jssmArrow.main_none"},{comment:"transitions",match:"<~>",name:"keyword.control.transition.jssmArrow.forced_forced"},{comment:"transitions",match:"~>",name:"keyword.control.transition.jssmArrow.none_forced"},{comment:"transitions",match:"<~",name:"keyword.control.transition.jssmArrow.forced_none"},{comment:"transitions",match:"<-=>",name:"keyword.control.transition.jssmArrow.legal_main"},{comment:"transitions",match:"<=->",name:"keyword.control.transition.jssmArrow.main_legal"},{comment:"transitions",match:"<-~>",name:"keyword.control.transition.jssmArrow.legal_forced"},{comment:"transitions",match:"<~->",name:"keyword.control.transition.jssmArrow.forced_legal"},{comment:"transitions",match:"<=~>",name:"keyword.control.transition.jssmArrow.main_forced"},{comment:"transitions",match:"<~=>",name:"keyword.control.transition.jssmArrow.forced_main"},{comment:"edge probability annotation",match:"([0-9]+)%",name:"constant.numeric.jssmProbability"},{comment:"action annotation",match:"\\'[^']*\\'",name:"constant.character.jssmAction"},{comment:"jssm label annotation",match:'\\"[^"]*\\"',name:"entity.name.tag.jssmLabel.doublequoted"},{comment:"jssm label annotation",match:"([a-zA-Z0-9_.+&()#@!?,])",name:"entity.name.tag.jssmLabel.atom"}],scopeName:"source.jssm",aliases:["fsl"]});var t=[n];export{t as default}; diff --git a/assets/chunks/jsx.CsyrCbsw.js b/assets/chunks/jsx.CsyrCbsw.js new file mode 100644 index 000000000..b32aeb712 --- /dev/null +++ b/assets/chunks/jsx.CsyrCbsw.js @@ -0,0 +1,699 @@ +const e=Object.freeze({displayName:"JSX",name:"jsx",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{"access-modifier":{match:"(?]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},name:"meta.objectliteral.js.jsx",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.js.jsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.js.jsx"}},name:"meta.array.literal.js.jsx",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"variable.parameter.js.jsx"}},match:"(?:(?)",name:"meta.arrow.js.jsx"},{begin:`(?x) (?: +(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +) +)`,beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.arrow.js.jsx",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.js.jsx"}},end:"((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",name:"meta.arrow.js.jsx",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"arrow-return-type":{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.return.type.arrow.js.jsx",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"async-modifier":{match:"(?\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.js.jsx"}},end:"(?=$)",name:"comment.line.triple-slash.directive.js.jsx",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.js.jsx"},2:{name:"entity.name.tag.directive.js.jsx"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.js.jsx"}},name:"meta.tag.js.jsx",patterns:[{match:"path|types|no-default-lib|lib|name|resolution-mode",name:"entity.other.attribute-name.directive.js.jsx"},{match:"=",name:"keyword.operator.assignment.js.jsx"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:`(?x) +((@)(?:access|api)) +\\s+ +(private|protected|public) +\\b`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:`(?x) +((@)author) +\\s+ +( +[^@\\s<>*/] +(?:[^@<>*/]|\\*[^/])* +) +(?: +\\s* +(<) +([^>\\s]+) +(>) +)?`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +((@)borrows) \\s+ +((?:[^@\\s*/]|\\*[^/])+) +\\s+ (as) \\s+ +((?:[^@\\s*/]|\\*[^/])+)`},{begin:"((@)example)\\s+",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=@|\\*/)",name:"meta.example.jsdoc",patterns:[{match:"^\\s\\*\\s+"},{begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},contentName:"constant.other.description.jsdoc",end:"()|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{0:{name:"source.embedded.js.jsx"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +((@)see) +\\s+ +(?: + +( +(?=https?://) +(?:[^\\s*]|\\*[^/])+ +) +| + +( +(?! + +https?:// +| + +(?:\\[[^\\[\\]]*\\])? +{@(?:link|linkcode|linkplain|tutorial)\\b +) + +(?:[^@\\s*/]|\\*[^/])+ +) +)`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:`(?x) +((@)template) +\\s+ +# One or more valid identifiers +( +[A-Za-z_$] +[\\w$.\\[\\]]* +(?: +\\s* , \\s* +[A-Za-z_$] +[\\w$.\\[\\]]* +)* +)`},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:`(?x) +( +(@) +(?:arg|argument|const|constant|member|namespace|param|var) +) +\\s+ +( +[A-Za-z_$] +[\\w$.\\[\\]]* +)`},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"(?:[^@\\s*/]|\\*[^/])+",name:"entity.name.type.instance.jsdoc"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"},{captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.js.jsx"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:`(?x) +(\\[)\\s* +[\\w$]+ +(?: +(?:\\[\\])? +\\. +[\\w$]+ +)* +(?: +\\s* +(=) +\\s* +( + +(?> +"(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?" | +'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | +\\[ (?:(?:\\*(?!/))|[^*])*? \\] | +(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* +)* +) +)? +\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,name:"variable.other.jsdoc"}]},{begin:`(?x) +( +(@) +(?:define|enum|exception|export|extends|lends|implements|modifies +|namespace|private|protected|returns?|satisfies|suppress|this|throws|type +|yields?) +) +\\s+(?={)`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +( +(@) +(?:alias|augments|callback|constructs|emits|event|fires|exports? +|extends|external|function|func|host|lends|listens|interface|memberof!? +|method|module|mixes|mixin|name|requires|see|this|typedef|uses) +) +\\s+ +( +(?: +[^{}@\\s*] | \\*[^/] +)+ +)`},{begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)"}]},"enum-declaration":{begin:"(?) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"variable.parameter.js.jsx variable.language.this.js.jsx"},4:{name:"variable.parameter.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}},match:"(?x)(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.js.jsx"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.js.jsx"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.js.jsx"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.js.jsx"},{captures:{1:{name:"keyword.operator.logical.js.jsx"},2:{name:"keyword.operator.assignment.compound.js.jsx"},3:{name:"keyword.operator.arithmetic.js.jsx"}},match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.js.jsx"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.js.jsx"},{match:"\\=",name:"keyword.operator.assignment.js.jsx"},{match:"--",name:"keyword.operator.decrement.js.jsx"},{match:"\\+\\+",name:"keyword.operator.increment.js.jsx"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.js.jsx"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.js.jsx"},2:{name:"keyword.operator.arithmetic.js.jsx"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.operator.assignment.compound.js.jsx"},2:{name:"keyword.operator.arithmetic.js.jsx"}},match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#jsx"},{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:`(?x)(?) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{match:"\\#?[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.property.js.jsx variable.object.property.js.jsx"},{match:"\\?",name:"keyword.operator.optional.js.jsx"},{match:"\\!",name:"keyword.operator.definiteassignment.js.jsx"}]},"for-loop":{begin:"(?\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",name:"meta.function-call.js.jsx",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",name:"meta.function-call.js.jsx",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:"\\?\\.",name:"meta.function-call.js.jsx punctuation.accessor.optional.js.jsx"},{match:"\\!",name:"meta.function-call.js.jsx keyword.operator.definiteassignment.js.jsx"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.js.jsx"}]},"function-declaration":{begin:"(?) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +))`},{captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"variable.other.constant.property.js.jsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"variable.other.property.js.jsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",name:"variable.other.constant.js.jsx"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.other.readwrite.js.jsx"}]},"if-statement":{patterns:[{begin:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?))",end:"(/>)|(?:())",endCaptures:{1:{name:"punctuation.definition.tag.end.js.jsx"},2:{name:"punctuation.definition.tag.begin.js.jsx"},3:{name:"entity.name.tag.namespace.js.jsx"},4:{name:"punctuation.separator.namespace.js.jsx"},5:{name:"entity.name.tag.js.jsx"},6:{name:"support.class.component.js.jsx"},7:{name:"punctuation.definition.tag.end.js.jsx"}},name:"meta.tag.js.jsx",patterns:[{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.js.jsx"},2:{name:"entity.name.tag.namespace.js.jsx"},3:{name:"punctuation.separator.namespace.js.jsx"},4:{name:"entity.name.tag.js.jsx"},5:{name:"support.class.component.js.jsx"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.end.js.jsx"}},contentName:"meta.jsx.children.js.jsx",end:"(?=|/\\*|//)`},"jsx-tag-attributes":{begin:"\\s+",end:"(?=[/]?>)",name:"meta.tag.attributes.js.jsx",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attributes-illegal":{match:"\\S+",name:"invalid.illegal.attribute.js.jsx"},"jsx-tag-in-expression":{begin:`(?x) +(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s* +(?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) +(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))`,end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag"}]},"jsx-tag-without-attributes":{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.js.jsx"},2:{name:"entity.name.tag.namespace.js.jsx"},3:{name:"punctuation.separator.namespace.js.jsx"},4:{name:"entity.name.tag.js.jsx"},5:{name:"support.class.component.js.jsx"},6:{name:"punctuation.definition.tag.end.js.jsx"}},contentName:"meta.jsx.children.js.jsx",end:"()",endCaptures:{1:{name:"punctuation.definition.tag.begin.js.jsx"},2:{name:"entity.name.tag.namespace.js.jsx"},3:{name:"punctuation.separator.namespace.js.jsx"},4:{name:"entity.name.tag.js.jsx"},5:{name:"support.class.component.js.jsx"},6:{name:"punctuation.definition.tag.end.js.jsx"}},name:"meta.tag.without-attributes.js.jsx",patterns:[{include:"#jsx-children"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag-without-attributes"}]},label:{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{1:{name:"entity.name.label.js.jsx"},2:{name:"punctuation.separator.label.js.jsx"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{captures:{1:{name:"entity.name.label.js.jsx"},2:{name:"punctuation.separator.label.js.jsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"method-declaration":{patterns:[{begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.js.jsx"},4:{name:"storage.modifier.async.js.jsx"},5:{name:"keyword.operator.new.js.jsx"},6:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.js.jsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:`(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.js.jsx"},4:{name:"storage.modifier.async.js.jsx"},5:{name:"storage.type.property.js.jsx"},6:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.js.jsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:`(?x)(?=((\\b(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"storage.type.property.js.jsx"},3:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.js.jsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:`(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"storage.type.property.js.jsx"},3:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",patterns:[{include:"#comment"},{include:"#string"}]},{begin:`(?x)(?=(\\b(?) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,name:"meta.object.member.js.jsx"},{captures:{0:{name:"meta.object-literal.key.js.jsx"}},match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.js.jsx"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.js.jsx"}},end:"(?=,|\\})",name:"meta.object.member.js.jsx",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.js.jsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.js.jsx"},{captures:{1:{name:"keyword.control.as.js.jsx"},2:{name:"storage.modifier.js.jsx"}},match:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"parameter-name":{patterns:[{captures:{1:{name:"storage.modifier.js.jsx"}},match:"(?) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"variable.parameter.js.jsx variable.language.this.js.jsx"},4:{name:"variable.parameter.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}},match:"(?x)(?:(?])",name:"meta.type.annotation.js.jsx",patterns:[{include:"#type"}]}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.js.jsx meta.return.type.arrow.js.jsx keyword.operator.type.annotation.js.jsx"}},contentName:"meta.arrow.js.jsx meta.return.type.arrow.js.jsx",end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:"(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.js.jsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.js.jsx"},2:{name:"keyword.other.js.jsx"}},name:"string.regexp.js.jsx",patterns:[{include:"#regexp"}]},{begin:"((?"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"return-type":{patterns:[{begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\()) +| +(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))`},{captures:{1:{name:"support.type.object.module.js.jsx"},2:{name:"support.type.object.module.js.jsx"},3:{name:"punctuation.accessor.js.jsx"},4:{name:"punctuation.accessor.optional.js.jsx"},5:{name:"support.type.object.module.js.jsx"}},match:"(?\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.tagged-template.js.jsx"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js.jsx"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js.jsx"}},contentName:"meta.embedded.line.js.jsx",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js.jsx"}},name:"meta.template.expression.js.jsx",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js.jsx"},2:{name:"string.template.js.jsx punctuation.definition.string.template.begin.js.jsx"}},contentName:"string.template.js.jsx",end:"`",endCaptures:{0:{name:"string.template.js.jsx punctuation.definition.string.template.end.js.jsx"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js.jsx"}},contentName:"meta.embedded.line.js.jsx",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js.jsx"}},name:"meta.template.expression.js.jsx",patterns:[{include:"#type"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.js.jsx"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.js.jsx"}},patterns:[{include:"#expression"}]},"this-literal":{match:"(?])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.js.jsx",patterns:[{include:"#type"}]},{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.js.jsx",patterns:[{include:"#type"}]}]},"type-arguments":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.js.jsx"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.js.jsx"}},name:"meta.type.parameters.js.jsx",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{0:{name:"keyword.operator.type.js.jsx"}},match:"(?)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:"(?) +)) +) +) +)`,end:"(?<=\\))",name:"meta.type.function.js.jsx",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.js.jsx"}},end:"(?)(?:\\?]|//|$)",name:"meta.type.function.return.js.jsx",patterns:[{include:"#type-function-return-type-core"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.js.jsx"}},end:"(?)(?]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.type.function.return.js.jsx",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-infer":{patterns:[{captures:{1:{name:"keyword.operator.expression.infer.js.jsx"},2:{name:"entity.name.type.js.jsx"},3:{name:"keyword.operator.expression.extends.js.jsx"}},match:"(?)",endCaptures:{1:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx"}},patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.js.jsx"},2:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx"}},contentName:"meta.type.parameters.js.jsx",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx"}},patterns:[{include:"#type-arguments-body"}]},{captures:{1:{name:"entity.name.type.module.js.jsx"},2:{name:"punctuation.accessor.js.jsx"},3:{name:"punctuation.accessor.optional.js.jsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"entity.name.type.js.jsx"}]},"type-object":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},name:"meta.object.type.js.jsx",patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.js.jsx"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.js.jsx"}},end:"(?=\\S)"},{match:"(?)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.js.jsx"}},name:"meta.type.parameters.js.jsx",patterns:[{include:"#comment"},{match:"(?)",name:"keyword.operator.assignment.js.jsx"}]},"type-paren-or-function-parameters":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},name:"meta.type.paren.cover.js.jsx",patterns:[{captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"entity.name.function.js.jsx variable.language.this.js.jsx"},4:{name:"entity.name.function.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}},match:`(?x)(?:(?) +)) +)) +)) | +(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))`},{captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"variable.parameter.js.jsx variable.language.this.js.jsx"},4:{name:"variable.parameter.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}},match:"(?x)(?:(?:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:"(?) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,beginCaptures:{1:{name:"meta.definition.variable.js.jsx variable.other.constant.js.jsx entity.name.function.js.jsx"}},end:"(?=$|^|[;,=}]|((?) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,beginCaptures:{1:{name:"meta.definition.variable.js.jsx entity.name.function.js.jsx"},2:{name:"keyword.operator.definiteassignment.js.jsx"}},end:"(?=$|^|[;,=}]|((?\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.js.jsx"}},end:"(?=$|^|[,);}\\]]|((?]))"},{captures:{1:{name:"keyword.other.julia"},2:{name:"keyword.operator.dots.julia"},3:{name:"entity.name.function.julia"},4:{name:"support.type.julia"}},comment:"similar regex to previous, but with keyword not 1-line syntax",match:"\\b(function|macro)(?:\\s+(?:(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}-¡]|[^\\P{Mc}-¡]|[^\\P{Nd}-¡]|[^\\P{Pc}-¡]|[^\\P{Sk}-¡]|[^\\P{Me}-¡]|[^\\P{No}-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*(\\.))?((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}-¡]|[^\\P{Mc}-¡]|[^\\P{Nd}-¡]|[^\\P{Pc}-¡]|[^\\P{Sk}-¡]|[^\\P{Me}-¡]|[^\\P{No}-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?|\\s*)(?=\\()"}]},keyword:{patterns:[{match:"\\b(?|->|-->|<--|←|→|↔|↚|↛|↞|↠|↢|↣|↦|↤|↮|⇎|⇍|⇏|⇐|⇒|⇔|⇴|⇶|⇷|⇸|⇹|⇺|⇻|⇼|⇽|⇾|⇿|⟵|⟶|⟷|⟹|⟺|⟻|⟼|⟽|⟾|⟿|⤀|⤁|⤂|⤃|⤄|⤅|⤆|⤇|⤌|⤍|⤎|⤏|⤐|⤑|⤔|⤕|⤖|⤗|⤘|⤝|⤞|⤟|⤠|⥄|⥅|⥆|⥇|⥈|⥊|⥋|⥎|⥐|⥒|⥓|⥖|⥗|⥚|⥛|⥞|⥟|⥢|⥤|⥦|⥧|⥨|⥩|⥪|⥫|⥬|⥭|⥰|⧴|⬱|⬰|⬲|⬳|⬴|⬵|⬶|⬷|⬸|⬹|⬺|⬻|⬼|⬽|⬾|⬿|⭀|⭁|⭂|⭃|⥷|⭄|⥺|⭇|⭈|⭉|⭊|⭋|⭌|←|→|⇜|⇝|↜|↝|↩|↪|↫|↬|↼|↽|⇀|⇁|⇄|⇆|⇇|⇉|⇋|⇌|⇚|⇛|⇠|⇢|↷|↶|↺|↻|=>)",name:"keyword.operator.arrow.julia"},{match:"(?::=|\\+=|-=|\\*=|//=|/=|\\.//=|\\./=|\\.\\*=|\\\\=|\\.\\\\=|\\^=|\\.\\^=|%=|\\.%=|÷=|\\.÷=|\\|=|&=|\\.&=|⊻=|\\.⊻=|\\$=|<<=|>>=|>>>=|=(?!=))",name:"keyword.operator.update.julia"},{match:"(?:<<|>>>|>>|\\.>>>|\\.>>|\\.<<)",name:"keyword.operator.shift.julia"},{captures:{1:{name:"keyword.operator.relation.types.julia"},2:{name:"support.type.julia"},3:{name:"keyword.operator.transpose.julia"}},match:`(?:\\s*(::|>:|<:)\\s*((?:(?:Union)?\\([^)]*\\)|[[:alpha:]_$∇][[:word:]⁺-ₜ!′\\.]*(?:(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})|(?:".+?(?)>=|>|<|≥|≤|===|==|≡|!=|≠|!==|≢|∈|∉|∋|∌|⊆|⊈|⊂|⊄|⊊|∝|∊|∍|∥|∦|∷|∺|∻|∽|∾|≁|≃|≂|≄|≅|≆|≇|≈|≉|≊|≋|≌|≍|≎|≐|≑|≒|≓|≖|≗|≘|≙|≚|≛|≜|≝|≞|≟|≣|≦|≧|≨|≩|≪|≫|≬|≭|≮|≯|≰|≱|≲|≳|≴|≵|≶|≷|≸|≹|≺|≻|≼|≽|≾|≿|⊀|⊁|⊃|⊅|⊇|⊉|⊋|⊏|⊐|⊑|⊒|⊜|⊩|⊬|⊮|⊰|⊱|⊲|⊳|⊴|⊵|⊶|⊷|⋍|⋐|⋑|⋕|⋖|⋗|⋘|⋙|⋚|⋛|⋜|⋝|⋞|⋟|⋠|⋡|⋢|⋣|⋤|⋥|⋦|⋧|⋨|⋩|⋪|⋫|⋬|⋭|⋲|⋳|⋴|⋵|⋶|⋷|⋸|⋹|⋺|⋻|⋼|⋽|⋾|⋿|⟈|⟉|⟒|⦷|⧀|⧁|⧡|⧣|⧤|⧥|⩦|⩧|⩪|⩫|⩬|⩭|⩮|⩯|⩰|⩱|⩲|⩳|⩵|⩶|⩷|⩸|⩹|⩺|⩻|⩼|⩽|⩾|⩿|⪀|⪁|⪂|⪃|⪄|⪅|⪆|⪇|⪈|⪉|⪊|⪋|⪌|⪍|⪎|⪏|⪐|⪑|⪒|⪓|⪔|⪕|⪖|⪗|⪘|⪙|⪚|⪛|⪜|⪝|⪞|⪟|⪠|⪡|⪢|⪣|⪤|⪥|⪦|⪧|⪨|⪩|⪪|⪫|⪬|⪭|⪮|⪯|⪰|⪱|⪲|⪳|⪴|⪵|⪶|⪷|⪸|⪹|⪺|⪻|⪼|⪽|⪾|⪿|⫀|⫁|⫂|⫃|⫄|⫅|⫆|⫇|⫈|⫉|⫊|⫋|⫌|⫍|⫎|⫏|⫐|⫑|⫒|⫓|⫔|⫕|⫖|⫗|⫘|⫙|⫷|⫸|⫹|⫺|⊢|⊣|⟂|⫪|⫫|<:|>:))",name:"keyword.operator.relation.julia"},{match:"(?<=\\s)(?:\\?)(?=\\s)",name:"keyword.operator.ternary.julia"},{match:"(?<=\\s)(?:\\:)(?=\\s)",name:"keyword.operator.ternary.julia"},{match:"(?:\\|\\||&&|(?)",name:"keyword.operator.applies.julia"},{match:"(?:\\||\\.\\||\\&|\\.\\&|~|¬|\\.~|⊻|\\.⊻)",name:"keyword.operator.bitwise.julia"},{match:"\\.?(?:\\+\\+|\\-\\-|\\+|\\-|−|¦|\\||⊕|⊖|⊞|⊟|∪|∨|⊔|±|∓|∔|∸|≏|⊎|⊻|⊽|⋎|⋓|⟇|⧺|⧻|⨈|⨢|⨣|⨤|⨥|⨦|⨧|⨨|⨩|⨪|⨫|⨬|⨭|⨮|⨹|⨺|⩁|⩂|⩅|⩊|⩌|⩏|⩐|⩒|⩔|⩖|⩗|⩛|⩝|⩡|⩢|⩣|\\*|//?|⌿|÷|%|&|·|·|⋅|∘|×|\\\\|∩|∧|⊗|⊘|⊙|⊚|⊛|⊠|⊡|⊓|∗|∙|∤|⅋|≀|⊼|⋄|⋆|⋇|⋉|⋊|⋋|⋌|⋏|⋒|⟑|⦸|⦼|⦾|⦿|⧶|⧷|⨇|⨰|⨱|⨲|⨳|⨴|⨵|⨶|⨷|⨸|⨻|⨼|⨽|⩀|⩃|⩄|⩋|⩍|⩎|⩑|⩓|⩕|⩘|⩚|⩜|⩞|⩟|⩠|⫛|⊍|▷|⨝|⟕|⟖|⟗|⨟|\\^|↑|↓|⇵|⟰|⟱|⤈|⤉|⤊|⤋|⤒|⤓|⥉|⥌|⥍|⥏|⥑|⥔|⥕|⥘|⥙|⥜|⥝|⥠|⥡|⥣|⥥|⥮|⥯|↑|↓|√|∛|∜|⋆|±|∓)",name:"keyword.operator.arithmetic.julia"},{match:"(?:∘)",name:"keyword.operator.compose.julia"},{match:"(?:::|(?<=\\s)isa(?=\\s))",name:"keyword.operator.isa.julia"},{match:"(?:(?<=\\s)in(?=\\s))",name:"keyword.operator.relation.in.julia"},{match:"(?:\\.(?=(?:@|_|\\p{L}))|\\.\\.+|…|⁝|⋮|⋱|⋰|⋯)",name:"keyword.operator.dots.julia"},{match:"(?:\\$)(?=.+)",name:"keyword.operator.interpolation.julia"},{captures:{2:{name:"keyword.operator.transposed-variable.julia"}},match:"((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}-¡]|[^\\P{Mc}-¡]|[^\\P{Nd}-¡]|[^\\P{Pc}-¡]|[^\\P{Sk}-¡]|[^\\P{Me}-¡]|[^\\P{No}-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(('|(\\.'))*\\.?')"},{captures:{1:{name:"bracket.end.julia"},2:{name:"keyword.operator.transposed-matrix.julia"}},match:"(\\])((?:'|(?:\\.'))*\\.?')"},{captures:{1:{name:"bracket.end.julia"},2:{name:"keyword.operator.transposed-parens.julia"}},match:"(\\))((?:'|(?:\\.'))*\\.?')"}]},parentheses:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"meta.bracket.julia"}},end:"(\\))((?:\\.)?'*)",endCaptures:{1:{name:"meta.bracket.julia"},2:{name:"keyword.operator.transpose.julia"}},patterns:[{include:"#self_no_for_block"}]}]},punctuation:{patterns:[{match:",",name:"punctuation.separator.comma.julia"},{match:";",name:"punctuation.separator.semicolon.julia"}]},self_no_for_block:{comment:"Same as $self, but does not contain #for_block. 'outer' is not valid in some contexts (e.g. generators, comprehensions, indexing), so use this when matching those in begin/end patterns. Keep this up-to-date with $self!",patterns:[{include:"#operator"},{include:"#array"},{include:"#string"},{include:"#parentheses"},{include:"#bracket"},{include:"#function_decl"},{include:"#function_call"},{include:"#keyword"},{include:"#number"},{include:"#comment"},{include:"#type_decl"},{include:"#symbol"},{include:"#punctuation"}]},string:{patterns:[{begin:'(?:(@doc)\\s((?:doc)?""")|(doc"""))',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},end:'(""") ?(->)?',endCaptures:{1:{name:"punctuation.definition.string.end.julia"},2:{name:"keyword.operator.arrow.julia"}},name:"string.docstring.julia",patterns:[{include:"#string_escaped_char"},{include:"#string_dollar_sign_interpolate"}]},{begin:'(i?cxx)(""")',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},contentName:"meta.embedded.inline.cpp",end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"embed.cxx.julia",patterns:[{include:"source.cpp#root_context"},{include:"#string_dollar_sign_interpolate"}]},{begin:'(py)(""")',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},contentName:"meta.embedded.inline.python",end:'([\\s\\w]*)(""")',endCaptures:{2:{name:"punctuation.definition.string.end.julia"}},name:"embed.python.julia",patterns:[{include:"source.python"},{include:"#string_dollar_sign_interpolate"}]},{begin:'(js)(""")',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},contentName:"meta.embedded.inline.javascript",end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"embed.js.julia",patterns:[{include:"source.js"},{include:"#string_dollar_sign_interpolate"}]},{begin:'(R)(""")',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},contentName:"meta.embedded.inline.r",end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"embed.R.julia",patterns:[{include:"source.r"},{include:"#string_dollar_sign_interpolate"}]},{begin:'(raw)(""")',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"string.quoted.other.julia",patterns:[{include:"#string_escaped_char"}]},{begin:'(raw)(")',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"string.quoted.other.julia",patterns:[{include:"#string_escaped_char"}]},{begin:'(sql)(""")',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},contentName:"meta.embedded.inline.sql",end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"embed.sql.julia",patterns:[{include:"source.sql"},{include:"#string_dollar_sign_interpolate"}]},{begin:'var"""',end:'"""',name:"constant.other.symbol.julia",patterns:[{include:"#string_escaped_char"}]},{begin:'var"',end:'"',name:"constant.other.symbol.julia",patterns:[{include:"#string_escaped_char"}]},{begin:'^\\s?(doc)?(""")\\s?$',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},comment:`This only matches docstrings that start and end with triple quotes on +their own line in the void`,end:'(""")',endCaptures:{1:{name:"punctuation.definition.string.end.julia"}},name:"string.docstring.julia",patterns:[{include:"#string_escaped_char"},{include:"#string_dollar_sign_interpolate"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.julia"}},end:"'(?!')",endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"string.quoted.single.julia",patterns:[{include:"#string_escaped_char"}]},{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.multiline.begin.julia"}},comment:"multi-line string with triple double quotes",end:'"""',endCaptures:{0:{name:"punctuation.definition.string.multiline.end.julia"}},name:"string.quoted.triple.double.julia",patterns:[{include:"#string_escaped_char"},{include:"#string_dollar_sign_interpolate"}]},{begin:'"(?!"")',beginCaptures:{0:{name:"punctuation.definition.string.begin.julia"}},comment:"String with single pair of double quotes. Regex matches isolated double quote",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"string.quoted.double.julia",patterns:[{include:"#string_escaped_char"},{include:"#string_dollar_sign_interpolate"}]},{begin:'r"""',beginCaptures:{0:{name:"punctuation.definition.string.regexp.begin.julia"}},end:'(""")([imsx]{0,4})?',endCaptures:{1:{name:"punctuation.definition.string.regexp.end.julia"},2:{comment:"I took this scope name from python regex grammar",name:"keyword.other.option-toggle.regexp.julia"}},name:"string.regexp.julia",patterns:[{include:"#string_escaped_char"}]},{begin:'r"',beginCaptures:{0:{name:"punctuation.definition.string.regexp.begin.julia"}},end:'(")([imsx]{0,4})?',endCaptures:{1:{name:"punctuation.definition.string.regexp.end.julia"},2:{comment:"I took this scope name from python regex grammar",name:"keyword.other.option-toggle.regexp.julia"}},name:"string.regexp.julia",patterns:[{include:"#string_escaped_char"}]},{begin:'(?!:_)(?:struct|mutable\\s+struct|abstract\\s+type|primitive\\s+type)\\s+((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}-¡]|[^\\P{Mc}-¡]|[^\\P{Nd}-¡]|[^\\P{Pc}-¡]|[^\\P{Sk}-¡]|[^\\P{Me}-¡]|[^\\P{No}-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(\\s*(<:)\\s*(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}-¡]|[^\\P{Mc}-¡]|[^\\P{Nd}-¡]|[^\\P{Pc}-¡]|[^\\P{Sk}-¡]|[^\\P{Me}-¡]|[^\\P{No}-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*(?:{.*})?)?",name:"meta.type.julia"}]}},scopeName:"source.julia",embeddedLangs:["cpp","python","javascript","r","sql"],aliases:["jl"]});var l=[...u,...e,...n,...t,...a,A];export{l as default}; diff --git a/assets/chunks/kotlin.BIxS-Weu.js b/assets/chunks/kotlin.BIxS-Weu.js new file mode 100644 index 000000000..17a34ad66 --- /dev/null +++ b/assets/chunks/kotlin.BIxS-Weu.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Kotlin",fileTypes:["kt","kts"],name:"kotlin",patterns:[{include:"#import"},{include:"#package"},{include:"#code"}],repository:{"annotation-simple":{match:"(?<([^<>]|\\g)+>)?"},code:{patterns:[{include:"#comments"},{include:"#keywords"},{include:"#annotation-simple"},{include:"#annotation-site-list"},{include:"#annotation-site"},{include:"#class-declaration"},{include:"#object"},{include:"#type-alias"},{include:"#function"},{include:"#variable-declaration"},{include:"#type-constraint"},{include:"#type-annotation"},{include:"#function-call"},{include:"#method-reference"},{include:"#key"},{include:"#string"},{include:"#string-empty"},{include:"#string-multiline"},{include:"#character"},{include:"#lambda-arrow"},{include:"#operators"},{include:"#self-reference"},{include:"#decimal-literal"},{include:"#hex-literal"},{include:"#binary-literal"},{include:"#boolean-literal"},{include:"#null-literal"}]},"comment-block":{begin:"/\\*(?!\\*)",end:"\\*/",name:"comment.block.kotlin"},"comment-javadoc":{patterns:[{begin:"/\\*\\*",end:"\\*/",name:"comment.block.javadoc.kotlin",patterns:[{match:"@(return|constructor|receiver|sample|see|author|since|suppress)\\b",name:"keyword.other.documentation.javadoc.kotlin"},{captures:{1:{name:"keyword.other.documentation.javadoc.kotlin"},2:{name:"variable.parameter.kotlin"}},match:"(@param|@property)\\s+(\\S+)"},{captures:{1:{name:"keyword.other.documentation.javadoc.kotlin"},2:{name:"variable.parameter.kotlin"}},match:"(@param)\\[(\\S+)\\]"},{captures:{1:{name:"keyword.other.documentation.javadoc.kotlin"},2:{name:"entity.name.type.class.kotlin"}},match:"(@(?:exception|throws))\\s+(\\S+)"},{captures:{1:{name:"keyword.other.documentation.javadoc.kotlin"},2:{name:"entity.name.type.class.kotlin"},3:{name:"variable.parameter.kotlin"}},match:"{(@link)\\s+(\\S+)?#([\\w$]+\\s*\\([^\\(\\)]*\\)).*}"}]}]},"comment-line":{begin:"//",end:"$",name:"comment.line.double-slash.kotlin"},comments:{patterns:[{include:"#comment-line"},{include:"#comment-block"},{include:"#comment-javadoc"}]},"control-keywords":{match:"\\b(if|else|while|do|when|try|throw|break|continue|return|for)\\b",name:"keyword.control.kotlin"},"decimal-literal":{match:"\\b\\d[\\d_]*(\\.[\\d_]+)?((e|E)\\d+)?(u|U)?(L|F|f)?\\b",name:"constant.numeric.decimal.kotlin"},function:{captures:{1:{name:"storage.type.function.kotlin"},2:{patterns:[{include:"#type-parameter"}]},4:{name:"entity.name.type.class.extension.kotlin"},5:{name:"entity.name.function.declaration.kotlin"}},match:"\\b(fun)\\b\\s*(?<([^<>]|\\g)+>)?\\s*(?:(?:(\\w+)\\.)?(\\b\\w+\\b|`[^`]+`))?"},"function-call":{captures:{1:{name:"entity.name.function.call.kotlin"},2:{patterns:[{include:"#type-parameter"}]}},match:"\\??\\.?(\\b\\w+\\b|`[^`]+`)\\s*(?<([^<>]|\\g)+>)?\\s*(?=[({])"},"hard-keywords":{match:"\\b(as|typeof|is|in)\\b",name:"keyword.hard.kotlin"},"hex-literal":{match:"0(x|X)[A-Fa-f0-9][A-Fa-f0-9_]*(u|U)?",name:"constant.numeric.hex.kotlin"},import:{begin:"\\b(import)\\b\\s*",beginCaptures:{1:{name:"storage.type.import.kotlin"}},contentName:"entity.name.package.kotlin",end:";|$",name:"meta.import.kotlin",patterns:[{include:"#comments"},{include:"#hard-keywords"},{match:"\\*",name:"variable.language.wildcard.kotlin"}]},key:{captures:{1:{name:"variable.parameter.kotlin"},2:{name:"keyword.operator.assignment.kotlin"}},match:"\\b(\\w=)\\s*(=)"},keywords:{patterns:[{include:"#prefix-modifiers"},{include:"#postfix-modifiers"},{include:"#soft-keywords"},{include:"#hard-keywords"},{include:"#control-keywords"}]},"lambda-arrow":{match:"->",name:"storage.type.function.arrow.kotlin"},"method-reference":{captures:{1:{name:"entity.name.function.reference.kotlin"}},match:"\\??::(\\b\\w+\\b|`[^`]+`)"},"null-literal":{match:"\\bnull\\b",name:"constant.language.null.kotlin"},object:{captures:{1:{name:"storage.type.object.kotlin"},2:{name:"entity.name.type.object.kotlin"}},match:"\\b(object)(?:\\s+(\\b\\w+\\b|`[^`]+`))?"},operators:{patterns:[{match:"(===?|\\!==?|<=|>=|<|>)",name:"keyword.operator.comparison.kotlin"},{match:"([+*/%-]=)",name:"keyword.operator.assignment.arithmetic.kotlin"},{match:"(=)",name:"keyword.operator.assignment.kotlin"},{match:"([+*/%-])",name:"keyword.operator.arithmetic.kotlin"},{match:"(!|&&|\\|\\|)",name:"keyword.operator.logical.kotlin"},{match:"(--|\\+\\+)",name:"keyword.operator.increment-decrement.kotlin"},{match:"(\\.\\.)",name:"keyword.operator.range.kotlin"}]},package:{begin:"\\b(package)\\b\\s*",beginCaptures:{1:{name:"storage.type.package.kotlin"}},contentName:"entity.name.package.kotlin",end:";|$",name:"meta.package.kotlin",patterns:[{include:"#comments"}]},"postfix-modifiers":{match:"\\b(where|by|get|set)\\b",name:"storage.modifier.other.kotlin"},"prefix-modifiers":{match:"\\b(abstract|final|enum|open|annotation|sealed|data|override|final|lateinit|private|protected|public|internal|inner|companion|noinline|crossinline|vararg|reified|tailrec|operator|infix|inline|external|const|suspend|value)\\b",name:"storage.modifier.other.kotlin"},"self-reference":{match:"\\b(this|super)(@\\w+)?\\b",name:"variable.language.this.kotlin"},"soft-keywords":{match:"\\b(catch|finally|field)\\b",name:"keyword.soft.kotlin"},string:{begin:'(?<([^<>]|\\g)+>)?"},"type-annotation":{captures:{0:{patterns:[{include:"#type-parameter"}]}},match:`(?|(?[<(]([^<>()"']|\\g)+[)>]))+`},"type-parameter":{patterns:[{match:"\\b\\w+\\b",name:"entity.name.type.kotlin"},{match:"\\b(in|out)\\b",name:"storage.modifier.kotlin"}]},"unescaped-annotation":{match:"\\b[\\w\\.]+\\b",name:"entity.name.type.annotation.kotlin"},"variable-declaration":{captures:{1:{name:"storage.type.variable.kotlin"},2:{patterns:[{include:"#type-parameter"}]}},match:"\\b(val|var)\\b\\s*(?<([^<>]|\\g)+>)?"}},scopeName:"source.kotlin",aliases:["kt","kts"]});var t=[e];export{t as default}; diff --git a/assets/chunks/kusto.DIr-ordK.js b/assets/chunks/kusto.DIr-ordK.js new file mode 100644 index 000000000..a55b98fdb --- /dev/null +++ b/assets/chunks/kusto.DIr-ordK.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Kusto",fileTypes:["csl","kusto","kql"],name:"kusto",patterns:[{comment:"Tabular operators: common helper operators",match:"\\b(by|from|of|to|step|with)\\b",name:"keyword.other.operator.kusto"},{comment:"Query statements: https://docs.microsoft.com/en-us/azure/kusto/query/statements",match:"\\b(let|set|alias|declare|pattern|query_parameters|restrict|access|set)\\b",name:"keyword.control.kusto"},{comment:"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/datatypes-string-operators",match:"\\b(and|or|has_all|has_any|matches|regex)\\b",name:"keyword.other.operator.kusto"},{captures:{1:{name:"support.function.kusto"},2:{patterns:[{include:"#Strings"}]}},comment:"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/clusterfunction",match:"\\b(cluster|database)(?:\\s*\\(\\s*(.+?)\\s*\\))?(?!\\w)",name:"meta.special.database.kusto"},{comment:"Special functions: https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/tablefunction",match:"\\b(external_table|materialized_view|materialize|table|toscalar)\\b",name:"support.function.kusto"},{comment:"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/betweenoperator",match:"(?]*([>\\]]))?(?:(\\[)[^\\]]*(\\]))?(\\{)",captures:{1:{name:"keyword.control.cite.latex"},2:{name:"punctuation.definition.keyword.latex"},3:{patterns:[{include:"#autocites-arg"}]},4:{name:"punctuation.definition.arguments.optional.begin.latex"},5:{name:"punctuation.definition.arguments.optional.end.latex"},6:{name:"punctuation.definition.arguments.optional.begin.latex"},7:{name:"punctuation.definition.arguments.optional.end.latex"},8:{name:"punctuation.definition.arguments.begin.latex"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.latex"}},name:"meta.citation.latex",patterns:[{captures:{1:{name:"comment.line.percentage.tex"},2:{name:"punctuation.definition.comment.tex"}},match:"((%).*)$"},{match:"[\\p{Alphabetic}\\p{Number}:.-]+",name:"constant.other.reference.citation.latex"}]},{begin:"((\\\\)bibentry)(\\{)",captures:{1:{name:"keyword.control.cite.latex"},2:{name:"punctuation.definition.keyword.latex"},3:{name:"punctuation.definition.arguments.begin.latex"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.latex"}},name:"meta.citation.latex",patterns:[{match:"[\\p{Alphabetic}\\p{Number}:.]+",name:"constant.other.reference.citation.latex"}]},{begin:"((\\\\)(?:\\w*[rR]ef\\*?))(\\{)",beginCaptures:{1:{name:"keyword.control.ref.latex"},2:{name:"punctuation.definition.keyword.latex"},3:{name:"punctuation.definition.arguments.begin.latex"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.latex"}},name:"meta.reference.label.latex",patterns:[{match:"[\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]",name:"constant.other.reference.label.latex"}]},{include:"#definition-label"},{begin:"((\\\\)(?:verb|Verb|spverb)\\*?)\\s*((\\\\)scantokens)(\\{)",beginCaptures:{1:{name:"support.function.verb.latex"},2:{name:"punctuation.definition.function.latex"},3:{name:"support.function.verb.latex"},4:{name:"punctuation.definition.verb.latex"},5:{name:"punctuation.definition.begin.latex"}},contentName:"markup.raw.verb.latex",end:"(\\})",endCaptures:{1:{name:"punctuation.definition.end.latex"}},name:"meta.function.verb.latex",patterns:[{include:"$self"}]},{captures:{1:{name:"support.function.verb.latex"},2:{name:"punctuation.definition.function.latex"},3:{name:"punctuation.definition.verb.latex"},4:{name:"markup.raw.verb.latex"},5:{name:"punctuation.definition.verb.latex"}},match:"((\\\\)(?:verb|Verb|spverb)\\*?)\\s*((?<=\\s)\\S|[^a-zA-Z])(.*?)(\\3|$)",name:"meta.function.verb.latex"},{captures:{1:{name:"support.function.verb.latex"},2:{name:"punctuation.definition.function.latex"},3:{patterns:[{include:"#optional-arg"}]},4:{name:"punctuation.definition.arguments.begin.latex"},5:{name:"punctuation.definition.arguments.end.latex"},6:{name:"punctuation.definition.verb.latex"},7:{name:"markup.raw.verb.latex"},8:{name:"punctuation.definition.verb.latex"},9:{name:"punctuation.definition.verb.latex"},10:{name:"markup.raw.verb.latex"},11:{name:"punctuation.definition.verb.latex"}},match:"((\\\\)(?:mint|mintinline))((?:\\[[^\\[]*?\\])?)(\\{)[a-zA-Z]*(\\})(?:(?:([^a-zA-Z\\{])(.*?)(\\6))|(?:(\\{)(.*?)(\\})))",name:"meta.function.verb.latex"},{captures:{1:{name:"support.function.verb.latex"},2:{name:"punctuation.definition.function.latex"},3:{patterns:[{include:"#optional-arg"}]},4:{name:"punctuation.definition.verb.latex"},5:{name:"markup.raw.verb.latex"},6:{name:"punctuation.definition.verb.latex"},7:{name:"punctuation.definition.verb.latex"},8:{name:"markup.raw.verb.latex"},9:{name:"punctuation.definition.verb.latex"}},match:"((\\\\)[a-z]+inline)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",name:"meta.function.verb.latex"},{captures:{1:{name:"support.function.verb.latex"},2:{name:"punctuation.definition.function.latex"},3:{patterns:[{include:"#optional-arg"}]},4:{name:"punctuation.definition.verb.latex"},5:{name:"source.python",patterns:[{include:"source.python"}]},6:{name:"punctuation.definition.verb.latex"},7:{name:"punctuation.definition.verb.latex"},8:{name:"source.python",patterns:[{include:"source.python"}]},9:{name:"punctuation.definition.verb.latex"}},match:"((\\\\)(?:(?:py|pycon|pylab|pylabcon|sympy|sympycon)[cv]?|pyq|pycq|pyif))((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",name:"meta.function.verb.latex"},{captures:{1:{name:"support.function.verb.latex"},2:{name:"punctuation.definition.function.latex"},3:{patterns:[{include:"#optional-arg"}]},4:{name:"punctuation.definition.verb.latex"},5:{name:"source.julia",patterns:[{include:"source.julia"}]},6:{name:"punctuation.definition.verb.latex"},7:{name:"punctuation.definition.verb.latex"},8:{name:"source.julia",patterns:[{include:"source.julia"}]},9:{name:"punctuation.definition.verb.latex"}},match:"((\\\\)(?:jl|julia)[cv]?)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",name:"meta.function.verb.latex"},{begin:"((\\\\)(?:directlua|luadirect))(\\{)",beginCaptures:{1:{name:"support.function.verb.latex"},2:{name:"punctuation.definition.function.latex"},3:{name:"punctuation.definition.arguments.begin.latex"}},contentName:"source.lua",end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.latex"}},patterns:[{include:"source.lua"}]},{match:"\\\\(?:newline|pagebreak|clearpage|linebreak|pause)(?:\\b)",name:"keyword.control.layout.latex"},{begin:"\\\\\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.latex"}},end:"\\\\\\)",endCaptures:{0:{name:"punctuation.definition.string.end.latex"}},name:"meta.math.block.latex support.class.math.block.environment.latex",patterns:[{include:"text.tex#math"},{include:"$self"}]},{begin:"\\$\\$",beginCaptures:{0:{name:"punctuation.definition.string.begin.latex"}},end:"\\$\\$",endCaptures:{0:{name:"punctuation.definition.string.end.latex"}},name:"meta.math.block.latex support.class.math.block.environment.latex",patterns:[{match:"\\\\\\$",name:"constant.character.escape.latex"},{include:"text.tex#math"},{include:"$self"}]},{begin:"\\$",beginCaptures:{0:{name:"punctuation.definition.string.begin.tex"}},end:"\\$",endCaptures:{0:{name:"punctuation.definition.string.end.tex"}},name:"meta.math.block.tex support.class.math.block.tex",patterns:[{match:"\\\\\\$",name:"constant.character.escape.latex"},{include:"text.tex#math"},{include:"$self"}]},{begin:"\\\\\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.latex"}},end:"\\\\\\]",endCaptures:{0:{name:"punctuation.definition.string.end.latex"}},name:"meta.math.block.latex support.class.math.block.environment.latex",patterns:[{include:"text.tex#math"},{include:"$self"}]},{captures:{1:{name:"punctuation.definition.constant.latex"}},match:"(\\\\)(text(s(terling|ixoldstyle|urd|e(ction|venoldstyle|rvicemark))|yen|n(ineoldstyle|umero|aira)|c(ircledP|o(py(left|right)|lonmonetary)|urrency|e(nt(oldstyle)?|lsius))|t(hree(superior|oldstyle|quarters(emdash)?)|i(ldelow|mes)|w(o(superior|oldstyle)|elveudash)|rademark)|interrobang(down)?|zerooldstyle|o(hm|ne(superior|half|oldstyle|quarter)|penbullet|rd(feminine|masculine))|d(i(scount|ed|v(orced)?)|o(ng|wnarrow|llar(oldstyle)?)|egree|agger(dbl)?|blhyphen(char)?)|uparrow|p(ilcrow|e(so|r(t(housand|enthousand)|iodcentered))|aragraph|m)|e(stimated|ightoldstyle|uro)|quotes(traight(dblbase|base)|ingle)|f(iveoldstyle|ouroldstyle|lorin|ractionsolidus)|won|l(not|ira|e(ftarrow|af)|quill|angle|brackdbl)|a(s(cii(caron|dieresis|acute|grave|macron|breve)|teriskcentered)|cutedbl)|r(ightarrow|e(cipe|ferencemark|gistered)|quill|angle|brackdbl)|g(uarani|ravedbl)|m(ho|inus|u(sicalnote)?|arried)|b(igcircle|orn|ullet|lank|a(ht|rdbl)|rokenbar)))\\b",name:"constant.character.latex"},{captures:{1:{name:"punctuation.definition.variable.latex"}},match:"(\\\\)[cgl](?:[_\\p{Alphabetic}@]+)+_(?:bitset|clist|dim|fp|int|muskip|str|tl|bool|box|coffin|flag|fparray|intarray|ior|iow|prop|regex|seq)",name:"variable.other.latex3.latex"},{captures:{1:{name:"punctuation.definition.column-specials.begin.latex"},2:{name:"punctuation.definition.column-specials.end.latex"}},match:"(?:<|>)(\\{)\\$(\\})",name:"meta.column-specials.latex"},{include:"text.tex"}],repository:{"autocites-arg":{patterns:[{captures:{1:{name:"punctuation.definition.arguments.optional.begin.latex"},2:{name:"punctuation.definition.arguments.optional.end.latex"},3:{name:"punctuation.definition.arguments.optional.begin.latex"},4:{name:"punctuation.definition.arguments.optional.end.latex"},5:{name:"punctuation.definition.arguments.begin.latex"},6:{name:"constant.other.reference.citation.latex"},7:{name:"punctuation.definition.arguments.end.latex"},8:{patterns:[{include:"#autocites-arg"}]}},match:"(?:(\\()[^\\)]*(\\))){0,2}(?:(\\[)[^\\]]*(\\])){0,2}(\\{)([\\p{Alphabetic}\\p{Number}:.]+)(\\})(.*)"}]},"begin-env-tokenizer":{captures:{1:{name:"support.function.be.latex"},2:{name:"punctuation.definition.function.latex"},3:{name:"punctuation.definition.arguments.begin.latex"},4:{name:"variable.parameter.function.latex"},5:{name:"punctuation.definition.arguments.end.latex"},6:{name:"punctuation.definition.arguments.optional.begin.latex"},7:{patterns:[{include:"$self"}]},8:{name:"punctuation.definition.arguments.optional.end.latex"},9:{name:"punctuation.definition.arguments.begin.latex"},10:{name:"variable.parameter.function.latex"},11:{name:"punctuation.definition.arguments.end.latex"}},match:"\\s*((\\\\)(?:begin|end))(\\{)([a-zA-Z]*\\*?)(\\})(?:(\\[)([^\\]]*)(\\])){,2}(?:(\\{)([^{}]*)(\\}))?"},"definition-label":{begin:"((\\\\)label)((?:\\[[^\\[]*?\\])*)(\\{)",beginCaptures:{1:{name:"keyword.control.label.latex"},2:{name:"punctuation.definition.keyword.latex"},3:{patterns:[{include:"#optional-arg"}]},4:{name:"punctuation.definition.arguments.begin.latex"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.latex"}},name:"meta.definition.label.latex",patterns:[{match:"[\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]",name:"variable.parameter.definition.label.latex"}]},"multiline-optional-arg":{begin:"\\G\\[",beginCaptures:{0:{name:"punctuation.definition.arguments.optional.begin.latex"}},contentName:"variable.parameter.function.latex",end:"\\]",endCaptures:{0:{name:"punctuation.definition.arguments.optional.end.latex"}},name:"meta.parameter.optional.latex",patterns:[{include:"$self"}]},"multiline-optional-arg-no-highlight":{begin:"\\G\\[",beginCaptures:{0:{name:"punctuation.definition.arguments.optional.begin.latex"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.arguments.optional.end.latex"}},name:"meta.parameter.optional.latex",patterns:[{include:"$self"}]},"optional-arg":{patterns:[{captures:{1:{name:"punctuation.definition.arguments.optional.begin.latex"},2:{name:"variable.parameter.function.latex"},3:{name:"punctuation.definition.arguments.optional.end.latex"}},match:"(\\[)([^\\[]*?)(\\])",name:"meta.parameter.optional.latex"}]}},scopeName:"text.tex.latex",embeddedLangs:["tex","shellscript","css","gnuplot","haskell","html","java","julia","javascript","lua","python","ruby","rust","typescript","xml","yaml","scala"]});var T=[...e,...n,...t,...a,...i,...o,...l,...r,...u,...d,...c,...s,...m,...p,...g,...b,...x,f];export{T as default}; diff --git a/assets/chunks/less.Du6_OKDb.js b/assets/chunks/less.Du6_OKDb.js new file mode 100644 index 000000000..aa19b8a99 --- /dev/null +++ b/assets/chunks/less.Du6_OKDb.js @@ -0,0 +1,159 @@ +const e=Object.freeze({displayName:"Less",name:"less",patterns:[{include:"#comment-block"},{include:"#less-namespace-accessors"},{include:"#less-extend"},{include:"#at-rules"},{include:"#less-variable-assignment"},{include:"#property-list"},{include:"#selector"}],repository:{"angle-type":{captures:{1:{name:"keyword.other.unit.less"}},match:"(?i:[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(deg|grad|rad|turn))\\b",name:"constant.numeric.less"},"at-charset":{begin:"\\s*((@)charset\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.charset.less"},2:{name:"punctuation.definition.keyword.less"}},end:"\\s*((?=;|$))",name:"meta.at-rule.charset.less",patterns:[{include:"#literal-string"}]},"at-counter-style":{begin:"\\s*((@)counter-style\\b)\\s+(?:(?i:\\b(decimal|none)\\b)|(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*))\\s*(?=\\{|$)",captures:{1:{name:"keyword.control.at-rule.counter-style.less"},2:{name:"punctuation.definition.keyword.less"},3:{name:"invalid.illegal.counter-style-name.less"},4:{name:"entity.other.counter-style-name.css"}},end:"\\s*(\\})",endCaptures:{1:{name:"punctuation.definition.block.begin.less"}},name:"meta.at-rule.counter-style.less",patterns:[{include:"#comment-block"},{include:"#rule-list"}]},"at-custom-media":{begin:"(?=\\s*@custom-media\\b)",end:"\\s*(?=;)",name:"meta.at-rule.custom-media.less",patterns:[{captures:{0:{name:"punctuation.section.property-list.less"}},match:"\\s*;"},{captures:{1:{name:"keyword.control.at-rule.custom-media.less"},2:{name:"punctuation.definition.keyword.less"},3:{name:"support.constant.custom-media.less"}},match:"\\s*((@)custom-media)(?=.*?)"},{include:"#media-query-list"}]},"at-font-face":{begin:"\\s*((@)font-face)\\s*(?=\\{|$)",captures:{1:{name:"keyword.control.at-rule.font-face.less"},2:{name:"punctuation.definition.keyword.less"}},end:"\\s*(\\})",endCaptures:{1:{name:"punctuation.definition.block.end.less"}},name:"meta.at-rule.font-face.less",patterns:[{include:"#comment-block"},{include:"#rule-list"}]},"at-import":{begin:"\\s*((@)import\\b)\\s*",beginCaptures:{1:{name:"keyword.control.at-rule.import.less"},2:{name:"punctuation.definition.keyword.less"}},end:"\\;",endCaptures:{0:{name:"punctuation.terminator.rule.less"}},name:"meta.at-rule.import.less",patterns:[{include:"#url-function"},{include:"#less-variables"},{begin:`(?<=(["'])|(["']\\)))\\s*`,end:"\\s*(?=\\;)",patterns:[{include:"#media-query"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.group.less",patterns:[{match:"reference|inline|less|css|once|multiple|optional",name:"constant.language.import-directive.less"},{include:"#comma-delimiter"}]},{include:"#literal-string"}]},"at-keyframes":{begin:"\\s*((@)(-webkit-|-moz-|-o-)?keyframes)(?=.*?\\{)",beginCaptures:{1:{name:"keyword.control.at-rule.keyframe.less"},2:{name:"punctuation.definition.keyword.less"},3:{name:"support.type.property-vendor.less"},4:{name:"support.constant.keyframe.less"}},end:"\\s*(\\})",endCaptures:{1:{name:"punctuation.definition.block.end.less"}},patterns:[{begin:"\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.begin.less"}},end:"(?=\\})",patterns:[{captures:{1:{name:"keyword.other.keyframe-selector.less"},2:{name:"constant.numeric.less"},3:{name:"keyword.other.unit.less"}},match:"\\s*(?:(from|to)|((?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)(%)))\\s*,?\\s*"},{include:"$self"}]},{begin:"\\s*(?=[^{;])",end:"\\s*(?=\\{)",name:"meta.at-rule.keyframe.less",patterns:[{include:"#keyframe-name"}]}]},"at-media":{begin:"(?=\\s*@media\\b)",end:"\\s*(\\})",endCaptures:{1:{name:"punctuation.definition.block.end.less"}},patterns:[{begin:"\\s*((@)media)",beginCaptures:{1:{name:"keyword.control.at-rule.media.less"},2:{name:"punctuation.definition.keyword.less"},3:{name:"support.constant.media.less"}},end:"\\s*(?=\\{)",name:"meta.at-rule.media.less",patterns:[{include:"#media-query-list"}]},{begin:"\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.begin.less"}},end:"(?=\\})",patterns:[{include:"#rule-list-body"},{include:"$self"}]}]},"at-namespace":{begin:"\\s*((@)namespace)\\s+",beginCaptures:{1:{name:"keyword.control.at-rule.namespace.less"},2:{name:"punctuation.definition.keyword.less"}},end:"\\;",endCaptures:{0:{name:"punctuation.terminator.rule.less"}},name:"meta.at-rule.namespace.less",patterns:[{include:"#url-function"},{include:"#literal-string"},{match:"(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",name:"entity.name.constant.namespace-prefix.less"}]},"at-page":{captures:{1:{name:"keyword.control.at-rule.page.less"},2:{name:"punctuation.definition.keyword.less"},3:{name:"punctuation.definition.entity.less"},4:{name:"entity.other.attribute-name.pseudo-class.less"}},match:"\\s*((@)page)\\s*(?:(:)(first|left|right))?\\s*(?=\\{|$)",name:"meta.at-rule.page.less",patterns:[{include:"#comment-block"},{include:"#rule-list"}]},"at-rules":{patterns:[{include:"#at-charset"},{include:"#at-counter-style"},{include:"#at-custom-media"},{include:"#at-font-face"},{include:"#at-media"},{include:"#at-import"},{include:"#at-keyframes"},{include:"#at-namespace"},{include:"#at-page"},{include:"#at-supports"},{include:"#at-viewport"}]},"at-supports":{begin:"(?=\\s*@supports\\b)",end:"(?=\\s*)(\\})",endCaptures:{1:{name:"punctuation.definition.block.end.less"}},patterns:[{begin:"\\s*((@)supports)",beginCaptures:{1:{name:"keyword.control.at-rule.supports.less"},2:{name:"punctuation.definition.keyword.less"},3:{name:"support.constant.supports.less"}},end:"\\s*(?=\\{)",name:"meta.at-rule.supports.less",patterns:[{include:"#at-supports-operators"},{include:"#at-supports-parens"}]},{begin:"\\s*(\\{)",beginCaptures:{1:{name:"punctuation.section.property-list.begin.less"}},end:"(?=\\})",patterns:[{include:"#rule-list-body"},{include:"$self"}]}]},"at-supports-operators":{match:"\\b(?:and|or|not)\\b",name:"keyword.operator.logic.less"},"at-supports-parens":{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.group.less",patterns:[{include:"#at-supports-operators"},{include:"#at-supports-parens"},{include:"#rule-list-body"}]},"at-viewport":{begin:"((@(-ms-)?)viewport)",beginCaptures:{1:{name:"keyword.control.at-rule.viewport.less"},2:{name:"punctuation.definition.keyword.less"},3:{name:"support.type.vendor-prefix.less"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.end.less"}},name:"meta.at-rule.viewport.less",patterns:[{begin:"\\{",captures:{0:{name:"punctuation.definition.block.begin.less"}},end:"(?=\\})",name:"meta.block.less",patterns:[{include:"#rule-list-body"}]}]},"attr-function":{begin:"\\b(attr)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#qualified-name"},{include:"#literal-string"},{begin:"(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",end:"(?=\\))",name:"entity.other.attribute-name.less",patterns:[{match:"(?x)\\b((?i:em|ex|ch|rem)|(?i:vw|vh|vmin|vmax)|(?i:cm|mm|q|in|pt|pc|px|fr)|(?i:deg|grad|rad|turn)|(?i:s|ms)|(?i:Hz|kHz)|(?i:dpi|dpcm|dppx))\\b",name:"keyword.other.unit.less"},{include:"#comma-delimiter"},{include:"#property-value-constants"},{include:"#numeric-values"}]},{include:"#color-values"}]}]},"builtin-functions":{patterns:[{include:"#attr-function"},{include:"#calc-function"},{include:"#color-functions"},{include:"#counter-functions"},{include:"#cross-fade-function"},{include:"#cubic-bezier-function"},{include:"#filter-function"},{include:"#format-function"},{include:"#gradient-functions"},{include:"#grid-repeat-function"},{include:"#image-function"},{include:"#less-functions"},{include:"#local-function"},{include:"#minmax-function"},{include:"#regexp-function"},{include:"#shape-functions"},{include:"#steps-function"},{include:"#symbols-function"},{include:"#transform-functions"},{include:"#url-function"},{include:"#var-function"}]},"calc-function":{begin:"\\b(calc)(?=\\()",beginCaptures:{1:{name:"support.function.calc.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-strings"},{include:"#var-function"},{include:"#calc-function"},{include:"#attr-function"},{include:"#less-math"}]}]},"color-adjuster-operators":{match:"[\\-\\+*](?=\\s+)",name:"keyword.operator.less"},"color-functions":{patterns:[{begin:"\\b(rgba?)(?=\\()",beginCaptures:{1:{name:"support.function.color.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-strings"},{include:"#less-variables"},{include:"#comma-delimiter"},{include:"#percentage-type"},{include:"#number-type"}]}]},{begin:"\\b(hs(l|v)a?|hwb)(?=\\()",beginCaptures:{1:{name:"support.function.color.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-strings"},{include:"#less-variables"},{include:"#comma-delimiter"},{include:"#angle-type"},{include:"#percentage-type"},{include:"#number-type"}]}]},{include:"#less-color-functions"}]},"color-values":{patterns:[{include:"#color-functions"},{include:"#less-functions"},{include:"#less-variables"},{match:"\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b",name:"support.constant.color.w3c-standard-color-name.less"},{match:"\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\b",name:"support.constant.color.w3c-extended-color-keywords.less"},{match:"\\b((?i)currentColor|transparent)\\b",name:"support.constant.color.w3c-special-color-keyword.less"},{captures:{1:{name:"punctuation.definition.constant.less"}},match:"(#)(\\h{3}|\\h{4}|\\h{6}|\\h{8})\\b",name:"constant.other.color.rgb-value.less"}]},"comma-delimiter":{captures:{1:{name:"punctuation.separator.less"}},match:"\\s*(,)\\s*"},"comment-block":{patterns:[{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.less"}},end:"\\*/",name:"comment.block.less"},{include:"#comment-line"}]},"comment-line":{captures:{1:{name:"punctuation.definition.comment.less"}},match:"(//).*$\\n?",name:"comment.line.double-slash.less"},"counter-functions":{patterns:[{begin:"\\b(counter)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-strings"},{include:"#less-variables"},{match:"(?:--(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))+|-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",name:"entity.other.counter-name.less"},{begin:"(?=,)",end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{match:"\\b((?xi:arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)|none)\\b",name:"support.constant.property-value.counter-style.less"}]}]}]},{begin:"\\b(counters)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",name:"entity.other.counter-name.less string.unquoted.less"},{begin:"(?=,)",end:"(?=\\))",patterns:[{include:"#less-strings"},{include:"#less-variables"},{include:"#literal-string"},{include:"#comma-delimiter"},{match:"\\b((?xi:arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)|none)\\b",name:"support.constant.property-value.counter-style.less"}]}]}]}]},"cross-fade-function":{patterns:[{begin:"\\b(cross-fade)(?=\\()",beginCaptures:{1:{name:"support.function.image.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#percentage-type"},{include:"#color-values"},{include:"#image-type"},{include:"#literal-string"},{include:"#unquoted-string"}]}]}]},"cubic-bezier-function":{begin:"\\b(cubic-bezier)(?=\\()",beginCaptures:{0:{name:"support.function.timing.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#number-type"}]}]},"custom-property-name":{captures:{1:{name:"punctuation.definition.custom-property.less"},2:{name:"support.type.custom-property.name.less"}},match:"\\s*(--)((?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))+)",name:"support.type.custom-property.less"},dimensions:{patterns:[{include:"#angle-type"},{include:"#frequency-type"},{include:"#length-type"},{include:"#resolution-type"},{include:"#time-type"}]},"filter-function":{begin:"\\b(filter)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",name:"meta.group.less",patterns:[{include:"#comma-delimiter"},{include:"#image-type"},{include:"#literal-string"},{include:"#filter-functions"}]}]},"filter-functions":{patterns:[{include:"#less-functions"},{begin:"\\b(blur)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#length-type"}]}]},{begin:"\\b(brightness|contrast|grayscale|invert|opacity|saturate|sepia)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#percentage-type"},{include:"#number-type"},{include:"#less-functions"}]}]},{begin:"\\b(drop-shadow)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#length-type"},{include:"#color-values"}]}]},{begin:"\\b(hue-rotate)(?=\\()",beginCaptures:{1:{name:"support.function.filter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#angle-type"}]}]}]},"format-function":{patterns:[{begin:"\\b(format)(?=\\()",beginCaptures:{0:{name:"support.function.format.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#literal-string"}]}]}]},"frequency-type":{captures:{1:{name:"keyword.other.unit.less"}},match:"(?i:[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(Hz|kHz))\\b",name:"constant.numeric.less"},"gradient-functions":{patterns:[{begin:"\\b((?:repeating-)?linear-gradient)(?=\\()",beginCaptures:{1:{name:"support.function.gradient.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#angle-type"},{include:"#color-values"},{include:"#percentage-type"},{include:"#length-type"},{include:"#comma-delimiter"},{match:"\\bto\\b",name:"keyword.other.less"},{match:"\\b(top|right|bottom|left)\\b",name:"support.constant.property-value.less"}]}]},{begin:"\\b((?:repeating-)?radial-gradient)(?=\\()",beginCaptures:{1:{name:"support.function.gradient.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#color-values"},{include:"#percentage-type"},{include:"#length-type"},{include:"#comma-delimiter"},{match:"\\b(at|circle|ellipse)\\b",name:"keyword.other.less"},{match:"\\b(top|right|bottom|left|center|(farthest|closest)-(corner|side))\\b",name:"support.constant.property-value.less"}]}]}]},"grid-repeat-function":{begin:"\\b(repeat)(?=\\()",beginCaptures:{1:{name:"support.function.grid.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#var-function"},{include:"#length-type"},{include:"#percentage-type"},{include:"#minmax-function"},{include:"#integer-type"},{match:"\\b(auto-(fill|fit))\\b",name:"support.keyword.repetitions.less"},{match:"\\b(((max|min)-content)|auto)\\b",name:"support.constant.property-value.less"}]}]},"image-function":{begin:"\\b(image)(?=\\()",beginCaptures:{1:{name:"support.function.image.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#image-type"},{include:"#literal-string"},{include:"#color-values"},{include:"#comma-delimiter"},{include:"#unquoted-string"}]}]},"image-type":{patterns:[{include:"#cross-fade-function"},{include:"#gradient-functions"},{include:"#image-function"},{include:"#url-function"}]},"integer-type":{match:"(?:[-+]?\\d+)",name:"constant.numeric.less"},"keyframe-name":{begin:"\\s*(-?(?:[_a-z]|[^\\x{00}-\\x{7F}]|(?:(:?\\\\[0-9a-f]{1,6}(\\r\\n|[\\s\\t\\r\\n\\f])?)|\\\\[^\\r\\n\\f0-9a-f]))(?:[_a-z0-9-]|[^\\x{00}-\\x{7F}]|(?:(:?\\\\[0-9a-f]{1,6}(\\r\\n|[\\t\\r\\n\\f])?)|\\\\[^\\r\\n\\f0-9a-f]))*)?",beginCaptures:{1:{name:"variable.other.constant.animation-name.less"}},end:"\\s*(?:(,)|(?=[{;]))",endCaptures:{1:{name:"punctuation.definition.arbitrary-repetition.less"}}},"length-type":{captures:{1:{name:"keyword.other.unit.less"}},match:"0|(?i:[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(em|ex|ch|rem|vw|vh|vmin|vmax|(c|m)?m|q|in|pt|pc|px|fr))\\b",name:"constant.numeric.less"},"less-boolean-function":{begin:"\\b(boolean)(?=\\()",beginCaptures:{1:{name:"support.function.boolean.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-logical-comparisons"}]}]},"less-color-blend-functions":{patterns:[{begin:"\\b(multiply|screen|overlay|(soft|hard)light|difference|exclusion|negation|average)(?=\\()",beginCaptures:{1:{name:"support.function.color-blend.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#comma-delimiter"},{include:"#color-values"}]}]}]},"less-color-channel-functions":{patterns:[{begin:"\\b(hue|saturation|lightness|hsv(hue|saturation|value)|red|green|blue|alpha|luma|luminance)(?=\\()",beginCaptures:{1:{name:"support.function.color-definition.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"}]}]}]},"less-color-definition-functions":{patterns:[{begin:"\\b(argb)(?=\\()",beginCaptures:{1:{name:"support.function.color-definition.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#color-values"}]}]}]},"less-color-functions":{patterns:[{include:"#less-color-blend-functions"},{include:"#less-color-channel-functions"},{include:"#less-color-definition-functions"},{include:"#less-color-operation-functions"}]},"less-color-operation-functions":{patterns:[{begin:"\\b(fade|shade|tint)(?=\\()",beginCaptures:{1:{name:"support.function.color-operation.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"},{include:"#comma-delimiter"},{include:"#percentage-type"}]}]},{begin:"\\b(spin)(?=\\()",beginCaptures:{1:{name:"support.function.color-operation.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"},{include:"#comma-delimiter"},{include:"#number-type"}]}]},{begin:"\\b(((de)?saturate)|((light|dark)en)|(fade(in|out)))(?=\\()",beginCaptures:{1:{name:"support.function.color-operation.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"},{include:"#comma-delimiter"},{include:"#percentage-type"},{match:"\\brelative\\b",name:"constant.language.relative.less"}]}]},{begin:"\\b(contrast)(?=\\()",beginCaptures:{1:{name:"support.function.color-operation.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"},{include:"#comma-delimiter"},{include:"#percentage-type"}]}]},{begin:"\\b(greyscale)(?=\\()",beginCaptures:{1:{name:"support.function.color-operation.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"}]}]},{begin:"\\b(mix)(?=\\()",beginCaptures:{1:{name:"support.function.color-operation.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#color-values"},{include:"#comma-delimiter"},{include:"#less-math"},{include:"#percentage-type"}]}]}]},"less-extend":{begin:"(:)(extend)(?=\\()",beginCaptures:{1:{name:"punctuation.definition.entity.less"},2:{name:"entity.other.attribute-name.pseudo-class.extend.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"\\ball\\b",name:"constant.language.all.less"},{include:"#selectors"}]}]},"less-functions":{patterns:[{include:"#less-boolean-function"},{include:"#less-color-functions"},{include:"#less-if-function"},{include:"#less-list-functions"},{include:"#less-math-functions"},{include:"#less-misc-functions"},{include:"#less-string-functions"},{include:"#less-type-functions"}]},"less-if-function":{begin:"\\b(if)(?=\\()",beginCaptures:{1:{name:"support.function.if.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-mixin-guards"},{include:"#comma-delimiter"},{include:"#property-values"}]}]},"less-list-functions":{patterns:[{begin:"\\b(length)(?=\\()\\b",beginCaptures:{1:{name:"support.function.length.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#property-values"},{include:"#comma-delimiter"}]}]},{begin:"\\b(extract)(?=\\()\\b",beginCaptures:{1:{name:"support.function.extract.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#property-values"},{include:"#comma-delimiter"},{include:"#integer-type"}]}]},{begin:"\\b(range)(?=\\()\\b",beginCaptures:{1:{name:"support.function.range.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#property-values"},{include:"#comma-delimiter"},{include:"#integer-type"}]}]}]},"less-logical-comparisons":{patterns:[{captures:{1:{name:"keyword.operator.logical.less"}},match:"\\s*(=|((<|>)=?))\\s*"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.group.less",patterns:[{include:"#less-logical-comparisons"}]},{match:"\\btrue|false\\b",name:"constant.language.less"},{match:",",name:"punctuation.separator.less"},{include:"#property-values"},{include:"#selectors"},{include:"#unquoted-string"}]},"less-math":{patterns:[{match:"[-\\+\\*\\/]",name:"keyword.operator.arithmetic.less"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.group.less",patterns:[{include:"#less-math"}]},{include:"#numeric-values"},{include:"#less-variables"}]},"less-math-functions":{patterns:[{begin:"\\b(ceil|floor|percentage|round|sqrt|abs|a?(sin|cos|tan))(?=\\()",beginCaptures:{1:{name:"support.function.math.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#numeric-values"}]}]},{captures:{2:{name:"support.function.math.less"},3:{name:"punctuation.definition.group.begin.less"},4:{name:"punctuation.definition.group.end.less"}},match:"((pi)(\\()(\\)))",name:"meta.function-call.less"},{begin:"\\b(pow|m(od|in|ax))(?=\\()",beginCaptures:{1:{name:"support.function.math.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#numeric-values"},{include:"#comma-delimiter"}]}]}]},"less-misc-functions":{patterns:[{begin:"\\b(color)(?=\\()",beginCaptures:{1:{name:"support.function.color.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#literal-string"}]}]},{begin:"\\b(image-(size|width|height))(?=\\()",beginCaptures:{1:{name:"support.function.image.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#literal-string"},{include:"#unquoted-string"}]}]},{begin:"\\b(convert|unit)(?=\\()",beginCaptures:{1:{name:"support.function.convert.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#dimensions"},{include:"#numeric-values"},{include:"#literal-string"},{include:"#comma-delimiter"},{match:"((c|m)?m|in|p(t|c|x)|m?s|g?rad|deg|turn|%|r?em|ex|ch)",name:"keyword.other.unit.less"}]}]},{begin:"\\b(data-uri)(?=\\()",beginCaptures:{1:{name:"support.function.data-uri.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#literal-string"},{captures:{1:{name:"punctuation.separator.less"}},match:"\\s*(?:(,))"}]}]},{captures:{2:{name:"punctuation.definition.group.begin.less"},3:{name:"punctuation.definition.group.end.less"}},match:"\\b(default(\\()(\\)))\\b",name:"support.function.default.less"},{begin:"\\b(get-unit)(?=\\()",beginCaptures:{1:{name:"support.function.get-unit.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#dimensions"}]}]},{begin:"\\b(svg-gradient)(?=\\()",beginCaptures:{1:{name:"support.function.svg-gradient.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#angle-type"},{include:"#comma-delimiter"},{include:"#color-values"},{include:"#percentage-type"},{include:"#length-type"},{match:"\\bto\\b",name:"keyword.other.less"},{match:"\\b(top|right|bottom|left|center)\\b",name:"support.constant.property-value.less"},{match:"\\b(at|circle|ellipse)\\b",name:"keyword.other.less"}]}]}]},"less-mixin-guards":{patterns:[{begin:"\\s*(and|not|or)?\\s*(?=\\()",beginCaptures:{1:{name:"keyword.operator.logical.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",name:"meta.group.less",patterns:[{include:"#less-variable-comparison"},{captures:{1:{name:"meta.group.less"},2:{name:"punctuation.definition.group.begin.less"},3:{name:"punctuation.definition.group.end.less"}},match:"default((\\()(\\)))",name:"support.function.default.less"},{include:"#property-values"},{include:"#less-logical-comparisons"},{include:"$self"}]}]}]},"less-namespace-accessors":{patterns:[{begin:"(?=\\s*when\\b)",end:"\\s*(?:(,)|(?=[{;]))",endCaptures:{1:{name:"punctuation.definition.block.end.less"}},name:"meta.conditional.guarded-namespace.less",patterns:[{captures:{1:{name:"keyword.control.conditional.less"},2:{name:"punctuation.definition.keyword.less"}},match:"\\s*(when)(?=.*?)"},{include:"#less-mixin-guards"},{include:"#comma-delimiter"},{begin:"\\s*(\\{)",beginCaptures:{1:{name:"punctuation.section.property-list.begin.less"}},end:"(?=\\})",name:"meta.block.less",patterns:[{include:"#rule-list-body"}]},{include:"#selectors"}]},{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.group.begin.less"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.group.end.less"},2:{name:"punctuation.terminator.rule.less"}},name:"meta.group.less",patterns:[{include:"#less-variable-assignment"},{include:"#comma-delimiter"},{captures:{1:{name:"punctuation.terminator.rule.less"}},match:"\\s*(;)|(?=[})])"},{include:"#property-values"},{include:"#rule-list-body"}]}]},"less-number-units":{patterns:[{match:"\\b((c|m)?m|in|p(t|c)|m?s|g?rad|deg|turn)\\b",name:"keyword.other.unit.less"},{match:"\\b(r?em|ex|ch|vw|vh|vmin|vmax|cm|mm|q|in|pt|pc|px|fr|s|ms|Hz|kHz|dpi|dpcm|dppx|deg|grad|rad|turn)\\b"}]},"less-string-functions":{patterns:[{begin:"\\b(e(scape)?)(?=\\()\\b",beginCaptures:{1:{name:"support.function.escape.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#comma-delimiter"},{include:"#literal-string"},{include:"#unquoted-string"}]}]},{begin:"\\s*(%)(?=\\()\\s*",beginCaptures:{1:{name:"support.function.format.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#comma-delimiter"},{include:"#literal-string"},{include:"#property-values"}]}]},{begin:"\\b(replace)(?=\\()\\b",beginCaptures:{1:{name:"support.function.replace.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#comma-delimiter"},{include:"#literal-string"},{include:"#property-values"}]}]}]},"less-strings":{patterns:[{begin:`(~)('|")`,beginCaptures:{1:{name:"constant.character.escape.less"},2:{name:"punctuation.definition.string.begin.less"}},contentName:"markup.raw.inline.less",end:`('|")|(\\n)`,endCaptures:{1:{name:"punctuation.definition.string.end.less"},2:{name:"invalid.illegal.newline.less"}},name:"string.quoted.other.less",patterns:[{include:"#string-content"}]}]},"less-type-functions":{patterns:[{begin:"\\b(is(number|string|color|keyword|url|pixel|em|percentage|ruleset))(?=\\()",beginCaptures:{1:{name:"support.function.type.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#property-values"}]}]},{begin:"\\b(isunit)(?=\\()",beginCaptures:{1:{name:"support.function.type.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#property-values"},{include:"#comma-delimiter"},{match:"(?x)\\b((?i:em|ex|ch|rem)|(?i:vw|vh|vmin|vmax)|(?i:cm|mm|q|in|pt|pc|px|fr)|(?i:deg|grad|rad|turn)|(?i:s|ms)|(?i:Hz|kHz)|(?i:dpi|dpcm|dppx))\\b",name:"keyword.other.unit.less"}]}]},{begin:"\\b(isdefined)(?=\\()",beginCaptures:{1:{name:"support.function.type.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"}]}]}]},"less-variable-assignment":{patterns:[{begin:"(@)(-?(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",beginCaptures:{0:{name:"variable.other.readwrite.less"},1:{name:"punctuation.definition.variable.less"},2:{name:"support.other.variable.less"}},end:"\\s*(;|(\\.{3})|(?=\\)))",endCaptures:{1:{name:"punctuation.terminator.rule.less"},2:{name:"keyword.operator.spread.less"}},name:"meta.property-value.less",patterns:[{captures:{1:{name:"punctuation.separator.key-value.less"},4:{name:"meta.property-value.less"}},match:"(((\\+_?)?):)([\\s\\t]*)"},{include:"#property-values"},{include:"#comma-delimiter"},{include:"#property-list"},{include:"#unquoted-string"}]}]},"less-variable-comparison":{patterns:[{begin:"(@{1,2})([-]?([_a-z]|[^\\x{00}-\\x{7F}]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",beginCaptures:{0:{name:"variable.other.readwrite.less"},1:{name:"punctuation.definition.variable.less"},2:{name:"support.other.variable.less"}},end:"\\s*(?=\\))",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},patterns:[{captures:{1:{name:"keyword.operator.logical.less"}},match:"\\s*(=|((<|>)=?))\\s*"},{match:"\\btrue\\b",name:"constant.language.less"},{include:"#property-values"},{include:"#selectors"},{include:"#unquoted-string"},{match:",",name:"punctuation.separator.less"}]}]},"less-variable-interpolation":{captures:{1:{name:"punctuation.definition.variable.less"},2:{name:"punctuation.definition.expression.less"},3:{name:"support.other.variable.less"},4:{name:"punctuation.definition.expression.less"}},match:"(@)(\\{)([-\\w]+)(\\})",name:"variable.other.readwrite.less"},"less-variables":{captures:{1:{name:"punctuation.definition.variable.less"},2:{name:"support.other.variable.less"}},match:"\\s*(@@?)([-\\w]+)",name:"variable.other.readwrite.less"},"literal-string":{patterns:[{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.less"}},end:"(')|(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.less"},2:{name:"invalid.illegal.newline.less"}},name:"string.quoted.single.less",patterns:[{include:"#string-content"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.less"}},end:'(")|(\\n)',endCaptures:{1:{name:"punctuation.definition.string.end.less"},2:{name:"invalid.illegal.newline.less"}},name:"string.quoted.double.less",patterns:[{include:"#string-content"}]},{include:"#less-strings"}]},"local-function":{begin:"\\b(local)(?=\\()",beginCaptures:{0:{name:"support.function.font-face.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#unquoted-string"}]}]},"media-query":{begin:"\\s*(only|not)?\\s*(all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)?",beginCaptures:{1:{name:"keyword.operator.logic.media.less"},2:{name:"support.constant.media.less"}},end:"\\s*(?:(,)|(?=[{;]))",endCaptures:{1:{name:"punctuation.definition.arbitrary-repetition.less"}},patterns:[{include:"#less-variables"},{include:"#custom-property-name"},{begin:"\\s*(and)?\\s*(\\()\\s*",beginCaptures:{1:{name:"keyword.operator.logic.media.less"},2:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.group.less",patterns:[{begin:"((-webkit-|-o-)?((min|max)-)?(-moz-)?(((device-)?(height|width|aspect-ratio|pixel-ratio))|(color(-index)?)|monochrome|resolution))|grid|scan|orientation\\s*(?=[:)])",beginCaptures:{0:{name:"support.type.property-name.media.less"},2:{name:"support.type.vendor-prefix.less"},5:{name:"support.type.vendor-prefix.less"}},end:"(((\\+_?)?):)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.key-value.less"}}},{match:"\\b(portrait|landscape|progressive|interlace)",name:"support.constant.property-value.less"},{captures:{1:{name:"constant.numeric.less"},2:{name:"keyword.operator.arithmetic.less"},3:{name:"constant.numeric.less"}},match:"\\s*(\\d+)(/)(\\d+)"},{include:"#less-math"}]}]},"media-query-list":{begin:"\\s*(?=[^{;])",end:"\\s*(?=[{;])",patterns:[{include:"#media-query"}]},"minmax-function":{begin:"\\b(minmax)(?=\\()",beginCaptures:{1:{name:"support.function.grid.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#length-type"},{include:"#comma-delimiter"},{match:"\\b(max-content|min-content)\\b",name:"support.constant.property-value.less"}]}]},"number-type":{match:"[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))",name:"constant.numeric.less"},"numeric-values":{patterns:[{include:"#dimensions"},{include:"#percentage-type"},{include:"#number-type"}]},"percentage-type":{captures:{1:{name:"keyword.other.unit.less"}},match:"[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(%)",name:"constant.numeric.less"},"property-list":{patterns:[{begin:"(?=(?=[^;]*)\\{)",end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.end.less"}},patterns:[{include:"#rule-list"}]}]},"property-value-constants":{patterns:[{match:`(?x)\\b( +absolute|active|add +|all(-(petite|small)-caps|-scroll)? +|alpha(betic)? +|alternate(-reverse)? +|always|annotation|antialiased|at +|auto(hiding-scrollbar)? +|avoid(-column|-page|-region)? +|background(-color|-image|-position|-size)? +|backwards|balance|baseline|below|bevel|bicubic|bidi-override|blink +|block(-line-height)? +|blur +|bold(er)? +|border(-bottom|-left|-right|-top)?-(color|radius|width|style) +|border-(bottom|top)-(left|right)-radius +|border-image(-outset|-repeat|-slice|-source|-width)? +|border(-bottom|-left|-right|-top|-collapse|-spacing|-box)? +|both|bottom +|box(-shadow)? +|break-(all|word) +|brightness +|butt(on)? +|capitalize +|cent(er|ral) +|char(acter-variant)? +|cjk-ideographic|clip|clone|close-quote +|closest-(corner|side) +|col-resize|collapse +|color(-stop|-burn|-dodge)? +|column((-count|-gap|-reverse|-rule(-color|-width)?|-width)|s)? +|common-ligatures|condensed|consider-shifts|contain +|content(-box|s)? +|contextual|contrast|cover +|crisp(-e|E)dges +|crop +|cross(hair)? +|da(rken|shed) +|default|dense|diagonal-fractions|difference|disabled +|discretionary-ligatures|disregard-shifts +|distribute(-all-lines|-letter|-space)? +|dotted|double|drop-shadow +|(nwse|nesw|ns|ew|sw|se|nw|ne|w|s|e|n)-resize +|ease(-in-out|-in|-out)? +|element|ellipsis|embed|end|EndColorStr|evenodd +|exclu(de(-ruby)?|sion) +|expanded +|(extra|semi|ultra)-(condensed|expanded) +|farthest-(corner|side)? +|fill(-box|-opacity)? +|filter|fixed|flat +|flex((-basis|-end|-grow|-shrink|-start)|box)? +|flip|flood-color +|font(-size(-adjust)?|-stretch|-weight)? +|forwards +|from(-image)? +|full-width|geometricPrecision|glyphs|gradient|grayscale +|grid(-height)? +|groove|hand|hanging|hard-light|height|help|hidden|hide +|historical-(forms|ligatures) +|horizontal(-tb)? +|hue +|ideograph(-alpha|-numeric|-parenthesis|-space|ic) +|inactive|include-ruby|infinite|inherit|initial +|inline(-block|-box|-flex(box)?|-line-height|-table)? +|inset|inside +|inter(-ideograph|-word|sect) +|invert|isolat(e|ion)|italic +|jis(04|78|83|90) +|justify(-all)? +|keep-all +|large[r]? +|last|layout|left|letter-spacing +|light(e[nr]|ing-color) +|line(-edge|-height|-through)? +|linear(-gradient|RGB)? +|lining-nums|list-item|local|loose|lowercase|lr-tb|ltr +|lumin(osity|ance)|manual +|manipulation +|margin(-bottom|-box|-left|-right|-top)? +|marker(-offset|s)? +|mathematical +|max-(content|height|lines|size|width) +|medium|middle +|min-(content|height|width) +|miter|mixed|move|multiply|newspaper +|no-(change|clip|(close|open)-quote|(common|discretionary|historical)-ligatures|contextual|drop|repeat) +|none|nonzero|normal|not-allowed|nowrap|oblique +|offset(-after|-before|-end|-start)? +|oldstyle-nums|opacity|open-quote +|optimize(Legibility|Precision|Quality|Speed) +|order|ordinal|ornaments +|outline(-color|-offset|-width)? +|outset|outside|over(line|-edge|lay) +|padding(-bottom|-box|-left|-right|-top|-box)? +|page|painted|paused +|pan-(x|left|right|y|up|down) +|perspective-origin +|petite-caps|pixelated|pointer +|pinch-zoom +|pre(-line|-wrap)? +|preserve-3d +|progid:DXImageTransform.Microsoft.(Alpha|Blur|dropshadow|gradient|Shadow) +|progress +|proportional-(nums|width) +|radial-gradient|recto|region|relative +|repeat(-[xy])? +|repeating-(linear|radial)-gradient +|replaced|reset-size|reverse|ridge|right +|round +|row(-resize|-reverse)? +|rtl|ruby|running|saturat(e|ion)|screen +|scroll(-position|bar)? +|separate|sepia +|scale-down +|shape-(image-threshold|margin|outside) +|show +|sideways(-lr|-rl)? +|simplified +|size +|slashed-zero|slice +|small(-caps|er)? +|smooth|snap|solid|soft-light +|space(-around|-between)? +|span|sRGB +|stack(ed-fractions)? +|start(ColorStr)? +|static +|step-(end|start) +|sticky +|stop-(color|opacity) +|stretch|strict +|stroke(-box|-dash(array|offset)|-miterlimit|-opacity|-width)? +|style(set)? +|stylistic +|sub(grid|pixel-antialiased|tract)? +|super|swash +|table(-caption|-cell|(-column|-footer|-header|-row)-group|-column|-row)? +|tabular-nums|tb-rl +|text((-bottom|-(decoration|emphasis)-color|-indent|-(over|under)-edge|-shadow|-size(-adjust)?|-top)|field)? +|thi(ck|n) +|titling-ca(ps|se) +|to[p]? +|touch|traditional +|transform(-origin)? +|under(-edge|line)? +|unicase|unset|uppercase|upright +|use-(glyph-orientation|script) +|verso +|vertical(-align|-ideographic|-lr|-rl|-text)? +|view-box +|viewport-fill(-opacity)? +|visibility +|visible(Fill|Painted|Stroke)? +|wait|wavy|weight|whitespace|(device-)?width|word-spacing +|wrap(-reverse)? +|x{1,2}-(large|small) +|z-index|zero +|zoom(-in|-out)? +|((?xi:arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)))\\b`,name:"support.constant.property-value.less"},{match:"\\b(?i:sans-serif|serif|monospace|fantasy|cursive)\\b(?=\\s*[;,\\n}])",name:"support.constant.font-name.less"}]},"property-values":{patterns:[{include:"#comment-block"},{include:"#vendor-prefix"},{include:"#builtin-functions"},{include:"#color-functions"},{include:"#less-math"},{include:"#less-functions"},{include:"#less-variables"},{include:"#unicode-range"},{include:"#numeric-values"},{include:"#color-values"},{include:"#property-value-constants"},{include:"#literal-string"},{captures:{1:{name:"punctuation.separator.less"}},match:"(\\!)\\s*important",name:"keyword.other.important.less"}]},"pseudo-classes":{patterns:[{begin:"(:)(dir|lang)(?=\\()",captures:{1:{name:"punctuation.definition.entity.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-class.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#unquoted-string"}]}]},{begin:"(:)(not)(?=\\()",captures:{1:{name:"punctuation.definition.entity.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-class.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#selectors"}]}]},{begin:"(:)(nth(-last)?-(child|of-type))(?=\\()",captures:{1:{name:"punctuation.definition.entity.less"},2:{name:"entity.other.attribute-name.pseudo-class.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",name:"meta.group.less",patterns:[{match:"\\b(even|odd)\\b",name:"keyword.other.pseudo-class.less"},{captures:{1:{name:"keyword.other.unit.less"}},match:"(?:[-+]?(?:\\d+)?(n)(\\s*[-+]\\s*\\d+)?|[-+]?\\s*\\d+)",name:"constant.numeric.less"},{include:"#less-math"},{include:"#less-strings"},{include:"#less-variable-interpolation"}]}]},{begin:"(:)(host-context)(?=\\()",captures:{1:{name:"punctuation.definition.entity.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-class.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#selectors"}]}]},{captures:{1:{name:"punctuation.definition.entity.less"},2:{name:"entity.other.attribute-name.pseudo-class.less"}},match:"(:)(active|any|checked|default|disabled|empty|enabled|first(-(child|of-type))?|fullscreen|focus|host|hover|indeterminate|in-range|invalid|last-(child|of-type)|left|link|only-(child|of-type)|optional|out-of-range|read-(only|write)|required|right|root|scope|target|valid|visited)",name:"meta.function-call.less"}]},"pseudo-elements":{patterns:[{begin:"(::)(slotted)(?=\\()",captures:{1:{name:"punctuation.definition.entity.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-class.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#selectors"}]}]},{captures:{1:{name:"punctuation.definition.entity.less"},2:{name:"punctuation.definition.entity.less"},3:{name:"support.type.vendor-prefix.less"}},match:"(?:(:{1,2})(?:before|after|first-line|first-letter)|(::)(-(?:moz|ms|webkit)-)?(?:(-?(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)))\\b",name:"entity.other.attribute-name.pseudo-element.less"}]},"qualified-name":{captures:{1:{name:"entity.name.constant.less"},2:{name:"entity.name.namespace.wildcard.less"},3:{name:"punctuation.separator.namespace.less"}},match:"(?:(-?(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)|(\\*))?([|])(?!=)"},"regexp-function":{begin:"\\b(regexp)(?=\\()",end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"support.function.regexp.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",name:"meta.function-call.less",patterns:[{include:"#literal-string"}]}]},"resolution-type":{captures:{1:{name:"keyword.other.unit.less"}},match:"(?i:[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(dpi|dpcm|dppx))\\b",name:"constant.numeric.less"},"rule-list":{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.begin.less"}},end:"(?=\\s*\\})",name:"meta.property-list.less",patterns:[{captures:{1:{name:"punctuation.terminator.rule.less"}},match:"\\s*(;)|(?=[})])"},{include:"#rule-list-body"},{include:"#less-extend"}]}]},"rule-list-body":{patterns:[{include:"#comment-block"},{include:"#comment-line"},{include:"#at-rules"},{include:"#less-variable-assignment"},{include:"#less-variable-interpolation"},{begin:"(?=[-a-z])",end:"$|(?![-a-z])",patterns:[{include:"#vendor-prefix"},{include:"#custom-property-name"},{include:"#filter-function"},{captures:{1:{name:"keyword.other.custom-property.prefix.less"},2:{name:"support.type.custom-property.name.less"}},match:"\\b(var-)(-?(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)(?=\\s)",name:"invalid.deprecated.custom-property.less"},{begin:"\\bfont(-family)?(?!-)\\b",beginCaptures:{0:{name:"support.type.property-name.less"}},end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},name:"meta.property-name.less",patterns:[{captures:{1:{name:"punctuation.separator.key-value.less"},4:{name:"meta.property-value.less"}},match:"(((\\+_?)?):)([\\s\\t]*)"},{include:"#property-values"},{match:"-?(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*(\\s+-?(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)*",name:"string.unquoted.less"},{match:",",name:"punctuation.separator.less"}]},{begin:"\\banimation(-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function))?\\b",beginCaptures:{0:{name:"support.type.property-name.less"}},end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},patterns:[{begin:"(((\\+_?)?):)(?=[\\s\\t]*)",beginCaptures:{1:{name:"punctuation.separator.key-value.less"}},captures:{1:{name:"punctuation.definition.arbitrary-repetition.less"}},contentName:"meta.property-value.less",end:"(?=\\s*(;)|(?=[})]))",patterns:[{match:"\\b(linear|ease(-in)?(-out)?|step-(start|end)|none|forwards|backwards|both|normal|alternate(-reverse)?|reverse|running|paused)\\b",name:"support.constant.property-value.less"},{include:"#cubic-bezier-function"},{include:"#steps-function"},{include:"#time-type"},{include:"#number-type"},{match:"-?(?:[_a-zA-Z]|[^\\x{00}-\\x{7F}]|(?:(:?\\\\[0-9a-f]{1,6}(\\r\\n|[\\s\\t\\r\\n\\f])?)|\\\\[^\\r\\n\\f0-9a-f]))(?:[-_a-zA-Z0-9]|[^\\x{00}-\\x{7F}]|(?:(:?\\\\[0-9a-f]{1,6}(\\r\\n|[\\t\\r\\n\\f])?)|\\\\[^\\r\\n\\f0-9a-f]))*",name:"variable.other.constant.animation-name.less"},{include:"#literal-string"},{include:"#property-values"},{match:"\\s*(?:(,))"}]}]},{begin:"\\b(transition(-(property|duration|delay|timing-function))?)\\b",beginCaptures:{0:{name:"meta.property-name.less"},1:{name:"support.type.property-name.less"}},end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},patterns:[{captures:{1:{name:"punctuation.separator.key-value.less"},4:{name:"meta.property-value.less"}},match:"(((\\+_?)?):)([\\s\\t]*)"},{include:"#time-type"},{include:"#property-values"},{include:"#cubic-bezier-function"},{include:"#steps-function"},{captures:{1:{name:"punctuation.definition.arbitrary-repetition.less"}},match:"\\s*(?:(,))"}]},{begin:"\\b(?:backdrop-)?filter\\b",beginCaptures:{0:{name:"support.type.property-name.less"}},end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},name:"meta.property-name.less",patterns:[{captures:{1:{name:"punctuation.separator.key-value.less"},4:{name:"meta.property-value.less"}},match:"(((\\+_?)?):)([\\s\\t]*)"},{match:"\\b(inherit|initial|unset|none)\\b",name:"meta.property-value.less"},{include:"#filter-functions"}]},{begin:"\\bwill-change\\b",beginCaptures:{0:{name:"support.type.property-name.less"}},end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},name:"meta.property-name.less",patterns:[{captures:{1:{name:"punctuation.separator.key-value.less"},4:{name:"meta.property-value.less"}},match:"(((\\+_?)?):)([\\s\\t]*)"},{match:"unset|initial|inherit|will-change|auto|scroll-position|contents",name:"invalid.illegal.property-value.less"},{match:"-?(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*",name:"support.constant.property-value.less"},{captures:{1:{name:"punctuation.definition.arbitrary-repetition.less"}},match:"\\s*(?:(,))"}]},{begin:"\\bcounter-(increment|(re)?set)\\b",beginCaptures:{0:{name:"support.type.property-name.less"}},end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},name:"meta.property-name.less",patterns:[{captures:{1:{name:"punctuation.separator.key-value.less"},4:{name:"meta.property-value.less"}},match:"(((\\+_?)?):)([\\s\\t]*)"},{match:"-?(?:[[-\\w][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[_a-zA-Z][^\\x{00}-\\x{9f}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*",name:"entity.name.constant.counter-name.less"},{include:"#integer-type"},{match:"unset|initial|inherit|auto",name:"invalid.illegal.property-value.less"}]},{match:"(?x)\\b( accent-height | align-content | align-items | align-self | alignment-baseline | all | animation-timing-function | animation-play-state | animation-name | animation-iteration-count | animation-fill-mode | animation-duration | animation-direction | animation-delay | animation | appearance | ascent | azimuth | backface-visibility | background-size | background-repeat-y | background-repeat-x | background-repeat | background-position-y | background-position-x | background-position | background-origin | background-image | background-color | background-clip | background-blend-mode | background-attachment | background | baseline-shift | begin | bias | blend-mode | border-((top|right|bottom|left)-)?(width|style|color) | border-(top|bottom)-(right|left)-radius | border-image-(width|source|slice|repeat|outset) | border-(top|right|bottom|left|collapse|image|radius|spacing) | border | bottom | box-(align|decoration-break|direction|flex|ordinal-group|orient|pack|shadow|sizing) | break-(after|before|inside) | caption-side | clear | clip-path | clip-rule | clip | color(-(interpolation(-filters)?|profile|rendering))? | columns | column-(break-before|count|fill|gap|(rule(-(color|style|width))?)|span|width) | contain | content | counter-(increment|reset) | cursor | (c|d|f)(x|y) | direction | display | divisor | dominant-baseline | dur | elevation | empty-cells | enable-background | end | fallback | fill(-(opacity|rule))? | filter | flex(-(align|basis|direction|flow|grow|item-align|line-pack|negative|order|pack|positive|preferred-size|shrink|wrap))? | float | flood-(color|opacity) | font-display | font-family | font-feature-settings | font-kerning | font-language-override | font-size(-adjust)? | font-smoothing | font-stretch | font-style | font-synthesis | font-variant(-(alternates|caps|east-asian|ligatures|numeric|position))? | font-weight | font | fr | glyph-orientation-(horizontal|vertical) | grid-(area|gap) | grid-auto-(columns|flow|rows) | grid-(column|row)(-(end|gap|start))? | grid-template(-(areas|columns|rows))? | height | hyphens | image-(orientation|rendering|resolution) | isolation | justify-content | kerning | left | letter-spacing | lighting-color | line-(box-contain|break|clamp|height) | list-style(-(image|position|type))? | margin(-(bottom|left|right|top))? | marker(-(end|mid|start))? | mask(-(clip||composite|image|origin|position|repeat|size|type))? | (max|min)-(height|width) | mix-blend-mode | nbsp-mode | negative | object-(fit|position) | opacity | operator | order | orphans | outline(-(color|offset|style|width))? | overflow(-(scrolling|wrap|x|y))? | pad(ding(-(bottom|left|right|top))?)? | page(-break-(after|before|inside))? | paint-order | pause(-(after|before))? | perspective(-origin(-(x|y))?)? | pitch(-range)? | pointer-events | position | prefix | quotes | range | resize | right | rotate | scale | scroll-behavior | shape-(image-threshold|margin|outside|rendering) | size | speak(-as)? | src | stop-(color|opacity) | stroke(-(dash(array|offset)|line(cap|join)|miterlimit|opacity|width))? | suffix | symbols | system | tab-size | table-layout | tap-highlight-color | text-align(-last)? | text-decoration(-(color|line|style))? | text-emphasis(-(color|position|style))? | text-(anchor|fill-color|height|indent|justify|orientation|overflow|rendering|shadow|transform|underline-position) | top | touch-action | transform(-origin(-(x|y))?) | transform(-style)? | transition(-(delay|duration|property|timing-function))? | translate | unicode-(bidi|range) | user-(drag|select) | vertical-align | visibility | white-space | widows | width | will-change | word-(break|spacing|wrap) | writing-mode | z-index | zoom )\\b",name:"support.type.property-name.less"},{include:"$self"}]},{begin:"\\b(((\\+_?)?):)([\\s\\t]*)",captures:{1:{name:"punctuation.separator.key-value.less"},4:{name:"meta.property-value.less"}},contentName:"meta.property-value.less",end:"\\s*(;)|(?=[})])",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},patterns:[{include:"#property-values"}]},{include:"$self"}]},selector:{patterns:[{begin:"(?=[>~+/\\.*#a-zA-Z\\[&]|(\\:{1,2}[^\\s])|@\\{)",contentName:"meta.selector.less",end:"(?=@(?!\\{)|[{;])",patterns:[{include:"#comment-line"},{include:"#selectors"},{include:"#less-namespace-accessors"},{include:"#less-variable-interpolation"},{captures:{1:{name:"punctuation.separator.less"}},match:"(\\!)\\s*important",name:"keyword.other.important.less"}]}]},selectors:{patterns:[{match:"\\b([a-z](?:(?:[-_a-z0-9\\x{00B7}]|\\\\\\.|[[\\x{00C0}-\\x{00D6}][\\x{00D8}-\\x{00F6}][\\x{00F8}-\\x{02FF}][\\x{0300}-\\x{037D}][\\x{037F}-\\x{1FFF}][\\x{200C}-\\x{200D}][\\x{203F}-\\x{2040}][\\x{2070}-\\x{218F}][\\x{2C00}-\\x{2FEF}][\\x{3001}-\\x{D7FF}][\\x{F900}-\\x{FDCF}][\\x{FDF0}-\\x{FFFD}][\\x{10000}-\\x{EFFFF}]]))*-(?:(?:[-_a-z0-9\\x{00B7}]|\\\\\\.|[[\\x{00C0}-\\x{00D6}][\\x{00D8}-\\x{00F6}][\\x{00F8}-\\x{02FF}][\\x{0300}-\\x{037D}][\\x{037F}-\\x{1FFF}][\\x{200C}-\\x{200D}][\\x{203F}-\\x{2040}][\\x{2070}-\\x{218F}][\\x{2C00}-\\x{2FEF}][\\x{3001}-\\x{D7FF}][\\x{F900}-\\x{FDCF}][\\x{FDF0}-\\x{FFFD}][\\x{10000}-\\x{EFFFF}]]))*)\\b",name:"entity.name.tag.custom.less"},{match:"(?x)\\b( a | abbr | acronym | address | applet | area | article | aside | audio | b | base | basefont | bdi | bdo | big | blockquote | body | br | button | canvas | caption | circle | cite | clipPath | code | col | colgroup | content | data | dataList | dd | defs | del | details | dfn | dialog | dir | div | dl | dt | element | ellipse | em | embed | eventsource | fieldset | figcaption | figure | filter | footer | foreignObject | form | frame | frameset | g | glyph | glyphRef | h1 | h2 | h3 | h4 | h5 | h6 | head | header | hgroup | hr | html | i | iframe | image | img | input | ins | isindex | kbd | keygen | label | legend | li | line | linearGradient | link | main | map | mark | marker | mask | menu | meta | meter | nav | noframes | noscript | object | ol | optgroup | option | output | p | param | path | pattern | picture | polygon | polyline | pre | progress | q | radialGradient | rect | rp | ruby | rt | rtc | s | samp | script | section | select | shadow | small | source | span | stop | strike | strong | style | sub | summary | sup | svg | switch | symbol | table | tbody | td | template | textarea | textPath | tfoot | th | thead | time | title | tr | track | tref | tspan | tt | u | ul | use | var | video | wbr | xmp )\\b",name:"entity.name.tag.less"},{begin:"(\\.)",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},end:"(?![-\\w]|[^\\x{00}-\\x{9f}]|\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\@(?=\\{)))",name:"entity.other.attribute-name.class.less",patterns:[{include:"#less-variable-interpolation"}]},{begin:"(#)",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},end:"(?![-\\w]|[^\\x{00}-\\x{9f}]|\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\@(?=\\{)))",name:"entity.other.attribute-name.id.less",patterns:[{include:"#less-variable-interpolation"}]},{begin:"(&)",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},contentName:"entity.other.attribute-name.parent.less",end:"(?![-\\w]|[^\\x{00}-\\x{9f}]|\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\@(?=\\{)))",name:"entity.other.attribute-name.parent.less",patterns:[{include:"#less-variable-interpolation"},{include:"#selectors"}]},{include:"#pseudo-elements"},{include:"#pseudo-classes"},{include:"#less-extend"},{match:"(?!\\+_?:)(?:>{1,3}|[~+])(?![>~+;}])",name:"punctuation.separator.combinator.less"},{match:"((?:>{1,3}|[~+])){2,}",name:"invalid.illegal.combinator.less"},{match:"\\/deep\\/",name:"invalid.illegal.combinator.less"},{begin:"\\[",captures:{0:{name:"punctuation.definition.entity.less"}},end:"\\]",name:"meta.attribute-selector.less",patterns:[{include:"#less-variable-interpolation"},{include:"#qualified-name"},{match:"(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",name:"entity.other.attribute-name.less"},{begin:"\\s*([~*|^$]?=)\\s*",captures:{1:{name:"keyword.operator.attribute-selector.less"}},end:"(?=(\\s|\\]))",patterns:[{include:"#less-variable-interpolation"},{match:`[^\\s\\]\\['"]`,name:"string.unquoted.less"},{include:"#literal-string"},{captures:{1:{name:"keyword.other.less"}},match:"(?:\\s+([iI]))?"},{match:"\\]",name:"punctuation.definition.entity.less"}]}]},{captures:{1:{name:"punctuation.definition.arbitrary-repetition.less"}},match:"\\s*(?:(,))"},{match:"\\*",name:"entity.name.tag.wildcard.less"}]},"shape-functions":{patterns:[{begin:"\\b(rect)(?=\\()",beginCaptures:{0:{name:"support.function.shape.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"\\bauto\\b",name:"support.constant.property-value.less"},{include:"#length-type"},{include:"#comma-delimiter"}]}]},{begin:"\\b(inset)(?=\\()",beginCaptures:{0:{name:"support.function.shape.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"\\bround\\b",name:"keyword.other.less"},{include:"#length-type"},{include:"#percentage-type"}]}]},{begin:"\\b(circle|ellipse)(?=\\()",beginCaptures:{0:{name:"support.function.shape.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"\\bat\\b",name:"keyword.other.less"},{match:"\\b(top|right|bottom|left|center|closest-side|farthest-side)\\b",name:"support.constant.property-value.less"},{include:"#length-type"},{include:"#percentage-type"}]}]},{begin:"\\b(polygon)(?=\\()",beginCaptures:{0:{name:"support.function.shape.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"\\b(nonzero|evenodd)\\b",name:"support.constant.property-value.less"},{include:"#length-type"},{include:"#percentage-type"}]}]}]},"steps-function":{begin:"\\b(steps)(?=\\()",beginCaptures:{0:{name:"support.function.timing.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#integer-type"},{match:"(end|middle|start)",name:"support.keyword.timing-direction.less"}]}]},"string-content":{patterns:[{include:"#less-variable-interpolation"},{match:"\\\\\\s*\\n",name:"constant.character.escape.newline.less"},{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.less"}]},"symbols-function":{begin:"\\b(symbols)(?=\\()",beginCaptures:{1:{name:"support.function.counter.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{match:"\\b(cyclic|numeric|alphabetic|symbolic|fixed)\\b",name:"support.constant.symbol-type.less"},{include:"#comma-delimiter"},{include:"#literal-string"},{include:"#image-type"}]}]},"time-type":{captures:{1:{name:"keyword.other.unit.less"}},match:"(?i:[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(s|ms))\\b",name:"constant.numeric.less"},"transform-functions":{patterns:[{begin:"\\b(matrix3d|scale3d|matrix|scale)(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#number-type"},{include:"#less-variables"},{include:"#var-function"}]}]},{begin:"\\b(translate(3d)?)(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#percentage-type"},{include:"#length-type"},{include:"#number-type"},{include:"#less-variables"},{include:"#var-function"}]}]},{begin:"\\b(translate[XY])(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#percentage-type"},{include:"#length-type"},{include:"#number-type"},{include:"#less-variables"},{include:"#var-function"}]}]},{begin:"\\b(rotate[XYZ]?|skew[XY])(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#angle-type"},{include:"#less-variables"},{include:"#calc-function"},{include:"#var-function"}]}]},{begin:"\\b(skew)(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#angle-type"},{include:"#less-variables"},{include:"#calc-function"},{include:"#var-function"}]}]},{begin:"\\b(translateZ|perspective)(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#length-type"},{include:"#less-variables"},{include:"#calc-function"},{include:"#var-function"}]}]},{begin:"\\b(rotate3d)(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#angle-type"},{include:"#number-type"},{include:"#less-variables"},{include:"#calc-function"},{include:"#var-function"}]}]},{begin:"\\b(scale[XYZ])(?=\\()",beginCaptures:{0:{name:"support.function.transform.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#number-type"},{include:"#less-variables"},{include:"#calc-function"},{include:"#var-function"}]}]}]},"unicode-range":{captures:{1:{name:"support.constant.unicode-range.prefix.less"},2:{name:"constant.codepoint-range.less"},3:{name:"punctuation.section.range.less"}},match:"(?i)(u\\+)([0-9a-f?]{1,6}(?:(-)[0-9a-f]{1,6})?)",name:"support.unicode-range.less"},"unquoted-string":{match:`[^\\s'"]`,name:"string.unquoted.less"},"url-function":{begin:"\\b(url)(?=\\()",beginCaptures:{1:{name:"support.function.url.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#literal-string"},{include:"#unquoted-string"},{include:"#var-function"}]}]},"var-function":{patterns:[{begin:"\\b(var)(?=\\()",beginCaptures:{1:{name:"support.function.var.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#comma-delimiter"},{include:"#custom-property-name"},{include:"#less-variables"}]}]}]},"vendor-prefix":{match:"-(?:webkit|moz(-osx)?|ms|o)-",name:"support.type.vendor-prefix.less"}},scopeName:"source.css.less"});var n=[e];export{n as default}; diff --git a/assets/chunks/light-plus.BsvsQ1iS.js b/assets/chunks/light-plus.BsvsQ1iS.js new file mode 100644 index 000000000..6324a65ad --- /dev/null +++ b/assets/chunks/light-plus.BsvsQ1iS.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"actionBar.toggledBackground":"#dddddd","activityBarBadge.background":"#007ACC","checkbox.border":"#919191","editor.background":"#FFFFFF","editor.foreground":"#000000","editor.inactiveSelectionBackground":"#E5EBF1","editor.selectionHighlightBackground":"#ADD6FF80","editorIndentGuide.activeBackground":"#939393","editorIndentGuide.background":"#D3D3D3","editorSuggestWidget.background":"#F3F3F3","input.placeholderForeground":"#767676","list.activeSelectionIconForeground":"#FFF","list.focusAndSelectionOutline":"#90C2F9","list.hoverBackground":"#E8E8E8","menu.border":"#D4D4D4","notebook.cellBorderColor":"#E8E8E8","notebook.selectedCellBackground":"#c8ddf150","ports.iconRunningProcessForeground":"#369432","searchEditor.textInputBorder":"#CECECE","settings.numberInputBorder":"#CECECE","settings.textInputBorder":"#CECECE","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#61616130","sideBarTitle.foreground":"#6F6F6F","statusBarItem.errorBackground":"#c72e0f","statusBarItem.remoteBackground":"#16825D","statusBarItem.remoteForeground":"#FFF","tab.lastPinnedBorder":"#61616130","terminal.inactiveSelectionBackground":"#E5EBF1","widget.border":"#d4d4d4"},displayName:"Light Plus",name:"light-plus",semanticHighlighting:!0,semanticTokenColors:{customLiteral:"#795E26",newOperator:"#AF00DB",numberLiteral:"#098658",stringLiteral:"#a31515"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#000000ff"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#008000"}},{scope:"constant.language",settings:{foreground:"#0000ff"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#098658"}},{scope:"constant.regexp",settings:{foreground:"#811f3f"}},{scope:"entity.name.tag",settings:{foreground:"#800000"}},{scope:"entity.name.selector",settings:{foreground:"#800000"}},{scope:"entity.other.attribute-name",settings:{foreground:"#e50000"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#800000"}},{scope:"invalid",settings:{foreground:"#cd3131"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#000080"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#800000"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#098658"}},{scope:"markup.deleted",settings:{foreground:"#a31515"}},{scope:"markup.changed",settings:{foreground:"#0451a5"}},{scope:["punctuation.definition.quote.begin.markdown","punctuation.definition.list.begin.markdown"],settings:{foreground:"#0451a5"}},{scope:"markup.inline.raw",settings:{foreground:"#800000"}},{scope:"punctuation.definition.tag",settings:{foreground:"#800000"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#0000ff"}},{scope:"meta.preprocessor.string",settings:{foreground:"#a31515"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#098658"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#0451a5"}},{scope:"storage",settings:{foreground:"#0000ff"}},{scope:"storage.type",settings:{foreground:"#0000ff"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#0000ff"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#a31515"}},{scope:["string.comment.buffered.block.pug","string.quoted.pug","string.interpolated.pug","string.unquoted.plain.in.yaml","string.unquoted.plain.out.yaml","string.unquoted.block.yaml","string.quoted.single.yaml","string.quoted.double.xml","string.quoted.single.xml","string.unquoted.cdata.xml","string.quoted.double.html","string.quoted.single.html","string.unquoted.html","string.quoted.single.handlebars","string.quoted.double.handlebars"],settings:{foreground:"#0000ff"}},{scope:"string.regexp",settings:{foreground:"#811f3f"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#0000ff"}},{scope:["meta.template.expression"],settings:{foreground:"#000000"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451a5"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#e50000"}},{scope:["support.type.property-name.json"],settings:{foreground:"#0451a5"}},{scope:"keyword",settings:{foreground:"#0000ff"}},{scope:"keyword.control",settings:{foreground:"#0000ff"}},{scope:"keyword.operator",settings:{foreground:"#000000"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#0000ff"}},{scope:"keyword.other.unit",settings:{foreground:"#098658"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#800000"}},{scope:"support.function.git-rebase",settings:{foreground:"#0451a5"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#098658"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#000000"}},{scope:"variable.language",settings:{foreground:"#0000ff"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#795E26"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#267f99"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#267f99"}},{scope:["keyword.control","source.cpp keyword.operator.new","source.cpp keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#AF00DB"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#001080"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#0070C1"}},{scope:["meta.object-literal.key"],settings:{foreground:"#001080"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451a5"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#d16969"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#811f3f"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#000000"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#EE0000"}},{scope:["constant.character","constant.other.option"],settings:{foreground:"#0000ff"}},{scope:"constant.character.escape",settings:{foreground:"#EE0000"}},{scope:"entity.name.label",settings:{foreground:"#000000"}}],type:"light"});export{e as default}; diff --git a/assets/chunks/liquid.Cp8214eI.js b/assets/chunks/liquid.Cp8214eI.js new file mode 100644 index 000000000..ece628b64 --- /dev/null +++ b/assets/chunks/liquid.Cp8214eI.js @@ -0,0 +1,14 @@ +import e from"./html.CuK0VrWf.js";import n from"./css.CbYhyuC0.js";import t from"./json.CupVZNk8.js";import i from"./javascript.Dch3xQiY.js";const a=Object.freeze({displayName:"Liquid",fileTypes:["liquid"],foldingStartMarker:`(?x) +{% + -? + \\s* + (capture|case|comment|for|form|if|javascript|paginate|schema|style) + [^(%})]+ +%} +`,foldingStopMarker:`(?x) +{% + \\s* + (endcapture|endcase|endcomment|endfor|endform|endif|endjavascript|endpaginate|endschema|endstyle) + [^(%})]+ +%} +`,injections:{"L:meta.embedded.block.js, L:meta.embedded.block.css, L:meta.embedded.block.html, L:string.quoted":{patterns:[{include:"#injection"}]}},name:"liquid",patterns:[{include:"#core"}],repository:{attribute:{begin:"\\w+:",beginCaptures:{0:{name:"entity.other.attribute-name.liquid"}},end:"(?=,|%}|}}|\\|)",patterns:[{include:"#value_expression"}]},attribute_liquid:{begin:"\\w+:",beginCaptures:{0:{name:"entity.other.attribute-name.liquid"}},end:"(?=,|\\|)|$",patterns:[{include:"#value_expression"}]},comment_block:{begin:"{%-?\\s*comment\\s*-?%}",end:"{%-?\\s*endcomment\\s*-?%}",name:"comment.block.liquid",patterns:[{include:"#comment_block"},{match:"(.(?!{%-?\\s*(comment|endcomment)\\s*-?%}))*."}]},core:{patterns:[{include:"#raw_tag"},{include:"#comment_block"},{include:"#style_codefence"},{include:"#stylesheet_codefence"},{include:"#json_codefence"},{include:"#javascript_codefence"},{include:"#object"},{include:"#tag"},{include:"text.html.basic"}]},filter:{captures:{1:{name:"support.function.liquid"}},match:"\\|\\s*((?![\\.0-9])[a-zA-Z0-9_-]+\\:?)\\s*"},injection:{patterns:[{include:"#raw_tag"},{include:"#comment_block"},{include:"#object"},{include:"#tag_injection"}]},invalid_range:{match:"\\((.(?!\\.\\.))+\\)",name:"invalid.illegal.range.liquid"},javascript_codefence:{begin:"({%-?)\\s*(javascript)\\s*(-?%})",beginCaptures:{0:{name:"meta.tag.metadata.javascript.start.liquid"},1:{name:"punctuation.definition.tag.begin.liquid"},2:{name:"entity.name.tag.javascript.liquid"},3:{name:"punctuation.definition.tag.begin.liquid"}},contentName:"meta.embedded.block.js",end:"({%-?)\\s*(endjavascript)\\s*(-?%})",endCaptures:{0:{name:"meta.tag.metadata.javascript.end.liquid"},1:{name:"punctuation.definition.tag.end.liquid"},2:{name:"entity.name.tag.javascript.liquid"},3:{name:"punctuation.definition.tag.end.liquid"}},name:"meta.block.javascript.liquid",patterns:[{include:"source.js"}]},json_codefence:{begin:"({%-?)\\s*(schema)\\s*(-?%})",beginCaptures:{0:{name:"meta.tag.metadata.schema.start.liquid"},1:{name:"punctuation.definition.tag.begin.liquid"},2:{name:"entity.name.tag.schema.liquid"},3:{name:"punctuation.definition.tag.begin.liquid"}},contentName:"meta.embedded.block.json",end:"({%-?)\\s*(endschema)\\s*(-?%})",endCaptures:{0:{name:"meta.tag.metadata.schema.end.liquid"},1:{name:"punctuation.definition.tag.end.liquid"},2:{name:"entity.name.tag.schema.liquid"},3:{name:"punctuation.definition.tag.end.liquid"}},name:"meta.block.schema.liquid",patterns:[{include:"source.json"}]},language_constant:{match:"\\b(false|true|nil|blank)\\b|empty(?!\\?)",name:"constant.language.liquid"},number:{match:"((-|\\+)\\s*)?[0-9]+(\\.[0-9]+)?",name:"constant.numeric.liquid"},object:{begin:"(?|\\<|\\>\\=|\\<\\=|or|and|contains)(?:(?=\\s)|\\b)"},range:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.liquid"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.liquid"}},name:"meta.range.liquid",patterns:[{match:"\\.\\.",name:"punctuation.range.liquid"},{include:"#variable_lookup"},{include:"#number"}]},raw_tag:{begin:"{%-?\\s*(raw)\\s*-?%}",beginCaptures:{1:{name:"entity.name.tag.liquid"}},contentName:"string.unquoted.liquid",end:"{%-?\\s*(endraw)\\s*-?%}",endCaptures:{1:{name:"entity.name.tag.liquid"}},name:"meta.entity.tag.raw.liquid",patterns:[{match:"(.(?!{%-?\\s*endraw\\s*-?%}))*."}]},string:{patterns:[{include:"#string_single"},{include:"#string_double"}]},string_double:{begin:'"',end:'"',name:"string.quoted.double.liquid"},string_single:{begin:"'",end:"'",name:"string.quoted.single.liquid"},style_codefence:{begin:"({%-?)\\s*(style)\\s*(-?%})",beginCaptures:{0:{name:"meta.tag.metadata.style.start.liquid"},1:{name:"punctuation.definition.tag.begin.liquid"},2:{name:"entity.name.tag.style.liquid"},3:{name:"punctuation.definition.tag.begin.liquid"}},contentName:"meta.embedded.block.css",end:"({%-?)\\s*(endstyle)\\s*(-?%})",endCaptures:{0:{name:"meta.tag.metadata.style.end.liquid"},1:{name:"punctuation.definition.tag.end.liquid"},2:{name:"entity.name.tag.style.liquid"},3:{name:"punctuation.definition.tag.end.liquid"}},name:"meta.block.style.liquid",patterns:[{include:"source.css"}]},stylesheet_codefence:{begin:"({%-?)\\s*(stylesheet)\\s*(-?%})",beginCaptures:{0:{name:"meta.tag.metadata.style.start.liquid"},1:{name:"punctuation.definition.tag.begin.liquid"},2:{name:"entity.name.tag.style.liquid"},3:{name:"punctuation.definition.tag.begin.liquid"}},contentName:"meta.embedded.block.css",end:"({%-?)\\s*(endstylesheet)\\s*(-?%})",endCaptures:{0:{name:"meta.tag.metadata.style.end.liquid"},1:{name:"punctuation.definition.tag.end.liquid"},2:{name:"entity.name.tag.style.liquid"},3:{name:"punctuation.definition.tag.end.liquid"}},name:"meta.block.style.liquid",patterns:[{include:"source.css"}]},tag:{begin:"(?"},{match:"\\<[a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*\\>",name:"storage.type.generic.lua"},{match:"\\b(break|do|else|for|if|elseif|goto|return|then|repeat|while|until|end|in)\\b",name:"keyword.control.lua"},{match:"\\b(local)\\b",name:"keyword.local.lua"},{match:"\\b(function)\\b(?![,:])",name:"keyword.control.lua"},{match:"(?=?|(?|\\<",name:"keyword.operator.lua"}]},{begin:"(?<=---)[ \\t]*@see",beginCaptures:{0:{name:"storage.type.annotation.lua"}},end:"(?=[\\n@#])",patterns:[{match:"\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)",name:"support.class.lua"},{match:"#",name:"keyword.operator.lua"}]},{begin:"(?<=---)[ \\t]*@diagnostic",beginCaptures:{0:{name:"storage.type.annotation.lua"}},end:"(?=[\\n@#])",patterns:[{begin:"([a-zA-Z_\\-0-9]+)[ \\t]*(:)?",beginCaptures:{1:{name:"keyword.other.unit"},2:{name:"keyword.operator.unit"}},end:"(?=\\n)",patterns:[{match:"\\b([a-zA-Z_\\*][a-zA-Z0-9_\\-]*)",name:"support.class.lua"},{match:",",name:"keyword.operator.lua"}]}]},{begin:"(?<=---)[ \\t]*@module",beginCaptures:{0:{name:"storage.type.annotation.lua"}},end:"(?=[\\n@#])",patterns:[{include:"#string"}]},{match:"(?<=---)[ \\t]*@(async|nodiscard)",name:"storage.type.annotation.lua"},{begin:"(?<=---)\\|\\s*[\\>\\+]?",beginCaptures:{0:{name:"storage.type.annotation.lua"}},end:"(?=[\\n@#])",patterns:[{include:"#string"}]}]},"emmydoc.type":{patterns:[{begin:"\\bfun\\b",beginCaptures:{0:{name:"keyword.control.lua"}},end:"(?=[\\s#])",patterns:[{match:"[\\(\\),:\\?][ \\t]*",name:"keyword.operator.lua"},{match:"([a-zA-Z_][a-zA-Z0-9_\\.\\*\\[\\]\\<\\>\\,\\-]*)(?",name:"storage.type.generic.lua"},{match:"\\basync\\b",name:"entity.name.tag.lua"},{match:"[\\{\\}\\:\\,\\?\\|\\`][ \\t]*",name:"keyword.operator.lua"},{begin:`(?=[a-zA-Z_\\.\\*"'\\[])`,end:"(?=[\\s\\)\\,\\?\\:\\}\\|#])",patterns:[{match:"([a-zA-Z0-9_\\.\\*\\[\\]\\<\\>\\,\\-]+)(?) ?",captures:{2:{name:"punctuation.definition.quote.begin.markdown"}},name:"markup.quote.markdown",patterns:[{include:"#block"}],while:"(^|\\G)\\s*(>) ?"},bold:{begin:`(?x) (?(\\*\\*(?=\\w)|(?]*+> +| (?\`+)([^\`]|(?!(?(?!\`))\`)*+\\k + +| \\\\[\\\\\`*_{}\\[\\]()#.!+\\->]?+ +| \\[ +( +(? +[^\\[\\]\\\\] +| \\\\. +| \\[ \\g*+ \\] +)*+ +\\] +( +( +[ ]? +\\[[^\\]]*+\\] +) +| ( +\\( +[ \\t]*+ +? +[ \\t]*+ +( +(?['"]) +(.*?) +\\k<title> +)? +\\) +) +) +) +| (?!(?<=\\S)\\k<open>). + +)++ +(?<=\\S)(?=__\\b|\\*\\*)\\k<open> +) +`,captures:{1:{name:"punctuation.definition.bold.markdown"}},end:"(?<=\\S)(\\1)",name:"markup.bold.markdown",patterns:[{applyEndPatternLast:1,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"},{include:"#strikethrough"}]},bracket:{comment:"Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",match:"<(?![a-zA-Z/?\\$!])",name:"meta.other.valid-bracket.markdown"},escape:{match:"\\\\[-`*_#+.!(){}\\[\\]\\\\>]",name:"constant.character.escape.markdown"},fenced_code_block:{patterns:[{include:"#fenced_code_block_css"},{include:"#fenced_code_block_basic"},{include:"#fenced_code_block_ini"},{include:"#fenced_code_block_java"},{include:"#fenced_code_block_lua"},{include:"#fenced_code_block_makefile"},{include:"#fenced_code_block_perl"},{include:"#fenced_code_block_r"},{include:"#fenced_code_block_ruby"},{include:"#fenced_code_block_php"},{include:"#fenced_code_block_sql"},{include:"#fenced_code_block_vs_net"},{include:"#fenced_code_block_xml"},{include:"#fenced_code_block_xsl"},{include:"#fenced_code_block_yaml"},{include:"#fenced_code_block_dosbatch"},{include:"#fenced_code_block_clojure"},{include:"#fenced_code_block_coffee"},{include:"#fenced_code_block_c"},{include:"#fenced_code_block_cpp"},{include:"#fenced_code_block_diff"},{include:"#fenced_code_block_dockerfile"},{include:"#fenced_code_block_git_commit"},{include:"#fenced_code_block_git_rebase"},{include:"#fenced_code_block_go"},{include:"#fenced_code_block_groovy"},{include:"#fenced_code_block_pug"},{include:"#fenced_code_block_js"},{include:"#fenced_code_block_js_regexp"},{include:"#fenced_code_block_json"},{include:"#fenced_code_block_jsonc"},{include:"#fenced_code_block_less"},{include:"#fenced_code_block_objc"},{include:"#fenced_code_block_swift"},{include:"#fenced_code_block_scss"},{include:"#fenced_code_block_perl6"},{include:"#fenced_code_block_powershell"},{include:"#fenced_code_block_python"},{include:"#fenced_code_block_julia"},{include:"#fenced_code_block_regexp_python"},{include:"#fenced_code_block_rust"},{include:"#fenced_code_block_scala"},{include:"#fenced_code_block_shell"},{include:"#fenced_code_block_ts"},{include:"#fenced_code_block_tsx"},{include:"#fenced_code_block_csharp"},{include:"#fenced_code_block_fsharp"},{include:"#fenced_code_block_dart"},{include:"#fenced_code_block_handlebars"},{include:"#fenced_code_block_markdown"},{include:"#fenced_code_block_log"},{include:"#fenced_code_block_erlang"},{include:"#fenced_code_block_elixir"},{include:"#fenced_code_block_latex"},{include:"#fenced_code_block_bibtex"},{include:"#fenced_code_block_twig"},{include:"#fenced_code_block_unknown"}]},fenced_code_block_basic:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.html",patterns:[{include:"text.html.basic"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_bibtex:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bibtex)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.bibtex",patterns:[{include:"text.bibtex"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_c:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(c|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.c",patterns:[{include:"source.c"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_clojure:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(clj|cljs|clojure)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.clojure",patterns:[{include:"source.clojure"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_coffee:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(coffee|Cakefile|coffee.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.coffee",patterns:[{include:"source.coffee"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_cpp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cpp|c\\+\\+|cxx)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.cpp source.cpp",patterns:[{include:"source.cpp"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_csharp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.csharp",patterns:[{include:"source.cs"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_css:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(css|css.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.css",patterns:[{include:"source.css"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_dart:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.dart",patterns:[{include:"source.dart"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_diff:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(patch|diff|rej)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.diff",patterns:[{include:"source.diff"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_dockerfile:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dockerfile|Dockerfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.dockerfile",patterns:[{include:"source.dockerfile"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_dosbatch:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bat|batch)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.dosbatch",patterns:[{include:"source.batchfile"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_elixir:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.elixir",patterns:[{include:"source.elixir"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_erlang:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.erlang",patterns:[{include:"source.erlang"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_fsharp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.fsharp",patterns:[{include:"source.fsharp"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_git_commit:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.git_commit",patterns:[{include:"text.git-commit"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_git_rebase:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(git-rebase-todo)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.git_rebase",patterns:[{include:"text.git-rebase"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_go:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(go|golang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.go",patterns:[{include:"source.go"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_groovy:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(groovy|gvy)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.groovy",patterns:[{include:"source.groovy"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_handlebars:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.handlebars",patterns:[{include:"text.html.handlebars"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_ini:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ini|conf)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.ini",patterns:[{include:"source.ini"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_java:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(java|bsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.java",patterns:[{include:"source.java"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_js:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\\{\\.js.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.javascript",patterns:[{include:"source.js"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_js_regexp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.js_regexp",patterns:[{include:"source.js.regexp"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_json:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.json",patterns:[{include:"source.json"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_jsonc:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.jsonc",patterns:[{include:"source.json.comments"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_julia:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(julia|\\{\\.julia.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.julia",patterns:[{include:"source.julia"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_latex:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(latex|tex)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.latex",patterns:[{include:"text.tex.latex"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_less:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.less",patterns:[{include:"source.css.less"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_log:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.log",patterns:[{include:"text.log"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_lua:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(lua)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.lua",patterns:[{include:"source.lua"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_makefile:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.makefile",patterns:[{include:"source.makefile"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_markdown:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.markdown",patterns:[{include:"text.html.markdown"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_objc:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.objc",patterns:[{include:"source.objc"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_perl:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.perl",patterns:[{include:"source.perl"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_perl6:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.perl6",patterns:[{include:"source.perl.6"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_php:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.php",patterns:[{include:"text.html.basic"},{include:"source.php"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_powershell:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1|pwsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.powershell",patterns:[{include:"source.powershell"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_pug:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jade|pug)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.pug",patterns:[{include:"text.pug"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_python:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\{\\.python.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.python",patterns:[{include:"source.python"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_r:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(R|r|s|S|Rprofile|\\{\\.r.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.r",patterns:[{include:"source.r"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_regexp_python:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.regexp_python",patterns:[{include:"source.regexp.python"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_ruby:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.ruby",patterns:[{include:"source.ruby"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_rust:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.rust",patterns:[{include:"source.rust"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_scala:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.scala",patterns:[{include:"source.scala"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_scss:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.scss",patterns:[{include:"source.css.scss"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_shell:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\{\\.bash.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.shellscript",patterns:[{include:"source.shell"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_sql:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(sql|ddl|dml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.sql",patterns:[{include:"source.sql"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_swift:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.swift",patterns:[{include:"source.swift"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_ts:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.typescript",patterns:[{include:"source.ts"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_tsx:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.typescriptreact",patterns:[{include:"source.tsx"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_twig:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(twig)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.twig",patterns:[{include:"source.twig"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_unknown:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown"},fenced_code_block_vs_net:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.vs_net",patterns:[{include:"source.asp.vb.net"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_xml:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.xml",patterns:[{include:"text.xml"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_xsl:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xsl|xslt)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.xsl",patterns:[{include:"text.xml.xsl"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},fenced_code_block_yaml:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yaml|yml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.yaml",patterns:[{include:"source.yaml"}],while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)"}]},frontMatter:{begin:"\\A-{3}\\s*$",contentName:"meta.embedded.block.frontmatter",end:"(^|\\G)-{3}|\\.{3}\\s*$",patterns:[{include:"source.yaml"}]},heading:{captures:{1:{patterns:[{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.6.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.5.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.4.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.3.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.2.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.1.markdown"}]}},match:"(?:^|\\G)[ ]{0,3}(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$",name:"markup.heading.markdown"},"heading-setext":{patterns:[{match:"^(={3,})(?=[ \\t]*$\\n?)",name:"markup.heading.setext.1.markdown"},{match:"^(-{3,})(?=[ \\t]*$\\n?)",name:"markup.heading.setext.2.markdown"}]},html:{patterns:[{begin:"(^|\\G)\\s*(<!--)",captures:{1:{name:"punctuation.definition.comment.html"},2:{name:"punctuation.definition.comment.html"}},end:"(-->)",name:"comment.block.html"},{begin:"(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?</(script|style|pre)>))",end:"(?i)(.*)((</)(script|style|pre)(>))",endCaptures:{1:{patterns:[{include:"text.html.derivative"}]},2:{name:"meta.tag.structure.$4.end.html"},3:{name:"punctuation.definition.tag.begin.html"},4:{name:"entity.name.tag.html"},5:{name:"punctuation.definition.tag.end.html"}},patterns:[{begin:"(\\s*|$)",patterns:[{include:"text.html.derivative"}],while:"(?i)^(?!.*</(script|style|pre)>)"}]},{begin:"(?i)(^|\\G)\\s*(?=</?[a-zA-Z]+[^\\s/>]*(\\s|$|/?>))",patterns:[{include:"text.html.derivative"}],while:"^(?!\\s*$)"},{begin:"(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|</[a-zA-Z0-9\\-]>)\\s*$)",patterns:[{include:"text.html.derivative"}],while:"^(?!\\s*$)"}]},"image-inline":{captures:{1:{name:"punctuation.definition.link.description.begin.markdown"},2:{name:"string.other.link.description.markdown"},4:{name:"punctuation.definition.link.description.end.markdown"},5:{name:"punctuation.definition.metadata.markdown"},7:{name:"punctuation.definition.link.markdown"},8:{name:"markup.underline.link.image.markdown"},9:{name:"punctuation.definition.link.markdown"},10:{name:"markup.underline.link.image.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.begin.markdown"},14:{name:"punctuation.definition.string.end.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.begin.markdown"},17:{name:"punctuation.definition.string.end.markdown"},18:{name:"string.other.link.description.title.markdown"},19:{name:"punctuation.definition.string.begin.markdown"},20:{name:"punctuation.definition.string.end.markdown"},21:{name:"punctuation.definition.metadata.markdown"}},match:`(?x) +(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\]) + +(\\() + +[ \\t]* +( +(<)((?:\\\\[<>]|[^<>\\n])*)(>) +| ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*) +) +[ \\t]* +(?: +((\\().+?(\\))) +| ((").+?(")) +| ((').+?(')) +)? +\\s* +(\\)) +`,name:"meta.image.inline.markdown"},"image-ref":{captures:{1:{name:"punctuation.definition.link.description.begin.markdown"},2:{name:"string.other.link.description.markdown"},4:{name:"punctuation.definition.link.description.end.markdown"},5:{name:"punctuation.definition.constant.markdown"},6:{name:"constant.other.reference.link.markdown"},7:{name:"punctuation.definition.constant.markdown"}},match:"(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",name:"meta.image.reference.markdown"},inline:{patterns:[{include:"#ampersand"},{include:"#bracket"},{include:"#bold"},{include:"#italic"},{include:"#raw"},{include:"#strikethrough"},{include:"#escape"},{include:"#image-inline"},{include:"#image-ref"},{include:"#link-email"},{include:"#link-inet"},{include:"#link-inline"},{include:"#link-ref"},{include:"#link-ref-literal"},{include:"#link-ref-shortcut"}]},italic:{begin:`(?x) (?<open>(\\*(?=\\w)|(?<!\\w)\\*|(?<!\\w)\\b_))(?=\\S) +(?= +( +<[^>]*+> +| (?<raw>\`+)([^\`]|(?!(?<!\`)\\k<raw>(?!\`))\`)*+\\k<raw> + +| \\\\[\\\\\`*_{}\\[\\]()#.!+\\->]?+ +| \\[ +( +(?<square> +[^\\[\\]\\\\] +| \\\\. +| \\[ \\g<square>*+ \\] +)*+ +\\] +( +( +[ ]? +\\[[^\\]]*+\\] +) +| ( +\\( +[ \\t]*+ +<?(.*?)>? +[ \\t]*+ +( +(?<title>['"]) +(.*?) +\\k<title> +)? +\\) +) +) +) +| \\k<open>\\k<open> +| (?!(?<=\\S)\\k<open>). + +)++ +(?<=\\S)(?=_\\b|\\*)\\k<open> +) +`,captures:{1:{name:"punctuation.definition.italic.markdown"}},end:"(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))",name:"markup.italic.markdown",patterns:[{applyEndPatternLast:1,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"},{include:"#strikethrough"}]},"link-def":{captures:{1:{name:"punctuation.definition.constant.markdown"},2:{name:"constant.other.reference.link.markdown"},3:{name:"punctuation.definition.constant.markdown"},4:{name:"punctuation.separator.key-value.markdown"},5:{name:"punctuation.definition.link.markdown"},6:{name:"markup.underline.link.markdown"},7:{name:"punctuation.definition.link.markdown"},8:{name:"markup.underline.link.markdown"},9:{name:"string.other.link.description.title.markdown"},10:{name:"punctuation.definition.string.begin.markdown"},11:{name:"punctuation.definition.string.end.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.begin.markdown"},14:{name:"punctuation.definition.string.end.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.begin.markdown"},17:{name:"punctuation.definition.string.end.markdown"}},match:`(?x) +\\s* +(\\[)([^]]+?)(\\])(:) +[ \\t]* +(?:(<)((?:\\\\[<>]|[^<>\\n])*)(>)|(\\S+?)) +[ \\t]* +(?: +((\\().+?(\\))) +| ((").+?(")) +| ((').+?(')) +)? +\\s* +$ +`,name:"meta.link.reference.def.markdown"},"link-email":{captures:{1:{name:"punctuation.definition.link.markdown"},2:{name:"markup.underline.link.markdown"},4:{name:"punctuation.definition.link.markdown"}},match:"(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)",name:"meta.link.email.lt-gt.markdown"},"link-inet":{captures:{1:{name:"punctuation.definition.link.markdown"},2:{name:"markup.underline.link.markdown"},3:{name:"punctuation.definition.link.markdown"}},match:"(<)((?:https?|ftp)://.*?)(>)",name:"meta.link.inet.markdown"},"link-inline":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown",patterns:[{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#strikethrough"},{include:"#image-inline"}]},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.metadata.markdown"},7:{name:"punctuation.definition.link.markdown"},8:{name:"markup.underline.link.markdown"},9:{name:"punctuation.definition.link.markdown"},10:{name:"markup.underline.link.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.begin.markdown"},14:{name:"punctuation.definition.string.end.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.begin.markdown"},17:{name:"punctuation.definition.string.end.markdown"},18:{name:"string.other.link.description.title.markdown"},19:{name:"punctuation.definition.string.begin.markdown"},20:{name:"punctuation.definition.string.end.markdown"},21:{name:"punctuation.definition.metadata.markdown"}},match:`(?x) +(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\]) + +(\\() + +[ \\t]* +( +(<)((?:\\\\[<>]|[^<>\\n])*)(>) +| ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*) +) +[ \\t]* + +(?: +((\\()[^()]*(\\))) +| ((")[^"]*(")) +| ((')[^']*(')) +)? +\\s* +(\\)) +`,name:"meta.link.inline.markdown"},"link-ref":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown",patterns:[{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#strikethrough"},{include:"#image-inline"}]},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.constant.begin.markdown"},6:{name:"constant.other.reference.link.markdown"},7:{name:"punctuation.definition.constant.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\[)([^\\]]*+)(\\])",name:"meta.link.reference.markdown"},"link-ref-literal":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown"},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.constant.begin.markdown"},6:{name:"punctuation.definition.constant.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])",name:"meta.link.reference.literal.markdown"},"link-ref-shortcut":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown"},3:{name:"punctuation.definition.link.title.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?:[^\\s\\[\\]\\\\]|\\\\[\\[\\]])+?)((?<!\\\\)\\])",name:"meta.link.reference.markdown"},list_paragraph:{begin:"(^|\\G)(?=\\S)(?![*+->]\\s|[0-9]+\\.\\s)",name:"meta.paragraph.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"},{include:"#heading-setext"}],while:"(^|\\G)(?!\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\.)"},lists:{patterns:[{begin:"(^|\\G)([ ]{0,3})([*+-])([ \\t])",beginCaptures:{3:{name:"punctuation.definition.list.begin.markdown"}},comment:"Currently does not support un-indented second lines.",name:"markup.list.unnumbered.markdown",patterns:[{include:"#block"},{include:"#list_paragraph"}],while:"((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"},{begin:"(^|\\G)([ ]{0,3})([0-9]+[\\.\\)])([ \\t])",beginCaptures:{3:{name:"punctuation.definition.list.begin.markdown"}},name:"markup.list.numbered.markdown",patterns:[{include:"#block"},{include:"#list_paragraph"}],while:"((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"}]},paragraph:{begin:"(^|\\G)[ ]{0,3}(?=[^ \\t\\n])",name:"meta.paragraph.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"},{include:"#heading-setext"}],while:"(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=[^ \\t\\n]))"},raw:{captures:{1:{name:"punctuation.definition.raw.markdown"},3:{name:"punctuation.definition.raw.markdown"}},match:"(`+)((?:[^`]|(?!(?<!`)\\1(?!`))`)*+)(\\1)",name:"markup.inline.raw.string.markdown"},raw_block:{begin:"(^|\\G)([ ]{4}|\\t)",name:"markup.raw.block.markdown",while:"(^|\\G)([ ]{4}|\\t)"},separator:{match:"(^|\\G)[ ]{0,3}([\\*\\-\\_])([ ]{0,2}\\2){2,}[ \\t]*$\\n?",name:"meta.separator.markdown"},strikethrough:{captures:{1:{name:"punctuation.definition.strikethrough.markdown"},2:{patterns:[{applyEndPatternLast:1,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"}]},3:{name:"punctuation.definition.strikethrough.markdown"}},match:"(?<!\\\\)(~{2,})((?:[^~]|(?!(?<![~\\\\])\\1(?!~))~)*+)(\\1)",name:"markup.strikethrough.markdown"},table:{begin:"(^|\\G)(\\|)(?=[^|].+\\|\\s*$)",beginCaptures:{2:{name:"punctuation.definition.table.markdown"}},name:"markup.table.markdown",patterns:[{match:"\\|",name:"punctuation.definition.table.markdown"},{captures:{1:{name:"punctuation.separator.table.markdown"}},match:"(?<=\\|)\\s*(:?-+:?)\\s*(?=\\|)"},{captures:{1:{patterns:[{include:"#inline"}]}},match:"(?<=\\|)\\s*(?=\\S)((\\\\\\||[^|])+)(?<=\\S)\\s*(?=\\|)"}],while:"(^|\\G)(?=\\|)"}},scopeName:"text.html.markdown",embeddedLangs:[],aliases:["md"],embeddedLangsLazy:["css","html","ini","java","lua","make","perl","r","ruby","php","sql","vb","xml","xsl","yaml","bat","clojure","coffee","c","cpp","diff","docker","git-commit","git-rebase","go","groovy","pug","javascript","json","jsonc","less","objective-c","swift","scss","raku","powershell","python","julia","rust","scala","shellscript","typescript","tsx","csharp","fsharp","dart","handlebars","log","erlang","elixir","latex","bibtex","html-derivative"]});var n=[e];export{n as default}; diff --git a/assets/chunks/marko.DXVuwHdi.js b/assets/chunks/marko.DXVuwHdi.js new file mode 100644 index 000000000..8d945176f --- /dev/null +++ b/assets/chunks/marko.DXVuwHdi.js @@ -0,0 +1,8 @@ +import e from"./css.CbYhyuC0.js";import n from"./less.Du6_OKDb.js";import t from"./scss.Dr-_CcBd.js";import s from"./javascript.Dch3xQiY.js";const a=Object.freeze({displayName:"Marko",fileTypes:["marko"],name:"marko",patterns:[{begin:"^\\s*(style)\\s+(\\{)",beginCaptures:{1:{name:"storage.type.marko.css"},2:{name:"punctuation.section.scope.begin.marko.css"}},comment:"CSS style block, eg: style { color: green }",contentName:"source.css",end:"\\}",endCaptures:{0:{name:"punctuation.section.scope.end.marko.css"}},name:"meta.embedded.css",patterns:[{include:"source.css"}]},{begin:"^\\s*(style)\\.(less)\\s+(\\{)",beginCaptures:{1:{name:"storage.type.marko.css"},2:{name:"storage.modifier.marko.css"},3:{name:"punctuation.section.scope.begin.marko.css"}},comment:"Less style block, eg: style.less { color: green }",contentName:"source.less",end:"\\}",endCaptures:{0:{name:"punctuation.section.scope.end.marko.css"}},name:"meta.embedded.less",patterns:[{include:"source.css.less"}]},{begin:"^\\s*(style)\\.(scss)\\s+(\\{)",beginCaptures:{1:{name:"storage.type.marko.css"},2:{name:"storage.modifier.marko.css"},3:{name:"punctuation.section.scope.begin.marko.css"}},comment:"SCSS style block, eg: style.scss { color: green }",contentName:"source.scss",end:"\\}",endCaptures:{0:{name:"punctuation.section.scope.end.marko.css"}},name:"meta.embedded.scss",patterns:[{include:"source.css.scss"}]},{begin:"^\\s*(?:(static )|(?=(?:class|import|export) ))",beginCaptures:{1:{name:"keyword.control.static.marko"}},comment:"Top level blocks parsed as JavaScript",contentName:"source.js",end:"(?=\\n|$)",name:"meta.embedded.js",patterns:[{include:"#javascript-statement"}]},{include:"#content-concise-mode"}],repository:{attrs:{patterns:[{applyEndPatternLast:1,begin:"(?:\\s+|,)(?:(key|on[a-zA-Z0-9_$-]+|[a-zA-Z0-9_$]+Change|no-update(?:-body)?(?:-if)?)|([a-zA-Z0-9_$][a-zA-Z0-9_$-]*))(:[a-zA-Z0-9_$][a-zA-Z0-9_$-]*)?",beginCaptures:{1:{name:"support.type.attribute-name.marko"},2:{name:"entity.other.attribute-name.marko"},3:{name:"support.function.attribute-name.marko"}},comment:"Attribute with optional value",end:"(?=.|$)",name:"meta.marko-attribute",patterns:[{include:"#html-args-or-method"},{applyEndPatternLast:1,begin:"\\s*(:?=)\\s*",beginCaptures:{1:{patterns:[{include:"source.js"}]}},comment:"Attribute value",contentName:"source.js",end:"(?=.|$)",name:"meta.embedded.js",patterns:[{include:"#javascript-expression"}]}]},{applyEndPatternLast:1,begin:"(?:\\s+|,)\\.\\.\\.",beginCaptures:{1:{name:"keyword.operator.spread.marko"}},comment:"A ...spread attribute",contentName:"source.js",end:"(?=.|$)",name:"meta.marko-spread-attribute",patterns:[{include:"#javascript-expression"}]},{begin:"\\s*(,(?!,))",captures:{1:{patterns:[{include:"source.js"}]}},comment:"Consume any whitespace after a comma",end:"(?!\\S)"},{include:"#javascript-comment-multiline"},{include:"#invalid"}]},"concise-html-block":{begin:"\\s*(--+)\\s*$",beginCaptures:{2:{name:"punctuation.section.scope.begin.marko"}},comment:"--- HTML block within concise mode content. ---",end:"\\1",endCaptures:{1:{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-html-block",patterns:[{include:"#content-html-mode"}]},"concise-html-line":{captures:{1:{name:"punctuation.section.scope.begin.marko"},2:{patterns:[{include:"#html-comments"},{include:"#tag-html"},{match:"\\\\.",name:"string"},{include:"#placeholder"},{match:".+?",name:"string"}]}},comment:"-- HTML line within concise mode content. (content-html-mode w/o scriptlet)",match:"\\s*(--+)(?=\\s+\\S)(.*$)",name:"meta.section.marko-html-line"},"concise-open-tag-content":{patterns:[{include:"#tag-before-attrs"},{begin:"\\s*\\[",beginCaptures:{0:{name:"punctuation.section.scope.begin.marko"}},end:"]",endCaptures:{0:{name:"punctuation.section.scope.end.marko"}},patterns:[{include:"#attrs"},{include:"#invalid"}]},{begin:"(?!^)(?= )",end:"(?=--)|(?<!,)(?=\\n)",patterns:[{include:"#attrs"},{include:"#invalid"}]}]},"concise-script-block":{begin:"(\\s+)(--+)\\s*$",beginCaptures:{2:{name:"punctuation.section.scope.begin.marko"}},comment:"--- Embedded concise script content block. ---",end:"(\\2)|(?=^(?!\\1)\\s*\\S)",endCaptures:{1:{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-script-block",patterns:[{include:"#content-embedded-script"}]},"concise-script-line":{applyEndPatternLast:1,begin:"\\s*(--+)",beginCaptures:{1:{name:"punctuation.section.scope.begin.marko"}},comment:"-- Embedded concise script content line.",end:"$",name:"meta.section.marko-script-line",patterns:[{include:"#content-embedded-script"}]},"concise-style-block":{begin:"(\\s+)(--+)\\s*$",beginCaptures:{2:{name:"punctuation.section.scope.begin.marko"}},comment:"--- Embedded concise style content block. ---",contentName:"source.css",end:"(\\2)|(?=^(?!\\1)\\s*\\S)",endCaptures:{1:{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-style-block",patterns:[{include:"#content-embedded-style"}]},"concise-style-block-less":{begin:"(\\s+)(--+)\\s*$",beginCaptures:{2:{name:"punctuation.section.scope.begin.marko"}},comment:"--- Embedded concise style content block. ---",contentName:"source.less",end:"(\\2)|(?=^(?!\\1)\\s*\\S)",endCaptures:{1:{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-style-block",patterns:[{include:"#content-embedded-style-less"}]},"concise-style-block-scss":{begin:"(\\s+)(--+)\\s*$",beginCaptures:{2:{name:"punctuation.section.scope.begin.marko"}},comment:"--- Embedded concise style content block. ---",contentName:"source.scss",end:"(\\2)|(?=^(?!\\1)\\s*\\S)",endCaptures:{1:{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-style-block",patterns:[{include:"#content-embedded-style-scss"}]},"concise-style-line":{applyEndPatternLast:1,begin:"\\s*(--+)",beginCaptures:{1:{name:"punctuation.section.scope.begin.marko"}},comment:"-- Embedded concise style content line.",contentName:"source.css",end:"$",name:"meta.section.marko-style-line",patterns:[{include:"#content-embedded-style"}]},"concise-style-line-less":{applyEndPatternLast:1,begin:"\\s*(--+)",beginCaptures:{1:{name:"punctuation.section.scope.begin.marko"}},comment:"-- Embedded concise style content line.",contentName:"source.less",end:"$",name:"meta.section.marko-style-line",patterns:[{include:"#content-embedded-style-less"}]},"concise-style-line-scss":{applyEndPatternLast:1,begin:"\\s*(--+)",beginCaptures:{1:{name:"punctuation.section.scope.begin.marko"}},comment:"-- Embedded concise style content line.",contentName:"source.scss",end:"$",name:"meta.section.marko-style-line",patterns:[{include:"#content-embedded-style-scss"}]},"content-concise-mode":{comment:"Concise mode content block.",name:"meta.marko-concise-content",patterns:[{include:"#scriptlet"},{include:"#javascript-comments"},{include:"#html-comments"},{include:"#concise-html-block"},{include:"#concise-html-line"},{include:"#tag-html"},{comment:"A concise html tag.",patterns:[{begin:"^(\\s*)(?=style\\.less\\b)",comment:"Concise style tag less",patterns:[{include:"#concise-open-tag-content"},{include:"#concise-style-block-less"},{include:"#concise-style-line-less"}],while:"(?=^\\1\\s+(\\S|$))"},{begin:"^(\\s*)(?=style\\.scss\\b)",comment:"Concise style tag scss",patterns:[{include:"#concise-open-tag-content"},{include:"#concise-style-block-scss"},{include:"#concise-style-line-scss"}],while:"(?=^\\1\\s+(\\S|$))"},{begin:"^(\\s*)(?=style\\b)",comment:"Concise style tag",patterns:[{include:"#concise-open-tag-content"},{include:"#concise-style-block"},{include:"#concise-style-line"}],while:"(?=^\\1\\s+(\\S|$))"},{begin:"^(\\s*)(?=script\\b)",comment:"Concise script tag",patterns:[{include:"#concise-open-tag-content"},{include:"#concise-script-block"},{include:"#concise-script-line"}],while:"(?=^\\1\\s+(\\S|$))"},{begin:"^(\\s*)(?=[a-zA-Z0-9_$@])",comment:"Normal concise tag",patterns:[{include:"#concise-open-tag-content"},{include:"#content-concise-mode"}],while:"(?=^\\1\\s+(\\S|$))"}]},{include:"#invalid"}]},"content-embedded-script":{name:"meta.embedded.js",patterns:[{include:"#placeholder"},{include:"source.js"}]},"content-embedded-style":{name:"meta.embedded.css",patterns:[{include:"#placeholder"},{include:"source.css"}]},"content-embedded-style-less":{name:"meta.embedded.css.less",patterns:[{include:"#placeholder"},{include:"source.css.less"}]},"content-embedded-style-scss":{name:"meta.embedded.css.scss",patterns:[{include:"#placeholder"},{include:"source.css.scss"}]},"content-html-mode":{comment:"HTML mode content block.",patterns:[{include:"#scriptlet"},{include:"#html-comments"},{include:"#tag-html"},{match:"\\\\.",name:"string"},{include:"#placeholder"},{match:".+?",name:"string"}]},"html-args-or-method":{patterns:[{include:"#javascript-args"},{begin:"(?<=\\))\\s*(?=\\{)",comment:"Attribute method shorthand following parens",contentName:"source.js",end:"(?<=\\})",name:"meta.embedded.js",patterns:[{include:"source.js"}]}]},"html-comments":{patterns:[{begin:"\\s*(<!(--)?)",beginCaptures:{1:{name:"punctuation.definition.comment.marko"}},comment:"HTML comments, doctypes & cdata",end:"\\2>",endCaptures:{0:{name:"punctuation.definition.comment.marko"}},name:"comment.block.marko"},{begin:"\\s*(<html-comment>)",beginCaptures:{1:{name:"punctuation.definition.comment.marko"}},comment:"Preserved HTML comment tag",end:"</html-comment>",endCaptures:{0:{name:"punctuation.definition.comment.marko"}},name:"comment.block.marko"}]},invalid:{match:"[^\\s]",name:"invalid.illegal.character-not-allowed-here.marko"},"javascript-args":{begin:"(?=\\()",comment:"Javascript style arguments",contentName:"source.js",end:"(?<=\\))",name:"meta.embedded.js",patterns:[{include:"source.js"}]},"javascript-comment-line":{captures:{0:{patterns:[{include:"source.js"}]}},comment:"JavaScript // single line comment",contentName:"source.js",match:"\\s*//.*$"},"javascript-comment-multiline":{begin:"\\s*(?=/\\*)",comment:"JavaScript /* block comment */",contentName:"source.js",end:"(?<=\\*/)",patterns:[{include:"source.js"}]},"javascript-comments":{patterns:[{include:"#javascript-comment-multiline"},{include:"#javascript-comment-line"}]},"javascript-enclosed":{comment:"Matches JavaScript content and ensures enclosed blocks are matched.",patterns:[{include:"#javascript-comments"},{include:"#javascript-args"},{begin:"(?={)",end:"(?<=})",patterns:[{include:"source.js"}]},{begin:"(?=\\[)",end:"(?<=])",patterns:[{include:"source.js"}]},{begin:'(?=")',end:'(?<=")',patterns:[{include:"source.js"}]},{begin:"(?=')",end:"(?<=')",patterns:[{include:"source.js"}]},{begin:"(?=`)",end:"(?<=`)",patterns:[{include:"source.js"}]},{begin:"/(?!<[\\]})A-Z0-9.<%]\\s*/)(?!/?>|$)",captures:{0:{name:"string.regexp.js"}},contentName:"source.js",end:"/[gimsuy]*",patterns:[{include:"source.js#regexp"},{include:"source.js"}]},{begin:`(?x)\\s*(?: +(?:\\b(?:new|typeof|instanceof|in)\\b)| +\\&\\&|\\|\\|| +[\\^|&]| +[!=]=|[!=]==|<|<[=<]|=>| +[?:]| +[-+*%](?!-) +)`,captures:{0:{patterns:[{include:"source.js"}]}},end:"(?=\\S)"}]},"javascript-expression":{patterns:[{include:"#javascript-enclosed"},{captures:{0:{patterns:[{include:"source.js"}]}},comment:"Match identifiers and member expressions",match:"[0-9a-zA-Z$_.]+"}]},"javascript-statement":{patterns:[{include:"#javascript-enclosed"},{include:"source.js"}]},"open-tag-content":{patterns:[{include:"#tag-before-attrs"},{begin:"(?= )",comment:"Attributes begin after the first space within the tag name",end:"(?=/?>)",patterns:[{include:"#attrs"}]}]},placeholder:{begin:"\\$!?{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js"}},comment:"${ } placeholder",contentName:"source.js",end:"}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js"}},patterns:[{include:"source.js"}]},scriptlet:{begin:"^\\s*(\\$)\\s+",beginCaptures:{1:{name:"keyword.control.scriptlet.marko"}},comment:"An inline JavaScript scriptlet.",contentName:"source.js",end:"$",name:"meta.embedded.js",patterns:[{include:"#javascript-statement"}]},"tag-before-attrs":{comment:"Everything in a tag before the attributes content",patterns:[{include:"#tag-name"},{comment:"Shorthand class or ID attribute",match:"[#.][a-zA-Z0-9_$][a-zA-Z0-9_$-]*",name:"entity.other.attribute-name.marko"},{begin:"/(?!/)",beginCaptures:{0:{name:"punctuation.separator.key-value.marko"}},comment:"Variable for a tag",contentName:"source.js",end:"(?=:?\\=|\\s|>|$|\\||\\(|/)",name:"meta.embedded.js",patterns:[{comment:"Match identifiers",match:"[a-zA-Z$_][0-9a-zA-Z$_]*",name:"variable.other.constant.object.js"},{include:"source.js#object-binding-pattern"},{include:"source.js#array-binding-pattern"},{include:"source.js#var-single-variable"},{include:"#javascript-expression"}]},{applyEndPatternLast:1,begin:"\\s*(:?=)\\s*",beginCaptures:{1:{patterns:[{include:"source.js"}]}},comment:"Default attribute value",contentName:"source.js",end:"(?=.|$)",name:"meta.embedded.js",patterns:[{include:"#javascript-expression"}]},{begin:"\\|",beginCaptures:{0:{name:"punctuation.section.scope.begin.marko"}},comment:"Parameters for a tag",end:"\\|",endCaptures:{0:{name:"punctuation.section.scope.end.marko"}},patterns:[{include:"source.js#function-parameters-body"},{include:"source.js"}]},{include:"#html-args-or-method"}]},"tag-html":{comment:"Matches an HTML tag and its contents",patterns:[{begin:"\\s*(<)(?=(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.end.marko"}},comment:"HTML void elements",end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"}]},{begin:"\\s*(<)(?=style\\.less\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML style tag with less",end:"/>|(?<=\\>)",endCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},comment:"Style body content",contentName:"source.less",end:"\\s*(</)(style)?(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.marko"},2:{patterns:[{include:"#tag-name"}]},3:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-embedded-style-less"}]}]},{begin:"\\s*(<)(?=style\\.scss\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML style tag with scss",end:"/>|(?<=\\>)",endCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},comment:"Style body content",contentName:"source.less",end:"\\s*(</)(style)?(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.marko"},2:{patterns:[{include:"#tag-name"}]},3:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-embedded-style-scss"}]}]},{begin:"\\s*(<)(?=style\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML style tag",end:"/>|(?<=\\>)",endCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},comment:"Style body content",contentName:"source.css",end:"\\s*(</)(style)?(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.marko"},2:{patterns:[{include:"#tag-name"}]},3:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-embedded-style"}]}]},{begin:"\\s*(<)(?=script\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML script tag",end:"/>|(?<=\\>)",endCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},comment:"Script body content",contentName:"source.js",end:"\\s*(</)(script)?(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.marko"},2:{patterns:[{include:"#tag-name"}]},3:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-embedded-script"}]}]},{begin:"\\s*(<)(?=[a-zA-Z0-9_$@])",beginCaptures:{1:{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML normal tag",end:"/>|(?<=\\>)",endCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},comment:"Body content",end:"\\s*(</)([a-zA-Z0-9_$:@-]+)?(.*?)(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.marko"},2:{patterns:[{include:"#tag-name"}]},3:{patterns:[{include:"#invalid"}]},4:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-html-mode"}]}]}]},"tag-name":{patterns:[{begin:"\\${",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js"}},comment:"Dynamic tag.",end:"}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js"}},patterns:[{include:"source.js"}]},{captures:{1:{name:"entity.name.tag.marko"},2:{name:"storage.type.marko.css"},3:{patterns:[{comment:"Core tag.",match:"(attrs|return|import)(?=\\b)",name:"support.type.builtin.marko"},{comment:"Core tag.",match:"(for|if|while|else-if|else|macro|tag|await|let|const|effect|set|get|id|lifecycle)(?=\\b)",name:"support.function.marko"},{comment:"Attribute tag.",match:"@.+",name:"entity.other.attribute-name.marko"},{comment:"Native or userland tag.",match:".+",name:"entity.name.tag.marko"}]}},match:"(style)\\.([a-zA-Z0-9$_-]+(?:\\.[a-zA-Z0-9$_-]+)*)|([a-zA-Z0-9_$@][a-zA-Z0-9_$@:-]*)"}]}},scopeName:"text.marko",embeddedLangs:["css","less","scss","javascript"]});var r=[...e,...n,...t,...s,a];export{r as default}; diff --git a/assets/chunks/material-theme-darker.BrGg7AAd.js b/assets/chunks/material-theme-darker.BrGg7AAd.js new file mode 100644 index 000000000..8f6a56793 --- /dev/null +++ b/assets/chunks/material-theme-darker.BrGg7AAd.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#80CBC4","activityBar.background":"#212121","activityBar.border":"#21212160","activityBar.dropBackground":"#f0717880","activityBar.foreground":"#EEFFFF","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#00000030","badge.foreground":"#545454","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumb.background":"#212121","breadcrumb.focusForeground":"#EEFFFF","breadcrumb.foreground":"#676767","breadcrumbPicker.background":"#212121","button.background":"#61616150","button.foreground":"#ffffff","debugConsole.errorForeground":"#f07178","debugConsole.infoForeground":"#89DDFF","debugConsole.warningForeground":"#FFCB6B","debugToolBar.background":"#212121","diffEditor.insertedTextBackground":"#89DDFF20","diffEditor.removedTextBackground":"#ff9cac20","dropdown.background":"#212121","dropdown.border":"#FFFFFF10","editor.background":"#212121","editor.findMatchBackground":"#000000","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlight":"#EEFFFF","editor.findMatchHighlightBackground":"#00000050","editor.findMatchHighlightBorder":"#ffffff30","editor.findRangeHighlightBackground":"#FFCB6B30","editor.foreground":"#EEFFFF","editor.lineHighlightBackground":"#00000050","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#FFFFFF0d","editor.selectionBackground":"#61616150","editor.selectionHighlightBackground":"#FFCC0020","editor.wordHighlightBackground":"#ff9cac30","editor.wordHighlightStrongBackground":"#C3E88D30","editorBracketMatch.background":"#212121","editorBracketMatch.border":"#FFCC0050","editorCursor.foreground":"#FFCC00","editorError.foreground":"#f0717870","editorGroup.border":"#00000030","editorGroup.dropBackground":"#f0717880","editorGroup.focusedEmptyBorder":"#f07178","editorGroupHeader.tabsBackground":"#212121","editorGutter.addedBackground":"#C3E88D60","editorGutter.deletedBackground":"#f0717860","editorGutter.modifiedBackground":"#82AAFF60","editorHoverWidget.background":"#212121","editorHoverWidget.border":"#FFFFFF10","editorIndentGuide.activeBackground":"#424242","editorIndentGuide.background":"#42424270","editorInfo.foreground":"#82AAFF70","editorLineNumber.activeForeground":"#676767","editorLineNumber.foreground":"#424242","editorLink.activeForeground":"#EEFFFF","editorMarkerNavigation.background":"#EEFFFF05","editorOverviewRuler.border":"#212121","editorOverviewRuler.errorForeground":"#f0717840","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.infoForeground":"#82AAFF40","editorOverviewRuler.warningForeground":"#FFCB6B40","editorRuler.foreground":"#424242","editorSuggestWidget.background":"#212121","editorSuggestWidget.border":"#FFFFFF10","editorSuggestWidget.foreground":"#EEFFFF","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#00000050","editorWarning.foreground":"#FFCB6B70","editorWhitespace.foreground":"#EEFFFF40","editorWidget.background":"#212121","editorWidget.border":"#80CBC4","editorWidget.resizeBorder":"#80CBC4","extensionBadge.remoteForeground":"#EEFFFF","extensionButton.prominentBackground":"#C3E88D90","extensionButton.prominentForeground":"#EEFFFF","extensionButton.prominentHoverBackground":"#C3E88D",focusBorder:"#FFFFFF00",foreground:"#EEFFFF","gitDecoration.conflictingResourceForeground":"#FFCB6B90","gitDecoration.deletedResourceForeground":"#f0717890","gitDecoration.ignoredResourceForeground":"#67676790","gitDecoration.modifiedResourceForeground":"#82AAFF90","gitDecoration.untrackedResourceForeground":"#C3E88D90","input.background":"#2B2B2B","input.border":"#FFFFFF10","input.foreground":"#EEFFFF","input.placeholderForeground":"#EEFFFF60","inputOption.activeBackground":"#EEFFFF30","inputOption.activeBorder":"#EEFFFF30","inputValidation.errorBorder":"#f07178","inputValidation.infoBorder":"#82AAFF","inputValidation.warningBorder":"#FFCB6B","list.activeSelectionBackground":"#212121","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#f0717880","list.focusBackground":"#EEFFFF20","list.focusForeground":"#EEFFFF","list.highlightForeground":"#80CBC4","list.hoverBackground":"#212121","list.hoverForeground":"#FFFFFF","list.inactiveSelectionBackground":"#00000030","list.inactiveSelectionForeground":"#80CBC4","listFilterWidget.background":"#00000030","listFilterWidget.noMatchesOutline":"#00000030","listFilterWidget.outline":"#00000030","menu.background":"#212121","menu.foreground":"#EEFFFF","menu.selectionBackground":"#00000050","menu.selectionBorder":"#00000030","menu.selectionForeground":"#80CBC4","menu.separatorBackground":"#EEFFFF","menubar.selectionBackground":"#00000030","menubar.selectionBorder":"#00000030","menubar.selectionForeground":"#80CBC4","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","notificationLink.foreground":"#80CBC4","notifications.background":"#212121","notifications.foreground":"#EEFFFF","panel.background":"#212121","panel.border":"#21212160","panel.dropBackground":"#EEFFFF","panelTitle.activeBorder":"#80CBC4","panelTitle.activeForeground":"#FFFFFF","panelTitle.inactiveForeground":"#EEFFFF","peekView.border":"#00000030","peekViewEditor.background":"#EEFFFF05","peekViewEditor.matchHighlightBackground":"#61616150","peekViewEditorGutter.background":"#EEFFFF05","peekViewResult.background":"#EEFFFF05","peekViewResult.matchHighlightBackground":"#61616150","peekViewResult.selectionBackground":"#67676770","peekViewTitle.background":"#EEFFFF05","peekViewTitleDescription.foreground":"#EEFFFF60","pickerGroup.border":"#FFFFFF1a","pickerGroup.foreground":"#80CBC4","progressBar.background":"#80CBC4","quickInput.background":"#212121","quickInput.foreground":"#676767","quickInput.list.focusBackground":"#EEFFFF20","sash.hoverBorder":"#80CBC450","scrollbar.shadow":"#00000030","scrollbarSlider.activeBackground":"#80CBC4","scrollbarSlider.background":"#EEFFFF20","scrollbarSlider.hoverBackground":"#EEFFFF10","selection.background":"#00000080","settings.checkboxBackground":"#212121","settings.checkboxForeground":"#EEFFFF","settings.dropdownBackground":"#212121","settings.dropdownForeground":"#EEFFFF","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.numberInputBackground":"#212121","settings.numberInputForeground":"#EEFFFF","settings.textInputBackground":"#212121","settings.textInputForeground":"#EEFFFF","sideBar.background":"#212121","sideBar.border":"#21212160","sideBar.foreground":"#676767","sideBarSectionHeader.background":"#212121","sideBarSectionHeader.border":"#21212160","sideBarTitle.foreground":"#EEFFFF","statusBar.background":"#212121","statusBar.border":"#21212160","statusBar.debuggingBackground":"#C792EA","statusBar.debuggingForeground":"#ffffff","statusBar.foreground":"#616161","statusBar.noFolderBackground":"#212121","statusBarItem.activeBackground":"#f0717880","statusBarItem.hoverBackground":"#54545420","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","tab.activeBackground":"#212121","tab.activeBorder":"#80CBC4","tab.activeForeground":"#FFFFFF","tab.activeModifiedBorder":"#676767","tab.border":"#212121","tab.inactiveBackground":"#212121","tab.inactiveForeground":"#676767","tab.inactiveModifiedBorder":"#904348","tab.unfocusedActiveBorder":"#545454","tab.unfocusedActiveForeground":"#EEFFFF","tab.unfocusedActiveModifiedBorder":"#c05a60","tab.unfocusedInactiveModifiedBorder":"#904348","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#82AAFF","terminal.ansiBrightBlack":"#545454","terminal.ansiBrightBlue":"#82AAFF","terminal.ansiBrightCyan":"#89DDFF","terminal.ansiBrightGreen":"#C3E88D","terminal.ansiBrightMagenta":"#C792EA","terminal.ansiBrightRed":"#f07178","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#FFCB6B","terminal.ansiCyan":"#89DDFF","terminal.ansiGreen":"#C3E88D","terminal.ansiMagenta":"#C792EA","terminal.ansiRed":"#f07178","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#FFCB6B","terminalCursor.background":"#000000","terminalCursor.foreground":"#FFCB6B","textLink.activeForeground":"#EEFFFF","textLink.foreground":"#80CBC4","titleBar.activeBackground":"#212121","titleBar.activeForeground":"#EEFFFF","titleBar.border":"#21212160","titleBar.inactiveBackground":"#212121","titleBar.inactiveForeground":"#676767","tree.indentGuidesStroke":"#424242","widget.shadow":"#00000030"},displayName:"Material Theme Darker",name:"material-theme-darker",semanticHighlighting:!0,tokenColors:[{settings:{background:"#212121",foreground:"#EEFFFF"}},{scope:"string",settings:{foreground:"#C3E88D"}},{scope:"punctuation, constant.other.symbol",settings:{foreground:"#89DDFF"}},{scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#EEFFFF"}},{scope:"constant.language.boolean",settings:{foreground:"#ff9cac"}},{scope:"constant.numeric",settings:{foreground:"#F78C6C"}},{scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#EEFFFF"}},{scope:"keyword.other",settings:{foreground:"#F78C6C"}},{scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#89DDFF"}},{scope:"entity.name.function, support.function",settings:{foreground:"#82AAFF"}},{scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#C792EA"}},{scope:"support.module, support.node",settings:{fontStyle:"italic",foreground:"#f07178"}},{scope:"support.type, constant.other.key",settings:{foreground:"#FFCB6B"}},{scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#FFCB6B"}},{scope:"comment",settings:{fontStyle:"italic",foreground:"#545454"}},{scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{fontStyle:"italic",foreground:"#545454"}},{scope:"punctuation",settings:{foreground:"#89DDFF"}},{scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#FFCB6B"}},{scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#f07178"}},{scope:"meta.definition.method entity.name.function",settings:{foreground:"#f07178"}},{scope:"meta.function entity.name.function",settings:{foreground:"#82AAFF"}},{scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#89DDFF"}},{scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#EEFFFF"}},{scope:"entity.name.tag.yaml",settings:{foreground:"#f07178"}},{scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#f07178"}},{scope:"constant.language.json",settings:{foreground:"#89DDFF"}},{scope:"entity.other.attribute-name.class",settings:{foreground:"#FFCB6B"}},{scope:"entity.other.attribute-name.id",settings:{foreground:"#F78C6C"}},{scope:"source.css entity.name.tag",settings:{foreground:"#FFCB6B"}},{scope:"support.type.property-name.css",settings:{foreground:"#B2CCD6"}},{scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#89DDFF"}},{scope:"entity.name.tag",settings:{foreground:"#f07178"}},{scope:"entity.other.attribute-name",settings:{foreground:"#C792EA"}},{scope:"punctuation.definition.entity.html",settings:{foreground:"#EEFFFF"}},{scope:"markup.heading",settings:{foreground:"#89DDFF"}},{scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#f07178"}},{scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#89DDFF"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#f07178"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#f07178"}},{scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{fontStyle:"italic bold",foreground:"#f07178"}},{scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#C3E88D"}},{scope:"markup.inline.raw.string.markdown",settings:{foreground:"#C3E88D"}},{scope:"keyword.other.definition.ini",settings:{foreground:"#f07178"}},{scope:"entity.name.section.group-title.ini",settings:{foreground:"#89DDFF"}},{scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#FFCB6B"}},{scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#f07178"}},{scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#82AAFF"}},{scope:"source.cs storage.type",settings:{foreground:"#FFCB6B"}},{scope:"source.cs meta.method.return-type",settings:{foreground:"#FFCB6B"}},{scope:"source.cs meta.preprocessor",settings:{foreground:"#545454"}},{scope:"source.cs entity.name.type.namespace",settings:{foreground:"#EEFFFF"}},{scope:"meta.jsx.children, SXNested",settings:{foreground:"#EEFFFF"}},{scope:"support.class.component",settings:{foreground:"#FFCB6B"}},{scope:"source.cpp meta.block variable.other",settings:{foreground:"#EEFFFF"}},{scope:"source.python meta.member.access.python",settings:{foreground:"#f07178"}},{scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#82AAFF"}},{scope:"meta.block",settings:{foreground:"#f07178"}},{scope:"entity.name.function.call",settings:{foreground:"#82AAFF"}},{scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#EEFFFF"}},{scope:"constant.keyword",settings:{fontStyle:"italic",foreground:"#89DDFF"}},{scope:"entity.name.function",settings:{foreground:"#82AAFF"}},{settings:{background:"#212121",foreground:"#EEFFFF"}},{scope:["constant.other.placeholder"],settings:{foreground:"#f07178"}},{scope:["markup.deleted"],settings:{foreground:"#f07178"}},{scope:["markup.inserted"],settings:{foreground:"#C3E88D"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["keyword.control"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{scope:["variable.parameter"],settings:{fontStyle:"italic"}},{scope:["variable.parameter.function.language.special.self.python"],settings:{fontStyle:"italic",foreground:"#f07178"}},{scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F78C6C"}},{scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{scope:["markup.fenced_code.block"],settings:{foreground:"#EEFFFF90"}},{scope:["punctuation.definition.quote"],settings:{foreground:"#ff9cac"}},{scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFCB6B"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F78C6C"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#f07178"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#82AAFF"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ff9cac"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C3E88D"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/material-theme-lighter.DDRuGeQH.js b/assets/chunks/material-theme-lighter.DDRuGeQH.js new file mode 100644 index 000000000..a179b712b --- /dev/null +++ b/assets/chunks/material-theme-lighter.DDRuGeQH.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#80CBC4","activityBar.background":"#FAFAFA","activityBar.border":"#FAFAFA60","activityBar.dropBackground":"#E5393580","activityBar.foreground":"#90A4AE","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#CCD7DA30","badge.foreground":"#90A4AE","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumb.background":"#FAFAFA","breadcrumb.focusForeground":"#90A4AE","breadcrumb.foreground":"#758a95","breadcrumbPicker.background":"#FAFAFA","button.background":"#80CBC440","button.foreground":"#ffffff","debugConsole.errorForeground":"#E53935","debugConsole.infoForeground":"#39ADB5","debugConsole.warningForeground":"#E2931D","debugToolBar.background":"#FAFAFA","diffEditor.insertedTextBackground":"#39ADB520","diffEditor.removedTextBackground":"#FF537020","dropdown.background":"#FAFAFA","dropdown.border":"#00000010","editor.background":"#FAFAFA","editor.findMatchBackground":"#00000020","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlight":"#90A4AE","editor.findMatchHighlightBackground":"#00000010","editor.findMatchHighlightBorder":"#00000030","editor.findRangeHighlightBackground":"#E2931D30","editor.foreground":"#90A4AE","editor.lineHighlightBackground":"#CCD7DA50","editor.lineHighlightBorder":"#CCD7DA00","editor.rangeHighlightBackground":"#FFFFFF0d","editor.selectionBackground":"#80CBC440","editor.selectionHighlightBackground":"#27272720","editor.wordHighlightBackground":"#FF537030","editor.wordHighlightStrongBackground":"#91B85930","editorBracketMatch.background":"#FAFAFA","editorBracketMatch.border":"#27272750","editorCursor.foreground":"#272727","editorError.foreground":"#E5393570","editorGroup.border":"#00000020","editorGroup.dropBackground":"#E5393580","editorGroup.focusedEmptyBorder":"#E53935","editorGroupHeader.tabsBackground":"#FAFAFA","editorGutter.addedBackground":"#91B85960","editorGutter.deletedBackground":"#E5393560","editorGutter.modifiedBackground":"#6182B860","editorHoverWidget.background":"#FAFAFA","editorHoverWidget.border":"#00000010","editorIndentGuide.activeBackground":"#B0BEC5","editorIndentGuide.background":"#B0BEC570","editorInfo.foreground":"#6182B870","editorLineNumber.activeForeground":"#758a95","editorLineNumber.foreground":"#CFD8DC","editorLink.activeForeground":"#90A4AE","editorMarkerNavigation.background":"#90A4AE05","editorOverviewRuler.border":"#FAFAFA","editorOverviewRuler.errorForeground":"#E5393540","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.infoForeground":"#6182B840","editorOverviewRuler.warningForeground":"#E2931D40","editorRuler.foreground":"#B0BEC5","editorSuggestWidget.background":"#FAFAFA","editorSuggestWidget.border":"#00000010","editorSuggestWidget.foreground":"#90A4AE","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#CCD7DA50","editorWarning.foreground":"#E2931D70","editorWhitespace.foreground":"#90A4AE40","editorWidget.background":"#FAFAFA","editorWidget.border":"#80CBC4","editorWidget.resizeBorder":"#80CBC4","extensionBadge.remoteForeground":"#90A4AE","extensionButton.prominentBackground":"#91B85990","extensionButton.prominentForeground":"#90A4AE","extensionButton.prominentHoverBackground":"#91B859",focusBorder:"#FFFFFF00",foreground:"#90A4AE","gitDecoration.conflictingResourceForeground":"#E2931D90","gitDecoration.deletedResourceForeground":"#E5393590","gitDecoration.ignoredResourceForeground":"#758a9590","gitDecoration.modifiedResourceForeground":"#6182B890","gitDecoration.untrackedResourceForeground":"#91B85990","input.background":"#EEEEEE","input.border":"#00000010","input.foreground":"#90A4AE","input.placeholderForeground":"#90A4AE60","inputOption.activeBackground":"#90A4AE30","inputOption.activeBorder":"#90A4AE30","inputValidation.errorBorder":"#E53935","inputValidation.infoBorder":"#6182B8","inputValidation.warningBorder":"#E2931D","list.activeSelectionBackground":"#FAFAFA","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#E5393580","list.focusBackground":"#90A4AE20","list.focusForeground":"#90A4AE","list.highlightForeground":"#80CBC4","list.hoverBackground":"#FAFAFA","list.hoverForeground":"#B1C7D3","list.inactiveSelectionBackground":"#CCD7DA50","list.inactiveSelectionForeground":"#80CBC4","listFilterWidget.background":"#CCD7DA50","listFilterWidget.noMatchesOutline":"#CCD7DA50","listFilterWidget.outline":"#CCD7DA50","menu.background":"#FAFAFA","menu.foreground":"#90A4AE","menu.selectionBackground":"#CCD7DA50","menu.selectionBorder":"#CCD7DA50","menu.selectionForeground":"#80CBC4","menu.separatorBackground":"#90A4AE","menubar.selectionBackground":"#CCD7DA50","menubar.selectionBorder":"#CCD7DA50","menubar.selectionForeground":"#80CBC4","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","notificationLink.foreground":"#80CBC4","notifications.background":"#FAFAFA","notifications.foreground":"#90A4AE","panel.background":"#FAFAFA","panel.border":"#FAFAFA60","panel.dropBackground":"#90A4AE","panelTitle.activeBorder":"#80CBC4","panelTitle.activeForeground":"#000000","panelTitle.inactiveForeground":"#90A4AE","peekView.border":"#00000020","peekViewEditor.background":"#90A4AE05","peekViewEditor.matchHighlightBackground":"#80CBC440","peekViewEditorGutter.background":"#90A4AE05","peekViewResult.background":"#90A4AE05","peekViewResult.matchHighlightBackground":"#80CBC440","peekViewResult.selectionBackground":"#758a9570","peekViewTitle.background":"#90A4AE05","peekViewTitleDescription.foreground":"#90A4AE60","pickerGroup.border":"#FFFFFF1a","pickerGroup.foreground":"#80CBC4","progressBar.background":"#80CBC4","quickInput.background":"#FAFAFA","quickInput.foreground":"#758a95","quickInput.list.focusBackground":"#90A4AE20","sash.hoverBorder":"#80CBC450","scrollbar.shadow":"#00000020","scrollbarSlider.activeBackground":"#80CBC4","scrollbarSlider.background":"#90A4AE20","scrollbarSlider.hoverBackground":"#90A4AE10","selection.background":"#CCD7DA80","settings.checkboxBackground":"#FAFAFA","settings.checkboxForeground":"#90A4AE","settings.dropdownBackground":"#FAFAFA","settings.dropdownForeground":"#90A4AE","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.numberInputBackground":"#FAFAFA","settings.numberInputForeground":"#90A4AE","settings.textInputBackground":"#FAFAFA","settings.textInputForeground":"#90A4AE","sideBar.background":"#FAFAFA","sideBar.border":"#FAFAFA60","sideBar.foreground":"#758a95","sideBarSectionHeader.background":"#FAFAFA","sideBarSectionHeader.border":"#FAFAFA60","sideBarTitle.foreground":"#90A4AE","statusBar.background":"#FAFAFA","statusBar.border":"#FAFAFA60","statusBar.debuggingBackground":"#9C3EDA","statusBar.debuggingForeground":"#FFFFFF","statusBar.foreground":"#7E939E","statusBar.noFolderBackground":"#FAFAFA","statusBarItem.activeBackground":"#E5393580","statusBarItem.hoverBackground":"#90A4AE20","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","tab.activeBackground":"#FAFAFA","tab.activeBorder":"#80CBC4","tab.activeForeground":"#000000","tab.activeModifiedBorder":"#758a95","tab.border":"#FAFAFA","tab.inactiveBackground":"#FAFAFA","tab.inactiveForeground":"#758a95","tab.inactiveModifiedBorder":"#89221f","tab.unfocusedActiveBorder":"#90A4AE","tab.unfocusedActiveForeground":"#90A4AE","tab.unfocusedActiveModifiedBorder":"#b72d2a","tab.unfocusedInactiveModifiedBorder":"#89221f","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#6182B8","terminal.ansiBrightBlack":"#90A4AE","terminal.ansiBrightBlue":"#6182B8","terminal.ansiBrightCyan":"#39ADB5","terminal.ansiBrightGreen":"#91B859","terminal.ansiBrightMagenta":"#9C3EDA","terminal.ansiBrightRed":"#E53935","terminal.ansiBrightWhite":"#FFFFFF","terminal.ansiBrightYellow":"#E2931D","terminal.ansiCyan":"#39ADB5","terminal.ansiGreen":"#91B859","terminal.ansiMagenta":"#9C3EDA","terminal.ansiRed":"#E53935","terminal.ansiWhite":"#FFFFFF","terminal.ansiYellow":"#E2931D","terminalCursor.background":"#000000","terminalCursor.foreground":"#E2931D","textLink.activeForeground":"#90A4AE","textLink.foreground":"#80CBC4","titleBar.activeBackground":"#FAFAFA","titleBar.activeForeground":"#90A4AE","titleBar.border":"#FAFAFA60","titleBar.inactiveBackground":"#FAFAFA","titleBar.inactiveForeground":"#758a95","tree.indentGuidesStroke":"#B0BEC5","widget.shadow":"#00000020"},displayName:"Material Theme Lighter",name:"material-theme-lighter",semanticHighlighting:!0,tokenColors:[{settings:{background:"#FAFAFA",foreground:"#90A4AE"}},{scope:"string",settings:{foreground:"#91B859"}},{scope:"punctuation, constant.other.symbol",settings:{foreground:"#39ADB5"}},{scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#90A4AE"}},{scope:"constant.language.boolean",settings:{foreground:"#FF5370"}},{scope:"constant.numeric",settings:{foreground:"#F76D47"}},{scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#90A4AE"}},{scope:"keyword.other",settings:{foreground:"#F76D47"}},{scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#39ADB5"}},{scope:"entity.name.function, support.function",settings:{foreground:"#6182B8"}},{scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#9C3EDA"}},{scope:"support.module, support.node",settings:{fontStyle:"italic",foreground:"#E53935"}},{scope:"support.type, constant.other.key",settings:{foreground:"#E2931D"}},{scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#E2931D"}},{scope:"comment",settings:{fontStyle:"italic",foreground:"#90A4AE"}},{scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{fontStyle:"italic",foreground:"#90A4AE"}},{scope:"punctuation",settings:{foreground:"#39ADB5"}},{scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#E2931D"}},{scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#E53935"}},{scope:"meta.definition.method entity.name.function",settings:{foreground:"#E53935"}},{scope:"meta.function entity.name.function",settings:{foreground:"#6182B8"}},{scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#39ADB5"}},{scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#90A4AE"}},{scope:"entity.name.tag.yaml",settings:{foreground:"#E53935"}},{scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#E53935"}},{scope:"constant.language.json",settings:{foreground:"#39ADB5"}},{scope:"entity.other.attribute-name.class",settings:{foreground:"#E2931D"}},{scope:"entity.other.attribute-name.id",settings:{foreground:"#F76D47"}},{scope:"source.css entity.name.tag",settings:{foreground:"#E2931D"}},{scope:"support.type.property-name.css",settings:{foreground:"#8796B0"}},{scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#39ADB5"}},{scope:"entity.name.tag",settings:{foreground:"#E53935"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9C3EDA"}},{scope:"punctuation.definition.entity.html",settings:{foreground:"#90A4AE"}},{scope:"markup.heading",settings:{foreground:"#39ADB5"}},{scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#E53935"}},{scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#39ADB5"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#E53935"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#E53935"}},{scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{fontStyle:"italic bold",foreground:"#E53935"}},{scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#91B859"}},{scope:"markup.inline.raw.string.markdown",settings:{foreground:"#91B859"}},{scope:"keyword.other.definition.ini",settings:{foreground:"#E53935"}},{scope:"entity.name.section.group-title.ini",settings:{foreground:"#39ADB5"}},{scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#E2931D"}},{scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#E53935"}},{scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#6182B8"}},{scope:"source.cs storage.type",settings:{foreground:"#E2931D"}},{scope:"source.cs meta.method.return-type",settings:{foreground:"#E2931D"}},{scope:"source.cs meta.preprocessor",settings:{foreground:"#90A4AE"}},{scope:"source.cs entity.name.type.namespace",settings:{foreground:"#90A4AE"}},{scope:"meta.jsx.children, SXNested",settings:{foreground:"#90A4AE"}},{scope:"support.class.component",settings:{foreground:"#E2931D"}},{scope:"source.cpp meta.block variable.other",settings:{foreground:"#90A4AE"}},{scope:"source.python meta.member.access.python",settings:{foreground:"#E53935"}},{scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#6182B8"}},{scope:"meta.block",settings:{foreground:"#E53935"}},{scope:"entity.name.function.call",settings:{foreground:"#6182B8"}},{scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#90A4AE"}},{scope:"constant.keyword",settings:{fontStyle:"italic",foreground:"#39ADB5"}},{scope:"entity.name.function",settings:{foreground:"#6182B8"}},{settings:{background:"#FAFAFA",foreground:"#90A4AE"}},{scope:["constant.other.placeholder"],settings:{foreground:"#E53935"}},{scope:["markup.deleted"],settings:{foreground:"#E53935"}},{scope:["markup.inserted"],settings:{foreground:"#91B859"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["keyword.control"],settings:{fontStyle:"italic",foreground:"#39ADB5"}},{scope:["variable.parameter"],settings:{fontStyle:"italic"}},{scope:["variable.parameter.function.language.special.self.python"],settings:{fontStyle:"italic",foreground:"#E53935"}},{scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F76D47"}},{scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#39ADB5"}},{scope:["markup.fenced_code.block"],settings:{foreground:"#90A4AE90"}},{scope:["punctuation.definition.quote"],settings:{foreground:"#FF5370"}},{scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#9C3EDA"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#E2931D"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F76D47"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#E53935"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#6182B8"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FF5370"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#9C3EDA"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#91B859"}}],type:"light"});export{e as default}; diff --git a/assets/chunks/material-theme-ocean.CBL0qBdF.js b/assets/chunks/material-theme-ocean.CBL0qBdF.js new file mode 100644 index 000000000..fd49b7e06 --- /dev/null +++ b/assets/chunks/material-theme-ocean.CBL0qBdF.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#80CBC4","activityBar.background":"#0F111A","activityBar.border":"#0F111A60","activityBar.dropBackground":"#f0717880","activityBar.foreground":"#babed8","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#00000030","badge.foreground":"#464B5D","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumb.background":"#0F111A","breadcrumb.focusForeground":"#babed8","breadcrumb.foreground":"#525975","breadcrumbPicker.background":"#0F111A","button.background":"#717CB450","button.foreground":"#ffffff","debugConsole.errorForeground":"#f07178","debugConsole.infoForeground":"#89DDFF","debugConsole.warningForeground":"#FFCB6B","debugToolBar.background":"#0F111A","diffEditor.insertedTextBackground":"#89DDFF20","diffEditor.removedTextBackground":"#ff9cac20","dropdown.background":"#0F111A","dropdown.border":"#FFFFFF10","editor.background":"#0F111A","editor.findMatchBackground":"#000000","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlight":"#babed8","editor.findMatchHighlightBackground":"#00000050","editor.findMatchHighlightBorder":"#ffffff30","editor.findRangeHighlightBackground":"#FFCB6B30","editor.foreground":"#babed8","editor.lineHighlightBackground":"#00000050","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#FFFFFF0d","editor.selectionBackground":"#717CB450","editor.selectionHighlightBackground":"#FFCC0020","editor.wordHighlightBackground":"#ff9cac30","editor.wordHighlightStrongBackground":"#C3E88D30","editorBracketMatch.background":"#0F111A","editorBracketMatch.border":"#FFCC0050","editorCursor.foreground":"#FFCC00","editorError.foreground":"#f0717870","editorGroup.border":"#00000030","editorGroup.dropBackground":"#f0717880","editorGroup.focusedEmptyBorder":"#f07178","editorGroupHeader.tabsBackground":"#0F111A","editorGutter.addedBackground":"#C3E88D60","editorGutter.deletedBackground":"#f0717860","editorGutter.modifiedBackground":"#82AAFF60","editorHoverWidget.background":"#0F111A","editorHoverWidget.border":"#FFFFFF10","editorIndentGuide.activeBackground":"#3B3F51","editorIndentGuide.background":"#3B3F5170","editorInfo.foreground":"#82AAFF70","editorLineNumber.activeForeground":"#525975","editorLineNumber.foreground":"#3B3F5180","editorLink.activeForeground":"#babed8","editorMarkerNavigation.background":"#babed805","editorOverviewRuler.border":"#0F111A","editorOverviewRuler.errorForeground":"#f0717840","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.infoForeground":"#82AAFF40","editorOverviewRuler.warningForeground":"#FFCB6B40","editorRuler.foreground":"#3B3F51","editorSuggestWidget.background":"#0F111A","editorSuggestWidget.border":"#FFFFFF10","editorSuggestWidget.foreground":"#babed8","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#00000050","editorWarning.foreground":"#FFCB6B70","editorWhitespace.foreground":"#babed840","editorWidget.background":"#0F111A","editorWidget.border":"#80CBC4","editorWidget.resizeBorder":"#80CBC4","extensionBadge.remoteForeground":"#babed8","extensionButton.prominentBackground":"#C3E88D90","extensionButton.prominentForeground":"#babed8","extensionButton.prominentHoverBackground":"#C3E88D",focusBorder:"#FFFFFF00",foreground:"#babed8","gitDecoration.conflictingResourceForeground":"#FFCB6B90","gitDecoration.deletedResourceForeground":"#f0717890","gitDecoration.ignoredResourceForeground":"#52597590","gitDecoration.modifiedResourceForeground":"#82AAFF90","gitDecoration.untrackedResourceForeground":"#C3E88D90","input.background":"#1A1C25","input.border":"#FFFFFF10","input.foreground":"#babed8","input.placeholderForeground":"#babed860","inputOption.activeBackground":"#babed830","inputOption.activeBorder":"#babed830","inputValidation.errorBorder":"#f07178","inputValidation.infoBorder":"#82AAFF","inputValidation.warningBorder":"#FFCB6B","list.activeSelectionBackground":"#0F111A","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#f0717880","list.focusBackground":"#babed820","list.focusForeground":"#babed8","list.highlightForeground":"#80CBC4","list.hoverBackground":"#0F111A","list.hoverForeground":"#FFFFFF","list.inactiveSelectionBackground":"#00000030","list.inactiveSelectionForeground":"#80CBC4","listFilterWidget.background":"#00000030","listFilterWidget.noMatchesOutline":"#00000030","listFilterWidget.outline":"#00000030","menu.background":"#0F111A","menu.foreground":"#babed8","menu.selectionBackground":"#00000050","menu.selectionBorder":"#00000030","menu.selectionForeground":"#80CBC4","menu.separatorBackground":"#babed8","menubar.selectionBackground":"#00000030","menubar.selectionBorder":"#00000030","menubar.selectionForeground":"#80CBC4","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","notificationLink.foreground":"#80CBC4","notifications.background":"#0F111A","notifications.foreground":"#babed8","panel.background":"#0F111A","panel.border":"#0F111A60","panel.dropBackground":"#babed8","panelTitle.activeBorder":"#80CBC4","panelTitle.activeForeground":"#FFFFFF","panelTitle.inactiveForeground":"#babed8","peekView.border":"#00000030","peekViewEditor.background":"#babed805","peekViewEditor.matchHighlightBackground":"#717CB450","peekViewEditorGutter.background":"#babed805","peekViewResult.background":"#babed805","peekViewResult.matchHighlightBackground":"#717CB450","peekViewResult.selectionBackground":"#52597570","peekViewTitle.background":"#babed805","peekViewTitleDescription.foreground":"#babed860","pickerGroup.border":"#FFFFFF1a","pickerGroup.foreground":"#80CBC4","progressBar.background":"#80CBC4","quickInput.background":"#0F111A","quickInput.foreground":"#525975","quickInput.list.focusBackground":"#babed820","sash.hoverBorder":"#80CBC450","scrollbar.shadow":"#00000030","scrollbarSlider.activeBackground":"#80CBC4","scrollbarSlider.background":"#8F93A220","scrollbarSlider.hoverBackground":"#8F93A210","selection.background":"#00000080","settings.checkboxBackground":"#0F111A","settings.checkboxForeground":"#babed8","settings.dropdownBackground":"#0F111A","settings.dropdownForeground":"#babed8","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.numberInputBackground":"#0F111A","settings.numberInputForeground":"#babed8","settings.textInputBackground":"#0F111A","settings.textInputForeground":"#babed8","sideBar.background":"#0F111A","sideBar.border":"#0F111A60","sideBar.foreground":"#525975","sideBarSectionHeader.background":"#0F111A","sideBarSectionHeader.border":"#0F111A60","sideBarTitle.foreground":"#babed8","statusBar.background":"#0F111A","statusBar.border":"#0F111A60","statusBar.debuggingBackground":"#C792EA","statusBar.debuggingForeground":"#ffffff","statusBar.foreground":"#4B526D","statusBar.noFolderBackground":"#0F111A","statusBarItem.activeBackground":"#f0717880","statusBarItem.hoverBackground":"#464B5D20","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","tab.activeBackground":"#0F111A","tab.activeBorder":"#80CBC4","tab.activeForeground":"#FFFFFF","tab.activeModifiedBorder":"#525975","tab.border":"#0F111A","tab.inactiveBackground":"#0F111A","tab.inactiveForeground":"#525975","tab.inactiveModifiedBorder":"#904348","tab.unfocusedActiveBorder":"#464B5D","tab.unfocusedActiveForeground":"#babed8","tab.unfocusedActiveModifiedBorder":"#c05a60","tab.unfocusedInactiveModifiedBorder":"#904348","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#82AAFF","terminal.ansiBrightBlack":"#464B5D","terminal.ansiBrightBlue":"#82AAFF","terminal.ansiBrightCyan":"#89DDFF","terminal.ansiBrightGreen":"#C3E88D","terminal.ansiBrightMagenta":"#C792EA","terminal.ansiBrightRed":"#f07178","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#FFCB6B","terminal.ansiCyan":"#89DDFF","terminal.ansiGreen":"#C3E88D","terminal.ansiMagenta":"#C792EA","terminal.ansiRed":"#f07178","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#FFCB6B","terminalCursor.background":"#000000","terminalCursor.foreground":"#FFCB6B","textLink.activeForeground":"#babed8","textLink.foreground":"#80CBC4","titleBar.activeBackground":"#0F111A","titleBar.activeForeground":"#babed8","titleBar.border":"#0F111A60","titleBar.inactiveBackground":"#0F111A","titleBar.inactiveForeground":"#525975","tree.indentGuidesStroke":"#3B3F51","widget.shadow":"#00000030"},displayName:"Material Theme Ocean",name:"material-theme-ocean",semanticHighlighting:!0,tokenColors:[{settings:{background:"#0F111A",foreground:"#babed8"}},{scope:"string",settings:{foreground:"#C3E88D"}},{scope:"punctuation, constant.other.symbol",settings:{foreground:"#89DDFF"}},{scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#babed8"}},{scope:"constant.language.boolean",settings:{foreground:"#ff9cac"}},{scope:"constant.numeric",settings:{foreground:"#F78C6C"}},{scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#babed8"}},{scope:"keyword.other",settings:{foreground:"#F78C6C"}},{scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#89DDFF"}},{scope:"entity.name.function, support.function",settings:{foreground:"#82AAFF"}},{scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#C792EA"}},{scope:"support.module, support.node",settings:{fontStyle:"italic",foreground:"#f07178"}},{scope:"support.type, constant.other.key",settings:{foreground:"#FFCB6B"}},{scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#FFCB6B"}},{scope:"comment",settings:{fontStyle:"italic",foreground:"#464B5D"}},{scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{fontStyle:"italic",foreground:"#464B5D"}},{scope:"punctuation",settings:{foreground:"#89DDFF"}},{scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#FFCB6B"}},{scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#f07178"}},{scope:"meta.definition.method entity.name.function",settings:{foreground:"#f07178"}},{scope:"meta.function entity.name.function",settings:{foreground:"#82AAFF"}},{scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#89DDFF"}},{scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#babed8"}},{scope:"entity.name.tag.yaml",settings:{foreground:"#f07178"}},{scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#f07178"}},{scope:"constant.language.json",settings:{foreground:"#89DDFF"}},{scope:"entity.other.attribute-name.class",settings:{foreground:"#FFCB6B"}},{scope:"entity.other.attribute-name.id",settings:{foreground:"#F78C6C"}},{scope:"source.css entity.name.tag",settings:{foreground:"#FFCB6B"}},{scope:"support.type.property-name.css",settings:{foreground:"#B2CCD6"}},{scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#89DDFF"}},{scope:"entity.name.tag",settings:{foreground:"#f07178"}},{scope:"entity.other.attribute-name",settings:{foreground:"#C792EA"}},{scope:"punctuation.definition.entity.html",settings:{foreground:"#babed8"}},{scope:"markup.heading",settings:{foreground:"#89DDFF"}},{scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#f07178"}},{scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#89DDFF"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#f07178"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#f07178"}},{scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{fontStyle:"italic bold",foreground:"#f07178"}},{scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#C3E88D"}},{scope:"markup.inline.raw.string.markdown",settings:{foreground:"#C3E88D"}},{scope:"keyword.other.definition.ini",settings:{foreground:"#f07178"}},{scope:"entity.name.section.group-title.ini",settings:{foreground:"#89DDFF"}},{scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#FFCB6B"}},{scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#f07178"}},{scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#82AAFF"}},{scope:"source.cs storage.type",settings:{foreground:"#FFCB6B"}},{scope:"source.cs meta.method.return-type",settings:{foreground:"#FFCB6B"}},{scope:"source.cs meta.preprocessor",settings:{foreground:"#464B5D"}},{scope:"source.cs entity.name.type.namespace",settings:{foreground:"#babed8"}},{scope:"meta.jsx.children, SXNested",settings:{foreground:"#babed8"}},{scope:"support.class.component",settings:{foreground:"#FFCB6B"}},{scope:"source.cpp meta.block variable.other",settings:{foreground:"#babed8"}},{scope:"source.python meta.member.access.python",settings:{foreground:"#f07178"}},{scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#82AAFF"}},{scope:"meta.block",settings:{foreground:"#f07178"}},{scope:"entity.name.function.call",settings:{foreground:"#82AAFF"}},{scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#babed8"}},{scope:"constant.keyword",settings:{fontStyle:"italic",foreground:"#89DDFF"}},{scope:"entity.name.function",settings:{foreground:"#82AAFF"}},{settings:{background:"#0F111A",foreground:"#babed8"}},{scope:["constant.other.placeholder"],settings:{foreground:"#f07178"}},{scope:["markup.deleted"],settings:{foreground:"#f07178"}},{scope:["markup.inserted"],settings:{foreground:"#C3E88D"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["keyword.control"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{scope:["variable.parameter"],settings:{fontStyle:"italic"}},{scope:["variable.parameter.function.language.special.self.python"],settings:{fontStyle:"italic",foreground:"#f07178"}},{scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F78C6C"}},{scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{scope:["markup.fenced_code.block"],settings:{foreground:"#babed890"}},{scope:["punctuation.definition.quote"],settings:{foreground:"#ff9cac"}},{scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFCB6B"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F78C6C"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#f07178"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#82AAFF"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ff9cac"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C3E88D"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/material-theme-palenight.D7gg1Usp.js b/assets/chunks/material-theme-palenight.D7gg1Usp.js new file mode 100644 index 000000000..320102506 --- /dev/null +++ b/assets/chunks/material-theme-palenight.D7gg1Usp.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#80CBC4","activityBar.background":"#292D3E","activityBar.border":"#292D3E60","activityBar.dropBackground":"#f0717880","activityBar.foreground":"#babed8","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#00000030","badge.foreground":"#676E95","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumb.background":"#292D3E","breadcrumb.focusForeground":"#babed8","breadcrumb.foreground":"#676E95","breadcrumbPicker.background":"#292D3E","button.background":"#717CB450","button.foreground":"#ffffff","debugConsole.errorForeground":"#f07178","debugConsole.infoForeground":"#89DDFF","debugConsole.warningForeground":"#FFCB6B","debugToolBar.background":"#292D3E","diffEditor.insertedTextBackground":"#89DDFF20","diffEditor.removedTextBackground":"#ff9cac20","dropdown.background":"#292D3E","dropdown.border":"#FFFFFF10","editor.background":"#292D3E","editor.findMatchBackground":"#000000","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlight":"#babed8","editor.findMatchHighlightBackground":"#00000050","editor.findMatchHighlightBorder":"#ffffff30","editor.findRangeHighlightBackground":"#FFCB6B30","editor.foreground":"#babed8","editor.lineHighlightBackground":"#00000050","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#FFFFFF0d","editor.selectionBackground":"#717CB450","editor.selectionHighlightBackground":"#FFCC0020","editor.wordHighlightBackground":"#ff9cac30","editor.wordHighlightStrongBackground":"#C3E88D30","editorBracketMatch.background":"#292D3E","editorBracketMatch.border":"#FFCC0050","editorCursor.foreground":"#FFCC00","editorError.foreground":"#f0717870","editorGroup.border":"#00000030","editorGroup.dropBackground":"#f0717880","editorGroup.focusedEmptyBorder":"#f07178","editorGroupHeader.tabsBackground":"#292D3E","editorGutter.addedBackground":"#C3E88D60","editorGutter.deletedBackground":"#f0717860","editorGutter.modifiedBackground":"#82AAFF60","editorHoverWidget.background":"#292D3E","editorHoverWidget.border":"#FFFFFF10","editorIndentGuide.activeBackground":"#4E5579","editorIndentGuide.background":"#4E557970","editorInfo.foreground":"#82AAFF70","editorLineNumber.activeForeground":"#676E95","editorLineNumber.foreground":"#3A3F58","editorLink.activeForeground":"#babed8","editorMarkerNavigation.background":"#babed805","editorOverviewRuler.border":"#292D3E","editorOverviewRuler.errorForeground":"#f0717840","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.infoForeground":"#82AAFF40","editorOverviewRuler.warningForeground":"#FFCB6B40","editorRuler.foreground":"#4E5579","editorSuggestWidget.background":"#292D3E","editorSuggestWidget.border":"#FFFFFF10","editorSuggestWidget.foreground":"#babed8","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#00000050","editorWarning.foreground":"#FFCB6B70","editorWhitespace.foreground":"#babed840","editorWidget.background":"#292D3E","editorWidget.border":"#80CBC4","editorWidget.resizeBorder":"#80CBC4","extensionBadge.remoteForeground":"#babed8","extensionButton.prominentBackground":"#C3E88D90","extensionButton.prominentForeground":"#babed8","extensionButton.prominentHoverBackground":"#C3E88D",focusBorder:"#FFFFFF00",foreground:"#babed8","gitDecoration.conflictingResourceForeground":"#FFCB6B90","gitDecoration.deletedResourceForeground":"#f0717890","gitDecoration.ignoredResourceForeground":"#676E9590","gitDecoration.modifiedResourceForeground":"#82AAFF90","gitDecoration.untrackedResourceForeground":"#C3E88D90","input.background":"#333747","input.border":"#FFFFFF10","input.foreground":"#babed8","input.placeholderForeground":"#babed860","inputOption.activeBackground":"#babed830","inputOption.activeBorder":"#babed830","inputValidation.errorBorder":"#f07178","inputValidation.infoBorder":"#82AAFF","inputValidation.warningBorder":"#FFCB6B","list.activeSelectionBackground":"#292D3E","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#f0717880","list.focusBackground":"#babed820","list.focusForeground":"#babed8","list.highlightForeground":"#80CBC4","list.hoverBackground":"#292D3E","list.hoverForeground":"#FFFFFF","list.inactiveSelectionBackground":"#00000030","list.inactiveSelectionForeground":"#80CBC4","listFilterWidget.background":"#00000030","listFilterWidget.noMatchesOutline":"#00000030","listFilterWidget.outline":"#00000030","menu.background":"#292D3E","menu.foreground":"#babed8","menu.selectionBackground":"#00000050","menu.selectionBorder":"#00000030","menu.selectionForeground":"#80CBC4","menu.separatorBackground":"#babed8","menubar.selectionBackground":"#00000030","menubar.selectionBorder":"#00000030","menubar.selectionForeground":"#80CBC4","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","notificationLink.foreground":"#80CBC4","notifications.background":"#292D3E","notifications.foreground":"#babed8","panel.background":"#292D3E","panel.border":"#292D3E60","panel.dropBackground":"#babed8","panelTitle.activeBorder":"#80CBC4","panelTitle.activeForeground":"#FFFFFF","panelTitle.inactiveForeground":"#babed8","peekView.border":"#00000030","peekViewEditor.background":"#babed805","peekViewEditor.matchHighlightBackground":"#717CB450","peekViewEditorGutter.background":"#babed805","peekViewResult.background":"#babed805","peekViewResult.matchHighlightBackground":"#717CB450","peekViewResult.selectionBackground":"#676E9570","peekViewTitle.background":"#babed805","peekViewTitleDescription.foreground":"#babed860","pickerGroup.border":"#FFFFFF1a","pickerGroup.foreground":"#80CBC4","progressBar.background":"#80CBC4","quickInput.background":"#292D3E","quickInput.foreground":"#676E95","quickInput.list.focusBackground":"#babed820","sash.hoverBorder":"#80CBC450","scrollbar.shadow":"#00000030","scrollbarSlider.activeBackground":"#80CBC4","scrollbarSlider.background":"#A6ACCD20","scrollbarSlider.hoverBackground":"#A6ACCD10","selection.background":"#00000080","settings.checkboxBackground":"#292D3E","settings.checkboxForeground":"#babed8","settings.dropdownBackground":"#292D3E","settings.dropdownForeground":"#babed8","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.numberInputBackground":"#292D3E","settings.numberInputForeground":"#babed8","settings.textInputBackground":"#292D3E","settings.textInputForeground":"#babed8","sideBar.background":"#292D3E","sideBar.border":"#292D3E60","sideBar.foreground":"#676E95","sideBarSectionHeader.background":"#292D3E","sideBarSectionHeader.border":"#292D3E60","sideBarTitle.foreground":"#babed8","statusBar.background":"#292D3E","statusBar.border":"#292D3E60","statusBar.debuggingBackground":"#C792EA","statusBar.debuggingForeground":"#ffffff","statusBar.foreground":"#676E95","statusBar.noFolderBackground":"#292D3E","statusBarItem.activeBackground":"#f0717880","statusBarItem.hoverBackground":"#676E9520","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","tab.activeBackground":"#292D3E","tab.activeBorder":"#80CBC4","tab.activeForeground":"#FFFFFF","tab.activeModifiedBorder":"#676E95","tab.border":"#292D3E","tab.inactiveBackground":"#292D3E","tab.inactiveForeground":"#676E95","tab.inactiveModifiedBorder":"#904348","tab.unfocusedActiveBorder":"#676E95","tab.unfocusedActiveForeground":"#babed8","tab.unfocusedActiveModifiedBorder":"#c05a60","tab.unfocusedInactiveModifiedBorder":"#904348","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#82AAFF","terminal.ansiBrightBlack":"#676E95","terminal.ansiBrightBlue":"#82AAFF","terminal.ansiBrightCyan":"#89DDFF","terminal.ansiBrightGreen":"#C3E88D","terminal.ansiBrightMagenta":"#C792EA","terminal.ansiBrightRed":"#f07178","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#FFCB6B","terminal.ansiCyan":"#89DDFF","terminal.ansiGreen":"#C3E88D","terminal.ansiMagenta":"#C792EA","terminal.ansiRed":"#f07178","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#FFCB6B","terminalCursor.background":"#000000","terminalCursor.foreground":"#FFCB6B","textLink.activeForeground":"#babed8","textLink.foreground":"#80CBC4","titleBar.activeBackground":"#292D3E","titleBar.activeForeground":"#babed8","titleBar.border":"#292D3E60","titleBar.inactiveBackground":"#292D3E","titleBar.inactiveForeground":"#676E95","tree.indentGuidesStroke":"#4E5579","widget.shadow":"#00000030"},displayName:"Material Theme Palenight",name:"material-theme-palenight",semanticHighlighting:!0,tokenColors:[{settings:{background:"#292D3E",foreground:"#babed8"}},{scope:"string",settings:{foreground:"#C3E88D"}},{scope:"punctuation, constant.other.symbol",settings:{foreground:"#89DDFF"}},{scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#babed8"}},{scope:"constant.language.boolean",settings:{foreground:"#ff9cac"}},{scope:"constant.numeric",settings:{foreground:"#F78C6C"}},{scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#babed8"}},{scope:"keyword.other",settings:{foreground:"#F78C6C"}},{scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#89DDFF"}},{scope:"entity.name.function, support.function",settings:{foreground:"#82AAFF"}},{scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#C792EA"}},{scope:"support.module, support.node",settings:{fontStyle:"italic",foreground:"#f07178"}},{scope:"support.type, constant.other.key",settings:{foreground:"#FFCB6B"}},{scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#FFCB6B"}},{scope:"comment",settings:{fontStyle:"italic",foreground:"#676E95"}},{scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{fontStyle:"italic",foreground:"#676E95"}},{scope:"punctuation",settings:{foreground:"#89DDFF"}},{scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#FFCB6B"}},{scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#f07178"}},{scope:"meta.definition.method entity.name.function",settings:{foreground:"#f07178"}},{scope:"meta.function entity.name.function",settings:{foreground:"#82AAFF"}},{scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#89DDFF"}},{scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#babed8"}},{scope:"entity.name.tag.yaml",settings:{foreground:"#f07178"}},{scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#f07178"}},{scope:"constant.language.json",settings:{foreground:"#89DDFF"}},{scope:"entity.other.attribute-name.class",settings:{foreground:"#FFCB6B"}},{scope:"entity.other.attribute-name.id",settings:{foreground:"#F78C6C"}},{scope:"source.css entity.name.tag",settings:{foreground:"#FFCB6B"}},{scope:"support.type.property-name.css",settings:{foreground:"#B2CCD6"}},{scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#89DDFF"}},{scope:"entity.name.tag",settings:{foreground:"#f07178"}},{scope:"entity.other.attribute-name",settings:{foreground:"#C792EA"}},{scope:"punctuation.definition.entity.html",settings:{foreground:"#babed8"}},{scope:"markup.heading",settings:{foreground:"#89DDFF"}},{scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#f07178"}},{scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#89DDFF"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#f07178"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#f07178"}},{scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{fontStyle:"italic bold",foreground:"#f07178"}},{scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#C3E88D"}},{scope:"markup.inline.raw.string.markdown",settings:{foreground:"#C3E88D"}},{scope:"keyword.other.definition.ini",settings:{foreground:"#f07178"}},{scope:"entity.name.section.group-title.ini",settings:{foreground:"#89DDFF"}},{scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#FFCB6B"}},{scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#f07178"}},{scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#82AAFF"}},{scope:"source.cs storage.type",settings:{foreground:"#FFCB6B"}},{scope:"source.cs meta.method.return-type",settings:{foreground:"#FFCB6B"}},{scope:"source.cs meta.preprocessor",settings:{foreground:"#676E95"}},{scope:"source.cs entity.name.type.namespace",settings:{foreground:"#babed8"}},{scope:"meta.jsx.children, SXNested",settings:{foreground:"#babed8"}},{scope:"support.class.component",settings:{foreground:"#FFCB6B"}},{scope:"source.cpp meta.block variable.other",settings:{foreground:"#babed8"}},{scope:"source.python meta.member.access.python",settings:{foreground:"#f07178"}},{scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#82AAFF"}},{scope:"meta.block",settings:{foreground:"#f07178"}},{scope:"entity.name.function.call",settings:{foreground:"#82AAFF"}},{scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#babed8"}},{scope:"constant.keyword",settings:{fontStyle:"italic",foreground:"#89DDFF"}},{scope:"entity.name.function",settings:{foreground:"#82AAFF"}},{settings:{background:"#292D3E",foreground:"#babed8"}},{scope:["constant.other.placeholder"],settings:{foreground:"#f07178"}},{scope:["markup.deleted"],settings:{foreground:"#f07178"}},{scope:["markup.inserted"],settings:{foreground:"#C3E88D"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["keyword.control"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{scope:["variable.parameter"],settings:{fontStyle:"italic"}},{scope:["variable.parameter.function.language.special.self.python"],settings:{fontStyle:"italic",foreground:"#f07178"}},{scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F78C6C"}},{scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{scope:["markup.fenced_code.block"],settings:{foreground:"#babed890"}},{scope:["punctuation.definition.quote"],settings:{foreground:"#ff9cac"}},{scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFCB6B"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F78C6C"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#f07178"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#82AAFF"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ff9cac"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C3E88D"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/material-theme.B2BuIiKK.js b/assets/chunks/material-theme.B2BuIiKK.js new file mode 100644 index 000000000..c82da8332 --- /dev/null +++ b/assets/chunks/material-theme.B2BuIiKK.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#80CBC4","activityBar.background":"#263238","activityBar.border":"#26323860","activityBar.dropBackground":"#f0717880","activityBar.foreground":"#EEFFFF","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#00000030","badge.foreground":"#546E7A","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumb.background":"#263238","breadcrumb.focusForeground":"#EEFFFF","breadcrumb.foreground":"#6c8692","breadcrumbPicker.background":"#263238","button.background":"#80CBC420","button.foreground":"#ffffff","debugConsole.errorForeground":"#f07178","debugConsole.infoForeground":"#89DDFF","debugConsole.warningForeground":"#FFCB6B","debugToolBar.background":"#263238","diffEditor.insertedTextBackground":"#89DDFF20","diffEditor.removedTextBackground":"#ff9cac20","dropdown.background":"#263238","dropdown.border":"#FFFFFF10","editor.background":"#263238","editor.findMatchBackground":"#000000","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlight":"#EEFFFF","editor.findMatchHighlightBackground":"#00000050","editor.findMatchHighlightBorder":"#ffffff30","editor.findRangeHighlightBackground":"#FFCB6B30","editor.foreground":"#EEFFFF","editor.lineHighlightBackground":"#00000050","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#FFFFFF0d","editor.selectionBackground":"#80CBC420","editor.selectionHighlightBackground":"#FFCC0020","editor.wordHighlightBackground":"#ff9cac30","editor.wordHighlightStrongBackground":"#C3E88D30","editorBracketMatch.background":"#263238","editorBracketMatch.border":"#FFCC0050","editorCursor.foreground":"#FFCC00","editorError.foreground":"#f0717870","editorGroup.border":"#00000030","editorGroup.dropBackground":"#f0717880","editorGroup.focusedEmptyBorder":"#f07178","editorGroupHeader.tabsBackground":"#263238","editorGutter.addedBackground":"#C3E88D60","editorGutter.deletedBackground":"#f0717860","editorGutter.modifiedBackground":"#82AAFF60","editorHoverWidget.background":"#263238","editorHoverWidget.border":"#FFFFFF10","editorIndentGuide.activeBackground":"#37474F","editorIndentGuide.background":"#37474F70","editorInfo.foreground":"#82AAFF70","editorLineNumber.activeForeground":"#6c8692","editorLineNumber.foreground":"#465A64","editorLink.activeForeground":"#EEFFFF","editorMarkerNavigation.background":"#EEFFFF05","editorOverviewRuler.border":"#263238","editorOverviewRuler.errorForeground":"#f0717840","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.infoForeground":"#82AAFF40","editorOverviewRuler.warningForeground":"#FFCB6B40","editorRuler.foreground":"#37474F","editorSuggestWidget.background":"#263238","editorSuggestWidget.border":"#FFFFFF10","editorSuggestWidget.foreground":"#EEFFFF","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#00000050","editorWarning.foreground":"#FFCB6B70","editorWhitespace.foreground":"#EEFFFF40","editorWidget.background":"#263238","editorWidget.border":"#80CBC4","editorWidget.resizeBorder":"#80CBC4","extensionBadge.remoteForeground":"#EEFFFF","extensionButton.prominentBackground":"#C3E88D90","extensionButton.prominentForeground":"#EEFFFF","extensionButton.prominentHoverBackground":"#C3E88D",focusBorder:"#FFFFFF00",foreground:"#EEFFFF","gitDecoration.conflictingResourceForeground":"#FFCB6B90","gitDecoration.deletedResourceForeground":"#f0717890","gitDecoration.ignoredResourceForeground":"#6c869290","gitDecoration.modifiedResourceForeground":"#82AAFF90","gitDecoration.untrackedResourceForeground":"#C3E88D90","input.background":"#303C41","input.border":"#FFFFFF10","input.foreground":"#EEFFFF","input.placeholderForeground":"#EEFFFF60","inputOption.activeBackground":"#EEFFFF30","inputOption.activeBorder":"#EEFFFF30","inputValidation.errorBorder":"#f07178","inputValidation.infoBorder":"#82AAFF","inputValidation.warningBorder":"#FFCB6B","list.activeSelectionBackground":"#263238","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#f0717880","list.focusBackground":"#EEFFFF20","list.focusForeground":"#EEFFFF","list.highlightForeground":"#80CBC4","list.hoverBackground":"#263238","list.hoverForeground":"#FFFFFF","list.inactiveSelectionBackground":"#00000030","list.inactiveSelectionForeground":"#80CBC4","listFilterWidget.background":"#00000030","listFilterWidget.noMatchesOutline":"#00000030","listFilterWidget.outline":"#00000030","menu.background":"#263238","menu.foreground":"#EEFFFF","menu.selectionBackground":"#00000050","menu.selectionBorder":"#00000030","menu.selectionForeground":"#80CBC4","menu.separatorBackground":"#EEFFFF","menubar.selectionBackground":"#00000030","menubar.selectionBorder":"#00000030","menubar.selectionForeground":"#80CBC4","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","notificationLink.foreground":"#80CBC4","notifications.background":"#263238","notifications.foreground":"#EEFFFF","panel.background":"#263238","panel.border":"#26323860","panel.dropBackground":"#EEFFFF","panelTitle.activeBorder":"#80CBC4","panelTitle.activeForeground":"#FFFFFF","panelTitle.inactiveForeground":"#EEFFFF","peekView.border":"#00000030","peekViewEditor.background":"#EEFFFF05","peekViewEditor.matchHighlightBackground":"#80CBC420","peekViewEditorGutter.background":"#EEFFFF05","peekViewResult.background":"#EEFFFF05","peekViewResult.matchHighlightBackground":"#80CBC420","peekViewResult.selectionBackground":"#6c869270","peekViewTitle.background":"#EEFFFF05","peekViewTitleDescription.foreground":"#EEFFFF60","pickerGroup.border":"#FFFFFF1a","pickerGroup.foreground":"#80CBC4","progressBar.background":"#80CBC4","quickInput.background":"#263238","quickInput.foreground":"#6c8692","quickInput.list.focusBackground":"#EEFFFF20","sash.hoverBorder":"#80CBC450","scrollbar.shadow":"#00000030","scrollbarSlider.activeBackground":"#80CBC4","scrollbarSlider.background":"#EEFFFF20","scrollbarSlider.hoverBackground":"#EEFFFF10","selection.background":"#00000080","settings.checkboxBackground":"#263238","settings.checkboxForeground":"#EEFFFF","settings.dropdownBackground":"#263238","settings.dropdownForeground":"#EEFFFF","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.numberInputBackground":"#263238","settings.numberInputForeground":"#EEFFFF","settings.textInputBackground":"#263238","settings.textInputForeground":"#EEFFFF","sideBar.background":"#263238","sideBar.border":"#26323860","sideBar.foreground":"#6c8692","sideBarSectionHeader.background":"#263238","sideBarSectionHeader.border":"#26323860","sideBarTitle.foreground":"#EEFFFF","statusBar.background":"#263238","statusBar.border":"#26323860","statusBar.debuggingBackground":"#C792EA","statusBar.debuggingForeground":"#ffffff","statusBar.foreground":"#546E7A","statusBar.noFolderBackground":"#263238","statusBarItem.activeBackground":"#f0717880","statusBarItem.hoverBackground":"#546E7A20","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","tab.activeBackground":"#263238","tab.activeBorder":"#80CBC4","tab.activeForeground":"#FFFFFF","tab.activeModifiedBorder":"#6c8692","tab.border":"#263238","tab.inactiveBackground":"#263238","tab.inactiveForeground":"#6c8692","tab.inactiveModifiedBorder":"#904348","tab.unfocusedActiveBorder":"#546E7A","tab.unfocusedActiveForeground":"#EEFFFF","tab.unfocusedActiveModifiedBorder":"#c05a60","tab.unfocusedInactiveModifiedBorder":"#904348","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#82AAFF","terminal.ansiBrightBlack":"#546E7A","terminal.ansiBrightBlue":"#82AAFF","terminal.ansiBrightCyan":"#89DDFF","terminal.ansiBrightGreen":"#C3E88D","terminal.ansiBrightMagenta":"#C792EA","terminal.ansiBrightRed":"#f07178","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#FFCB6B","terminal.ansiCyan":"#89DDFF","terminal.ansiGreen":"#C3E88D","terminal.ansiMagenta":"#C792EA","terminal.ansiRed":"#f07178","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#FFCB6B","terminalCursor.background":"#000000","terminalCursor.foreground":"#FFCB6B","textLink.activeForeground":"#EEFFFF","textLink.foreground":"#80CBC4","titleBar.activeBackground":"#263238","titleBar.activeForeground":"#EEFFFF","titleBar.border":"#26323860","titleBar.inactiveBackground":"#263238","titleBar.inactiveForeground":"#6c8692","tree.indentGuidesStroke":"#37474F","widget.shadow":"#00000030"},displayName:"Material Theme",name:"material-theme",semanticHighlighting:!0,tokenColors:[{settings:{background:"#263238",foreground:"#EEFFFF"}},{scope:"string",settings:{foreground:"#C3E88D"}},{scope:"punctuation, constant.other.symbol",settings:{foreground:"#89DDFF"}},{scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#EEFFFF"}},{scope:"constant.language.boolean",settings:{foreground:"#ff9cac"}},{scope:"constant.numeric",settings:{foreground:"#F78C6C"}},{scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#EEFFFF"}},{scope:"keyword.other",settings:{foreground:"#F78C6C"}},{scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#89DDFF"}},{scope:"entity.name.function, support.function",settings:{foreground:"#82AAFF"}},{scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#C792EA"}},{scope:"support.module, support.node",settings:{fontStyle:"italic",foreground:"#f07178"}},{scope:"support.type, constant.other.key",settings:{foreground:"#FFCB6B"}},{scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#FFCB6B"}},{scope:"comment",settings:{fontStyle:"italic",foreground:"#546E7A"}},{scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{fontStyle:"italic",foreground:"#546E7A"}},{scope:"punctuation",settings:{foreground:"#89DDFF"}},{scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#FFCB6B"}},{scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#f07178"}},{scope:"meta.definition.method entity.name.function",settings:{foreground:"#f07178"}},{scope:"meta.function entity.name.function",settings:{foreground:"#82AAFF"}},{scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#89DDFF"}},{scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#EEFFFF"}},{scope:"entity.name.tag.yaml",settings:{foreground:"#f07178"}},{scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#f07178"}},{scope:"constant.language.json",settings:{foreground:"#89DDFF"}},{scope:"entity.other.attribute-name.class",settings:{foreground:"#FFCB6B"}},{scope:"entity.other.attribute-name.id",settings:{foreground:"#F78C6C"}},{scope:"source.css entity.name.tag",settings:{foreground:"#FFCB6B"}},{scope:"support.type.property-name.css",settings:{foreground:"#B2CCD6"}},{scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#89DDFF"}},{scope:"entity.name.tag",settings:{foreground:"#f07178"}},{scope:"entity.other.attribute-name",settings:{foreground:"#C792EA"}},{scope:"punctuation.definition.entity.html",settings:{foreground:"#EEFFFF"}},{scope:"markup.heading",settings:{foreground:"#89DDFF"}},{scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#f07178"}},{scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#89DDFF"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#f07178"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#f07178"}},{scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{fontStyle:"italic bold",foreground:"#f07178"}},{scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#C3E88D"}},{scope:"markup.inline.raw.string.markdown",settings:{foreground:"#C3E88D"}},{scope:"keyword.other.definition.ini",settings:{foreground:"#f07178"}},{scope:"entity.name.section.group-title.ini",settings:{foreground:"#89DDFF"}},{scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#FFCB6B"}},{scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#f07178"}},{scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#82AAFF"}},{scope:"source.cs storage.type",settings:{foreground:"#FFCB6B"}},{scope:"source.cs meta.method.return-type",settings:{foreground:"#FFCB6B"}},{scope:"source.cs meta.preprocessor",settings:{foreground:"#546E7A"}},{scope:"source.cs entity.name.type.namespace",settings:{foreground:"#EEFFFF"}},{scope:"meta.jsx.children, SXNested",settings:{foreground:"#EEFFFF"}},{scope:"support.class.component",settings:{foreground:"#FFCB6B"}},{scope:"source.cpp meta.block variable.other",settings:{foreground:"#EEFFFF"}},{scope:"source.python meta.member.access.python",settings:{foreground:"#f07178"}},{scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#82AAFF"}},{scope:"meta.block",settings:{foreground:"#f07178"}},{scope:"entity.name.function.call",settings:{foreground:"#82AAFF"}},{scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#EEFFFF"}},{scope:"constant.keyword",settings:{fontStyle:"italic",foreground:"#89DDFF"}},{scope:"entity.name.function",settings:{foreground:"#82AAFF"}},{settings:{background:"#263238",foreground:"#EEFFFF"}},{scope:["constant.other.placeholder"],settings:{foreground:"#f07178"}},{scope:["markup.deleted"],settings:{foreground:"#f07178"}},{scope:["markup.inserted"],settings:{foreground:"#C3E88D"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["keyword.control"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{scope:["variable.parameter"],settings:{fontStyle:"italic"}},{scope:["variable.parameter.function.language.special.self.python"],settings:{fontStyle:"italic",foreground:"#f07178"}},{scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F78C6C"}},{scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{scope:["markup.fenced_code.block"],settings:{foreground:"#EEFFFF90"}},{scope:["punctuation.definition.quote"],settings:{foreground:"#ff9cac"}},{scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFCB6B"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F78C6C"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#f07178"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#82AAFF"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ff9cac"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C3E88D"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/matlab.Btshr8M_.js b/assets/chunks/matlab.Btshr8M_.js new file mode 100644 index 000000000..2058bdf48 --- /dev/null +++ b/assets/chunks/matlab.Btshr8M_.js @@ -0,0 +1,70 @@ +const e=Object.freeze({displayName:"MATLAB",fileTypes:["m"],name:"matlab",patterns:[{comment:"This and #all_after_command_dual are split out so #command_dual can be excluded in things like (), {}, []",include:"#all_before_command_dual"},{include:"#command_dual"},{include:"#all_after_command_dual"}],repository:{all_after_command_dual:{patterns:[{include:"#string"},{include:"#line_continuation"},{include:"#comments"},{include:"#conjugate_transpose"},{include:"#transpose"},{include:"#constants"},{include:"#variables"},{include:"#numbers"},{include:"#operators"}]},all_before_command_dual:{patterns:[{include:"#classdef"},{include:"#function"},{include:"#blocks"},{include:"#control_statements"},{include:"#global_persistent"},{include:"#parens"},{include:"#square_brackets"},{include:"#indexing_curly_brackets"},{include:"#curly_brackets"}]},blocks:{patterns:[{begin:"\\s*(?:^|[\\s,;])(for)\\b",beginCaptures:{1:{name:"keyword.control.for.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.for.matlab"}},name:"meta.for.matlab",patterns:[{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(if)\\b",beginCaptures:{1:{name:"keyword.control.if.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.if.matlab"},2:{patterns:[{include:"$self"}]}},name:"meta.if.matlab",patterns:[{captures:{2:{name:"keyword.control.elseif.matlab"},3:{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(elseif)\\b(.*)$\\n?",name:"meta.elseif.matlab"},{captures:{2:{name:"keyword.control.else.matlab"},3:{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(else)\\b(.*)?$\\n?",name:"meta.else.matlab"},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(parfor)\\b",beginCaptures:{1:{name:"keyword.control.for.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.for.matlab"}},name:"meta.parfor.matlab",patterns:[{begin:"\\G(?!$)",end:"$\\n?",name:"meta.parfor-quantity.matlab",patterns:[{include:"$self"}]},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(spmd)\\b",beginCaptures:{1:{name:"keyword.control.spmd.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.spmd.matlab"}},name:"meta.spmd.matlab",patterns:[{begin:"\\G(?!$)",end:"$\\n?",name:"meta.spmd-statement.matlab",patterns:[{include:"$self"}]},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(switch)\\b",beginCaptures:{1:{name:"keyword.control.switch.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.switch.matlab"}},name:"meta.switch.matlab",patterns:[{captures:{2:{name:"keyword.control.case.matlab"},3:{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(case)\\b(.*)$\\n?",name:"meta.case.matlab"},{captures:{2:{name:"keyword.control.otherwise.matlab"},3:{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(otherwise)\\b(.*)?$\\n?",name:"meta.otherwise.matlab"},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(try)\\b",beginCaptures:{1:{name:"keyword.control.try.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.try.matlab"}},name:"meta.try.matlab",patterns:[{captures:{2:{name:"keyword.control.catch.matlab"},3:{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(catch)\\b(.*)?$\\n?",name:"meta.catch.matlab"},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(while)\\b",beginCaptures:{1:{name:"keyword.control.while.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.while.matlab"}},name:"meta.while.matlab",patterns:[{include:"$self"}]}]},braced_validator_list:{begin:"\\s*({)\\s*",beginCaptures:{1:{name:"storage.type.matlab"}},comment:"Validator functions. Treated as a recursive group to permit nested brackets, quotes, etc.",end:"(})",endCaptures:{1:{name:"storage.type.matlab"}},patterns:[{include:"#braced_validator_list"},{include:"#validator_strings"},{include:"#line_continuation"},{captures:{1:{name:"storage.type.matlab"}},match:`([^{}}'"\\.]+)`},{match:"\\.",name:"storage.type.matlab"}]},classdef:{patterns:[{begin:`(?x) +(^\\s*) +(classdef) +\\b\\s* +(.*) +`,beginCaptures:{2:{name:"storage.type.class.matlab"},3:{patterns:[{captures:{1:{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.class.matlab"},{begin:"=\\s*",end:",|(?=\\))",patterns:[{match:"true|false",name:"constant.language.boolean.matlab"},{include:"#string"}]}]},2:{name:"meta.class-declaration.matlab"},3:{name:"entity.name.section.class.matlab"},4:{name:"keyword.operator.other.matlab"},5:{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)*",name:"entity.other.inherited-class.matlab"},{match:"&",name:"keyword.operator.other.matlab"}]},6:{patterns:[{include:"$self"}]}},match:`(?x) + ( # Optional attributes + \\( [^)]* \\) + )? + \\s* + ( + ([a-zA-Z][a-zA-Z0-9_]*) # Class name + (?: # Optional inheritance + \\s* + (<) + \\s* + ([^%]*) + )? + ) + \\s*($|(?=(%|...)).*) + `}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.class.matlab"}},name:"meta.class.matlab",patterns:[{begin:`(?x) +(^\\s*) +(properties)\\b([^%]*) +\\s* +( +\\( [^)]* \\) +)? +\\s*($|(?=%)) +`,beginCaptures:{2:{name:"keyword.control.properties.matlab"},3:{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.properties.matlab"},{begin:"=\\s*",end:",|(?=\\))",patterns:[{match:"true|false",name:"constant.language.boolean.matlab"},{match:"public|protected|private",name:"constant.language.access.matlab"}]}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.properties.matlab"}},name:"meta.properties.matlab",patterns:[{include:"#validators"},{include:"$self"}]},{begin:`(?x) +(^\\s*) +(methods)\\b([^%]*) +\\s* +( +\\( [^)]* \\) +)? +\\s*($|(?=%)) +`,beginCaptures:{2:{name:"keyword.control.methods.matlab"},3:{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.methods.matlab"},{begin:"=\\s*",end:",|(?=\\))",patterns:[{match:"true|false",name:"constant.language.boolean.matlab"},{match:"public|protected|private",name:"constant.language.access.matlab"}]}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.methods.matlab"}},name:"meta.methods.matlab",patterns:[{include:"$self"}]},{begin:`(?x) +(^\\s*) +(events)\\b([^%]*) +\\s* +( +\\( [^)]* \\) +)? +\\s*($|(?=%)) +`,beginCaptures:{2:{name:"keyword.control.events.matlab"},3:{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.events.matlab"},{begin:"=\\s*",end:",|(?=\\))",patterns:[{match:"true|false",name:"constant.language.boolean.matlab"},{match:"public|protected|private",name:"constant.language.access.matlab"}]}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.events.matlab"}},name:"meta.events.matlab",patterns:[{include:"$self"}]},{begin:`(?x) +(^\\s*) +(enumeration)\\b([^%]*) +\\s*($|(?=%)) +`,beginCaptures:{2:{name:"keyword.control.enumeration.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.enumeration.matlab"}},name:"meta.enumeration.matlab",patterns:[{include:"$self"}]},{include:"$self"}]}]},command_dual:{captures:{1:{name:"string.interpolated.matlab"},2:{name:"variable.other.command.matlab"},28:{name:"comment.line.percentage.matlab"}},comment:" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1516 17 18 19 20 21 22 23 24 25 26 27 28",match:`^\\s*((?# A> )([b-df-hk-moq-zA-HJ-MO-Z]\\w*|a|an|a([A-Za-mo-z0-9_]\\w*|n[A-Za-rt-z0-9_]\\w*|ns\\w+)|e|ep|e([A-Za-oq-z0-9_]\\w*|p[A-Za-rt-z0-9_]\\w*|ps\\w+)|in|i([A-Za-mo-z0-9_]\\w*|n[A-Za-eg-z0-9_]\\w*|nf\\w+)|I|In|I([A-Za-mo-z0-9_]\\w*|n[A-Za-eg-z0-9_]\\w*|nf\\w+)|j\\w+|N|Na|N([A-Zb-z0-9_]\\w*|a[A-MO-Za-z0-9_]\\w*|aN\\w+)|n|na|nar|narg|nargi|nargo|nargou|n([A-Zb-z0-9_]\\w*|a([A-Za-mo-qs-z0-9_]\\w*|n\\w+|r([A-Za-fh-z0-9_]\\w*|g([A-Za-hj-nq-z0-9_]\\w*|i([A-Za-mo-z0-9_]\\w*|n\\w+)|o([A-Za-tv-z0-9_]\\w*|u([A-Za-su-z]\\w*|t\\w+))))))|p|p[A-Za-hj-z0-9_]\\w*|pi\\w+)(?# <A )\\s+(((?# B> )([^\\s;,%()=.{&|~<>:+\\-*/\\\\@^'"]|(?=')|(?="))(?# <B )|(?# C> )(\\.\\^|\\.\\*|\\./|\\.\\\\|\\.'|\\.\\(|&&|==|\\|\\||&(?=[^&])|\\|(?=[^\\|])|~=|<=|>=|~(?!=)|<(?!=)|>(?!=)|:|\\+|-|\\*|/|\\\\|@|\\^)(?# <C )(?# D> )([^\\s]|\\s*(?=%)|\\s+$|\\s+(,|;|\\)|}|\\]|&|\\||<|>|=|:|\\*|/|\\\\|\\^|@|(\\.[^\\d.]|\\.\\.[^.])))(?# <D )|(?# E> )(\\.[^^*/\\\\'(\\sA-Za-z])(?# <E ))(?# F> )([^%]|'[^']*'|"[^"]*")*(?# <F )|(?# X> )(\\.(?=\\s)|\\.[A-Za-z]|(?={))(?# <X )(?# Y> )([^(=\\'"%]|==|'[^']*'|"[^"]*"|\\(|\\([^)%]*\\)|\\[|\\[[^\\]%]*\\]|{|{[^}%]*})*(\\.\\.\\.[^%]*)?((?=%)|$)(?# <Y )))(%.*)?$`},comment_block:{begin:"(^[\\s]*)%\\{[^\\n\\S]*+\\n",beginCaptures:{1:{name:"punctuation.definition.comment.matlab"}},end:"^[\\s]*%\\}[^\\n\\S]*+(?:\\n|$)",name:"comment.block.percentage.matlab",patterns:[{include:"#comment_block"},{match:"^[^\\n]*\\n"}]},comments:{patterns:[{begin:"(^[ \\t]+)?(?=%%\\s)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.matlab"}},end:"(?!\\G)",patterns:[{begin:"%%",beginCaptures:{0:{name:"punctuation.definition.comment.matlab"}},end:"\\n",name:"comment.line.double-percentage.matlab",patterns:[{begin:"\\G[^\\S\\n]*(?![\\n\\s])",contentName:"meta.cell.matlab",end:"(?=\\n)"}]}]},{include:"#comment_block"},{begin:"(^[ \\t]+)?(?=%)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.matlab"}},end:"(?!\\G)",patterns:[{begin:"%",beginCaptures:{0:{name:"punctuation.definition.comment.matlab"}},end:"\\n",name:"comment.line.percentage.matlab"}]}]},conjugate_transpose:{match:"((?<=[^\\s])|(?<=\\])|(?<=\\))|(?<=\\}))'",name:"keyword.operator.transpose.matlab"},constants:{comment:"MATLAB Constants",match:"(?<!\\.)\\b(eps|false|Inf|inf|intmax|intmin|namelengthmax|NaN|nan|on|off|realmax|realmin|true|pi)\\b",name:"constant.language.matlab"},control_statements:{captures:{1:{name:"keyword.control.matlab"}},match:"\\s*(?:^|[\\s,;])(break|continue|return)\\b",name:"meta.control.matlab"},curly_brackets:{begin:"\\{",comment:"We don't include $self here to avoid matching command syntax inside (), [], {}",end:"\\}",patterns:[{include:"#end_in_parens"},{include:"#all_before_command_dual"},{include:"#all_after_command_dual"},{include:"#end_in_parens"},{comment:"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written",include:"#block_keywords"}]},end_in_parens:{comment:"end as operator symbol",match:"\\bend\\b",name:"keyword.operator.symbols.matlab"},function:{patterns:[{begin:`(?x) +(^\\s*) +(function) +\\s+ +(?: +(?: +(\\[) ([^\\]]*) (\\]) +| ([a-zA-Z][a-zA-Z0-9_]*) +) +\\s* = \\s* +)? +([a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)*) +\\s* +`,beginCaptures:{2:{name:"storage.type.function.matlab"},3:{name:"punctuation.definition.arguments.begin.matlab"},4:{patterns:[{match:"\\w+",name:"variable.parameter.output.matlab"}]},5:{name:"punctuation.definition.arguments.end.matlab"},6:{name:"variable.parameter.output.function.matlab"},7:{name:"entity.name.function.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b(\\s*\\n)?",endCaptures:{1:{name:"keyword.control.end.function.matlab"}},name:"meta.function.matlab",patterns:[{begin:"\\G\\(",end:"\\)",name:"meta.arguments.function.matlab",patterns:[{include:"#line_continuation"},{match:"\\w+",name:"variable.parameter.input.matlab"}]},{begin:`(?x) +(^\\s*) +(arguments)\\b([^%]*) +\\s* +( +\\( [^)]* \\) +)? +\\s*($|(?=%)) +`,beginCaptures:{2:{name:"keyword.control.arguments.matlab"},3:{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.arguments.matlab"}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.arguments.matlab"}},name:"meta.arguments.matlab",patterns:[{include:"#validators"},{include:"$self"}]},{include:"$self"}]}]},global_persistent:{captures:{1:{name:"keyword.control.globalpersistent.matlab"}},match:"^\\s*(global|persistent)\\b",name:"meta.globalpersistent.matlab"},indexing_curly_brackets:{Comment:"Match identifier{idx, idx, } and stop at newline without ... This helps with partially written code like x{idx ",begin:"([a-zA-Z][a-zA-Z0-9_\\.]*\\s*)\\{",beginCaptures:{1:{patterns:[{include:"$self"}]}},comment:"We don't include $self here to avoid matching command syntax inside (), [], {}",end:"(\\}|(?<!\\.\\.\\.).\\n)",patterns:[{include:"#end_in_parens"},{include:"#all_before_command_dual"},{include:"#all_after_command_dual"},{include:"#end_in_parens"},{comment:"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written",include:"#block_keywords"}]},line_continuation:{captures:{1:{name:"keyword.operator.symbols.matlab"},2:{name:"comment.line.continuation.matlab"}},comment:"Line continuations",match:"(\\.\\.\\.)(.*)$",name:"meta.linecontinuation.matlab"},numbers:{comment:"Valid numbers: 1, .1, 1.1, .1e1, 1.1e1, 1e1, 1i, 1j, 1e2j",match:"(?<=[\\s\\-\\+\\*\\/\\\\=:\\[\\(\\{,]|^)\\d*\\.?\\d+([eE][+-]?\\d)?([0-9&&[^\\.]])*(i|j)?\\b",name:"constant.numeric.matlab"},operators:{comment:"Operator symbols",match:"(?<=\\s)(==|~=|>|>=|<|<=|&|&&|:|\\||\\|\\||\\+|-|\\*|\\.\\*|/|\\./|\\\\|\\.\\\\|\\^|\\.\\^)(?=\\s)",name:"keyword.operator.symbols.matlab"},parens:{begin:"\\(",comment:"We don't include $self here to avoid matching command syntax inside (), [], {}",end:"(\\)|(?<!\\.\\.\\.).\\n)",patterns:[{include:"#end_in_parens"},{include:"#all_before_command_dual"},{include:"#all_after_command_dual"},{comment:"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written",include:"#block_keywords"}]},square_brackets:{begin:"\\[",comment:"We don't include $self here to avoid matching command syntax inside (), [], {}",end:"\\]",patterns:[{include:"#all_before_command_dual"},{include:"#all_after_command_dual"},{comment:"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written",include:"#block_keywords"}]},string:{patterns:[{captures:{1:{name:"string.interpolated.matlab"},2:{name:"punctuation.definition.string.begin.matlab"}},comment:"Shell command",match:"^\\s*((!).*$\\n?)"},{begin:"((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)'",beginCaptures:{0:{name:"punctuation.definition.string.begin.matlab"}},comment:"Character vector literal (single-quoted)",end:"'(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\s|;|:|,))",endCaptures:{0:{name:"punctuation.definition.string.end.matlab"}},name:"string.quoted.single.matlab",patterns:[{match:"''",name:"constant.character.escape.matlab"},{match:"'(?=.)",name:"invalid.illegal.unescaped-quote.matlab"},{comment:"Operator symbols",match:"((\\%([\\+\\-0]?\\d{0,3}(\\.\\d{1,3})?)(c|d|e|E|f|g|G|s|((b|t)?(o|u|x|X))))|\\%\\%|\\\\(b|f|n|r|t|\\\\))",name:"constant.character.escape.matlab"}]},{begin:'((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)"',beginCaptures:{0:{name:"punctuation.definition.string.begin.matlab"}},comment:"String literal (double-quoted)",end:'"(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\||\\s|;|:|,))',endCaptures:{0:{name:"punctuation.definition.string.end.matlab"}},name:"string.quoted.double.matlab",patterns:[{match:'""',name:"constant.character.escape.matlab"},{match:'"(?=.)',name:"invalid.illegal.unescaped-quote.matlab"}]}]},transpose:{match:"\\.'",name:"keyword.operator.transpose.matlab"},validator_strings:{comment:"Simplified string patterns nested inside validator functions which don't change scopes of matches.",patterns:[{patterns:[{begin:"((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)'",comment:"Character vector literal (single-quoted)",end:"'(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\s|;|:|,))",name:"storage.type.matlab",patterns:[{match:"''"},{match:"'(?=.)"},{match:"([^']+)"}]},{begin:'((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)"',comment:"String literal (double-quoted)",end:'"(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\||\\s|;|:|,))',name:"storage.type.matlab",patterns:[{match:'""'},{match:'"(?=.)'},{match:'[^"]+'}]}]}]},validators:{begin:"\\s*[;]?\\s*([a-zA-Z][a-zA-Z0-9_\\.\\?]*)",comment:"Property and argument validation. Match an identifier allowing . and ?.",end:"([;\\n%=].*)",endCaptures:{1:{patterns:[{captures:{1:{patterns:[{include:"$self"}]}},comment:"Match comments",match:"([%].*)"},{captures:{1:{patterns:[{include:"$self"}]}},comment:"Handle things like arg = val; nextArg",match:"(=[^;]*)"},{captures:{1:{patterns:[{include:"#validators"}]}},comment:"End of property/argument patterns which start a new property/argument. Look for beginning of identifier after semicolon. Otherwise treat as regular code.",match:"([\\n;]\\s*[a-zA-Z].*)"},{include:"$self"}]}},patterns:[{include:"#line_continuation"},{comment:"Size declaration",match:"\\s*(\\([^\\)]*\\))",name:"storage.type.matlab"},{comment:"Type declaration",match:"([a-zA-Z][a-zA-Z0-9_\\.]*)",name:"storage.type.matlab"},{include:"#braced_validator_list"}]},variables:{comment:"MATLAB variables",match:"(?<!\\.)\\b(nargin|nargout|varargin|varargout)\\b",name:"variable.other.function.matlab"}},scopeName:"source.matlab"});var a=[e];export{a as default}; diff --git a/assets/chunks/mdc.BtXAnNXs.js b/assets/chunks/mdc.BtXAnNXs.js new file mode 100644 index 000000000..3f598f861 --- /dev/null +++ b/assets/chunks/mdc.BtXAnNXs.js @@ -0,0 +1,76 @@ +import e from"./markdown.BdfWgkoX.js";import r from"./yaml.C5gCGmDW.js";import t from"./html-derivative.fiapQfxX.js";import"./html.CuK0VrWf.js";import"./javascript.Dch3xQiY.js";import"./css.CbYhyuC0.js";const a=Object.freeze({displayName:"MDC",injectionSelector:"L:text.html.markdown",name:"mdc",patterns:[{include:"#component_block"},{include:"#inline"}],repository:{attribute:{patterns:[{captures:{2:{name:"entity.other.attribute-name.html"},3:{patterns:[{include:"#attribute-interior"}]}},match:`(?x) +( +([^=><\\s]*) +( +=["]([^"]*)(["])|[']([^']*)([']) +| =[^\\s'"}]* +)? +\\s* +)`}]},"attribute-interior":{patterns:[{begin:"=",beginCaptures:{0:{name:"punctuation.separator.key-value.html"}},end:"(?<=[^\\s=])(?!\\s*=)|(?=/?>)",patterns:[{match:"([^\\s\"'=<>`/]|/(?!>))+",name:"string.unquoted.html"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"#entities"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"#entities"}]},{match:"=",name:"invalid.illegal.unexpected-equals-sign.html"}]}]},attributes:{captures:{1:{name:"punctuation.definition.tag.start.component"},3:{patterns:[{include:"#attribute"}]},4:{name:"punctuation.definition.tag.end.component"}},match:`(?x)( +({) +([^{]*) +(}) +)`,name:"attributes.mdc"},block:{patterns:[{include:"#component_block"},{include:"text.html.markdown#separator"},{include:"#heading"},{include:"#blockquote"},{include:"#lists"},{include:"text.html.markdown#fenced_code_block"},{include:"text.html.markdown#link-def"},{include:"text.html.markdown#html"},{include:"#paragraph"}]},blockquote:{begin:"(^|\\G)[ ]*(>) ?",captures:{2:{name:"punctuation.definition.quote.begin.markdown"}},name:"markup.quote.markdown",patterns:[{include:"#block"}],while:"(^|\\G)\\s*(>) ?"},component_block:{begin:`(?x) +(^|\\G)(\\s*) +(:{2,}) +(?i: +(\\w[\\w\\d-]+) +( +\\s* +| \\s*({[^{]*}) +) +$ +)`,beginCaptures:{3:{name:"punctuation.definition.tag.start.mdc"},4:{name:"entity.name.tag.mdc"},5:{patterns:[{include:"#attributes"}]}},end:"(^|\\G)(\\2)(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.tag.end.mdc"}},name:"block.component.mdc",patterns:[{captures:{2:{name:"punctuation.definition.tag.end.mdc"}},match:"(^|\\G)\\s*([:]{2,})$"},{include:"#content"}]},component_inline:{captures:{2:{name:"punctuation.definition.tag.start.component"},3:{name:"entity.name.tag.component"},5:{patterns:[{include:"#attributes"}]},6:{patterns:[{include:"#span"}]},7:{patterns:[{include:"#span"}]},8:{patterns:[{include:"#attributes"}]}},match:`(?x) +(^|\\G|\\s+) +(:) +(?i: +(\\w[\\w\\d-]*) +) +( +({[^}]*}) +(\\[[^\\]]*\\])? + +| (\\[[^\\]]*\\]) +({[^}]*})? +)? +\\s`,name:"inline.component.mdc"},content:{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.mdc",patterns:[{begin:"(^|\\G)(\\s*)(-{3})(\\s*)$",end:"(^|\\G)(\\s*(-{3})(\\s*)$)",patterns:[{include:"source.yaml"}]},{captures:{2:{name:"entity.other.attribute-name.html"},3:{name:"comment.block.html"}},match:"^(\\s*)(#[\\w\\-\\_]*)\\s*(<!--(.*)-->)?$"},{include:"#block"}],while:"(^|\\G)(?!\\s*([:]{2,})\\s*$)"},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html"},912:{name:"punctuation.definition.entity.html"}},match:`(?x) +(&) (?=[a-zA-Z]) +( +(a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve)) +| (B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?)) +| (c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross)) +| (d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger))) +| (e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr))) +| (f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr)) +| (G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve)) +| (h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy)) +| (i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?)) +| (j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr)) +| (k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa)) +| (l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot)) +| (M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker))) +| (n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute)) +| (o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr))) +| (p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?)) +| (q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr)) +| (R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))) +| (s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle)) +| (t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot)) +| (u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve))) +| (v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar)) +| (w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr)) +| (X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map)) +| (y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy)) +| (z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute)) +) +(;) +`,name:"constant.character.entity.named.$2.html"},{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)#[0-9]+(;)",name:"constant.character.entity.numeric.decimal.html"},{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)#[xX][0-9a-fA-F]+(;)",name:"constant.character.entity.numeric.hexadecimal.html"},{match:"&(?=[a-zA-Z0-9]+;)",name:"invalid.illegal.ambiguous-ampersand.html"}]},heading:{captures:{1:{patterns:[{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"text.html.markdown#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.6.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"text.html.markdown#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.5.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"text.html.markdown#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.4.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"text.html.markdown#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.3.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"text.html.markdown#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.2.markdown"},{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"text.html.markdown#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.1.markdown"}]}},match:"(?:^|\\G)[ ]*(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$",name:"markup.heading.markdown",patterns:[{include:"text.html.markdown#inline"}]},"heading-setext":{patterns:[{match:"^(={3,})(?=[ \\t]*$\\n?)",name:"markup.heading.setext.1.markdown"},{match:"^(-{3,})(?=[ \\t]*$\\n?)",name:"markup.heading.setext.2.markdown"}]},inline:{patterns:[{include:"#component_inline"},{include:"#span"},{include:"#attributes"}]},lists:{patterns:[{begin:"(^|\\G)([ ]*)([*+-])([ \\t])",beginCaptures:{3:{name:"punctuation.definition.list.begin.markdown"}},name:"markup.list.unnumbered.markdown",patterns:[{include:"#block"},{include:"text.html.markdown#list_paragraph"}],while:"((^|\\G)([ ]*|\\t))|(^[ \\t]*$)"},{begin:"(^|\\G)([ ]*)([0-9]+\\.)([ \\t])",beginCaptures:{3:{name:"punctuation.definition.list.begin.markdown"}},name:"markup.list.numbered.markdown",patterns:[{include:"#block"},{include:"text.html.markdown#list_paragraph"}],while:"((^|\\G)([ ]*|\\t))|(^[ \\t]*$)"}]},paragraph:{begin:"(^|\\G)[ ]*(?=\\S)",name:"meta.paragraph.markdown",patterns:[{include:"text.html.markdown#inline"},{include:"text.html.derivative"},{include:"#heading-setext"}],while:"(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=\\S))"},span:{captures:{1:{name:"punctuation.definition.tag.start.component"},2:{name:"string.other.link.description.title.markdown"},3:{name:"punctuation.definition.tag.end.component"},4:{patterns:[{include:"#attributes"}]}},match:`(?x) +(\\[) +([^]]*) +(\\]) +( +({) +([^{]*) +(}) +)? +\\s`,name:"span.component.mdc"}},scopeName:"text.markdown.mdc",embeddedLangs:["markdown","yaml","html-derivative"]});var u=[...e,...r,...t,a];export{u as default}; diff --git a/assets/chunks/mdx.CBPJd_fO.js b/assets/chunks/mdx.CBPJd_fO.js new file mode 100644 index 000000000..45e169027 --- /dev/null +++ b/assets/chunks/mdx.CBPJd_fO.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"MDX",fileTypes:["mdx"],name:"mdx",patterns:[{include:"#markdown-frontmatter"},{include:"#markdown-sections"}],repository:{"commonmark-attention":{patterns:[{match:"(?<=\\S)\\*{3,}|\\*{3,}(?=\\S)",name:"string.other.strong.emphasis.asterisk.mdx"},{match:"(?<=[\\p{L}\\p{N}])_{3,}(?![\\p{L}\\p{N}])|(?<=\\p{P})_{3,}|(?<![\\p{L}\\p{N}]|\\p{P})_{3,}(?!\\s)",name:"string.other.strong.emphasis.underscore.mdx"},{match:"(?<=\\S)\\*{2}|\\*{2}(?=\\S)",name:"string.other.strong.asterisk.mdx"},{match:"(?<=[\\p{L}\\p{N}])_{2}(?![\\p{L}\\p{N}])|(?<=\\p{P})_{2}|(?<![\\p{L}\\p{N}]|\\p{P})_{2}(?!\\s)",name:"string.other.strong.underscore.mdx"},{match:"(?<=\\S)\\*|\\*(?=\\S)",name:"string.other.emphasis.asterisk.mdx"},{match:"(?<=[\\p{L}\\p{N}])_(?![\\p{L}\\p{N}])|(?<=\\p{P})_|(?<![\\p{L}\\p{N}]|\\p{P})_(?!\\s)",name:"string.other.emphasis.underscore.mdx"}]},"commonmark-block-quote":{begin:"(?:^|\\G)[\\t ]*(>)[ ]?",beginCaptures:{0:{name:"markup.quote.mdx"},1:{name:"punctuation.definition.quote.begin.mdx"}},name:"markup.quote.mdx",patterns:[{include:"#markdown-sections"}],while:"(>)[ ]?",whileCaptures:{0:{name:"markup.quote.mdx"},1:{name:"punctuation.definition.quote.begin.mdx"}}},"commonmark-character-escape":{match:"\\\\(?:[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])",name:"constant.language.character-escape.mdx"},"commonmark-character-reference":{patterns:[{include:"#whatwg-html-data-character-reference-named-terminated"},{captures:{1:{name:"punctuation.definition.character-reference.begin.html"},2:{name:"punctuation.definition.character-reference.numeric.html"},3:{name:"punctuation.definition.character-reference.numeric.hexadecimal.html"},4:{name:"constant.numeric.integer.hexadecimal.html"},5:{name:"punctuation.definition.character-reference.end.html"}},match:"(&)(#)([Xx])([0-9A-Fa-f]{1,6})(;)",name:"constant.language.character-reference.numeric.hexadecimal.html"},{captures:{1:{name:"punctuation.definition.character-reference.begin.html"},2:{name:"punctuation.definition.character-reference.numeric.html"},3:{name:"constant.numeric.integer.decimal.html"},4:{name:"punctuation.definition.character-reference.end.html"}},match:"(&)(#)([0-9]{1,7})(;)",name:"constant.language.character-reference.numeric.decimal.html"}]},"commonmark-code-fenced":{patterns:[{include:"#commonmark-code-fenced-apib"},{include:"#commonmark-code-fenced-asciidoc"},{include:"#commonmark-code-fenced-c"},{include:"#commonmark-code-fenced-clojure"},{include:"#commonmark-code-fenced-coffee"},{include:"#commonmark-code-fenced-console"},{include:"#commonmark-code-fenced-cpp"},{include:"#commonmark-code-fenced-cs"},{include:"#commonmark-code-fenced-css"},{include:"#commonmark-code-fenced-diff"},{include:"#commonmark-code-fenced-dockerfile"},{include:"#commonmark-code-fenced-elixir"},{include:"#commonmark-code-fenced-elm"},{include:"#commonmark-code-fenced-erlang"},{include:"#commonmark-code-fenced-gitconfig"},{include:"#commonmark-code-fenced-go"},{include:"#commonmark-code-fenced-graphql"},{include:"#commonmark-code-fenced-haskell"},{include:"#commonmark-code-fenced-html"},{include:"#commonmark-code-fenced-ini"},{include:"#commonmark-code-fenced-java"},{include:"#commonmark-code-fenced-js"},{include:"#commonmark-code-fenced-json"},{include:"#commonmark-code-fenced-julia"},{include:"#commonmark-code-fenced-kotlin"},{include:"#commonmark-code-fenced-less"},{include:"#commonmark-code-fenced-less"},{include:"#commonmark-code-fenced-lua"},{include:"#commonmark-code-fenced-makefile"},{include:"#commonmark-code-fenced-md"},{include:"#commonmark-code-fenced-mdx"},{include:"#commonmark-code-fenced-objc"},{include:"#commonmark-code-fenced-perl"},{include:"#commonmark-code-fenced-php"},{include:"#commonmark-code-fenced-php"},{include:"#commonmark-code-fenced-python"},{include:"#commonmark-code-fenced-r"},{include:"#commonmark-code-fenced-raku"},{include:"#commonmark-code-fenced-ruby"},{include:"#commonmark-code-fenced-rust"},{include:"#commonmark-code-fenced-scala"},{include:"#commonmark-code-fenced-scss"},{include:"#commonmark-code-fenced-shell"},{include:"#commonmark-code-fenced-shell-session"},{include:"#commonmark-code-fenced-sql"},{include:"#commonmark-code-fenced-svg"},{include:"#commonmark-code-fenced-swift"},{include:"#commonmark-code-fenced-toml"},{include:"#commonmark-code-fenced-ts"},{include:"#commonmark-code-fenced-tsx"},{include:"#commonmark-code-fenced-vbnet"},{include:"#commonmark-code-fenced-xml"},{include:"#commonmark-code-fenced-yaml"},{include:"#commonmark-code-fenced-unknown"}]},"commonmark-code-fenced-apib":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:api\\x2dblueprint|(?:.*\\.)?apib))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.apib",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.apib.mdx",patterns:[{include:"text.html.markdown.source.gfm.apib"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:api\\x2dblueprint|(?:.*\\.)?apib))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.apib",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.apib.mdx",patterns:[{include:"text.html.markdown.source.gfm.apib"}]}]},"commonmark-code-fenced-asciidoc":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:adoc|asciidoc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.asciidoc",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.asciidoc.mdx",patterns:[{include:"text.html.asciidoc"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:adoc|asciidoc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.asciidoc",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.asciidoc.mdx",patterns:[{include:"text.html.asciidoc"}]}]},"commonmark-code-fenced-c":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:dtrace|dtrace\\x2dscript|oncrpc|rpc|rpcgen|unified\\x2dparallel\\x2dc|x\\x2dbitmap|x\\x2dpixmap|xdr|(?:.*\\.)?(?:c|cats|h|idc|opencl|upc|xbm|xpm|xs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.c",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.c.mdx",patterns:[{include:"source.c"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:dtrace|dtrace\\x2dscript|oncrpc|rpc|rpcgen|unified\\x2dparallel\\x2dc|x\\x2dbitmap|x\\x2dpixmap|xdr|(?:.*\\.)?(?:c|cats|h|idc|opencl|upc|xbm|xpm|xs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.c",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.c.mdx",patterns:[{include:"source.c"}]}]},"commonmark-code-fenced-clojure":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:clojure|rouge|(?:.*\\.)?(?:boot|cl2|clj|cljc|cljs|cljs\\.hl|cljscm|cljx|edn|hic|rg|wisp)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.clojure",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.clojure.mdx",patterns:[{include:"source.clojure"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:clojure|rouge|(?:.*\\.)?(?:boot|cl2|clj|cljc|cljs|cljs\\.hl|cljscm|cljx|edn|hic|rg|wisp)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.clojure",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.clojure.mdx",patterns:[{include:"source.clojure"}]}]},"commonmark-code-fenced-coffee":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:coffee\\x2dscript|coffeescript|(?:.*\\.)?(?:_coffee|cjsx|coffee|cson|em|emberscript|iced)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.coffee",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.coffee.mdx",patterns:[{include:"source.coffee"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:coffee\\x2dscript|coffeescript|(?:.*\\.)?(?:_coffee|cjsx|coffee|cson|em|emberscript|iced)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.coffee",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.coffee.mdx",patterns:[{include:"source.coffee"}]}]},"commonmark-code-fenced-console":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:pycon|python\\x2dconsole))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.console",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.console.mdx",patterns:[{include:"text.python.console"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:pycon|python\\x2dconsole))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.console",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.console.mdx",patterns:[{include:"text.python.console"}]}]},"commonmark-code-fenced-cpp":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:ags|ags\\x2dscript|asymptote|c\\+\\+|edje\\x2ddata\\x2dcollection|game\\x2dmaker\\x2dlanguage|swig|(?:.*\\.)?(?:asc|ash|asy|c\\+\\+|cc|cp|cpp|cppm|cxx|edc|gml|h\\+\\+|hh|hpp|hxx|inl|ino|ipp|ixx|metal|re|tcc|tpp|txx)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.cpp",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.cpp.mdx",patterns:[{include:"source.c++"},{include:"source.cpp"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:ags|ags\\x2dscript|asymptote|c\\+\\+|edje\\x2ddata\\x2dcollection|game\\x2dmaker\\x2dlanguage|swig|(?:.*\\.)?(?:asc|ash|asy|c\\+\\+|cc|cp|cpp|cppm|cxx|edc|gml|h\\+\\+|hh|hpp|hxx|inl|ino|ipp|ixx|metal|re|tcc|tpp|txx)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.cpp",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.cpp.mdx",patterns:[{include:"source.c++"},{include:"source.cpp"}]}]},"commonmark-code-fenced-cs":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:beef|c#|cakescript|csharp|(?:.*\\.)?(?:bf|cake|cs|csx|eq|linq|uno)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.cs",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.cs.mdx",patterns:[{include:"source.cs"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:beef|c#|cakescript|csharp|(?:.*\\.)?(?:bf|cake|cs|csx|eq|linq|uno)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.cs",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.cs.mdx",patterns:[{include:"source.cs"}]}]},"commonmark-code-fenced-css":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?css))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.css",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.css.mdx",patterns:[{include:"source.css"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?css))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.css",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.css.mdx",patterns:[{include:"source.css"}]}]},"commonmark-code-fenced-diff":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:udiff|(?:.*\\.)?(?:diff|patch)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.diff",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.diff.mdx",patterns:[{include:"source.diff"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:udiff|(?:.*\\.)?(?:diff|patch)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.diff",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.diff.mdx",patterns:[{include:"source.diff"}]}]},"commonmark-code-fenced-dockerfile":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:containerfile|(?:.*\\.)?dockerfile))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.dockerfile",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.dockerfile.mdx",patterns:[{include:"source.dockerfile"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:containerfile|(?:.*\\.)?dockerfile))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.dockerfile",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.dockerfile.mdx",patterns:[{include:"source.dockerfile"}]}]},"commonmark-code-fenced-elixir":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:elixir|(?:.*\\.)?(?:ex|exs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.elixir",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.elixir.mdx",patterns:[{include:"source.elixir"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:elixir|(?:.*\\.)?(?:ex|exs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.elixir",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.elixir.mdx",patterns:[{include:"source.elixir"}]}]},"commonmark-code-fenced-elm":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?elm))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.elm",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.elm.mdx",patterns:[{include:"source.elm"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?elm))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.elm",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.elm.mdx",patterns:[{include:"source.elm"}]}]},"commonmark-code-fenced-erlang":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:erlang|(?:.*\\.)?(?:app|app\\.src|erl|es|escript|hrl|xrl|yrl)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.erlang",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.erlang.mdx",patterns:[{include:"source.erlang"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:erlang|(?:.*\\.)?(?:app|app\\.src|erl|es|escript|hrl|xrl|yrl)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.erlang",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.erlang.mdx",patterns:[{include:"source.erlang"}]}]},"commonmark-code-fenced-gitconfig":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:git\\x2dconfig|gitmodules|(?:.*\\.)?gitconfig))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.gitconfig",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.gitconfig.mdx",patterns:[{include:"source.gitconfig"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:git\\x2dconfig|gitmodules|(?:.*\\.)?gitconfig))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.gitconfig",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.gitconfig.mdx",patterns:[{include:"source.gitconfig"}]}]},"commonmark-code-fenced-go":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:golang|(?:.*\\.)?go))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.go",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.go.mdx",patterns:[{include:"source.go"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:golang|(?:.*\\.)?go))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.go",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.go.mdx",patterns:[{include:"source.go"}]}]},"commonmark-code-fenced-graphql":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:gql|graphql|graphqls)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.graphql",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.graphql.mdx",patterns:[{include:"source.graphql"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:gql|graphql|graphqls)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.graphql",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.graphql.mdx",patterns:[{include:"source.graphql"}]}]},"commonmark-code-fenced-haskell":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bh|bluespec\\x2dbh|bluespec\\x2dclassic|c2hs|c2hs\\x2dhaskell|frege|haskell|(?:.*\\.)?(?:chs|dhall|hs|hs\\x2dboot|hsc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.haskell",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.haskell.mdx",patterns:[{include:"source.haskell"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bh|bluespec\\x2dbh|bluespec\\x2dclassic|c2hs|c2hs\\x2dhaskell|frege|haskell|(?:.*\\.)?(?:chs|dhall|hs|hs\\x2dboot|hsc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.haskell",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.haskell.mdx",patterns:[{include:"source.haskell"}]}]},"commonmark-code-fenced-html":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:html|(?:.*\\.)?(?:hta|htm|html\\.hl|kit|mtml|xht|xhtml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.html",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.html.mdx",patterns:[{include:"text.html.basic"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:html|(?:.*\\.)?(?:hta|htm|html\\.hl|kit|mtml|xht|xhtml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.html",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.html.mdx",patterns:[{include:"text.html.basic"}]}]},"commonmark-code-fenced-ini":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:altium|altium\\x2ddesigner|dosini|(?:.*\\.)?(?:cnf|dof|ini|lektorproject|outjob|pcbdoc|prefs|prjpcb|properties|schdoc|url)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.ini",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ini.mdx",patterns:[{include:"source.ini"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:altium|altium\\x2ddesigner|dosini|(?:.*\\.)?(?:cnf|dof|ini|lektorproject|outjob|pcbdoc|prefs|prjpcb|properties|schdoc|url)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.ini",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ini.mdx",patterns:[{include:"source.ini"}]}]},"commonmark-code-fenced-java":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:chuck|unrealscript|(?:.*\\.)?(?:ck|jav|java|jsh|uc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.java",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.java.mdx",patterns:[{include:"source.java"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:chuck|unrealscript|(?:.*\\.)?(?:ck|jav|java|jsh|uc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.java",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.java.mdx",patterns:[{include:"source.java"}]}]},"commonmark-code-fenced-js":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:cycript|javascript\\+erb|json\\x2dwith\\x2dcomments|node|qt\\x2dscript|(?:.*\\.)?(?:_js|bones|cjs|code\\x2dsnippets|code\\x2dworkspace|cy|es6|jake|javascript|js|js\\.erb|jsb|jscad|jsfl|jslib|jsm|json5|jsonc|jsonld|jspre|jss|jsx|mjs|njs|pac|sjs|ssjs|sublime\\x2dbuild|sublime\\x2dcommands|sublime\\x2dcompletions|sublime\\x2dkeymap|sublime\\x2dmacro|sublime\\x2dmenu|sublime\\x2dmousemap|sublime\\x2dproject|sublime\\x2dsettings|sublime\\x2dtheme|sublime\\x2dworkspace|sublime_metrics|sublime_session|xsjs|xsjslib)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.js",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.js.mdx",patterns:[{include:"source.js"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:cycript|javascript\\+erb|json\\x2dwith\\x2dcomments|node|qt\\x2dscript|(?:.*\\.)?(?:_js|bones|cjs|code\\x2dsnippets|code\\x2dworkspace|cy|es6|jake|javascript|js|js\\.erb|jsb|jscad|jsfl|jslib|jsm|json5|jsonc|jsonld|jspre|jss|jsx|mjs|njs|pac|sjs|ssjs|sublime\\x2dbuild|sublime\\x2dcommands|sublime\\x2dcompletions|sublime\\x2dkeymap|sublime\\x2dmacro|sublime\\x2dmenu|sublime\\x2dmousemap|sublime\\x2dproject|sublime\\x2dsettings|sublime\\x2dtheme|sublime\\x2dworkspace|sublime_metrics|sublime_session|xsjs|xsjslib)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.js",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.js.mdx",patterns:[{include:"source.js"}]}]},"commonmark-code-fenced-json":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:ecere\\x2dprojects|ipython\\x2dnotebook|jupyter\\x2dnotebook|max|max/msp|maxmsp|oasv2\\x2djson|oasv3\\x2djson|(?:.*\\.)?(?:4dform|4dproject|avsc|epj|geojson|gltf|har|ice|ipynb|json|json|json|json\\x2dtmlanguage|jsonl|maxhelp|maxpat|maxproj|mcmeta|mxt|pat|tfstate|tfstate\\.backup|topojson|webapp|webmanifest|yy|yyp)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.json",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.json.mdx",patterns:[{include:"source.json"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:ecere\\x2dprojects|ipython\\x2dnotebook|jupyter\\x2dnotebook|max|max/msp|maxmsp|oasv2\\x2djson|oasv3\\x2djson|(?:.*\\.)?(?:4dform|4dproject|avsc|epj|geojson|gltf|har|ice|ipynb|json|json|json|json\\x2dtmlanguage|jsonl|maxhelp|maxpat|maxproj|mcmeta|mxt|pat|tfstate|tfstate\\.backup|topojson|webapp|webmanifest|yy|yyp)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.json",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.json.mdx",patterns:[{include:"source.json"}]}]},"commonmark-code-fenced-julia":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:julia|(?:.*\\.)?jl))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.julia",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.julia.mdx",patterns:[{include:"source.julia"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:julia|(?:.*\\.)?jl))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.julia",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.julia.mdx",patterns:[{include:"source.julia"}]}]},"commonmark-code-fenced-kotlin":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:gradle\\x2dkotlin\\x2ddsl|kotlin|(?:.*\\.)?(?:gradle\\.kts|kt|ktm|kts)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.kotlin",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.kotlin.mdx",patterns:[{include:"source.kotlin"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:gradle\\x2dkotlin\\x2ddsl|kotlin|(?:.*\\.)?(?:gradle\\.kts|kt|ktm|kts)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.kotlin",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.kotlin.mdx",patterns:[{include:"source.kotlin"}]}]},"commonmark-code-fenced-less":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:less\\x2dcss|(?:.*\\.)?less))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.less",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.less.mdx",patterns:[{include:"source.css.less"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:less\\x2dcss|(?:.*\\.)?less))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.less",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.less.mdx",patterns:[{include:"source.css.less"}]}]},"commonmark-code-fenced-lua":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:fcgi|lua|nse|p8|pd_lua|rbxs|rockspec|wlua)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.lua",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.lua.mdx",patterns:[{include:"source.lua"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:fcgi|lua|nse|p8|pd_lua|rbxs|rockspec|wlua)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.lua",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.lua.mdx",patterns:[{include:"source.lua"}]}]},"commonmark-code-fenced-makefile":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bsdmake|mf|(?:.*\\.)?(?:mak|make|makefile|mk|mkfile)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.makefile",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.makefile.mdx",patterns:[{include:"source.makefile"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bsdmake|mf|(?:.*\\.)?(?:mak|make|makefile|mk|mkfile)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.makefile",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.makefile.mdx",patterns:[{include:"source.makefile"}]}]},"commonmark-code-fenced-md":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:md|pandoc|rmarkdown|(?:.*\\.)?(?:livemd|markdown|mdown|mdwn|mkd|mkdn|mkdown|qmd|rmd|ronn|scd|workbook)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.md",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.md.mdx",patterns:[{include:"text.md"},{include:"source.gfm"},{include:"text.html.markdown"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:md|pandoc|rmarkdown|(?:.*\\.)?(?:livemd|markdown|mdown|mdwn|mkd|mkdn|mkdown|qmd|rmd|ronn|scd|workbook)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.md",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.md.mdx",patterns:[{include:"text.md"},{include:"source.gfm"},{include:"text.html.markdown"}]}]},"commonmark-code-fenced-mdx":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?mdx))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.mdx",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.mdx.mdx",patterns:[{include:"source.mdx"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?mdx))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.mdx",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.mdx.mdx",patterns:[{include:"source.mdx"}]}]},"commonmark-code-fenced-objc":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:obj\\x2dc|objc|objective\\x2dc|objectivec))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.objc",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.objc.mdx",patterns:[{include:"source.objc"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:obj\\x2dc|objc|objective\\x2dc|objectivec))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.objc",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.objc.mdx",patterns:[{include:"source.objc"}]}]},"commonmark-code-fenced-perl":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:cperl|(?:.*\\.)?(?:cgi|perl|ph|pl|plx|pm|psgi|t)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.perl",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.perl.mdx",patterns:[{include:"source.perl"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:cperl|(?:.*\\.)?(?:cgi|perl|ph|pl|plx|pm|psgi|t)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.perl",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.perl.mdx",patterns:[{include:"source.perl"}]}]},"commonmark-code-fenced-php":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:html\\+php|inc|php|(?:.*\\.)?(?:aw|ctp|php3|php4|php5|phps|phpt|phtml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.php",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.php.mdx",patterns:[{include:"text.html.php"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:html\\+php|inc|php|(?:.*\\.)?(?:aw|ctp|php3|php4|php5|phps|phpt|phtml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.php",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.php.mdx",patterns:[{include:"text.html.php"}]}]},"commonmark-code-fenced-python":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bazel|easybuild|python|python3|rusthon|snakemake|starlark|xonsh|(?:.*\\.)?(?:bzl|eb|gyp|gypi|lmi|py|py3|pyde|pyi|pyp|pyt|pyw|rpy|sage|sagews|smk|snakefile|spec|tac|wsgi|xpy|xsh)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.python",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.python.mdx",patterns:[{include:"source.python"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bazel|easybuild|python|python3|rusthon|snakemake|starlark|xonsh|(?:.*\\.)?(?:bzl|eb|gyp|gypi|lmi|py|py3|pyde|pyi|pyp|pyt|pyw|rpy|sage|sagews|smk|snakefile|spec|tac|wsgi|xpy|xsh)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.python",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.python.mdx",patterns:[{include:"source.python"}]}]},"commonmark-code-fenced-r":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:rscript|splus|(?:.*\\.)?(?:r|rd|rsx)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.r",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.r.mdx",patterns:[{include:"source.r"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:rscript|splus|(?:.*\\.)?(?:r|rd|rsx)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.r",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.r.mdx",patterns:[{include:"source.r"}]}]},"commonmark-code-fenced-raku":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:perl\\x2d6|perl6|pod\\x2d6|(?:.*\\.)?(?:6pl|6pm|nqp|p6|p6l|p6m|pl6|pm6|pod|pod6|raku|rakumod)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.raku",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.raku.mdx",patterns:[{include:"source.raku"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:perl\\x2d6|perl6|pod\\x2d6|(?:.*\\.)?(?:6pl|6pm|nqp|p6|p6l|p6m|pl6|pm6|pod|pod6|raku|rakumod)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.raku",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.raku.mdx",patterns:[{include:"source.raku"}]}]},"commonmark-code-fenced-ruby":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:jruby|macruby|(?:.*\\.)?(?:builder|druby|duby|eye|gemspec|god|jbuilder|mirah|mspec|pluginspec|podspec|prawn|rabl|rake|rb|rbi|rbuild|rbw|rbx|ru|ruby|thor|watchr)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.ruby",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ruby.mdx",patterns:[{include:"source.ruby"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:jruby|macruby|(?:.*\\.)?(?:builder|druby|duby|eye|gemspec|god|jbuilder|mirah|mspec|pluginspec|podspec|prawn|rabl|rake|rb|rbi|rbuild|rbw|rbx|ru|ruby|thor|watchr)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.ruby",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ruby.mdx",patterns:[{include:"source.ruby"}]}]},"commonmark-code-fenced-rust":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:rust|(?:.*\\.)?(?:rs|rs\\.in)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.rust",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.rust.mdx",patterns:[{include:"source.rust"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:rust|(?:.*\\.)?(?:rs|rs\\.in)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.rust",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.rust.mdx",patterns:[{include:"source.rust"}]}]},"commonmark-code-fenced-scala":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:kojo|sbt|sc|scala)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.scala",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.scala.mdx",patterns:[{include:"source.scala"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:kojo|sbt|sc|scala)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.scala",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.scala.mdx",patterns:[{include:"source.scala"}]}]},"commonmark-code-fenced-scss":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?scss))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.scss",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.scss.mdx",patterns:[{include:"source.css.scss"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?scss))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.scss",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.scss.mdx",patterns:[{include:"source.css.scss"}]}]},"commonmark-code-fenced-shell":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:abuild|alpine\\x2dabuild|apkbuild|gentoo\\x2debuild|gentoo\\x2declass|openrc|openrc\\x2drunscript|shell|shell\\x2dscript|(?:.*\\.)?(?:bash|bats|command|csh|ebuild|eclass|ksh|sh|sh\\.in|tcsh|tmux|tool|zsh|zsh\\x2dtheme)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.shell",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.shell.mdx",patterns:[{include:"source.shell"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:abuild|alpine\\x2dabuild|apkbuild|gentoo\\x2debuild|gentoo\\x2declass|openrc|openrc\\x2drunscript|shell|shell\\x2dscript|(?:.*\\.)?(?:bash|bats|command|csh|ebuild|eclass|ksh|sh|sh\\.in|tcsh|tmux|tool|zsh|zsh\\x2dtheme)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.shell",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.shell.mdx",patterns:[{include:"source.shell"}]}]},"commonmark-code-fenced-shell-session":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bash\\x2dsession|console|shellsession|(?:.*\\.)?sh\\x2dsession))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.shell-session",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.shell-session.mdx",patterns:[{include:"text.shell-session"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bash\\x2dsession|console|shellsession|(?:.*\\.)?sh\\x2dsession))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.shell-session",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.shell-session.mdx",patterns:[{include:"text.shell-session"}]}]},"commonmark-code-fenced-sql":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:plpgsql|sqlpl|(?:.*\\.)?(?:cql|db2|ddl|mysql|pgsql|prc|sql|sql|sql|tab|udf|viw)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.sql",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.sql.mdx",patterns:[{include:"source.sql"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:plpgsql|sqlpl|(?:.*\\.)?(?:cql|db2|ddl|mysql|pgsql|prc|sql|sql|sql|tab|udf|viw)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.sql",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.sql.mdx",patterns:[{include:"source.sql"}]}]},"commonmark-code-fenced-svg":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?svg))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.svg",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.svg.mdx",patterns:[{include:"text.xml.svg"},{include:"text.xml"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?svg))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.svg",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.svg.mdx",patterns:[{include:"text.xml.svg"},{include:"text.xml"}]}]},"commonmark-code-fenced-swift":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?swift))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.swift",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.swift.mdx",patterns:[{include:"source.swift"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?swift))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.swift",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.swift.mdx",patterns:[{include:"source.swift"}]}]},"commonmark-code-fenced-toml":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?toml))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.toml",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.toml.mdx",patterns:[{include:"source.toml"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?toml))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.toml",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.toml.mdx",patterns:[{include:"source.toml"}]}]},"commonmark-code-fenced-ts":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:typescript|(?:.*\\.)?(?:cts|mts|ts)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.ts",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ts.mdx",patterns:[{include:"source.ts"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:typescript|(?:.*\\.)?(?:cts|mts|ts)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.ts",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ts.mdx",patterns:[{include:"source.ts"}]}]},"commonmark-code-fenced-tsx":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?tsx))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.tsx",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.tsx.mdx",patterns:[{include:"source.tsx"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?tsx))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.tsx",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.tsx.mdx",patterns:[{include:"source.tsx"}]}]},"commonmark-code-fenced-unknown":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?:[^\\t\\n\\r` ])+)(?:[\\t ]+((?:[^\\n\\r`])+))?)?(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"markup.raw.code.fenced.mdx",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.other.mdx"},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?:[^\\t\\n\\r ])+)(?:[\\t ]+((?:[^\\n\\r])+))?)?(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"markup.raw.code.fenced.mdx",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.other.mdx"}]},"commonmark-code-fenced-vbnet":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:classic\\x2dvisual\\x2dbasic|fb|freebasic|realbasic|vb\\x2d\\.net|vb\\x2d6|vb\\.net|vb6|vbnet|vbscript|visual\\x2dbasic|visual\\x2dbasic\\x2d\\.net|visual\\x2dbasic\\x2d6|visual\\x2dbasic\\x2d6\\.0|visual\\x2dbasic\\x2dclassic|(?:.*\\.)?(?:bi|ctl|dsr|rbbas|rbfrm|rbmnu|rbres|rbtbar|rbuistate|vb|vbhtml|vbs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.vbnet",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.vbnet.mdx",patterns:[{include:"source.vbnet"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:classic\\x2dvisual\\x2dbasic|fb|freebasic|realbasic|vb\\x2d\\.net|vb\\x2d6|vb\\.net|vb6|vbnet|vbscript|visual\\x2dbasic|visual\\x2dbasic\\x2d\\.net|visual\\x2dbasic\\x2d6|visual\\x2dbasic\\x2d6\\.0|visual\\x2dbasic\\x2dclassic|(?:.*\\.)?(?:bi|ctl|dsr|rbbas|rbfrm|rbmnu|rbres|rbtbar|rbuistate|vb|vbhtml|vbs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.vbnet",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.vbnet.mdx",patterns:[{include:"source.vbnet"}]}]},"commonmark-code-fenced-xml":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:collada|eagle|labview|web\\x2dontology\\x2dlanguage|xpages|(?:.*\\.)?(?:adml|admx|ant|axaml|axml|brd|builds|ccproj|ccxml|clixml|cproject|cscfg|csdef|csproj|ct|dae|depproj|dita|ditamap|ditaval|dll\\.config|dotsettings|filters|fsproj|fxml|glade|gmx|grxml|hzp|iml|ivy|jelly|jsproj|kml|launch|lvclass|lvlib|lvproj|mdpolicy|mjml|mxml|natvis|ndproj|nproj|nuspec|odd|osm|owl|pkgproj|proj|props|ps1xml|psc1|pt|qhelp|rdf|resx|rss|sch|sch|scxml|sfproj|shproj|srdf|storyboard|sublime\\x2dsnippet|targets|tml|ui|urdf|ux|vbproj|vcxproj|vsixmanifest|vssettings|vstemplate|vxml|wixproj|wsdl|wsf|wxi|wxl|wxs|x3d|xacro|xaml|xib|xlf|xliff|xmi|xml|xml\\.dist|xmp|xpl|xproc|xproj|xsd|xsp\\x2dconfig|xsp\\.metadata|xspec|xul|zcml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.xml",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.xml.mdx",patterns:[{include:"text.xml"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:collada|eagle|labview|web\\x2dontology\\x2dlanguage|xpages|(?:.*\\.)?(?:adml|admx|ant|axaml|axml|brd|builds|ccproj|ccxml|clixml|cproject|cscfg|csdef|csproj|ct|dae|depproj|dita|ditamap|ditaval|dll\\.config|dotsettings|filters|fsproj|fxml|glade|gmx|grxml|hzp|iml|ivy|jelly|jsproj|kml|launch|lvclass|lvlib|lvproj|mdpolicy|mjml|mxml|natvis|ndproj|nproj|nuspec|odd|osm|owl|pkgproj|proj|props|ps1xml|psc1|pt|qhelp|rdf|resx|rss|sch|sch|scxml|sfproj|shproj|srdf|storyboard|sublime\\x2dsnippet|targets|tml|ui|urdf|ux|vbproj|vcxproj|vsixmanifest|vssettings|vstemplate|vxml|wixproj|wsdl|wsf|wxi|wxl|wxs|x3d|xacro|xaml|xib|xlf|xliff|xmi|xml|xml\\.dist|xmp|xpl|xproc|xproj|xsd|xsp\\x2dconfig|xsp\\.metadata|xspec|xul|zcml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.xml",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.xml.mdx",patterns:[{include:"text.xml"}]}]},"commonmark-code-fenced-yaml":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:jar\\x2dmanifest|kaitai\\x2dstruct|oasv2\\x2dyaml|oasv3\\x2dyaml|unity3d\\x2dasset|yaml|yml|(?:.*\\.)?(?:anim|asset|ksy|lkml|lookml|mat|meta|mir|prefab|raml|reek|rviz|sublime\\x2dsyntax|syntax|unity|yaml\\x2dtmlanguage|yaml\\.sed|yml\\.mysql)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.yaml",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.yaml.mdx",patterns:[{include:"source.yaml"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:jar\\x2dmanifest|kaitai\\x2dstruct|oasv2\\x2dyaml|oasv3\\x2dyaml|unity3d\\x2dasset|yaml|yml|(?:.*\\.)?(?:anim|asset|ksy|lkml|lookml|mat|meta|mir|prefab|raml|reek|rviz|sublime\\x2dsyntax|syntax|unity|yaml\\x2dtmlanguage|yaml\\.sed|yml\\.mysql)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.yaml",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.yaml.mdx",patterns:[{include:"source.yaml"}]}]},"commonmark-code-text":{captures:{1:{name:"string.other.begin.code.mdx"},2:{name:"markup.raw.code.mdx markup.inline.raw.code.mdx"},3:{name:"string.other.end.code.mdx"}},match:"(?<!`)(`+)(?!`)(.+?)(?<!`)(\\1)(?!`)",name:"markup.code.other.mdx"},"commonmark-definition":{captures:{1:{name:"string.other.begin.mdx"},2:{name:"entity.name.identifier.mdx",patterns:[{include:"#markdown-string"}]},3:{name:"string.other.end.mdx"},4:{name:"punctuation.separator.key-value.mdx"},5:{name:"string.other.begin.destination.mdx"},6:{name:"string.other.link.destination.mdx",patterns:[{include:"#markdown-string"}]},7:{name:"string.other.end.destination.mdx"},8:{name:"string.other.link.destination.mdx",patterns:[{include:"#markdown-string"}]},9:{name:"string.other.begin.mdx"},10:{name:"string.quoted.double.mdx",patterns:[{include:"#markdown-string"}]},11:{name:"string.other.end.mdx"},12:{name:"string.other.begin.mdx"},13:{name:"string.quoted.single.mdx",patterns:[{include:"#markdown-string"}]},14:{name:"string.other.end.mdx"},15:{name:"string.other.begin.mdx"},16:{name:"string.quoted.paren.mdx",patterns:[{include:"#markdown-string"}]},17:{name:"string.other.end.mdx"}},match:`(?:^|\\G)[\\t ]*(\\[)((?:[^\\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+?)(\\])(:)[ \\t]*(?:(<)((?:[^\\n<\\\\>]|\\\\[<\\\\>]?)*)(>)|(\\g<destination_raw>))(?:[\\t ]+(?:(")((?:[^"\\\\]|\\\\["\\\\]?)*)(")|(')((?:[^'\\\\]|\\\\['\\\\]?)*)(')|(\\()((?:[^\\)\\\\]|\\\\[\\)\\\\]?)*)(\\))))?$(?<destination_raw>(?!\\<)(?:(?:[^\\p{Cc}\\ \\\\\\(\\)]|\\\\[\\(\\)\\\\]?)|\\(\\g<destination_raw>*\\))+){0}`,name:"meta.link.reference.def.mdx"},"commonmark-hard-break-escape":{match:"\\\\$",name:"constant.language.character-escape.line-ending.mdx"},"commonmark-hard-break-trailing":{match:"( ){2,}$",name:"carriage-return constant.language.character-escape.line-ending.mdx"},"commonmark-heading-atx":{patterns:[{captures:{1:{name:"punctuation.definition.heading.mdx"},2:{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},3:{name:"punctuation.definition.heading.mdx"}},match:"(?:^|\\G)[\\t ]*(#{1}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.1.mdx"},{captures:{1:{name:"punctuation.definition.heading.mdx"},2:{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},3:{name:"punctuation.definition.heading.mdx"}},match:"(?:^|\\G)[\\t ]*(#{2}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx"},{captures:{1:{name:"punctuation.definition.heading.mdx"},2:{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},3:{name:"punctuation.definition.heading.mdx"}},match:"(?:^|\\G)[\\t ]*(#{3}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx"},{captures:{1:{name:"punctuation.definition.heading.mdx"},2:{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},3:{name:"punctuation.definition.heading.mdx"}},match:"(?:^|\\G)[\\t ]*(#{4}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx"},{captures:{1:{name:"punctuation.definition.heading.mdx"},2:{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},3:{name:"punctuation.definition.heading.mdx"}},match:"(?:^|\\G)[\\t ]*(#{5}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx"},{captures:{1:{name:"punctuation.definition.heading.mdx"},2:{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},3:{name:"punctuation.definition.heading.mdx"}},match:"(?:^|\\G)[\\t ]*(#{6}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx"}]},"commonmark-heading-setext":{patterns:[{match:"(?:^|\\G)[\\t ]*(={1,})[ \\t]*$",name:"markup.heading.setext.1.mdx"},{match:"(?:^|\\G)[\\t ]*(-{1,})[ \\t]*$",name:"markup.heading.setext.2.mdx"}]},"commonmark-label-end":{patterns:[{captures:{1:{name:"string.other.end.mdx"},2:{name:"string.other.begin.mdx"},3:{name:"string.other.begin.destination.mdx"},4:{name:"string.other.link.destination.mdx",patterns:[{include:"#markdown-string"}]},5:{name:"string.other.end.destination.mdx"},6:{name:"string.other.link.destination.mdx",patterns:[{include:"#markdown-string"}]},7:{name:"string.other.begin.mdx"},8:{name:"string.quoted.double.mdx",patterns:[{include:"#markdown-string"}]},9:{name:"string.other.end.mdx"},10:{name:"string.other.begin.mdx"},11:{name:"string.quoted.single.mdx",patterns:[{include:"#markdown-string"}]},12:{name:"string.other.end.mdx"},13:{name:"string.other.begin.mdx"},14:{name:"string.quoted.paren.mdx",patterns:[{include:"#markdown-string"}]},15:{name:"string.other.end.mdx"},16:{name:"string.other.end.mdx"}},match:`(\\])(\\()[\\t ]*(?:(?:(<)((?:[^\\n<\\\\>]|\\\\[<\\\\>]?)*)(>)|(\\g<destination_raw>))(?:[\\t ]+(?:(")((?:[^"\\\\]|\\\\["\\\\]?)*)(")|(')((?:[^'\\\\]|\\\\['\\\\]?)*)(')|(\\()((?:[^\\)\\\\]|\\\\[\\)\\\\]?)*)(\\))))?)?[\\t ]*(\\))(?<destination_raw>(?!\\<)(?:(?:[^\\p{Cc}\\ \\\\\\(\\)]|\\\\[\\(\\)\\\\]?)|\\(\\g<destination_raw>*\\))+){0}`},{captures:{1:{name:"string.other.end.mdx"},2:{name:"string.other.begin.mdx"},3:{name:"entity.name.identifier.mdx",patterns:[{include:"#markdown-string"}]},4:{name:"string.other.end.mdx"}},match:"(\\])(\\[)((?:[^\\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+?)(\\])"},{captures:{1:{name:"string.other.end.mdx"}},match:"(\\])"}]},"commonmark-label-start":{patterns:[{match:"\\!\\[(?!\\^)",name:"string.other.begin.image.mdx"},{match:"\\[",name:"string.other.begin.link.mdx"}]},"commonmark-list-item":{patterns:[{begin:"(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{4}(?![ ])|\\t)(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"variable.unordered.list.mdx"},2:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{1}"},{begin:"(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{3}(?![ ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"variable.unordered.list.mdx"},2:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)"},{begin:"(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{2}(?![ ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"variable.unordered.list.mdx"},2:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)[ ]{3}"},{begin:"(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{1}|(?=\\n))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"variable.unordered.list.mdx"},2:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)[ ]{2}"},{begin:"(?:^|\\G)[\\t ]*([0-9]{9})((?:\\.|\\)))(?:[ ]{4}(?![ ])|\\t(?![\\t ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}[ ]{2}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{8})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}[ ]{1}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{8})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{7})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{8})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{7})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{6})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"string.other.number.mdx"},8:{name:"variable.ordered.list.mdx"},9:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{3}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{8})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{7})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{6})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{5})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"string.other.number.mdx"},8:{name:"variable.ordered.list.mdx"},9:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{2}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{7})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{6})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{5})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{4})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"string.other.number.mdx"},8:{name:"variable.ordered.list.mdx"},9:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{1}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{6})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{5})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{4})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{3})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"string.other.number.mdx"},8:{name:"variable.ordered.list.mdx"},9:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{5})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{4})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{3})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{2})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"string.other.number.mdx"},8:{name:"variable.ordered.list.mdx"},9:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{3}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{4})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{3})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{2})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{1})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"string.other.number.mdx"},8:{name:"variable.ordered.list.mdx"},9:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{2}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{3})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{2})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{1})((?:\\.|\\)))(?:[ ]{3}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{1}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{2})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9])((?:\\.|\\)))(?:[ ]{2}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)"},{begin:"(?:^|\\G)[\\t ]*([0-9])((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)[ ]{3}"}]},"commonmark-paragraph":{begin:"(?![\\t ]*$)",name:"meta.paragraph.mdx",patterns:[{include:"#markdown-text"}],while:"(?:^|\\G)(?:[ ]{4}|\\t)"},"commonmark-thematic-break":{match:"(?:^|\\G)[\\t ]*([-*_])[ \\t]*(?:\\1[ \\t]*){2,}$",name:"meta.separator.mdx"},"extension-gfm-autolink-literal":{patterns:[{match:`(?<=^|[\\t\\n\\r \\(\\*\\_\\[\\]~])(?=(?i:www)\\.[^\\n\\r])(?:(?:[\\p{L}\\p{N}]|-|[\\._](?!(?:[!"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+\\g<path>?)?(?<path>(?:(?:[^\\t\\n\\r !"&'\\(\\)\\*,\\.:;<\\?\\]_~]|&(?![A-Za-z]*;(?:[!"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))|[!"'\\)\\*,\\.:;\\?_~](?!(?:[!"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))|\\(\\g<path>*\\))+){0}`,name:"string.other.link.autolink.literal.www.mdx"},{match:`(?<=^|[^A-Za-z])(?i:https?://)(?=[\\p{L}\\p{N}])(?:(?:[\\p{L}\\p{N}]|-|[\\._](?!(?:[!"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+\\g<path>?)?(?<path>(?:(?:[^\\t\\n\\r !"&'\\(\\)\\*,\\.:;<\\?\\]_~]|&(?![A-Za-z]*;(?:[!"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))|[!"'\\)\\*,\\.:;\\?_~](?!(?:[!"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))|\\(\\g<path>*\\))+){0}`,name:"string.other.link.autolink.literal.http.mdx"},{match:`(?<=^|[^A-Za-z/])(?i:mailto:|xmpp:)?(?:[0-9A-Za-z+\\-\\._])+@(?:(?:[0-9A-Za-z]|[-_](?!(?:[!"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+(?:\\.(?!(?:[!"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))))+(?:[A-Za-z]|[-_](?!(?:[!"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+`,name:"string.other.link.autolink.literal.email.mdx"}]},"extension-gfm-footnote-call":{captures:{1:{name:"string.other.begin.link.mdx"},2:{name:"string.other.begin.footnote.mdx"},3:{name:"entity.name.identifier.mdx",patterns:[{include:"#markdown-string"}]},4:{name:"string.other.end.footnote.mdx"}},match:"(\\[)(\\^)((?:[^\\t\\n\\r \\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+)(\\])"},"extension-gfm-footnote-definition":{begin:"(?:^|\\G)[\\t ]*(\\[)(\\^)((?:[^\\t\\n\\r \\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+)(\\])(:)[\\t ]*",beginCaptures:{1:{name:"string.other.begin.link.mdx"},2:{name:"string.other.begin.footnote.mdx"},3:{name:"entity.name.identifier.mdx",patterns:[{include:"#markdown-string"}]},4:{name:"string.other.end.footnote.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)"},"extension-gfm-strikethrough":{match:"(?<=\\S)(?<!~)~{1,2}(?!~)|(?<!~)~{1,2}(?=\\S)(?!~)",name:"string.other.strikethrough.mdx"},"extension-gfm-table":{begin:"(?:^|\\G)[\\t ]*(?=\\|[^\\n\\r]+\\|[ \\t]*$)",end:"^(?=[\\t ]*$)|$",patterns:[{captures:{1:{patterns:[{include:"#markdown-text"}]}},match:"(?<=\\||(?:^|\\G))[\\t ]*((?:[^\\n\\r\\\\\\|]|\\\\[\\\\\\|]?)+?)[\\t ]*(?=\\||$)"},{match:"(?:\\|)",name:"markup.list.table-delimiter.mdx"}]},"extension-github-gemoji":{captures:{1:{name:"punctuation.definition.gemoji.begin.mdx"},2:{name:"keyword.control.gemoji.mdx"},3:{name:"punctuation.definition.gemoji.end.mdx"}},match:"(:)((?:(?:(?:hand_with_index_finger_and_thumb_cros|mailbox_clo|fist_rai|confu)s|r(?:aised_hand_with_fingers_splay|e(?:gister|l(?:iev|ax)))|disappointed_reliev|confound|(?:a(?:ston|ngu)i|flu)sh|unamus|hush)e|(?:chart_with_(?:down|up)wards_tre|large_orange_diamo|small_(?:orang|blu)e_diamo|large_blue_diamo|parasol_on_grou|loud_sou|rewi)n|(?:rightwards_pushing_h|hourglass_flowing_s|leftwards_(?:pushing_)?h|(?:raised_back_of|palm_(?:down|up)|call_me)_h|(?:(?:(?:clippert|ascensi)on|norfolk)_is|christmas_is|desert_is|bouvet_is|new_zea|thai|eng|fin|ire)l|rightwards_h|pinching_h|writing_h|s(?:w(?:itzer|azi)|cot)l|magic_w|ok_h|icel)an|s(?:un_behind_(?:large|small|rain)_clou|hallow_pan_of_foo|tar_of_davi|leeping_be|kateboar|a(?:tisfie|uropo)|hiel|oun|qui)|(?:ear_with_hearing_a|pouring_liqu)i|(?:identification_c|(?:arrow_(?:back|for)|fast_for)w|credit_c|woman_be|biohaz|man_be|l(?:eop|iz))ar|m(?:usical_key|ortar_)boar|(?:drop_of_bl|canned_f)oo|c(?:apital_abc|upi)|person_bal|(?:black_bi|(?:cust|plac)a)r|(?:clip|key)boar|mermai|pea_po|worrie|po(?:la|u)n|threa|dv)d|(?:(?:(?:face_with_open_eyes_and_hand_over|face_with_diagonal|open|no)_mou|h(?:and_over_mou|yacin)|mammo)t|running_shirt_with_sas|(?:(?:fishing_pole_and_|blow)fi|(?:tropical_f|petri_d)i|(?:paint|tooth)bru|banglade|jellyfi)s|(?:camera_fl|wavy_d)as|triump|menora|pouc|blus|watc|das|has)h|(?:s(?:o(?:(?:uth_georgia_south_sandwich|lomon)_island|ck)|miling_face_with_three_heart|t_kitts_nevi|weat_drop|agittariu|c(?:orpiu|issor)|ymbol|hort)|twisted_rightwards_arrow|(?:northern_mariana|heard_mcdonald|(?:british_virgi|us_virgi|pitcair|cayma)n|turks_caicos|us_outlying|(?:falk|a)land|marshall|c(?:anary|ocos)|faroe)_island|(?:face_holding_back_tea|(?:c(?:ard_index_divid|rossed_fing)|pinched_fing)e|night_with_sta)r|(?:two_(?:wo)?men_holding|people_holding|heart|open)_hand|(?:sunrise_over_mountai|(?:congratul|united_n)atio|jea)n|(?:caribbean_)?netherland|(?:f(?:lower_playing_car|ace_in_clou)|crossed_swor|prayer_bea)d|(?:money_with_win|nest_with_eg|crossed_fla|hotsprin)g|revolving_heart|(?:high_brightne|(?:expression|wire)le|(?:tumbler|wine)_gla|milk_gla|compa|dre)s|performing_art|earth_america|orthodox_cros|l(?:ow_brightnes|a(?:tin_cros|o)|ung)|no_pedestrian|c(?:ontrol_kno|lu)b|b(?:ookmark_tab|rick|ean)|nesting_doll|cook_island|(?:fleur_de_l|tenn)i|(?:o(?:ncoming_b|phiuch|ctop)|hi(?:ppopotam|bisc)|trolleyb|m(?:(?:rs|x)_cla|auriti|inib)|belar|cact|abac|(?:cyp|tau)r)u|medal_sport|(?:chopstic|firewor)k|rhinocero|(?:p(?:aw_prin|eanu)|footprin)t|two_heart|princes|(?:hondur|baham)a|barbado|aquariu|c(?:ustom|hain)|maraca|comoro|flag|wale|hug|vh)s|(?:(?:diamond_shape_with_a_dot_ins|playground_sl)id|(?:(?:first_quarter|last_quarter|full|new)_moon_with|(?:zipper|money)_mouth|dotted_line|upside_down|c(?:rying_c|owboy_h)at|(?:disguis|nauseat)ed|neutral|monocle|panda|tired|woozy|clown|nerd|zany|fox)_fac|s(?:t(?:uck_out_tongue_winking_ey|eam_locomotiv)|(?:lightly_(?:frown|smil)|neez|h(?:ush|ak))ing_fac|(?:tudio_micropho|(?:hinto_shr|lot_mach)i|ierra_leo|axopho)n|mall_airplan|un_with_fac|a(?:luting_fac|tellit|k)|haved_ic|y(?:nagogu|ring)|n(?:owfl)?ak|urinam|pong)|(?:black_(?:medium_)?small|white_(?:(?:medium_)?small|large)|(?:black|white)_medium|black_large|orange|purple|yellow|b(?:rown|lue)|red)_squar|(?:(?:perso|woma)n_with_|man_with_)?probing_can|(?:p(?:ut_litter_in_its_pl|outing_f)|frowning_f|cold_f|wind_f|hot_f)ac|(?:arrows_c(?:ounterc)?lockwi|computer_mou|derelict_hou|carousel_hor|c(?:ity_sunri|hee)|heartpul|briefca|racehor|pig_no|lacros)s|(?:(?:face_with_head_band|ideograph_advant|adhesive_band|under|pack)a|currency_exchan|l(?:eft_l)?ugga|woman_jud|name_bad|man_jud|jud)g|face_with_peeking_ey|(?:(?:e(?:uropean_post_off|ar_of_r)|post_off)i|information_sour|ambulan)c|artificial_satellit|(?:busts?_in_silhouet|(?:vulcan_sal|parach)u|m(?:usical_no|ayot)|ro(?:ller_ska|set)|timor_les|ice_ska)t|(?:(?:incoming|red)_envelo|s(?:ao_tome_princi|tethosco)|(?:micro|tele)sco|citysca)p|(?:(?:(?:convenience|department)_st|musical_sc)o|f(?:light_depar|ramed_pic)tu|love_you_gestu|heart_on_fi|japanese_og|cote_divoi|perseve|singapo)r|b(?:ullettrain_sid|eliz|on)|(?:(?:female_|male_)?dete|radioa)ctiv|(?:christmas|deciduous|evergreen|tanabata|palm)_tre|(?:vibration_mo|cape_ver)d|(?:fortune_cook|neckt|self)i|(?:fork_and_)?knif|athletic_sho|(?:p(?:lead|arty)|drool|curs|melt|yawn|ly)ing_fac|vomiting_fac|(?:(?:c(?:urling_st|ycl)|meat_on_b|repeat_|headst)o|(?:fire_eng|tanger|ukra)i|rice_sce|(?:micro|i)pho|champag|pho)n|(?:cricket|video)_gam|(?:boxing_glo|oli)v|(?:d(?:ragon|izzy)|monkey)_fac|(?:m(?:artin|ozamb)iq|fond)u|wind_chim|test_tub|flat_sho|m(?:a(?:ns_sho|t)|icrob|oos|ut)|(?:handsh|fish_c|moon_c|cupc)ak|nail_car|zimbabw|ho(?:neybe|l)|ice_cub|airplan|pensiv|c(?:a(?:n(?:dl|o)|k)|o(?:ffe|oki))|tongu|purs|f(?:lut|iv)|d(?:at|ov)|n(?:iu|os)|kit|rag|ax)e|(?:(?:british_indian_ocean_territo|(?:plate_with_cutl|batt)e|medal_milita|low_batte|hunga|wea)r|family_(?:woman_(?:woman_(?:girl|boy)|girl|boy)|man_(?:woman_(?:girl|boy)|man_(?:girl|boy)|girl|boy))_bo|person_feeding_bab|woman_feeding_bab|s(?:u(?:spension_railwa|nn)|t(?:atue_of_libert|_barthelem|rawberr))|(?:m(?:ountain_cable|ilky_)|aerial_tram)wa|articulated_lorr|man_feeding_bab|mountain_railwa|partly_sunn|(?:vatican_c|infin)it|(?:outbox_tr|inbox_tr|birthd|motorw|paragu|urugu|norw|x_r)a|butterfl|ring_buo|t(?:urke|roph)|angr|fogg)y|(?:(?:perso|woma)n_in_motorized_wheelchai|(?:(?:notebook_with_decorative_c|four_leaf_cl)ov|(?:index_pointing_at_the_vie|white_flo)w|(?:face_with_thermome|non\\-potable_wa|woman_firefigh|desktop_compu|m(?:an_firefigh|otor_scoo)|(?:ro(?:ller_coa|o)|oy)s|potable_wa|kick_scoo|thermome|firefigh|helicop|ot)t|(?:woman_factory_wor|(?:woman_office|woman_health|health)_wor|man_(?:factory|office|health)_wor|(?:factory|office)_wor|rice_crac|black_jo|firecrac)k|telephone_receiv|(?:palms_up_toget|f(?:ire_extinguis|eat)|teac)h|(?:(?:open_)?file_fol|level_sli)d|police_offic|f(?:lying_sauc|arm)|woman_teach|roll_of_pap|(?:m(?:iddle_f|an_s)in|woman_sin|hambur|plun|dag)g|do_not_litt|wilted_flow|woman_farm|man_(?:teach|farm)|(?:bell_pe|hot_pe|fli)pp|l(?:o(?:udspeak|ve_lett|bst)|edg|add)|tokyo_tow|c(?:ucumb|lapp|anc)|b(?:e(?:ginn|av)|adg)|print|hamst)e|(?:perso|woma)n_in_manual_wheelchai|m(?:an(?:_in_motorized|(?:_in_man)?ual)|otorized)_wheelchai|(?:person_(?:white|curly|red)_|wheelc)hai|triangular_rule|(?:film_project|e(?:l_salv|cu)ad|elevat|tract|anch)o|s(?:traight_rul|pace_invad|crewdriv|nowboard|unflow|peak|wimm|ing|occ|how|urf|ki)e|r(?:ed_ca|unne|azo)|d(?:o(?:lla|o)|ee)|barbe)r|(?:(?:cloud_with_(?:lightning_and_)?ra|japanese_gobl|round_pushp|liechtenste|mandar|pengu|dolph|bahra|pushp|viol)i|(?:couple(?:_with_heart_wo|kiss_)man|construction_worker|(?:mountain_bik|bow|row)ing|lotus_position|(?:w(?:eight_lift|alk)|climb)ing|white_haired|curly_haired|raising_hand|super(?:villain|hero)|red_haired|basketball|s(?:(?:wimm|urf)ing|assy)|haircut|no_good|(?:vampir|massag)e|b(?:iking|ald)|zombie|fairy|mage|elf|ng)_(?:wo)?ma|(?:(?:couple_with_heart_man|isle_of)_m|(?:couplekiss_woman_|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_|frowning_|s(?:tanding|auna)_|po(?:uting_|lice)|running_|blonde_|o(?:lder|k)_)wom|(?:perso|woma)n_with_turb|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_m|f(?:olding_hand_f|rowning_m)|man_with_turb|(?:turkmen|afghan|pak)ist|s(?:tanding_m|(?:outh_s)?ud|auna_m)|po(?:uting_|lice)m|running_m|azerbaij|k(?:yrgyz|azakh)st|tajikist|uzbekist|o(?:lder_m|k_m|ce)|(?:orang|bh)ut|taiw|jord)a|s(?:mall_red_triangle_dow|(?:valbard_jan_may|int_maart|ev)e|afety_pi|top_sig|t_marti|(?:corpi|po|o)o|wede)|(?:heavy_(?:d(?:ivision|ollar)|equals|minus|plus)|no_entry|female|male)_sig|(?:arrow_(?:heading|double)_d|p(?:erson_with_cr|oint_d)|arrow_up_d|thumbsd)ow|(?:house_with_gard|l(?:ock_with_ink_p|eafy_gre)|dancing_(?:wo)?m|fountain_p|keycap_t|chick|ali|yem|od)e|(?:izakaya|jack_o)_lanter|(?:funeral_u|(?:po(?:stal_h|pc)|capric)o|unico)r|chess_paw|b(?:a(?:llo|c)o|eni|rai)|l(?:anter|io)|c(?:o(?:ff)?i|row)|melo|rame|oma|yar)n|(?:s(?:t(?:uck_out_tongue_closed_ey|_vincent_grenadin)|kull_and_crossbon|unglass|pad)|(?:french_souther|palestinia)n_territori|(?:face_with_spiral|kissing_smiling)_ey|united_arab_emirat|kissing_closed_ey|(?:clinking_|dark_sun|eye)glass|(?:no_mobile_|head)phon|womans_cloth|b(?:allet_sho|lueberri)|philippin|(?:no_bicyc|seychel)l|roll_ey|(?:cher|a)ri|p(?:ancak|isc)|maldiv|leav)es|(?:f(?:amily_(?:woman_(?:woman_)?|man_(?:woman_|man_)?)girl_gir|earfu)|(?:woman_playing_hand|m(?:an_playing_hand|irror_)|c(?:onfetti|rystal)_|volley|track|base|8)bal|(?:(?:m(?:ailbox_with_(?:no_)?m|onor)|cockt|e\\-m)a|(?:person|bride|woman)_with_ve|man_with_ve|light_ra|braz|ema)i|(?:transgender|baby)_symbo|passport_contro|(?:arrow_(?:down|up)_sm|rice_b|footb)al|(?:dromedary_cam|ferris_whe|love_hot|high_he|pretz|falaf|isra)e|page_with_cur|me(?:dical_symbo|ta)|(?:n(?:ewspaper_ro|o_be)|bellhop_be)l|rugby_footbal|s(?:chool_satche|(?:peak|ee)_no_evi|oftbal|crol|anda|nai|hel)|(?:peace|atom)_symbo|hear_no_evi|cora|hote|bage|labe|rof|ow)l|(?:(?:negative_squared_cross|heavy_exclamation|part_alternation)_mar|(?:eight_spoked_)?asteris|(?:ballot_box_with_che|(?:(?:mantelpiece|alarm|timer)_c|un)lo|(?:ha(?:(?:mmer_and|ir)_p|tch(?:ing|ed)_ch)|baby_ch|joyst)i|railway_tra|lipsti|peaco)c|heavy_check_mar|white_check_mar|tr(?:opical_drin|uc)|national_par|pickup_truc|diving_mas|floppy_dis|s(?:tar_struc|hamroc|kun|har)|chipmun|denmar|duc|hoo|lin)k|(?:leftwards_arrow_with_h|arrow_right_h|(?:o(?:range|pen)|closed|blue)_b)ook|(?:woman_playing_water_pol|m(?:an(?:_(?:playing_water_pol|with_gua_pi_ma|in_tuxed)|g)|ontenegr|o(?:roc|na)c|e(?:xic|tr|m))|(?:perso|woma)n_in_tuxed|(?:trinidad_toba|vir)g|water_buffal|b(?:urkina_fas|a(?:mbo|nj)|ent)|puerto_ric|water_pol|flaming|kangaro|(?:mosqu|burr)it|(?:avoc|torn)ad|curaca|lesoth|potat|ko(?:sov|k)|tomat|d(?:ang|od)|yo_y|hoch|t(?:ac|og)|zer)o|(?:c(?:entral_african|zech)|dominican)_republic|(?:eight_pointed_black_s|six_pointed_s|qa)tar|(?:business_suit_levitat|(?:classical_buil|breast_fee)d|(?:woman_cartwhee|m(?:an_(?:cartwhee|jugg)|en_wrest)|women_wrest|woman_jugg|face_exha|cartwhee|wrest|dump)l|c(?:hildren_cross|amp)|woman_facepalm|woman_shrugg|man_(?:facepalm|shrugg)|people_hugg|(?:person_fe|woman_da|man_da)nc|fist_oncom|horse_rac|(?:no_smo|thin)k|laugh|s(?:eedl|mok)|park|w(?:arn|edd))ing|f(?:a(?:mily(?:_(?:woman_(?:woman_(?:girl|boy)|girl|boy)|man_(?:woman_(?:girl|boy)|man_(?:girl|boy)|girl|boy)))?|ctory)|o(?:u(?:ntain|r)|ot|g)|r(?:owning)?|i(?:re|s[ht])|ly|u)|(?:(?:(?:information_desk|handball|bearded)_|(?:frowning|ok)_|juggling_|mer)pers|(?:previous_track|p(?:lay_or_p)?ause|black_square|white_square|next_track|r(?:ecord|adio)|eject)_butt|(?:wa[nx]ing_(?:crescent|gibbous)_m|bowl_with_sp|crescent_m|racc)o|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_pers|s(?:t(?:_pierre_miquel|op_butt|ati)|tanding_pers|peech_ballo|auna_pers)|r(?:eminder_r)?ibb|thought_ballo|watermel|badmint|c(?:amero|ray)|le(?:ban|m)|oni|bis)on|(?:heavy_heart_exclama|building_construc|heart_decora|exclama)tion|(?:(?:triangular_flag_on_po|(?:(?:woman_)?technolog|m(?:ountain_bicycl|an_technolog)|bicycl)i|(?:wo)?man_scienti|(?:wo)?man_arti|s(?:afety_ve|cienti)|empty_ne)s|(?:vertical_)?traffic_ligh|(?:rescue_worker_helm|military_helm|nazar_amul|city_suns|wastebask|dropl|t(?:rump|oil)|bouqu|buck|magn|secr)e|one_piece_swimsui|(?:(?:arrow_(?:low|upp)er|point)_r|bridge_at_n|copyr|mag_r)igh|(?:bullettrain_fro|(?:potted_pl|croiss|e(?:ggpl|leph))a)n|s(?:t(?:ar_and_cresc|ud)en|cream_ca|mi(?:ley?|rk)_ca|(?:peed|ail)boa|hir)|(?:arrow_(?:low|upp)er|point)_lef|woman_astronau|r(?:o(?:tating_ligh|cke)|eceip)|heart_eyes_ca|man_astronau|(?:woman_stud|circus_t|man_stud|trid)en|(?:ringed_pla|file_cabi)ne|nut_and_bol|(?:older_)?adul|k(?:i(?:ssing_ca|wi_frui)|uwai|no)|(?:pouting_c|c(?:ut_of_m|old_sw)e|womans_h|montserr|(?:(?:motor_|row)b|lab_c)o|heartbe|toph)a|(?:woman_pil|honey_p|man_pil|[cp]arr|teap|rob)o|hiking_boo|arrow_lef|fist_righ|flashligh|f(?:ist_lef|ee)|black_ca|astronau|(?:c(?:hest|oco)|dough)nu|innocen|joy_ca|artis|(?:acce|egy)p|co(?:me|a)|pilo)t|(?:heavy_multiplication_|t\\-re)x|(?:s(?:miling_face_with_te|piral_calend)|oncoming_police_c|chocolate_b|ra(?:ilway|cing)_c|police_c|polar_be|teddy_be|madagasc|blue_c|calend|myanm)ar|c(?:l(?:o(?:ud(?:_with_lightning)?|ck(?:1[0-2]?|[2-9]))|ap)?|o(?:uple(?:_with_heart|kiss)?|nstruction|mputer|ok|p|w)|a(?:r(?:d_index)?|mera)|r(?:icket|y)|h(?:art|ild))|(?:m(?:artial_arts_unifo|echanical_a)r|(?:cherry_)?blosso|b(?:aggage_clai|roo)|ice_?crea|facepal|mushroo|restroo|vietna|dru|yu)m|(?:woman_with_headscar|m(?:obile_phone_of|aple_lea)|fallen_lea|wol)f|(?:(?:closed_lock_with|old)_|field_hoc|ice_hoc|han|don)key|g(?:lobe_with_meridians|r(?:e(?:y_(?:exclama|ques)tion|e(?:n(?:_(?:square|circle|salad|apple|heart|book)|land)|ce)|y_heart|nada)|i(?:mac|nn)ing|apes)|u(?:inea_bissau|ernsey|am|n)|(?:(?:olfing|enie)_(?:wo)?|uards(?:wo)?)man|(?:inger_roo|oal_ne|hos)t|(?:uadeloup|ame_di|iraff|oos)e|ift_heart|i(?:braltar|rl)|(?:uatemal|(?:eorg|amb)i|orill|uyan|han)a|uide_dog|(?:oggl|lov)es|arlic|emini|uitar|abon|oat|ear|b)|construction_worker|(?:(?:envelope_with|bow_and)_ar|left_right_ar|raised_eyeb)row|(?:(?:oncoming_automob|crocod)i|right_anger_bubb|l(?:eft_speech_bubb|otion_bott|ady_beet)|congo_brazzavil|eye_speech_bubb|(?:large_blue|orange|purple|yellow|brown)_circ|(?:(?:european|japanese)_cas|baby_bot)t|b(?:alance_sca|eet)|s(?:ewing_need|weat_smi)|(?:black|white|red)_circ|(?:motor|re)cyc|pood|turt|tama|waff|musc|eag)le|first_quarter_moon|s(?:m(?:all_red_triangle|i(?:ley?|rk))|t(?:uck_out_tongue|ar)|hopping|leeping|p(?:arkle|ider)|unrise|nowman|chool|cream|k(?:ull|i)|weat|ix|a)|(?:(?:b(?:osnia_herzegovi|ana)|wallis_futu|(?:french_gui|botsw)a|argenti|st_hele)n|(?:(?:equatorial|papua_new)_guin|north_kor|eritr)e|t(?:ristan_da_cunh|ad)|(?:(?:(?:french_poly|indo)ne|tuni)s|(?:new_caledo|ma(?:urita|cedo)|lithua|(?:tanz|alb|rom)a|arme|esto)n|diego_garc|s(?:audi_arab|t_luc|lov(?:ak|en)|omal|erb)|e(?:arth_as|thiop)|m(?:icrone|alay)s|(?:austra|mongo)l|c(?:ambod|roat)|(?:bulga|alge)r|(?:colom|nami|zam)b|boliv|l(?:iber|atv))i|(?:wheel_of_dhar|cine|pana)m|(?:(?:(?:closed|beach|open)_)?umbrel|ceuta_melil|venezue|ang(?:uil|o)|koa)l|c(?:ongo_kinshas|anad|ub)|(?:western_saha|a(?:mpho|ndor)|zeb)r|american_samo|video_camer|m(?:o(?:vie_camer|ldov)|alt|eg)|(?:earth_af|costa_)ric|s(?:outh_afric|ri_lank|a(?:mo|nt))|bubble_te|(?:antarct|jama)ic|ni(?:caragu|geri|nj)|austri|pi(?:nat|zz)|arub|k(?:eny|aab)|indi|u7a7|l(?:lam|ib[ry])|dn)a|l(?:ast_quarter_moon|o(?:tus|ck)|ips|eo)|(?:hammer_and_wren|c(?:ockroa|hur)|facepun|wren|crut|pun)ch|s(?:nowman_with_snow|ignal_strength|weet_potato|miling_imp|p(?:ider_web|arkle[rs])|w(?:im_brief|an)|a(?:n(?:_marino|dwich)|lt)|topwatch|t(?:a(?:dium|r[2s])|ew)|l(?:e(?:epy|d)|oth)|hrimp|yria|carf|(?:hee|oa)p|ea[lt]|h(?:oe|i[pt])|o[bs])|(?:s(?:tuffed_flatbre|p(?:iral_notep|eaking_he))|(?:exploding_h|baguette_br|flatbr)e)ad|(?:arrow_(?:heading|double)_u|(?:p(?:lace_of_wor|assenger_)sh|film_str|tul)i|page_facing_u|biting_li|(?:billed_c|world_m)a|mouse_tra|(?:curly_lo|busst)o|thumbsu|lo(?:llip)?o|clam|im)p|(?:anatomical|light_blue|sparkling|kissing|mending|orange|purple|yellow|broken|b(?:rown|l(?:ack|ue))|pink)_heart|(?:(?:transgender|black)_fla|mechanical_le|(?:checkered|pirate)_fla|electric_plu|rainbow_fla|poultry_le|service_do|white_fla|luxembour|fried_eg|moneyba|h(?:edgeh|otd)o|shru)g|(?:cloud_with|mountain)_snow|(?:(?:antigua_barb|berm)u|(?:kh|ug)an|rwan)da|(?:3r|2n)d_place_medal|1(?:st_place_medal|234|00)|lotus_position|(?:w(?:eight_lift|alk)|climb)ing|(?:(?:cup_with_str|auto_ricksh)a|carpentry_sa|windo|jigsa)w|(?:(?:couch_and|diya)_la|f(?:ried_shri|uelpu))mp|(?:woman_mechan|man_mechan|alemb)ic|(?:european_un|accord|collis|reun)ion|(?:flight_arriv|hospit|portug|seneg|nep)al|card_file_box|(?:(?:oncoming_)?tax|m(?:o(?:unt_fuj|ya)|alaw)|s(?:paghett|ush|ar)|b(?:r(?:occol|une)|urund)|(?:djibou|kiriba)t|hait|fij)i|(?:shopping_c|white_he|bar_ch)art|d(?:isappointed|ominica|e(?:sert)?)|raising_hand|super(?:villain|hero)|b(?:e(?:verage_box|ers|d)|u(?:bbles|lb|g)|i(?:k(?:ini|e)|rd)|o(?:o(?:ks|t)|a[rt]|y)|read|a[cn]k)|ra(?:ised_hands|bbit2|t)|(?:hindu_tem|ap)ple|thong_sandal|a(?:r(?:row_(?:right|down|up)|t)|bc?|nt)?|r(?:a(?:i(?:sed_hand|nbow)|bbit|dio|m)|u(?:nning)?|epeat|i(?:ng|ce)|o(?:ck|se))|takeout_box|(?:flying_|mini)disc|(?:(?:interrob|yin_y)a|b(?:o(?:omera|wli)|angba)|(?:ping_p|hong_k)o|calli|mahjo)ng|b(?:a(?:llot_box|sket|th?|by)|o(?:o(?:k(?:mark)?|m)|w)|u(?:tter|s)|e(?:ll|er?|ar))?|heart_eyes|basketball|(?:paperclip|dancer|ticket)s|point_up_2|(?:wo)?man_cook|n(?:ew(?:spaper)?|o(?:tebook|_entry)|iger)|t(?:e(?:lephone|a)|o(?:oth|p)|r(?:oll)?|wo)|h(?:o(?:u(?:rglass|se)|rse)|a(?:mmer|nd)|eart)|paperclip|full_moon|(?:b(?:lack_ni|athtu|om)|her)b|(?:long|oil)_drum|pineapple|(?:clock(?:1[0-2]?|[2-9])3|u6e8)0|p(?:o(?:int_up|ut)|r(?:ince|ay)|i(?:ck|g)|en)|e(?:nvelope|ight|u(?:ro)?|gg|ar|ye|s)|m(?:o(?:u(?:ntain|se)|nkey|on)|echanic|a(?:ilbox|g|n)|irror)?|new_moon|d(?:iamonds|olls|art)|question|k(?:iss(?:ing)?|ey)|haircut|no_good|(?:vampir|massag)e|g(?:olf(?:ing)?|u(?:inea|ard)|e(?:nie|m)|ift|rin)|h(?:a(?:ndbag|msa)|ouses|earts|ut)|postbox|toolbox|(?:pencil|t(?:rain|iger)|whale|cat|dog)2|belgium|(?:volca|kimo)no|(?:vanuat|tuval|pala|naur|maca)u|tokelau|o(?:range|ne?|m|k)?|office|dancer|ticket|dragon|pencil|zombie|w(?:o(?:mens|rm|od)|ave|in[gk]|c)|m(?:o(?:sque|use2)|e(?:rman|ns)|a(?:li|sk))|jersey|tshirt|w(?:heel|oman)|dizzy|j(?:apan|oy)|t(?:rain|iger)|whale|fairy|a(?:nge[lr]|bcd|tm)|c(?:h(?:a(?:ir|d)|ile)|a(?:ndy|mel)|urry|rab|o(?:rn|ol|w2)|[dn])|p(?:ager|e(?:a(?:ch|r)|ru)|i(?:g2|ll|e)|oop)|n(?:otes|ine)|t(?:onga|hree|ent|ram|[mv])|f(?:erry|r(?:ies|ee|og)|ax)|u(?:7(?:533|981|121)|5(?:5b6|408|272)|6(?:307|70[89]))|mage|e(?:yes|nd)|i(?:ra[nq]|t)|cat|dog|elf|z(?:zz|ap)|yen|j(?:ar|p)|leg|id|u[kps]|ng|o[2x]|vs|kr|[\\+\\x2D]1|x|v)(:)",name:"string.emoji.mdx"},"extension-github-mention":{captures:{1:{name:"punctuation.definition.mention.begin.mdx"},2:{name:"string.other.link.mention.mdx"}},match:"(?<![0-9A-Za-z_`])(@)((?:[0-9A-Za-z][0-9A-Za-z-]{0,38})(?:\\/(?:[0-9A-Za-z][0-9A-Za-z-]{0,38}))?)(?![0-9A-Za-z_`])",name:"string.mention.mdx"},"extension-github-reference":{patterns:[{captures:{1:{name:"punctuation.definition.reference.begin.mdx"},2:{name:"string.other.link.reference.security-advisory.mdx"},3:{name:"punctuation.definition.reference.begin.mdx"},4:{name:"string.other.link.reference.issue-or-pr.mdx"}},match:"(?<![0-9A-Za-z_])(?:((?i:ghsa-|cve-))([A-Za-z0-9]+)|((?i:gh-|#))([0-9]+))(?![0-9A-Za-z_])",name:"string.reference.mdx"},{captures:{1:{name:"string.other.link.reference.user.mdx"},2:{name:"punctuation.definition.reference.begin.mdx"},3:{name:"string.other.link.reference.issue-or-pr.mdx"}},match:"(?<![^\\t\\n\\r \\(@\\[\\{])((?:[0-9A-Za-z][0-9A-Za-z-]{0,38})(?:\\/(?:(?:\\.git[0-9A-Za-z_-]|\\.(?!git)|[0-9A-Za-z_-])+))?)(#)([0-9]+)(?![0-9A-Za-z_])",name:"string.reference.mdx"}]},"extension-math-flow":{begin:"(?:^|\\G)[\\t ]*(\\${2,})([^\\n\\r\\$]*)$",beginCaptures:{1:{name:"string.other.begin.math.flow.mdx"},2:{patterns:[{include:"#markdown-string"}]}},contentName:"markup.raw.math.flow.mdx",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.math.flow.mdx"}},name:"markup.code.other.mdx"},"extension-math-text":{captures:{1:{name:"string.other.begin.math.mdx"},2:{name:"markup.raw.math.mdx markup.inline.raw.math.mdx"},3:{name:"string.other.end.math.mdx"}},match:"(?<!\\$)(\\${2,})(?!\\$)(.+?)(?<!\\$)(\\1)(?!\\$)"},"extension-mdx-esm":{begin:"(?:^|\\G)(?=(?i:export|import)[ ])",end:"^(?=[\\t ]*$)|$",name:"meta.embedded.tsx",patterns:[{include:"source.tsx#statements"}]},"extension-mdx-expression-flow":{begin:"(?:^|\\G)[\\t ]*(\\{)",beginCaptures:{1:{name:"string.other.begin.expression.mdx.js"}},contentName:"meta.embedded.tsx",end:"(\\})(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.begin.expression.mdx.js"}},patterns:[{include:"source.tsx#expression"}]},"extension-mdx-expression-text":{begin:"\\{",beginCaptures:{0:{name:"string.other.begin.expression.mdx.js"}},contentName:"meta.embedded.tsx",end:"\\}",endCaptures:{0:{name:"string.other.begin.expression.mdx.js"}},patterns:[{include:"source.tsx#expression"}]},"extension-mdx-jsx-flow":{begin:"(?<=^|\\G|\\>)[\\t ]*(<)(?=(?![\\t\\n\\r ]))(?:\\s*(/))?(?:\\s*(?:(?:((?:[_$[:alpha:]][-_$[:alnum:]]*))\\s*(:)\\s*((?:[_$[:alpha:]][-_$[:alnum:]]*)))|((?:(?:[_$[:alpha:]][_$[:alnum:]]*)(?:\\s*\\.\\s*(?:[_$[:alpha:]][-_$[:alnum:]]*))+))|((?:[_$[:upper:]][_$[:alnum:]]*))|((?:[_$[:alpha:]][-_$[:alnum:]]*)))(?=[\\s\\/\\>\\{]))?",beginCaptures:{1:{name:"punctuation.definition.tag.end.jsx"},2:{name:"punctuation.definition.tag.closing.jsx"},3:{name:"entity.name.tag.namespace.jsx"},4:{name:"punctuation.separator.namespace.jsx"},5:{name:"entity.name.tag.local.jsx"},6:{name:"support.class.component.jsx"},7:{name:"support.class.component.jsx"},8:{name:"entity.name.tag.jsx"}},end:"(?:(\\/)\\s*)?(>)",endCaptures:{1:{name:"punctuation.definition.tag.self-closing.jsx"},2:{name:"punctuation.definition.tag.end.jsx"}},patterns:[{include:"source.tsx#jsx-tag-attribute-name"},{include:"source.tsx#jsx-tag-attribute-assignment"},{include:"source.tsx#jsx-string-double-quoted"},{include:"source.tsx#jsx-string-single-quoted"},{include:"source.tsx#jsx-evaluated-code"},{include:"source.tsx#jsx-tag-attributes-illegal"}]},"extension-mdx-jsx-text":{begin:"(<)(?=(?![\\t\\n\\r ]))(?:\\s*(/))?(?:\\s*(?:(?:((?:[_$[:alpha:]][-_$[:alnum:]]*))\\s*(:)\\s*((?:[_$[:alpha:]][-_$[:alnum:]]*)))|((?:(?:[_$[:alpha:]][_$[:alnum:]]*)(?:\\s*\\.\\s*(?:[_$[:alpha:]][-_$[:alnum:]]*))+))|((?:[_$[:upper:]][_$[:alnum:]]*))|((?:[_$[:alpha:]][-_$[:alnum:]]*)))(?=[\\s\\/\\>\\{]))?",beginCaptures:{1:{name:"punctuation.definition.tag.end.jsx"},2:{name:"punctuation.definition.tag.closing.jsx"},3:{name:"entity.name.tag.namespace.jsx"},4:{name:"punctuation.separator.namespace.jsx"},5:{name:"entity.name.tag.local.jsx"},6:{name:"support.class.component.jsx"},7:{name:"support.class.component.jsx"},8:{name:"entity.name.tag.jsx"}},end:"(?:(\\/)\\s*)?(>)",endCaptures:{1:{name:"punctuation.definition.tag.self-closing.jsx"},2:{name:"punctuation.definition.tag.end.jsx"}},patterns:[{include:"source.tsx#jsx-tag-attribute-name"},{include:"source.tsx#jsx-tag-attribute-assignment"},{include:"source.tsx#jsx-string-double-quoted"},{include:"source.tsx#jsx-string-single-quoted"},{include:"source.tsx#jsx-evaluated-code"},{include:"source.tsx#jsx-tag-attributes-illegal"}]},"extension-toml":{begin:"\\A\\+{3}$",beginCaptures:{0:{name:"string.other.begin.toml"}},contentName:"meta.embedded.toml",end:"^\\+{3}$",endCaptures:{0:{name:"string.other.end.toml"}},patterns:[{include:"source.toml"}]},"extension-yaml":{begin:"\\A-{3}$",beginCaptures:{0:{name:"string.other.begin.yaml"}},contentName:"meta.embedded.yaml",end:"^-{3}$",endCaptures:{0:{name:"string.other.end.yaml"}},patterns:[{include:"source.yaml"}]},"markdown-frontmatter":{patterns:[{include:"#extension-toml"},{include:"#extension-yaml"}]},"markdown-sections":{patterns:[{include:"#commonmark-block-quote"},{include:"#commonmark-code-fenced"},{include:"#extension-gfm-footnote-definition"},{include:"#commonmark-definition"},{include:"#commonmark-heading-atx"},{include:"#commonmark-thematic-break"},{include:"#commonmark-heading-setext"},{include:"#commonmark-list-item"},{include:"#extension-gfm-table"},{include:"#extension-math-flow"},{include:"#extension-mdx-esm"},{include:"#extension-mdx-expression-flow"},{include:"#extension-mdx-jsx-flow"},{include:"#commonmark-paragraph"}]},"markdown-string":{patterns:[{include:"#commonmark-character-escape"},{include:"#commonmark-character-reference"}]},"markdown-text":{patterns:[{include:"#commonmark-attention"},{include:"#commonmark-character-escape"},{include:"#commonmark-character-reference"},{include:"#commonmark-code-text"},{include:"#commonmark-hard-break-trailing"},{include:"#commonmark-hard-break-escape"},{include:"#commonmark-label-end"},{include:"#extension-gfm-footnote-call"},{include:"#commonmark-label-start"},{include:"#extension-gfm-autolink-literal"},{include:"#extension-gfm-strikethrough"},{include:"#extension-github-gemoji"},{include:"#extension-github-mention"},{include:"#extension-github-reference"},{include:"#extension-math-text"},{include:"#extension-mdx-expression-text"},{include:"#extension-mdx-jsx-text"}]},"whatwg-html-data-character-reference-named-terminated":{captures:{1:{name:"punctuation.definition.character-reference.begin.html"},2:{name:"keyword.control.character-reference.html"},3:{name:"punctuation.definition.character-reference.end.html"}},match:"(&)((?:C(?:(?:o(?:unterClockwiseCo)?|lockwiseCo)ntourIntegra|cedi)|(?:(?:Not(?:S(?:quareSu(?:per|b)set|u(?:cceeds|(?:per|b)set))|Precedes|Greater|Tilde|Less)|Not(?:Righ|Lef)tTriangle|(?:Not(?:(?:Succeed|Precede|Les)s|Greater)|(?:Precede|Succeed)s|Less)Slant|SquareSu(?:per|b)set|(?:Not(?:Greater|Tilde)|Tilde|Less)Full|RightTriangle|LeftTriangle|Greater(?:Slant|Full)|Precedes|Succeeds|Superset|NotHump|Subset|Tilde|Hump)Equ|int(?:er)?c|DotEqu)a|DoubleContourIntegra|(?:n(?:short)?parall|shortparall|p(?:arall|rur))e|(?:rightarrowta|l(?:eftarrowta|ced|ata|Ata)|sced|rata|perm|rced|rAta|ced)i|Proportiona|smepars|e(?:qvpars|pars|xc|um)|Integra|suphso|rarr[pt]|n(?:pars|tg)|l(?:arr[pt]|cei)|Rarrt|(?:hybu|fora)l|ForAl|[GKLNR-Tcknt]cedi|rcei|iexc|gime|fras|[uy]um|oso|dso|ium|Ium)l|D(?:o(?:uble(?:(?:L(?:ong(?:Left)?R|eftR)ight|L(?:ongL)?eft|UpDown|Right|Up)Arrow|Do(?:wnArrow|t))|wn(?:ArrowUpA|TeeA|a)rrow)|iacriticalDot|strok|ashv|cy)|(?:(?:(?:N(?:(?:otN)?estedGreater|ot(?:Greater|Less))|Less(?:Equal)?)Great|GreaterGreat|l[lr]corn|mark|east)e|Not(?:Double)?VerticalBa|(?:Not(?:Righ|Lef)tTriangleB|(?:(?:Righ|Lef)tDown|Right(?:Up)?|Left(?:Up)?)VectorB|RightTriangleB|Left(?:Triangle|Arrow)B|RightArrowB|V(?:er(?:ticalB|b)|b)|UpArrowB|l(?:ur(?:ds|u)h|dr(?:us|d)h|trP|owb|H)|profal|r(?:ulu|dld)h|b(?:igst|rvb)|(?:wed|ve[er])b|s(?:wn|es)w|n(?:wne|ese|sp|hp)|gtlP|d(?:oll|uh|H)|(?:hor|ov)b|u(?:dh|H)|r(?:lh|H)|ohb|hb|St)a|D(?:o(?:wn(?:(?:Left(?:Right|Tee)|RightTee)Vecto|(?:(?:Righ|Lef)tVector|Arrow)Ba)|ubleVerticalBa)|a(?:gge|r)|sc|f)|(?:(?:(?:Righ|Lef)tDown|(?:Righ|Lef)tUp)Tee|(?:Righ|Lef)tUpDown)Vecto|VerticalSeparato|(?:Left(?:Right|Tee)|RightTee)Vecto|less(?:eqq?)?gt|e(?:qslantgt|sc)|(?:RightF|LeftF|[lr]f)loo|u(?:[lr]corne|ar)|timesba|(?:plusa|cirs|apa)ci|U(?:arroci|f)|(?:dzigr|s(?:u(?:pl|br)|imr|[lr])|zigr|angz|nvH|l(?:tl|B)|r[Br])ar|UnderBa|(?:plus|harr|top|mid|of)ci|O(?:verBa|sc|f)|dd?agge|s(?:olba|sc)|g(?:t(?:rar|ci)|sc|f)|c(?:opys|u(?:po|ep)|sc|f)|(?:n(?:(?:v[lr]|w|r)A|l[Aa]|h[Aa]|eA)|x[hlr][Aa]|u(?:ua|da|A)|s[ew]A|rla|o[lr]a|rba|rAa|l[Ablr]a|h(?:oa|A)|era|d(?:ua|A)|cra|vA)r|o(?:lci|sc|ro|pa)|ropa|roar|l(?:o(?:pa|ar)|sc|Ar)|i(?:ma|s)c|ltci|dd?ar|a(?:ma|s)c|R(?:Bar|sc|f)|I(?:mac|f)|(?:u(?:ma|s)|oma|ema|Oma|Ema|[wyz]s|qs|ks|fs|Zs|Ys|Xs|Ws|Vs|Us|Ss|Qs|Ns|Ms|Ks|Is|Gs|Fs|Cs|Bs)c|Umac|x(?:sc|f)|v(?:sc|f)|rsc|n(?:ld|f)|m(?:sc|ld|ac|f)|rAr|h(?:sc|f)|b(?:sc|f)|psc|P(?:sc|f)|L(?:sc|ar|f)|jsc|J(?:sc|f)|E(?:sc|f)|[HT]sc|[yz]f|wf|tf|qf|pf|kf|jf|Zf|Yf|Xf|Wf|Vf|Tf|Sf|Qf|Nf|Mf|Kf|Hf|Gf|Ff|Cf|Bf)r|(?:Diacritical(?:Double)?A|[EINOSYZaisz]a)cute|(?:(?:N(?:egative(?:VeryThin|Thi(?:ck|n))|onBreaking)|NegativeMedium|ZeroWidth|VeryThin|Medium|Thi(?:ck|n))Spac|Filled(?:Very)?SmallSquar|Empty(?:Very)?SmallSquar|(?:N(?:ot(?:Succeeds|Greater|Tilde|Less)T|t)|DiacriticalT|VerticalT|PrecedesT|SucceedsT|NotEqualT|GreaterT|TildeT|EqualT|LessT|at|Ut|It)ild|(?:(?:DiacriticalG|[EIOUaiu]g)ra|(?:u|U)?bre|(?:o|e)?gra)v|(?:doublebar|curly|big|x)wedg|H(?:orizontalLin|ilbertSpac)|Double(?:Righ|Lef)tTe|(?:(?:measured|uw)ang|exponentia|dwang|ssmi|fema)l|(?:Poincarepla|reali|pho|oli)n|(?:black)?lozeng|(?:VerticalL|(?:prof|imag)l)in|SmallCircl|(?:black|dot)squar|rmoustach|l(?:moustach|angl)|(?:b(?:ack)?pr|(?:tri|xo)t|[qt]pr)im|[Tt]herefor|(?:DownB|[Gag]b)rev|(?:infint|nv[lr]tr)i|b(?:arwedg|owti)|an(?:dslop|gl)|(?:cu(?:rly)?v|rthr|lthr|b(?:ig|ar)v|xv)e|n(?:s(?:qsu[bp]|ccu)|prcu)|orslop|NewLin|maltes|Becaus|rangl|incar|(?:otil|Otil|t(?:ra|il))d|[inu]tild|s(?:mil|imn)|(?:sc|pr)cu|Wedg|Prim|Brev)e|(?:CloseCurly(?:Double)?Quo|OpenCurly(?:Double)?Quo|[ry]?acu)te|(?:Reverse(?:Up)?|Up)Equilibrium|C(?:apitalDifferentialD|(?:oproduc|(?:ircleD|enterD|d)o)t|on(?:grue|i)nt|conint|upCap|o(?:lone|pf)|OPY|hi)|(?:(?:(?:left)?rightsquig|(?:longleftr|twoheadr|nleftr|nLeftr|longr|hookr|nR|Rr)ight|(?:twohead|hook)left|longleft|updown|Updown|nright|Right|nleft|nLeft|down|up|Up)a|L(?:(?:ong(?:left)?righ|(?:ong)?lef)ta|eft(?:(?:right)?a|RightA|TeeA))|RightTeeA|LongLeftA|UpTeeA)rrow|(?:(?:RightArrow|Short|Upper|Lower)Left|(?:L(?:eftArrow|o(?:wer|ng))|LongLeft|Short|Upper)Right|ShortUp)Arrow|(?:b(?:lacktriangle(?:righ|lef)|ulle|no)|RightDoubleBracke|RightAngleBracke|Left(?:Doub|Ang)leBracke|(?:vartriangle|downharpoon|c(?:ircl|urv)earrow|upharpoon|looparrow)righ|(?:vartriangle|downharpoon|c(?:ircl|urv)earrow|upharpoon|looparrow|mapsto)lef|(?:UnderBrack|OverBrack|emptys|targ|Sups)e|diamondsui|c(?:ircledas|lubsui|are)|(?:spade|heart)sui|(?:(?:c(?:enter|t)|lmi|ino)d|(?:Triple|mD)D|n(?:otin|e)d|(?:ncong|doteq|su[bp]e|e[gl]s)d|l(?:ess|t)d|isind|c(?:ong|up|ap)?d|b(?:igod|N)|t(?:(?:ri)?d|opb)|s(?:ub|im)d|midd|g(?:tr?)?d|Lmid|DotD|(?:xo|ut|z)d|e(?:s?d|rD|fD|DD)|dtd|Zd|Id|Gd|Ed)o|realpar|i(?:magpar|iin)|S(?:uchTha|qr)|su[bp]mul|(?:(?:lt|i)que|gtque|(?:mid|low)a|e(?:que|xi))s|Produc|s(?:updo|e[cx])|r(?:parg|ec)|lparl|vangr|hamil|(?:homt|[lr]fis|ufis|dfis)h|phmma|t(?:wix|in)|quo|o(?:do|as)|fla|eDo)t|(?:(?:Square)?Intersecti|(?:straight|back|var)epsil|SquareUni|expectati|upsil|epsil|Upsil|eq?col|Epsil|(?:omic|Omic|rca|lca|eca|Sca|[NRTt]ca|Lca|Eca|[Zdz]ca|Dca)r|scar|ncar|herc|ccar|Ccar|iog|Iog)on|Not(?:S(?:quareSu(?:per|b)set|u(?:cceeds|(?:per|b)set))|Precedes|Greater|Tilde|Less)?|(?:(?:(?:Not(?:Reverse)?|Reverse)E|comp|E)leme|NotCongrue|(?:n[gl]|l)eqsla|geqsla|q(?:uat)?i|perc|iiii|coni|cwi|awi|oi)nt|(?:(?:rightleftharpo|leftrightharpo|quaterni)on|(?:(?:N(?:ot(?:NestedLess|Greater|Less)|estedLess)L|(?:eqslant|gtr(?:eqq?)?)l|LessL)e|Greater(?:Equal)?Le|cro)s|(?:rightright|leftleft|upup)arrow|rightleftarrow|(?:(?:(?:righ|lef)tthree|divideon|b(?:igo|ox)|[lr]o)t|InvisibleT)ime|downdownarrow|(?:(?:smallset|tri|dot|box)m|PlusM)inu|(?:RoundImpli|complex|Impli|Otim)e|C(?:ircle(?:Time|Minu|Plu)|ayley|ros)|(?:rationa|mode)l|NotExist|(?:(?:UnionP|MinusP|(?:b(?:ig[ou]|ox)|tri|s(?:u[bp]|im)|dot|xu|mn)p)l|(?:xo|u)pl|o(?:min|pl)|ropl|lopl|epl)u|otimesa|integer|e(?:linter|qual)|setminu|rarrbf|larrb?f|olcros|rarrf|mstpo|lesge|gesle|Exist|[lr]time|strn|napo|fltn|ccap|apo)s|(?:b(?:(?:lack|ig)triangledow|etwee)|(?:righ|lef)tharpoondow|(?:triangle|mapsto)dow|(?:nv|i)infi|ssetm|plusm|lagra|d(?:[lr]cor|isi)|c(?:ompf|aro)|s?frow|(?:hyph|curr)e|kgree|thor|ogo|ye)n|Not(?:Righ|Lef)tTriangle|(?:Up(?:Arrow)?|Short)DownArrow|(?:(?:n(?:triangle(?:righ|lef)t|succ|prec)|(?:trianglerigh|trianglelef|sqsu[bp]se|ques)t|backsim)e|lvertneq|gvertneq|(?:suc|pre)cneq|a(?:pprox|symp)e|(?:succ|prec|vee)e|circe)q|(?:UnderParenthes|OverParenthes|xn)is|(?:(?:Righ|Lef)tDown|Right(?:Up)?|Left(?:Up)?)Vector|D(?:o(?:wn(?:RightVector|LeftVector|Arrow|Tee)|t)|el|D)|l(?:eftrightarrows|br(?:k(?:sl[du]|e)|ac[ek])|tri[ef]|s(?:im[eg]|qb|h)|hard|a(?:tes|ngd|p)|o[pz]f|rm|gE|fr|eg|cy)|(?:NotHumpDownHum|(?:righ|lef)tharpoonu|big(?:(?:triangle|sqc)u|c[au])|HumpDownHum|m(?:apstou|lc)|(?:capbr|xsq)cu|smash|rarr[al]|(?:weie|sha)r|larrl|velli|(?:thin|punc)s|h(?:elli|airs)|(?:u[lr]c|vp)ro|d[lr]cro|c(?:upc[au]|apc[au])|thka|scna|prn?a|oper|n(?:ums|va|cu|bs)|ens|xc[au]|Ma)p|l(?:eftrightarrow|e(?:ftarrow|s(?:dot)?)?|moust|a(?:rrb?|te?|ng)|t(?:ri)?|sim|par|oz|l|g)|n(?:triangle(?:righ|lef)t|succ|prec)|SquareSu(?:per|b)set|(?:I(?:nvisibleComm|ot)|(?:varthe|iio)t|varkapp|(?:vars|S)igm|(?:diga|mco)mm|Cedill|lambd|Lambd|delt|Thet|omeg|Omeg|Kapp|Delt|nabl|zet|to[es]|rdc|ldc|iot|Zet|Bet|Et)a|b(?:lacktriangle|arwed|u(?:mpe?|ll)|sol|o(?:x[HVhv]|t)|brk|ne)|(?:trianglerigh|trianglelef|sqsu[bp]se|ques)t|RightT(?:riangl|e)e|(?:(?:varsu[bp]setn|su(?:psetn?|bsetn?))eq|nsu[bp]seteq|colone|(?:wedg|sim)e|nsime|lneq|gneq)q|DifferentialD|(?:(?:fall|ris)ingdots|(?:suc|pre)ccurly|ddots)eq|A(?:pplyFunction|ssign|(?:tild|grav|brev)e|acute|o(?:gon|pf)|lpha|(?:mac|sc|f)r|c(?:irc|y)|ring|Elig|uml|nd|MP)|(?:varsu[bp]setn|su(?:psetn?|bsetn?))eq|L(?:eft(?:T(?:riangl|e)e|Arrow)|l)|G(?:reaterEqual|amma)|E(?:xponentialE|quilibrium|sim|cy|TH|NG)|(?:(?:RightCeil|LeftCeil|varnoth|ar|Ur)in|(?:b(?:ack)?co|uri)n|vzigza|roan|loan|ffli|amal|sun|rin|n(?:tl|an)|Ran|Lan)g|(?:thick|succn?|precn?|less|g(?:tr|n)|ln|n)approx|(?:s(?:traightph|em)|(?:rtril|xu|u[lr]|xd|v[lr])tr|varph|l[lr]tr|b(?:sem|eps)|Ph)i|(?:circledd|osl|n(?:v[Dd]|V[Dd]|d)|hsl|V(?:vd|D)|Osl|v[Dd]|md)ash|(?:(?:RuleDelay|imp|cuw)e|(?:n(?:s(?:hort)?)?|short|rn)mi|D(?:Dotrah|iamon)|(?:i(?:nt)?pr|peri)o|odsol|llhar|c(?:opro|irmi)|(?:capa|anda|pou)n|Barwe|napi|api)d|(?:cu(?:rlyeq(?:suc|pre)|es)|telre|[ou]dbla|Udbla|Odbla|radi|lesc|gesc|dbla)c|(?:circled|big|eq|[is]|c|x|a|S|[hw]|W|H|G|E|C)circ|rightarrow|R(?:ightArrow|arr|e)|Pr(?:oportion)?|(?:longmapst|varpropt|p(?:lustw|ropt)|varrh|numer|(?:rsa|lsa|sb)qu|m(?:icr|h)|[lr]aqu|bdqu|eur)o|UnderBrace|ImaginaryI|B(?:ernoullis|a(?:ckslash|rv)|umpeq|cy)|(?:(?:Laplace|Mellin|zee)tr|Fo(?:uriertr|p)|(?:profsu|ssta)r|ordero|origo|[ps]op|nop|mop|i(?:op|mo)|h(?:op|al)|f(?:op|no)|dop|bop|Rop|Pop|Nop|Lop|Iop|Hop|Dop|[GJKMOQSTV-Zgjkoqvwyz]op|Bop)f|nsu[bp]seteq|t(?:ri(?:angleq|e)|imesd|he(?:tav|re4)|au)|O(?:verBrace|r)|(?:(?:pitchfo|checkma|t(?:opfo|b)|rob|rbb|l[bo]b)r|intlarh|b(?:brktbr|l(?:oc|an))|perten|NoBrea|rarrh|s[ew]arh|n[ew]arh|l(?:arrh|hbl)|uhbl|Hace)k|(?:NotCupC|(?:mu(?:lti)?|x)m|cupbrc)ap|t(?:riangle|imes|heta|opf?)|Precedes|Succeeds|Superset|NotEqual|(?:n(?:atural|exist|les)|s(?:qc[au]p|mte)|prime)s|c(?:ir(?:cled[RS]|[Ee])|u(?:rarrm|larrp|darr[lr]|ps)|o(?:mmat|pf)|aps|hi)|b(?:sol(?:hsu)?b|ump(?:eq|E)|ox(?:box|[Vv][HLRhlr]|[Hh][DUdu]|[DUdu][LRlr])|e(?:rnou|t[ah])|lk(?:34|1[24])|cy)|(?:l(?:esdot|squ|dqu)o|rsquo|rdquo|ngt)r|a(?:n(?:g(?:msda[a-h]|st|e)|d[dv])|st|p[Ee]|mp|fr|c[Edy])|(?:g(?:esdoto|E)|[lr]haru)l|(?:angrtvb|lrhar|nis)d|(?:(?:th(?:ic)?k|succn?|p(?:r(?:ecn?|n)?|lus)|rarr|l(?:ess|arr)|su[bp]|par|scn|g(?:tr|n)|ne|sc|n[glv]|ln|eq?)si|thetasy|ccupss|alefsy|botto)m|trpezium|(?:hks[ew]|dr?bk|bk)arow|(?:(?:[lr]a|d|c)empty|b(?:nequi|empty)|plank|nequi|odi)v|(?:(?:sc|rp|n)pol|point|fpart)int|(?:c(?:irf|wco)|awco)nint|PartialD|n(?:s(?:u[bp](?:set)?|c)|rarr|ot(?:ni|in)?|warr|e(?:arr)?|a(?:tur|p)|vlt|p(?:re?|ar)|um?|l[et]|ge|i)|n(?:atural|exist|les)|d(?:i(?:am(?:ond)?|v(?:ide)?)|tri|ash|ot|d)|backsim|l(?:esdot|squ|dqu)o|g(?:esdoto|E)|U(?:p(?:Arrow|si)|nion|arr)|angrtvb|p(?:l(?:anckh|us(?:d[ou]|[be]))|ar(?:sl|t)|r(?:od|nE|E)|erp|iv|m)|n(?:ot(?:niv[a-c]|in(?:v[a-c]|E))|rarr[cw]|s(?:u[bp][Ee]|c[er])|part|v(?:le|g[et])|g(?:es|E)|c(?:ap|y)|apE|lE|iv|Ll|Gg)|m(?:inus(?:du|b)|ale|cy|p)|rbr(?:k(?:sl[du]|e)|ac[ek])|(?:suphsu|tris|rcu|lcu)b|supdsub|(?:s[ew]a|n[ew]a)rrow|(?:b(?:ecaus|sim)|n(?:[lr]tri|bump)|csu[bp])e|equivDD|u(?:rcorn|lcorn|psi)|timesb|s(?:u(?:p(?:set)?|b(?:set)?)|q(?:su[bp]|u)|i(?:gma|m)|olb?|dot|mt|fr|ce?)|p(?:l(?:anck|us)|r(?:op|ec?)?|ara?|i)|o(?:times|r(?:d(?:er)?)?)|m(?:i(?:nusd?|d)|a(?:p(?:sto)?|lt)|u)|rmoust|g(?:e(?:s(?:dot|l)?|q)?|sim|n(?:ap|e)|t|l|g)|(?:spade|heart)s|c(?:u(?:rarr|larr|p)|o(?:m(?:ma|p)|lon|py|ng)|lubs|heck|cups|irc?|ent|ap)|colone|a(?:p(?:prox)?|n(?:g(?:msd|rt)?|d)|symp|f|c)|S(?:quare|u[bp]|c)|Subset|b(?:ecaus|sim)|vsu[bp]n[Ee]|s(?:u(?:psu[bp]|b(?:su[bp]|n[Ee]|E)|pn[Ee]|p[1-3E]|m)|q(?:u(?:ar[ef]|f)|su[bp]e)|igma[fv]|etmn|dot[be]|par|mid|hc?y|c[Ey])|f(?:rac(?:78|5[68]|45|3[458]|2[35]|1[2-68])|fr)|e(?:m(?:sp1[34]|ptyv)|psiv|c(?:irc|y)|t[ah]|ng|ll|fr|e)|(?:kappa|isins|vBar|fork|rho|phi|n[GL]t)v|divonx|V(?:dashl|ee)|gammad|G(?:ammad|cy|[Tgt])|[Ldhlt]strok|[HT]strok|(?:c(?:ylct|hc)|(?:s(?:oft|hch)|hard|S(?:OFT|HCH)|jser|J(?:ser|uk)|HARD|tsh|TSH|juk|iuk|I(?:uk|[EO])|zh|yi|nj|lj|k[hj]|gj|dj|ZH|Y[AIU]|NJ|LJ|K[HJ]|GJ|D[JSZ])c|ubrc|Ubrc|(?:yu|i[eo]|dz|v|p|f)c|TSc|SHc|CHc|Vc|Pc|Mc|Fc)y|(?:(?:wre|jm)at|dalet|a(?:ngs|le)p|imat|[lr]ds)h|[CLRUceglnou]acute|ff?llig|(?:f(?:fi|[ij])|sz|oe|ij|ae|OE|IJ)lig|r(?:a(?:tio|rr|ng)|tri|par|eal)|s[ew]arr|s(?:qc[au]p|mte)|prime|rarrb|i(?:n(?:fin|t)?|sin|t|i|c)|e(?:quiv|m(?:pty|sp)|p(?:si|ar)|cir|l|g)|kappa|isins|ncong|doteq|(?:wedg|sim)e|nsime|rsquo|rdquo|[lr]haru|V(?:dash|ert)|Tilde|lrhar|gamma|Equal|UpTee|n(?:[lr]tri|bump)|C(?:olon|up|ap)|v(?:arpi|ert)|u(?:psih|ml)|vnsu[bp]|r(?:tri[ef]|e(?:als|g)|a(?:rr[cw]|ng[de]|ce)|sh|lm|x)|rhard|sim[gl]E|i(?:sin[Ev]|mage|f[fr]|cy)|harrw|(?:n[gl]|l)eqq|g(?:sim[el]|tcc|e(?:qq|l)|nE|l[Eaj]|gg|ap)|ocirc|starf|utrif|d(?:trif|i(?:ams|e)|ashv|sc[ry]|fr|eg)|[du]har[lr]|T(?:HORN|a[bu])|(?:TRAD|[gl]vn)E|odash|[EUaeu]o(?:gon|pf)|alpha|[IJOUYgjuy]c(?:irc|y)|v(?:arr|ee)|succ|sim[gl]|harr|ln(?:ap|e)|lesg|(?:n[gl]|l)eq|ocir|star|utri|vBar|fork|su[bp]e|nsim|lneq|gneq|csu[bp]|zwn?j|yacy|x(?:opf|i)|scnE|o(?:r(?:d[fm]|v)|mid|lt|hm|gt|fr|cy|S)|scap|rsqb|ropf|ltcc|tsc[ry]|QUOT|[EOUYao]uml|rho|phi|n[GL]t|e[gl]s|ngt|I(?:nt|m)|nis|rfr|rcy|lnE|lEg|ufr|S(?:um|cy)|R(?:sh|ho)|psi|Ps?i|[NRTt]cy|L(?:sh|cy|[Tt])|kcy|Kcy|Hat|REG|[Zdz]cy|wr|lE|wp|Xi|Nu|Mu)(;)",name:"constant.language.character-reference.named.html"}},scopeName:"source.mdx",embeddedLangs:[],embeddedLangsLazy:["tsx","toml","yaml","c","clojure","coffee","cpp","csharp","css","diff","docker","elixir","elm","erlang","go","graphql","haskell","html","ini","java","javascript","json","julia","kotlin","less","lua","make","markdown","objective-c","perl","python","r","ruby","rust","scala","scss","shellscript","shellsession","sql","xml","swift","typescript"]});var n=[e];export{n as default}; diff --git a/assets/chunks/mermaid.Dkb1Nx48.js b/assets/chunks/mermaid.Dkb1Nx48.js new file mode 100644 index 000000000..399eeb205 --- /dev/null +++ b/assets/chunks/mermaid.Dkb1Nx48.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Mermaid",fileTypes:[],injectionSelector:"L:text.html.markdown",name:"mermaid",patterns:[{include:"#mermaid-code-block"},{include:"#mermaid-code-block-with-attributes"},{include:"#mermaid-ado-code-block"}],repository:{mermaid:{patterns:[{begin:"^\\s*(classDiagram)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Class Diagram",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{captures:{1:{name:"entity.name.type.class.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"keyword.control.mermaid"},4:{name:"keyword.control.mermaid"},5:{name:"entity.name.type.class.mermaid"},6:{name:"keyword.control.mermaid"},7:{name:"string"}},comment:'(class name) ("multiplicity relationship")? (relationship) ("multiplicity relationship")? (class name) :? (labelText)?',match:'([\\w-]+)\\s("(?:\\d+|\\*|0..\\d+|1..\\d+|1..\\*)")?\\s?(--o|--\\*|\\<--|--\\>|<\\.\\.|\\.\\.\\>|\\<\\|\\.\\.|\\.\\.\\|\\>|\\<\\|--|--\\|>|--\\*|--|\\.\\.|\\*--|o--)\\s("(?:\\d+|\\*|0..\\d+|1..\\d+|1..\\*)")?\\s?([\\w-]+)\\s?(:)?\\s(.*)$'},{captures:{1:{name:"entity.name.type.class.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"keyword.control.mermaid"},4:{name:"entity.name.function.mermaid"},5:{name:"punctuation.parenthesis.open.mermaid"},6:{name:"storage.type.mermaid"},7:{name:"punctuation.definition.typeparameters.begin.mermaid"},8:{name:"storage.type.mermaid"},9:{name:"punctuation.definition.typeparameters.end.mermaid"},10:{name:"entity.name.variable.parameter.mermaid"},11:{name:"punctuation.parenthesis.closed.mermaid"},12:{name:"keyword.control.mermaid"},13:{name:"storage.type.mermaid"},14:{name:"punctuation.definition.typeparameters.begin.mermaid"},15:{name:"storage.type.mermaid"},16:{name:"punctuation.definition.typeparameters.end.mermaid"}},comment:"(class name) : (visibility)?(function)( (function param/generic param)? )(classifier)? (return/generic return)?$",match:"([\\w-]+)\\s?(:)\\s([\\+~#-])?([\\w-]+)(\\()([\\w-]+)?(~)?([\\w-]+)?(~)?\\s?([\\w-]+)?(\\))([*\\$]{0,2})\\s?([\\w-]+)?(~)?([\\w-]+)?(~)?$"},{captures:{1:{name:"entity.name.type.class.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"keyword.control.mermaid"},4:{name:"storage.type.mermaid"},5:{name:"punctuation.definition.typeparameters.begin.mermaid"},6:{name:"storage.type.mermaid"},7:{name:"punctuation.definition.typeparameters.end.mermaid"},8:{name:"entity.name.variable.field.mermaid"}},comment:"(class name) : (visibility)?(datatype/generic data type) (attribute name)$",match:"([\\w-]+)\\s?(:)\\s([\\+~#-])?([\\w-]+)(~)?([\\w-]+)?(~)?\\s([\\w-]+)?$"},{captures:{1:{name:"punctuation.definition.typeparameters.begin.mermaid"},2:{name:"storage.type.mermaid"},3:{name:"punctuation.definition.typeparameters.end.mermaid"},4:{name:"entity.name.type.class.mermaid"}},comment:"<<(Annotation)>> (class name)",match:"(<<)([\\w-]+)(>>)\\s?([\\w-]+)?"},{begin:"(class)\\s+([\\w-]+)(~)?([\\w-]+)?(~)?\\s?({)",beginCaptures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.type.class.mermaid"},3:{name:"punctuation.definition.typeparameters.begin.mermaid"},4:{name:"storage.type.mermaid"},5:{name:"punctuation.definition.typeparameters.end.mermaid"},6:{name:"keyword.control.mermaid"}},comment:"class (class name) ~?(generic type)?~? ({)",end:"(})",endCaptures:{1:{name:"keyword.control.mermaid"}},patterns:[{match:"\\%%.*",name:"comment"},{begin:"\\s([\\+~#-])?([\\w-]+)(\\()",beginCaptures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"},3:{name:"punctuation.parenthesis.open.mermaid"}},comment:"(visibility)?(function)( (function param/generic param)? )(classifier)? (return/generic return)?$",end:"(\\))([*\\$]{0,2})\\s?([\\w-]+)?(~)?([\\w-]+)?(~)?$",endCaptures:{1:{name:"punctuation.parenthesis.closed.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"storage.type.mermaid"},4:{name:"punctuation.definition.typeparameters.begin.mermaid"},5:{name:"storage.type.mermaid"},6:{name:"punctuation.definition.typeparameters.end.mermaid"}},patterns:[{captures:{1:{name:"storage.type.mermaid"},2:{name:"punctuation.definition.typeparameters.begin.mermaid"},3:{name:"storage.type.mermaid"},4:{name:"punctuation.definition.typeparameters.end.mermaid"},5:{name:"entity.name.variable.parameter.mermaid"}},comment:"(TBD)",match:"\\s*,?\\s*([\\w-]+)?(~)?([\\w-]+)?(~)?\\s?([\\w-]+)?"}]},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"storage.type.mermaid"},3:{name:"punctuation.definition.typeparameters.begin.mermaid"},4:{name:"storage.type.mermaid"},5:{name:"punctuation.definition.typeparameters.end.mermaid"},6:{name:"entity.name.variable.field.mermaid"}},comment:"(visibility)?(datatype/generic data type) (attribute name)$",match:"\\s([\\+~#-])?([\\w-]+)(~)?([\\w-]+)?(~)?\\s([\\w-]+)?$"},{captures:{1:{name:"punctuation.definition.typeparameters.begin.mermaid"},2:{name:"storage.type.mermaid"},3:{name:"punctuation.definition.typeparameters.end.mermaid"},4:{name:"entity.name.type.class.mermaid"}},comment:"<<(Annotation)>> (class name)",match:"(<<)([\\w-]+)(>>)\\s?([\\w-]+)?"}]},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.type.class.mermaid"},3:{name:"punctuation.definition.typeparameters.begin.mermaid"},4:{name:"storage.type.mermaid"},5:{name:"punctuation.definition.typeparameters.end.mermaid"}},comment:"class (class name) ~?(generic type)?~?",match:"(class)\\s+([\\w-]+)(~)?([\\w-]+)?(~)?"}]},{begin:"^\\s*(erDiagram)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Entity Relationship Diagram",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{comment:"(entity)",match:"^\\s*([\\w-]+)$",name:"variable"},{begin:"\\s+([\\w-]+)\\s*({)",beginCaptures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"}},comment:"(entity) {",end:"(})",endCaptures:{1:{name:"keyword.control.mermaid"}},patterns:[{captures:{1:{name:"storage.type.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"},4:{name:"string"}},comment:'(type) (name) (PK|FK)? ("comment")?',match:`\\s*([\\w-]+)\\s+([\\w-]+)\\s+(PK|FK)?\\s*("["\\($&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*")?\\s*`},{match:"\\%%.*",name:"comment"}]},{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"},3:{name:"variable"},4:{name:"keyword.control.mermaid"},5:{name:"string"}},comment:"(entity) (relationship) (entity) : (label)",match:'\\s*([\\w-]+)\\s*((?:\\|o|\\|\\||}o|}\\||one or (?:zero|more|many)|zero or (?:one|more|many)|many\\((?:0|1)\\)|only one|0\\+|1\\+?)(?:..|--)(?:o\\||\\|\\||o{|\\|{|one or (?:zero|more|many)|zero or (?:one|more|many)|many\\((?:0|1)\\)|only one|0\\+|1\\+?))\\s*([\\w-]+)\\s*(:)\\s*((?:"[\\w\\s]*")|(?:[\\w-]+))'}]},{begin:"^\\s*(gantt)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Gantt Diagram",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"}},match:"(dateFormat)\\s+([\\w\\-\\.]+)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"}},match:"(axisFormat)\\s+([\\w\\%\\/\\\\\\-\\.]+)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:"(tickInterval)\\s+(([1-9][0-9]*)(millisecond|second|minute|hour|day|week|month))"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:`(title)\\s+(\\s*["\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)`},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:"(excludes)\\s+((?:[\\d\\-,\\s]+|monday|tuesday|wednesday|thursday|friday|saturday|sunday|weekends)+)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:"^\\s+(todayMarker)\\s+(.*)$"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:`(section)\\s+(\\s*["\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)`},{begin:"^\\s(.*)(:)",beginCaptures:{1:{name:"string"},2:{name:"keyword.control.mermaid"}},end:"$",patterns:[{match:"(crit|done|active|after)",name:"entity.name.function.mermaid"},{match:"\\%%.*",name:"comment"}]}]},{begin:"^\\s*(gitGraph)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Git Graph",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{begin:"\\s*(commit)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"commit",end:"$",patterns:[{captures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"string"}},comment:'(id)(:) ("id")',match:'\\s*(id)(:)\\s?("[^"\\n]*")'},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"entity.name.function.mermaid"}},comment:"(type)(:) (COMMIT_TYPE)",match:"\\s*(type)(:)\\s?(NORMAL|REVERSE|HIGHLIGHT)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"string"}},comment:'(tag)(:) ("tag")',match:`\\s*(tag)(:)\\s?("[\\($&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*")`}]},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"}},comment:"(checkout) (branch-name)",match:'\\s*(checkout)\\s*([^\\s"]*)'},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"},4:{name:"keyword.control.mermaid"},5:{name:"constant.numeric.decimal.mermaid"}},comment:"(branch) (branch-name) (order)?(:) (number)",match:'\\s*(branch)\\s*([^\\s"]*)\\s*(?:(order)(:)\\s?(\\d+))?'},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"},4:{name:"keyword.control.mermaid"},5:{name:"string"}},comment:'(merge) (branch-name) (tag: "tag-name")?',match:'\\s*(merge)\\s*([^\\s"]*)\\s*(?:(tag)(:)\\s?("[^"\\n]*"))?'},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"keyword.control.mermaid"},4:{name:"string"}},comment:'(cherry-pick) (id)(:)("commit-id")',match:'\\s*(cherry-pick)\\s+(id)(:)\\s*("[^"\\n]*")'}]},{begin:"^\\s*(graph|flowchart)\\s+([\\p{Letter}\\ 0-9]+)",beginCaptures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"}},comment:"Graph",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"},4:{name:"string"},5:{name:"keyword.control.mermaid"}},comment:"",match:'\\b(subgraph)\\s+(\\w+)(\\[)("?[\\w\\s*+%=\\\\/:\\.\\-\'`,&^#$!?<>]*"?)(\\])'},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"}},match:"\\b(subgraph)\\s+([\\p{Letter}\\ 0-9<>]+)",name:"meta.function.mermaid"},{match:"\\b(end|RB|BT|RL|TD|LR)\\b",name:"keyword.control.mermaid"},{begin:"(\\b(?:(?!--|==)[-\\w])+\\b\\s*)(\\(\\[|\\[\\[|\\[\\(|\\[|\\(+|\\>|\\{|\\(\\()",beginCaptures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"},3:{name:"string"}},comment:"(Entity)(Edge/Shape)(Text)(Edge/Shape)",end:"(\\]\\)|\\]\\]|\\)\\]|\\]|\\)+|\\}|\\)\\))",endCaptures:{1:{name:"keyword.control.mermaid"}},patterns:[{begin:'\\s*(")',beginCaptures:{1:{name:"string"}},comment:'("multi-line text")',end:'(")',endCaptures:{1:{name:"string"}},patterns:[{begin:'([^"]*)',beginCaptures:{1:{name:"string"}},comment:"capture inner text between quotes",end:'(?=")',patterns:[{captures:{1:{name:"comment"}},match:'([^"]*)'}]}]},{captures:{1:{name:"string"}},comment:"(single line text)",match:"\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)"}]},{begin:"\\s*((?:-{2,5}|={2,5})[xo>]?\\|)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:'(Graph Link)("Multiline text")(Graph Link)',end:"(\\|)",endCaptures:{1:{name:"keyword.control.mermaid"}},patterns:[{begin:'\\s*(")',beginCaptures:{1:{name:"string"}},comment:'("multi-line text")',end:'(")',endCaptures:{1:{name:"string"}},patterns:[{begin:'([^"]*)',beginCaptures:{1:{name:"string"}},comment:"capture inner text between quotes",end:'(?=")',patterns:[{captures:{1:{name:"comment"}},match:'([^"]*)'}]}]},{captures:{1:{name:"string"}},comment:"(single line text)",match:"\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)"}]},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"},3:{name:"keyword.control.mermaid"}},comment:"(Graph Link Start Arrow)(Text)(Graph Link End Arrow)",match:"\\s*([xo<]?(?:-{2,5}|={2,5}|-\\.{1,3}|-\\.))((?:(?!--|==)[\\w\\s*+%=\\\\/:\\.\\-'`,\"&^#$!?<>\\[\\]])*)((?:-{2,5}|={2,5}|\\.{1,3}-|\\.-)[xo>]?)"},{captures:{1:{name:"keyword.control.mermaid"}},comment:"(Graph Link)",match:"\\s*([ox<]?(?:-.{1,3}-|-{1,3}|={1,3})[ox>]?)"},{comment:"Entity",match:"(\\b(?:(?!--|==)[-\\w])+\\b\\s*)",name:"variable"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"string"}},comment:"(Class)(Node(s))(ClassName)",match:"\\s*(class)\\s+(\\b[-,\\w]+)\\s+(\\b\\w+\\b)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"string"}},comment:"(ClassDef)(ClassName)(Styles)",match:"\\s*(classDef)\\s+(\\b\\w+\\b)\\s+(\\b[-,:;#\\w]+)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"variable"},4:{name:"string"}},comment:"(Click)(Entity)(Link)?(Tooltip)",match:'\\s*(click)\\s+(\\b[-\\w]+\\b\\s*)(\\b\\w+\\b)?\\s("*.*")'}]},{begin:"^\\s*(pie)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Pie Chart",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:`(title)\\s+(\\s*["\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)`},{begin:"\\s(.*)(:)",beginCaptures:{1:{name:"string"},2:{name:"keyword.control.mermaid"}},end:"$",patterns:[{match:"\\%%.*",name:"comment"}]}]},{begin:"^\\s*(requirementDiagram)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Requirement Diagram",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{begin:`^\\s*((?i)(?:functional|interface|performance|physical)?requirement|designConstraint)\\s*(["\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)\\s*({)`,beginCaptures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"}},comment:"(requirement) (name) ({)",end:"\\s*(})",endCaptures:{1:{name:"keyword.control.mermaid"}},patterns:[{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"}},comment:"(id:) (variable id)",match:"\\s*(id:)\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},comment:"(text:) (text string)",match:"\\s*(text:)\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"}},comment:"(risk:) (risk option)",match:"\\s*(risk:)\\s*(low|medium|high)\\s*$"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"}},comment:"(verifyMethod)(:) (method)",match:"\\s*(verifymethod:)\\s*(analysis|inspection|test|demonstration)\\s*$"}]},{begin:`^\\s*(element)\\s*(["\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)\\s*({)`,beginCaptures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"}},comment:"(element) (name) ({)",end:"\\s*(})",endCaptures:{1:{name:"keyword.control.mermaid"}},patterns:[{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"}},comment:"(type:) (user type)",match:`\\s*(type:)\\s*(["$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)`},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"}},comment:"(docref:) (user ref)",match:"\\s*(?i)(docref:)\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)"}]},{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"},3:{name:"keyword.control.mermaid"},4:{name:"keyword.control.mermaid"},5:{name:"variable"}},comment:"(source) (-) (type) (->) (destination)",match:"^\\s*([\\w]+)\\s*(-)\\s*((?i)contains|copies|derives|satisfies|verifies|refines|traces)\\s*(->)\\s*([\\w]+)\\s*$"},{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"},3:{name:"keyword.control.mermaid"},4:{name:"keyword.control.mermaid"},5:{name:"variable"}},comment:"(destination) (<-) (type) (-) (source)",match:"^\\s*([\\w]+)\\s*(<-)\\s*((?i)contains|copies|derives|satisfies|verifies|refines|traces)\\s*(-)\\s*([\\w]+)\\s*$"}]},{begin:"^\\s*(sequenceDiagram)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Sequence Diagram",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"(\\%%|#).*",name:"comment"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"string"}},comment:"(title)(title text)",match:`(title)\\s*(:)?\\s+(\\s*["\\(\\)$&%\\^/#.,?!:*+=<>\\'\\\\\\-\\w\\s]*)`},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"},4:{name:"string"}},comment:"(participant)(Actor)(as)?(Label)?",match:`\\s*(participant|actor)\\s+((?:(?! as )["\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s])+)\\s*(as)?\\s(["\\(\\)$&%\\^/#.,?!*=<>\\'\\\\\\w\\s]+)?`},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"}},comment:"(activate/deactivate)(Actor)",match:`\\s*((?:de)?activate)\\s+(\\b["()$&%^/#.?!*=<>'\\\\\\w\\s]+\\b\\)?\\s*)`},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"},3:{name:"variable"},4:{name:"keyword.control.mermaid"},5:{name:"variable"},6:{name:"keyword.control.mermaid"},7:{name:"string"}},comment:"(Note)(direction)(Actor)(,)?(Actor)?(:)(Message)",match:`\\s*(Note)\\s+((?:left|right)\\sof|over)\\s+(\\b["()$&%^/#.?!*=<>'\\\\\\w\\s]+\\b\\)?\\s*)(,)?(\\b["()$&%^/#.?!*=<>'\\\\\\w\\s]+\\b\\)?\\s*)?(:)(?:\\s+([^;#]*))?`},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},comment:"(loop)(loop text)",match:"\\s*(loop)(?:\\s+([^;#]*))?"},{captures:{1:{name:"keyword.control.mermaid"}},comment:"(end)",match:"\\s*(end)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},comment:"(alt/else/option/par/and/autonumber/critical/opt)(text)",match:"\\s*(alt|else|option|par|and|rect|autonumber|critical|opt)(?:\\s+([^#;]*))?"},{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"},3:{name:"variable"},4:{name:"keyword.control.mermaid"},5:{name:"string"}},comment:"(Actor)(Arrow)(Actor)(:)(Message)",match:`\\s*(\\b["()$&%^/#.?!*=<>'\\\\\\w\\s]+\\b\\)?)\\s*(-?-(?:\\>|x|\\))\\>?[+-]?)\\s*(["()$&%^/#.?!*=<>'\\\\\\w\\s]+\\b\\)?)\\s*(:)\\s*([^;#]*)`},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"},3:{name:"string"}},comment:"(box transparent text)",match:"\\s*(box)\\s+(transparent)(?:\\s+([^;#]*))?"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},comment:"(box text)",match:"\\s*(box)(?:\\s+([^;#]*))?"}]},{begin:"^\\s*(stateDiagram(?:-v2)?)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"State Diagram",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{captures:{1:{name:"keyword.control.mermaid"}},comment:"}",match:"\\s+(})\\s+"},{captures:{1:{name:"keyword.control.mermaid"}},comment:"--",match:"\\s+(--)\\s+"},{comment:"(state)",match:"^\\s*([\\w-]+)$",name:"variable"},{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"},3:{name:"string"}},comment:"(state) : (description)",match:"([\\w-]+)\\s+(:)\\s+(\\s*[-\\w\\s]+\\b)"},{begin:"(state)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"state",end:"$",patterns:[{captures:{1:{name:"string"},2:{name:"keyword.control.mermaid"},3:{name:"variable"}},comment:'"(description)" as (state)',match:'\\s+("[-\\w\\s]+\\b")\\s+(as)\\s+([\\w-]+)'},{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"}},comment:"(state name) {",match:"\\s+([\\w-]+)\\s+({)"},{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"}},comment:"(state name) <<fork|join>>",match:"\\s+([\\w-]+)\\s+(<<(?:fork|join)>>)"}]},{begin:"([\\w-]+)\\s+(-->)",beginCaptures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"}},comment:"(state) -->",end:"$",patterns:[{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"},3:{name:"string"}},comment:"(state) (:)? (transition text)?",match:"\\s+([\\w-]+)\\s*(:)?\\s*([^\\n:]+)?"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"string"}},comment:"[*] (:)? (transition text)?",match:"(\\[\\*\\])\\s*(:)?\\s*([^\\n:]+)?"}]},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"variable"},4:{name:"keyword.control.mermaid"},5:{name:"string"}},comment:"[*] --> (state) (:)? (transition text)?",match:"(\\[\\*\\])\\s+(-->)\\s+([\\w-]+)\\s*(:)?\\s*([^\\n:]+)?"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"},4:{name:"string"}},comment:"note left|right of (state name)",match:"(note (?:left|right) of)\\s+([\\w-]+)\\s+(:)\\s*([^\\n:]+)"},{begin:"(note (?:left|right) of)\\s+([\\w-]+)(.|\\n)",beginCaptures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"}},comment:"note left|right of (state name) (note text) end note",contentName:"string",end:"(end note)",endCaptures:{1:{name:"keyword.control.mermaid"}}}]},{begin:"^\\s*(journey)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"User Journey",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:`(title|section)\\s+(\\s*["\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)`},{begin:`\\s*(["\\(\\)$&%\\^/.,?!*+=<>\\'\\\\\\-\\w\\s]*)\\s*(:)\\s*(\\d+)\\s*(:)`,beginCaptures:{1:{name:"string"},2:{name:"keyword.control.mermaid"},3:{name:"constant.numeric.decimal.mermaid"},4:{name:"keyword.control.mermaid"}},end:"$",patterns:[{captures:{1:{name:"variable"}},comment:"(taskName)",match:"\\s*,?\\s*([^,#\\n]+)"}]}]}]},"mermaid-ado-code-block":{begin:"(?i)\\s*:::\\s*mermaid\\s*$",contentName:"meta.embedded.block.mermaid",end:"\\s*:::\\s*",patterns:[{include:"#mermaid"}]},"mermaid-code-block":{begin:"(?i)(?<=[`~])mermaid(\\s+[^`~]*)?$",contentName:"meta.embedded.block.mermaid",end:"(^|\\G)(?=\\s*[`~]{3,}\\s*$)",patterns:[{include:"#mermaid"}]},"mermaid-code-block-with-attributes":{begin:"(?i)(?<=[`~])\\{\\s*\\.?mermaid(\\s+[^`~]*)?$",contentName:"meta.embedded.block.mermaid",end:"(^|\\G)(?=\\s*[`~]{3,}\\s*$)",patterns:[{include:"#mermaid"}]}},scopeName:"markdown.mermaid.codeblock"});var a=[e];export{a as default}; diff --git a/assets/chunks/min-dark.iSbrOpM4.js b/assets/chunks/min-dark.iSbrOpM4.js new file mode 100644 index 000000000..a57d17d66 --- /dev/null +++ b/assets/chunks/min-dark.iSbrOpM4.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.background":"#1A1A1A","activityBar.foreground":"#7D7D7D","activityBarBadge.background":"#383838","badge.background":"#383838","badge.foreground":"#C1C1C1","button.background":"#333","debugIcon.breakpointCurrentStackframeForeground":"#79b8ff","debugIcon.breakpointDisabledForeground":"#848484","debugIcon.breakpointForeground":"#FF7A84","debugIcon.breakpointStackframeForeground":"#79b8ff","debugIcon.breakpointUnverifiedForeground":"#848484","debugIcon.continueForeground":"#FF7A84","debugIcon.disconnectForeground":"#FF7A84","debugIcon.pauseForeground":"#FF7A84","debugIcon.restartForeground":"#79b8ff","debugIcon.startForeground":"#79b8ff","debugIcon.stepBackForeground":"#FF7A84","debugIcon.stepIntoForeground":"#FF7A84","debugIcon.stepOutForeground":"#FF7A84","debugIcon.stepOverForeground":"#FF7A84","debugIcon.stopForeground":"#79b8ff","diffEditor.insertedTextBackground":"#3a632a4b","diffEditor.removedTextBackground":"#88063852","editor.background":"#1f1f1f","editor.lineHighlightBorder":"#303030","editorGroupHeader.tabsBackground":"#1A1A1A","editorGroupHeader.tabsBorder":"#1A1A1A","editorIndentGuide.activeBackground":"#383838","editorIndentGuide.background":"#2A2A2A","editorLineNumber.foreground":"#727272","editorRuler.foreground":"#2A2A2A","editorSuggestWidget.background":"#1A1A1A",focusBorder:"#444",foreground:"#888888","gitDecoration.ignoredResourceForeground":"#444444","input.background":"#2A2A2A","input.foreground":"#E0E0E0","inputOption.activeBackground":"#3a3a3a","list.activeSelectionBackground":"#212121","list.activeSelectionForeground":"#F5F5F5","list.focusBackground":"#292929","list.highlightForeground":"#EAEAEA","list.hoverBackground":"#262626","list.hoverForeground":"#9E9E9E","list.inactiveSelectionBackground":"#212121","list.inactiveSelectionForeground":"#F5F5F5","panelTitle.activeBorder":"#1f1f1f","panelTitle.activeForeground":"#FAFAFA","panelTitle.inactiveForeground":"#484848","peekView.border":"#444","peekViewEditor.background":"#242424","pickerGroup.border":"#363636","pickerGroup.foreground":"#EAEAEA","progressBar.background":"#FAFAFA","scrollbar.shadow":"#1f1f1f","sideBar.background":"#1A1A1A","sideBarSectionHeader.background":"#202020","statusBar.background":"#1A1A1A","statusBar.debuggingBackground":"#1A1A1A","statusBar.foreground":"#7E7E7E","statusBar.noFolderBackground":"#1A1A1A","statusBarItem.prominentBackground":"#fafafa1a","statusBarItem.remoteBackground":"#1a1a1a00","statusBarItem.remoteForeground":"#7E7E7E","symbolIcon.classForeground":"#FF9800","symbolIcon.constructorForeground":"#b392f0","symbolIcon.enumeratorForeground":"#FF9800","symbolIcon.enumeratorMemberForeground":"#79b8ff","symbolIcon.eventForeground":"#FF9800","symbolIcon.fieldForeground":"#79b8ff","symbolIcon.functionForeground":"#b392f0","symbolIcon.interfaceForeground":"#79b8ff","symbolIcon.methodForeground":"#b392f0","symbolIcon.variableForeground":"#79b8ff","tab.activeBorder":"#1e1e1e","tab.activeForeground":"#FAFAFA","tab.border":"#1A1A1A","tab.inactiveBackground":"#1A1A1A","tab.inactiveForeground":"#727272","terminal.ansiBrightBlack":"#5c5c5c","textLink.activeForeground":"#fafafa","textLink.foreground":"#CCC","titleBar.activeBackground":"#1A1A1A","titleBar.border":"#00000000"},displayName:"Min Dark",name:"min-dark",semanticHighlighting:!0,tokenColors:[{settings:{foreground:"#b392f0"}},{scope:["support.function","keyword.operator.accessor","meta.group.braces.round.function.arguments","meta.template.expression","markup.fenced_code meta.embedded.block"],settings:{foreground:"#b392f0"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:["strong","markup.heading.markdown","markup.bold.markdown"],settings:{fontStyle:"bold",foreground:"#FF7A84"}},{scope:["markup.italic.markdown"],settings:{fontStyle:"italic"}},{scope:"meta.link.inline.markdown",settings:{fontStyle:"underline",foreground:"#1976D2"}},{scope:["string","markup.fenced_code","markup.inline"],settings:{foreground:"#9db1c5"}},{scope:["comment","string.quoted.docstring.multi"],settings:{foreground:"#6b737c"}},{scope:["constant.language","variable.language.this","variable.other.object","variable.other.class","variable.other.constant","meta.property-name","support","string.other.link.title.markdown"],settings:{foreground:"#79b8ff"}},{scope:["constant.numeric","constant.other.placeholder","constant.character.format.placeholder","meta.property-value","keyword.other.unit","keyword.other.template","entity.name.tag.yaml","entity.other.attribute-name","support.type.property-name.json"],settings:{foreground:"#f8f8f8"}},{scope:["keyword","storage.modifier","storage.type","storage.control.clojure","entity.name.function.clojure","support.function.node","punctuation.separator.key-value","punctuation.definition.template-expression"],settings:{foreground:"#f97583"}},{scope:"variable.parameter.function",settings:{foreground:"#FF9800"}},{scope:["entity.name.type","entity.other.inherited-class","meta.function-call","meta.instance.constructor","entity.other.attribute-name","entity.name.function","constant.keyword.clojure"],settings:{foreground:"#b392f0"}},{scope:["entity.name.tag","string.quoted","string.regexp","string.interpolated","string.template","string.unquoted.plain.out.yaml","keyword.other.template"],settings:{foreground:"#ffab70"}},{scope:"token.info-token",settings:{foreground:"#316bcd"}},{scope:"token.warn-token",settings:{foreground:"#cd9731"}},{scope:"token.error-token",settings:{foreground:"#cd3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}},{scope:["punctuation.definition.arguments","punctuation.definition.dict","punctuation.separator","meta.function-call.arguments"],settings:{foreground:"#bbbbbb"}},{scope:"markup.underline.link",settings:{foreground:"#ffab70"}},{scope:["beginning.punctuation.definition.list.markdown"],settings:{foreground:"#FF7A84"}},{scope:"punctuation.definition.metadata.markdown",settings:{foreground:"#ffab70"}},{scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown"],settings:{foreground:"#79b8ff"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/min-light.BITGhEdf.js b/assets/chunks/min-light.BITGhEdf.js new file mode 100644 index 000000000..97d1db7fa --- /dev/null +++ b/assets/chunks/min-light.BITGhEdf.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.background":"#f6f6f6","activityBar.foreground":"#9E9E9E","activityBarBadge.background":"#616161","badge.background":"#E0E0E0","badge.foreground":"#616161","button.background":"#757575","button.hoverBackground":"#616161","debugIcon.breakpointCurrentStackframeForeground":"#1976D2","debugIcon.breakpointDisabledForeground":"#848484","debugIcon.breakpointForeground":"#D32F2F","debugIcon.breakpointStackframeForeground":"#1976D2","debugIcon.continueForeground":"#6f42c1","debugIcon.disconnectForeground":"#6f42c1","debugIcon.pauseForeground":"#6f42c1","debugIcon.restartForeground":"#1976D2","debugIcon.startForeground":"#1976D2","debugIcon.stepBackForeground":"#6f42c1","debugIcon.stepIntoForeground":"#6f42c1","debugIcon.stepOutForeground":"#6f42c1","debugIcon.stepOverForeground":"#6f42c1","debugIcon.stopForeground":"#1976D2","diffEditor.insertedTextBackground":"#b7e7a44b","diffEditor.removedTextBackground":"#e597af52","editor.background":"#ffffff","editor.foreground":"#212121","editor.lineHighlightBorder":"#f2f2f2","editorBracketMatch.background":"#E7F3FF","editorBracketMatch.border":"#c8e1ff","editorGroupHeader.tabsBackground":"#f6f6f6","editorGroupHeader.tabsBorder":"#fff","editorIndentGuide.background":"#EEE","editorLineNumber.activeForeground":"#757575","editorLineNumber.foreground":"#CCC","editorSuggestWidget.background":"#F3F3F3","extensionButton.prominentBackground":"#000000AA","extensionButton.prominentHoverBackground":"#000000BB",focusBorder:"#D0D0D0",foreground:"#757575","gitDecoration.ignoredResourceForeground":"#AAAAAA","input.border":"#E9E9E9","inputOption.activeBackground":"#EDEDED","list.activeSelectionBackground":"#EEE","list.activeSelectionForeground":"#212121","list.focusBackground":"#ddd","list.focusForeground":"#212121","list.highlightForeground":"#212121","list.inactiveSelectionBackground":"#E0E0E0","list.inactiveSelectionForeground":"#212121","panel.background":"#fff","panel.border":"#f4f4f4","panelTitle.activeBorder":"#fff","panelTitle.inactiveForeground":"#BDBDBD","peekView.border":"#E0E0E0","peekViewEditor.background":"#f8f8f8","pickerGroup.foreground":"#000","progressBar.background":"#000","scrollbar.shadow":"#FFF","sideBar.background":"#f6f6f6","sideBar.border":"#f6f6f6","sideBarSectionHeader.background":"#EEE","sideBarTitle.foreground":"#999","statusBar.background":"#f6f6f6","statusBar.border":"#f6f6f6","statusBar.debuggingBackground":"#f6f6f6","statusBar.foreground":"#7E7E7E","statusBar.noFolderBackground":"#f6f6f6","statusBarItem.prominentBackground":"#0000001a","statusBarItem.remoteBackground":"#f6f6f600","statusBarItem.remoteForeground":"#7E7E7E","symbolIcon.classForeground":"#dd8500","symbolIcon.constructorForeground":"#6f42c1","symbolIcon.enumeratorForeground":"#dd8500","symbolIcon.enumeratorMemberForeground":"#1976D2","symbolIcon.eventForeground":"#dd8500","symbolIcon.fieldForeground":"#1976D2","symbolIcon.functionForeground":"#6f42c1","symbolIcon.interfaceForeground":"#1976D2","symbolIcon.methodForeground":"#6f42c1","symbolIcon.variableForeground":"#1976D2","tab.activeBorder":"#FFF","tab.activeForeground":"#424242","tab.border":"#f6f6f6","tab.inactiveBackground":"#f6f6f6","tab.inactiveForeground":"#BDBDBD","tab.unfocusedActiveBorder":"#fff","terminal.ansiBlack":"#333","terminal.ansiBlue":"#e0e0e0","terminal.ansiBrightBlack":"#a1a1a1","terminal.ansiBrightBlue":"#6871ff","terminal.ansiBrightCyan":"#57d9ad","terminal.ansiBrightGreen":"#a3d900","terminal.ansiBrightMagenta":"#a37acc","terminal.ansiBrightRed":"#d6656a","terminal.ansiBrightWhite":"#7E7E7E","terminal.ansiBrightYellow":"#e7c547","terminal.ansiCyan":"#4dbf99","terminal.ansiGreen":"#77cc00","terminal.ansiMagenta":"#9966cc","terminal.ansiRed":"#D32F2F","terminal.ansiWhite":"#c7c7c7","terminal.ansiYellow":"#f29718","terminal.background":"#fff","textLink.activeForeground":"#000","textLink.foreground":"#000","titleBar.activeBackground":"#f6f6f6","titleBar.border":"#FFFFFF00","titleBar.inactiveBackground":"#f6f6f6"},displayName:"Min Light",name:"min-light",tokenColors:[{settings:{foreground:"#24292eff"}},{scope:["keyword.operator.accessor","meta.group.braces.round.function.arguments","meta.template.expression","markup.fenced_code meta.embedded.block"],settings:{foreground:"#24292eff"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:["strong","markup.heading.markdown","markup.bold.markdown"],settings:{fontStyle:"bold"}},{scope:["markup.italic.markdown"],settings:{fontStyle:"italic"}},{scope:"meta.link.inline.markdown",settings:{fontStyle:"underline",foreground:"#1976D2"}},{scope:["string","markup.fenced_code","markup.inline"],settings:{foreground:"#2b5581"}},{scope:["comment","string.quoted.docstring.multi"],settings:{foreground:"#c2c3c5"}},{scope:["constant.numeric","constant.language","constant.other.placeholder","constant.character.format.placeholder","variable.language.this","variable.other.object","variable.other.class","variable.other.constant","meta.property-name","meta.property-value","support"],settings:{foreground:"#1976D2"}},{scope:["keyword","storage.modifier","storage.type","storage.control.clojure","entity.name.function.clojure","entity.name.tag.yaml","support.function.node","support.type.property-name.json","punctuation.separator.key-value","punctuation.definition.template-expression"],settings:{foreground:"#D32F2F"}},{scope:"variable.parameter.function",settings:{foreground:"#FF9800"}},{scope:["support.function","entity.name.type","entity.other.inherited-class","meta.function-call","meta.instance.constructor","entity.other.attribute-name","entity.name.function","constant.keyword.clojure"],settings:{foreground:"#6f42c1"}},{scope:["entity.name.tag","string.quoted","string.regexp","string.interpolated","string.template","string.unquoted.plain.out.yaml","keyword.other.template"],settings:{foreground:"#22863a"}},{scope:"token.info-token",settings:{foreground:"#316bcd"}},{scope:"token.warn-token",settings:{foreground:"#cd9731"}},{scope:"token.error-token",settings:{foreground:"#cd3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}},{scope:["strong","markup.heading.markdown","markup.bold.markdown"],settings:{foreground:"#6f42c1"}},{scope:["punctuation.definition.arguments","punctuation.definition.dict","punctuation.separator","meta.function-call.arguments"],settings:{foreground:"#212121"}},{scope:["markup.underline.link","punctuation.definition.metadata.markdown"],settings:{foreground:"#22863a"}},{scope:["beginning.punctuation.definition.list.markdown"],settings:{foreground:"#6f42c1"}},{scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","string.other.link.title.markdown","string.other.link.description.markdown"],settings:{foreground:"#d32f2f"}}],type:"light"});export{e as default}; diff --git a/assets/chunks/mojo.-7WWnkdy.js b/assets/chunks/mojo.-7WWnkdy.js new file mode 100644 index 000000000..2c07f9807 --- /dev/null +++ b/assets/chunks/mojo.-7WWnkdy.js @@ -0,0 +1,517 @@ +const e=Object.freeze({displayName:"Mojo",name:"mojo",patterns:[{include:"#statement"},{include:"#expression"}],repository:{"annotated-parameter":{begin:`(?x) +\\b +([[:alpha:]_]\\w*) \\s* (:) +`,beginCaptures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.annotation.python"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"},{match:"=(?!=)",name:"keyword.operator.assignment.python"}]},"assignment-operator":{match:`(?x) +<<= | >>= | //= | \\*\\*= +| \\+= | -= | /= | @= +| \\*= | %= | ~= | \\^= | &= | \\|= +| =(?!=) +`,name:"keyword.operator.assignment.python"},backticks:{begin:"\\`",end:"(?:\\`|(?<!\\\\)(\\n))",name:"string.quoted.single.python"},"builtin-callables":{patterns:[{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#builtin-exceptions"},{include:"#builtin-functions"},{include:"#builtin-types"}]},"builtin-exceptions":{match:`(?x) (?<!\\.) \\b( +( +Arithmetic | Assertion | Attribute | Buffer | BlockingIO +| BrokenPipe | ChildProcess +| (Connection (Aborted | Refused | Reset)?) +| EOF | Environment | FileExists | FileNotFound +| FloatingPoint | IO | Import | Indentation | Index | Interrupted +| IsADirectory | NotADirectory | Permission | ProcessLookup +| Timeout +| Key | Lookup | Memory | Name | NotImplemented | OS | Overflow +| Reference | Runtime | Recursion | Syntax | System +| Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)? +| Value | Windows | ZeroDivision | ModuleNotFound +) Error +| +((Pending)?Deprecation | Runtime | Syntax | User | Future | Import +| Unicode | Bytes | Resource +)? Warning +| +SystemExit | Stop(Async)?Iteration +| KeyboardInterrupt +| GeneratorExit | (Base)?Exception +)\\b +`,name:"support.type.exception.python"},"builtin-functions":{patterns:[{match:`(?x) +(?<!\\.) \\b( +__import__ | abs | aiter | all | any | anext | ascii | bin +| breakpoint | callable | chr | compile | copyright | credits +| delattr | dir | divmod | enumerate | eval | exec | exit +| filter | format | getattr | globals | hasattr | hash | help +| hex | id | input | isinstance | issubclass | iter | len +| license | locals | map | max | memoryview | min | next +| oct | open | ord | pow | print | quit | range | reload | repr +| reversed | round | setattr | sorted | sum | vars | zip +)\\b +`,name:"support.function.builtin.python"},{match:`(?x) +(?<!\\.) \\b( +file | reduce | intern | raw_input | unicode | cmp | basestring +| execfile | long | xrange +)\\b +`,name:"variable.legacy.builtin.python"}]},"builtin-possible-callables":{patterns:[{include:"#builtin-callables"},{include:"#magic-names"}]},"builtin-types":{match:`(?x) +(?<!\\.) \\b( +__mlir_attr | __mlir_op | __mlir_type | bool | bytearray | bytes | classmethod | complex | dict +| float | frozenset | int | list | object | property +| set | slice | staticmethod | str | tuple | type + +(?# Although 'super' is not a type, it's related to types, +and is special enough to be highlighted differently from +other built-ins) +| super +)\\b +`,name:"support.type.python"},"call-wrapper-inheritance":{begin:`(?x) +\\b(?= +([[:alpha:]_]\\w*) \\s* (\\() +) +`,comment:"same as a function call, but in inheritance context",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#inheritance-name"},{include:"#function-arguments"}]},"class-declaration":{patterns:[{begin:`(?x) +\\s*(class|struct|trait)\\s+ +(?= +[[:alpha:]_]\\w* \\s* (:|\\() +) +`,beginCaptures:{1:{name:"storage.type.class.python"}},end:"(:)",endCaptures:{1:{name:"punctuation.section.class.begin.python"}},name:"meta.class.python",patterns:[{include:"#class-name"},{include:"#class-inheritance"}]}]},"class-inheritance":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.inheritance.begin.python"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.inheritance.end.python"}},name:"meta.class.inheritance.python",patterns:[{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.arguments.python"},{match:",",name:"punctuation.separator.inheritance.python"},{match:"=(?!=)",name:"keyword.operator.assignment.python"},{match:"\\bmetaclass\\b",name:"support.type.metaclass.python"},{include:"#illegal-names"},{include:"#class-kwarg"},{include:"#call-wrapper-inheritance"},{include:"#expression-base"},{include:"#member-access-class"},{include:"#inheritance-identifier"}]},"class-kwarg":{captures:{1:{name:"entity.other.inherited-class.python variable.parameter.class.python"},2:{name:"keyword.operator.assignment.python"}},match:`(?x) +\\b ([[:alpha:]_]\\w*) \\s*(=)(?!=) +`},"class-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"entity.name.type.class.python"}]},codetags:{captures:{1:{name:"keyword.codetag.notation.python"}},match:"(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)"},comments:{patterns:[{begin:`(?x) +(?: +\\# \\s* (type:) +\\s*+ (?# we want \`\\s*+\` which is possessive quantifier since +we do not actually want to backtrack when matching +whitespace here) +(?! $ | \\#) +) +`,beginCaptures:{0:{name:"meta.typehint.comment.python"},1:{name:"comment.typehint.directive.notation.python"}},contentName:"meta.typehint.comment.python",end:"(?:$|(?=\\#))",name:"comment.line.number-sign.python",patterns:[{match:`(?x) +\\G ignore +(?= \\s* (?: $ | \\#)) +`,name:"comment.typehint.ignore.notation.python"},{match:`(?x) +(?<!\\.)\\b( +bool | bytes | float | int | object | str +| List | Dict | Iterable | Sequence | Set +| FrozenSet | Callable | Union | Tuple +| Any | None +)\\b +`,name:"comment.typehint.type.notation.python"},{match:"([\\[\\]\\(\\),\\.\\=\\*]|(->))",name:"comment.typehint.punctuation.notation.python"},{match:"([[:alpha:]_]\\w*)",name:"comment.typehint.variable.notation.python"}]},{include:"#comments-base"}]},"comments-base":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:"($)",name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-double-three":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:'($|(?="""))',name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-single-three":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:"($|(?='''))",name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"curly-braces":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dict.begin.python"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dict.end.python"}},patterns:[{match:":",name:"punctuation.separator.dict.python"},{include:"#expression"}]},decorator:{begin:`(?x) +^\\s* +((@)) \\s* (?=[[:alpha:]_]\\w*) +`,beginCaptures:{1:{name:"entity.name.function.decorator.python"},2:{name:"punctuation.definition.decorator.python"}},end:`(?x) +( \\) ) + +(?: (.*?) (?=\\s*(?:\\#|$)) ) +| (?=\\n|\\#) +`,endCaptures:{1:{name:"punctuation.definition.arguments.end.python"},2:{name:"invalid.illegal.decorator.python"}},name:"meta.function.decorator.python",patterns:[{include:"#decorator-name"},{include:"#function-arguments"}]},"decorator-name":{patterns:[{include:"#builtin-callables"},{include:"#illegal-object-name"},{captures:{2:{name:"punctuation.separator.period.python"}},match:`(?x) +([[:alpha:]_]\\w*) | (\\.) +`,name:"entity.name.function.decorator.python"},{include:"#line-continuation"},{captures:{1:{name:"invalid.illegal.decorator.python"}},match:`(?x) +\\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$) +`,name:"invalid.illegal.decorator.python"}]},"double-one-regexp-character-set":{patterns:[{match:`(?x) +\\[ \\^? \\] (?! .*?\\]) +`},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:'(\\]|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"double-one-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-one-regexp-character-set"},{include:"#double-one-regexp-comments"},{include:"#regexp-flags"},{include:"#double-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-one-regexp-lookahead"},{include:"#double-one-regexp-lookahead-negative"},{include:"#double-one-regexp-lookbehind"},{include:"#double-one-regexp-lookbehind-negative"},{include:"#double-one-regexp-conditional"},{include:"#double-one-regexp-parentheses-non-capturing"},{include:"#double-one-regexp-parentheses"}]},"double-one-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-three-regexp-character-set":{patterns:[{match:`(?x) +\\[ \\^? \\] (?! .*?\\]) +`},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:'(\\]|(?="""))',endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"double-three-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-three-regexp-character-set"},{include:"#double-three-regexp-comments"},{include:"#regexp-flags"},{include:"#double-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-three-regexp-lookahead"},{include:"#double-three-regexp-lookahead-negative"},{include:"#double-three-regexp-lookbehind"},{include:"#double-three-regexp-lookbehind-negative"},{include:"#double-three-regexp-conditional"},{include:"#double-three-regexp-parentheses-non-capturing"},{include:"#double-three-regexp-parentheses"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},ellipsis:{match:"\\.\\.\\.",name:"constant.other.ellipsis.python"},"escape-sequence":{match:`(?x) +\\\\ ( +x[0-9A-Fa-f]{2} +| [0-7]{1,3} +| [\\\\"'abfnrtv] +) +`,name:"constant.character.escape.python"},"escape-sequence-unicode":{patterns:[{match:`(?x) +\\\\ ( +u[0-9A-Fa-f]{4} +| U[0-9A-Fa-f]{8} +| N\\{[\\w\\s]+?\\} +) +`,name:"constant.character.escape.python"}]},expression:{comment:"All valid Python expressions",patterns:[{include:"#expression-base"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"expression-bare":{comment:"valid Python expressions w/o comments and line continuation",patterns:[{include:"#backticks"},{include:"#literal"},{include:"#regexp"},{include:"#string"},{include:"#lambda"},{include:"#generator"},{include:"#illegal-operator"},{include:"#operator"},{include:"#curly-braces"},{include:"#item-access"},{include:"#list"},{include:"#odd-function-call"},{include:"#round-braces"},{include:"#function-call"},{include:"#builtin-functions"},{include:"#builtin-types"},{include:"#builtin-exceptions"},{include:"#magic-names"},{include:"#special-names"},{include:"#illegal-names"},{include:"#special-variables"},{include:"#ellipsis"},{include:"#punctuation"},{include:"#line-continuation"}]},"expression-base":{comment:"valid Python expressions with comments and line continuation",patterns:[{include:"#comments"},{include:"#expression-bare"},{include:"#line-continuation"}]},"f-expression":{comment:"All valid Python expressions, except comments and line continuation",patterns:[{include:"#expression-bare"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"fregexp-base-expression":{patterns:[{include:"#fregexp-quantifier"},{include:"#fstring-formatting-braces"},{match:"\\{.*?\\}"},{include:"#regexp-base-common"}]},"fregexp-quantifier":{match:`(?x) +\\{\\{( +\\d+ | \\d+,(\\d+)? | ,\\d+ +)\\}\\} +`,name:"keyword.operator.quantifier.regexp"},"fstring-fnorm-quoted-multi-line":{begin:`(\\b[fF])([bBuU])?('''|""")`,beginCaptures:{1:{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},2:{name:"invalid.illegal.prefix.python"},3:{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-fnorm-quoted-single-line":{begin:`(\\b[fF])([bBuU])?((['"]))`,beginCaptures:{1:{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},2:{name:"invalid.illegal.prefix.python"},3:{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-formatting":{patterns:[{include:"#fstring-formatting-braces"},{include:"#fstring-formatting-singe-brace"}]},"fstring-formatting-braces":{patterns:[{captures:{1:{name:"constant.character.format.placeholder.other.python"},2:{name:"invalid.illegal.brace.python"},3:{name:"constant.character.format.placeholder.other.python"}},comment:"empty braces are illegal",match:"({)(\\s*?)(})"},{match:"({{|}})",name:"constant.character.escape.python"}]},"fstring-formatting-singe-brace":{match:"(}(?!}))",name:"invalid.illegal.brace.python"},"fstring-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#fstring-formatting"}]},"fstring-illegal-multi-brace":{patterns:[{include:"#impossible"}]},"fstring-illegal-single-brace":{begin:"(\\{)(?=[^\\n}]*$\\n?)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"it is illegal to have a multiline brace inside a single-line string",end:"(\\})|(?=\\n)",endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-multi-brace":{begin:"(\\{)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"value interpolation using { ... }",end:`(?x) +(\\}) +`,endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-multi"},{include:"#f-expression"}]},"fstring-multi-core":{match:`(?x) +(.+?) +( +(?# .* and .*? in multi-line match need special handling of +newlines otherwise SublimeText and Atom will match slightly +differently. + +The guard for newlines has to be separate from the +lookahead because of special $ matching rule.) +($\\n?) +| +(?=[\\\\\\}\\{]|'''|""") +) +(?# due to how multiline regexps are matched we need a special case +for matching a newline character) +| \\n +`,name:"string.interpolated.python string.quoted.multi.python"},"fstring-normf-quoted-multi-line":{begin:`(\\b[bBuU])([fF])('''|""")`,beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python string.quoted.multi.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-normf-quoted-single-line":{begin:`(\\b[bBuU])([fF])((['"]))`,beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python string.quoted.single.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#fstring-formatting"}]},"fstring-raw-multi-core":{match:`(?x) +(.+?) +( +(?# .* and .*? in multi-line match need special handling of +newlines otherwise SublimeText and Atom will match slightly +differently. + +The guard for newlines has to be separate from the +lookahead because of special $ matching rule.) +($\\n?) +| +(?=[\\\\\\}\\{]|'''|""") +) +(?# due to how multiline regexps are matched we need a special case +for matching a newline character) +| \\n +`,name:"string.interpolated.python string.quoted.raw.multi.python"},"fstring-raw-quoted-multi-line":{begin:`(\\b(?:[rR][fF]|[fF][rR]))('''|""")`,beginCaptures:{1:{name:"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python string.quoted.raw.multi.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-raw-multi-core"}]},"fstring-raw-quoted-single-line":{begin:`(\\b(?:[rR][fF]|[fF][rR]))((['"]))`,beginCaptures:{1:{name:"string.interpolated.python string.quoted.raw.single.python storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python string.quoted.raw.single.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-raw-single-core"}]},"fstring-raw-single-core":{match:`(?x) +(.+?) +( +(?# .* and .*? in multi-line match need special handling of +newlines otherwise SublimeText and Atom will match slightly +differently. + +The guard for newlines has to be separate from the +lookahead because of special $ matching rule.) +($\\n?) +| +(?=[\\\\\\}\\{]|(['"])|((?<!\\\\)\\n)) +) +(?# due to how multiline regexps are matched we need a special case +for matching a newline character) +| \\n +`,name:"string.interpolated.python string.quoted.raw.single.python"},"fstring-single-brace":{begin:"(\\{)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"value interpolation using { ... }",end:`(?x) +(\\})|(?=\\n) +`,endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-single-core":{match:`(?x) +(.+?) +( +(?# .* and .*? in multi-line match need special handling of +newlines otherwise SublimeText and Atom will match slightly +differently. + +The guard for newlines has to be separate from the +lookahead because of special $ matching rule.) +($\\n?) +| +(?=[\\\\\\}\\{]|(['"])|((?<!\\\\)\\n)) +) +(?# due to how multiline regexps are matched we need a special case +for matching a newline character) +| \\n +`,name:"string.interpolated.python string.quoted.single.python"},"fstring-terminator-multi":{patterns:[{match:"(=(![rsa])?)(?=})",name:"storage.type.format.python"},{match:"(=?![rsa])(?=})",name:"storage.type.format.python"},{captures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},match:`(?x) +( (?: =?) (?: ![rsa])? ) +( : \\w? [<>=^]? [-+ ]? \\#? +\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=}) +`},{include:"#fstring-terminator-multi-tail"}]},"fstring-terminator-multi-tail":{begin:"((?:=?)(?:![rsa])?)(:)(?=.*?{)",beginCaptures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},end:"(?=})",patterns:[{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{match:"([bcdeEfFgGnosxX%])(?=})",name:"storage.type.format.python"},{match:"(\\.\\d+)",name:"storage.type.format.python"},{match:"(,)",name:"storage.type.format.python"},{match:"(\\d+)",name:"storage.type.format.python"},{match:"(\\#)",name:"storage.type.format.python"},{match:"([-+ ])",name:"storage.type.format.python"},{match:"([<>=^])",name:"storage.type.format.python"},{match:"(\\w)",name:"storage.type.format.python"}]},"fstring-terminator-single":{patterns:[{match:"(=(![rsa])?)(?=})",name:"storage.type.format.python"},{match:"(=?![rsa])(?=})",name:"storage.type.format.python"},{captures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},match:`(?x) +( (?: =?) (?: ![rsa])? ) +( : \\w? [<>=^]? [-+ ]? \\#? +\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=}) +`},{include:"#fstring-terminator-single-tail"}]},"fstring-terminator-single-tail":{begin:"((?:=?)(?:![rsa])?)(:)(?=.*?{)",beginCaptures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},end:"(?=})|(?=\\n)",patterns:[{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{match:"([bcdeEfFgGnosxX%])(?=})",name:"storage.type.format.python"},{match:"(\\.\\d+)",name:"storage.type.format.python"},{match:"(,)",name:"storage.type.format.python"},{match:"(\\d+)",name:"storage.type.format.python"},{match:"(\\#)",name:"storage.type.format.python"},{match:"([-+ ])",name:"storage.type.format.python"},{match:"([<>=^])",name:"storage.type.format.python"},{match:"(\\w)",name:"storage.type.format.python"}]},"function-arguments":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.function-call.arguments.python",end:"(?=\\))(?!\\)\\s*\\()",patterns:[{match:"(,)",name:"punctuation.separator.arguments.python"},{captures:{1:{name:"keyword.operator.unpacking.arguments.python"}},match:`(?x) +(?:(?<=[,(])|^) \\s* (\\*{1,2}) +`},{include:"#lambda-incomplete"},{include:"#illegal-names"},{captures:{1:{name:"variable.parameter.function-call.python"},2:{name:"keyword.operator.assignment.python"}},match:"\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)"},{match:"=(?!=)",name:"keyword.operator.assignment.python"},{include:"#expression"},{captures:{1:{name:"punctuation.definition.arguments.end.python"},2:{name:"punctuation.definition.arguments.begin.python"}},match:"\\s*(\\))\\s*(\\()"}]},"function-call":{begin:`(?x) +\\b(?= +([[:alpha:]_]\\w*) \\s* (\\() +) +`,comment:'Regular function call of the type "name(args)"',end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#special-variables"},{include:"#function-name"},{include:"#function-arguments"}]},"function-declaration":{begin:`(?x) +\\s* +(?:\\b(async) \\s+)? \\b(def|fn)\\s+ +(?= +[[:alpha:]_][[:word:]]* \\s* [\\(\\[] +) +`,beginCaptures:{1:{name:"storage.type.function.async.python"},2:{name:"storage.type.function.python"}},end:`(:|(?=[#'"\\n]))`,endCaptures:{1:{name:"punctuation.section.function.begin.python"}},name:"meta.function.python",patterns:[{include:"#function-modifier"},{include:"#function-def-name"},{include:"#parameters"},{include:"#meta_parameters"},{include:"#line-continuation"},{include:"#return-annotation"}]},"function-def-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"entity.name.function.python"}]},"function-modifier":{match:"(raises|capturing)",name:"storage.modifier"},"function-name":{patterns:[{include:"#builtin-possible-callables"},{comment:"Some color schemas support meta.function-call.generic scope",match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"meta.function-call.generic.python"}]},generator:{begin:"\\bfor\\b",beginCaptures:{0:{name:"keyword.control.flow.python"}},comment:`Match "for ... in" construct used in generators and for loops to +correctly identify the "in" as a control flow keyword. +`,end:"\\bin\\b",endCaptures:{0:{name:"keyword.control.flow.python"}},patterns:[{include:"#expression"}]},"illegal-names":{captures:{1:{name:"keyword.control.flow.python"},2:{name:"storage.type.function.python"},3:{name:"keyword.control.import.python"}},match:`(?x) +\\b(?: +( +and | assert | async | await | break | class | struct | trait | continue | del | elif | else | except | finally | for | from | global +| if | in | is | (?<=\\.)lambda | lambda(?=\\s*[\\.=]) +| nonlocal | not | or | pass | raise | return | try | while | with +| yield +) | (def | fn | capturing | raises) | ( +as | import +) +)\\b +`},"illegal-object-name":{comment:`It's illegal to name class or function "True"`,match:"\\b(True|False|None)\\b",name:"keyword.illegal.name.python"},"illegal-operator":{patterns:[{match:"&&|\\|\\||--|\\+\\+",name:"invalid.illegal.operator.python"},{match:"[?$]",name:"invalid.illegal.operator.python"},{comment:"We don't want `!` to flash when we're typing `!=`",match:"!\\b",name:"invalid.illegal.operator.python"}]},import:{comment:"Import statements used to correctly mark `from`, `import`, and `as`\n",patterns:[{begin:"\\b(?<!\\.)(from)\\b(?=.+import)",beginCaptures:{1:{name:"keyword.control.import.python"}},end:"$|(?=import)",patterns:[{match:"\\.+",name:"punctuation.separator.period.python"},{include:"#expression"}]},{begin:"\\b(?<!\\.)(import)\\b",beginCaptures:{1:{name:"keyword.control.import.python"}},end:"$",patterns:[{match:"\\b(?<!\\.)as\\b",name:"keyword.control.import.python"},{include:"#expression"}]}]},impossible:{comment:"This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.",match:"$.^"},"inheritance-identifier":{captures:{1:{name:"entity.other.inherited-class.python"}},match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`},"inheritance-name":{patterns:[{include:"#lambda-incomplete"},{include:"#builtin-possible-callables"},{include:"#inheritance-identifier"}]},"item-access":{patterns:[{begin:`(?x) +\\b(?= +[[:alpha:]_]\\w* \\s* \\[ +) +`,end:"(\\])",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.item-access.python",patterns:[{include:"#item-name"},{include:"#item-index"},{include:"#expression"}]}]},"item-index":{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.item-access.arguments.python",end:"(?=\\])",patterns:[{match:":",name:"punctuation.separator.slice.python"},{include:"#expression"}]},"item-name":{patterns:[{include:"#special-variables"},{include:"#builtin-functions"},{include:"#special-names"},{match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"meta.indexed-name.python"}]},lambda:{patterns:[{captures:{1:{name:"keyword.control.flow.python"}},match:"((?<=\\.)lambda|lambda(?=\\s*[\\.=]))"},{captures:{1:{name:"storage.type.function.lambda.python"}},match:"\\b(lambda)\\s*?(?=[,\\n]|$)"},{begin:`(?x) +\\b (lambda) \\b +`,beginCaptures:{1:{name:"storage.type.function.lambda.python"}},contentName:"meta.function.lambda.parameters.python",end:"(:)|(\\n)",endCaptures:{1:{name:"punctuation.section.function.lambda.begin.python"}},name:"meta.lambda-function.python",patterns:[{match:"\\b(owned|borrowed|inout)\\b",name:"storage.modifier"},{match:"/",name:"keyword.operator.positional.parameter.python"},{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-nested-incomplete"},{include:"#illegal-names"},{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.parameters.python"}},match:"([[:alpha:]_]\\w*)\\s*(?:(,)|(?=:|$))"},{include:"#comments"},{include:"#backticks"},{include:"#lambda-parameter-with-default"},{include:"#line-continuation"},{include:"#illegal-operator"}]}]},"lambda-incomplete":{match:"\\blambda(?=\\s*[,)])",name:"storage.type.function.lambda.python"},"lambda-nested-incomplete":{match:"\\blambda(?=\\s*[:,)])",name:"storage.type.function.lambda.python"},"lambda-parameter-with-default":{begin:`(?x) +\\b +([[:alpha:]_]\\w*) \\s* (=) +`,beginCaptures:{1:{name:"variable.parameter.function.language.python"},2:{name:"keyword.operator.python"}},end:"(,)|(?=:|$)",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"line-continuation":{patterns:[{captures:{1:{name:"punctuation.separator.continuation.line.python"},2:{name:"invalid.illegal.line.continuation.python"}},match:"(\\\\)\\s*(\\S.*$\\n?)"},{begin:"(\\\\)\\s*$\\n?",beginCaptures:{1:{name:"punctuation.separator.continuation.line.python"}},end:`(?x) +(?=^\\s*$) +| +(?! (\\s* [rR]? (\\'\\'\\'|\\"\\"\\"|\\'|\\")) +| +(\\G $) (?# '\\G' is necessary for ST) +) +`,patterns:[{include:"#regexp"},{include:"#string"}]}]},list:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.list.begin.python"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.list.end.python"}},patterns:[{include:"#expression"}]},literal:{patterns:[{match:"\\b(True|False|None|NotImplemented|Ellipsis)\\b",name:"constant.language.python"},{include:"#number"}]},"loose-default":{begin:"(=)",beginCaptures:{1:{name:"keyword.operator.python"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"magic-function-names":{captures:{1:{name:"support.function.magic.python"}},comment:`these methods have magic interpretation by python and are generally called +indirectly through syntactic constructs +`,match:`(?x) +\\b( +__(?: +abs | add | aenter | aexit | aiter | and | anext +| await | bool | call | ceil | class_getitem +| cmp | coerce | complex | contains | copy +| deepcopy | del | delattr | delete | delitem +| delslice | dir | div | divmod | enter | eq +| exit | float | floor | floordiv | format | ge +| get | getattr | getattribute | getinitargs +| getitem | getnewargs | getslice | getstate | gt +| hash | hex | iadd | iand | idiv | ifloordiv | +| ilshift | imod | imul | index | init +| instancecheck | int | invert | ior | ipow +| irshift | isub | iter | itruediv | ixor | le +| len | long | lshift | lt | missing | mod | mul +| ne | neg | new | next | nonzero | oct | or | pos +| pow | radd | rand | rdiv | rdivmod | reduce +| reduce_ex | repr | reversed | rfloordiv | +| rlshift | rmod | rmul | ror | round | rpow +| rrshift | rshift | rsub | rtruediv | rxor | set +| setattr | setitem | set_name | setslice +| setstate | sizeof | str | sub | subclasscheck +| truediv | trunc | unicode | xor | matmul +| rmatmul | imatmul | init_subclass | set_name +| fspath | bytes | prepare | length_hint +)__ +)\\b +`},"magic-names":{patterns:[{include:"#magic-function-names"},{include:"#magic-variable-names"}]},"magic-variable-names":{captures:{1:{name:"support.variable.magic.python"}},comment:"magic variables which a class/module may have.",match:`(?x) +\\b( +__(?: +all | annotations | bases | builtins | class +| struct +| trait +| closure | code | debug | defaults | dict | doc | file | func +| globals | kwdefaults | match_args | members | metaclass | methods +| module | mro | mro_entries | name | qualname | post_init | self +| signature | slots | subclasses | version | weakref | wrapped +| classcell | spec | path | package | future | traceback +)__ +)\\b +`},"member-access":{begin:"(\\.)\\s*(?!\\.)",beginCaptures:{1:{name:"punctuation.separator.period.python"}},end:`(?x) + + +(?<=\\S)(?=\\W) | + + +(^|(?<=\\s))(?=[^\\\\\\w\\s]) | +$ +`,name:"meta.member.access.python",patterns:[{include:"#function-call"},{include:"#member-access-base"},{include:"#member-access-attribute"}]},"member-access-attribute":{comment:"Highlight attribute access in otherwise non-specialized cases.",match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"meta.attribute.python"},"member-access-base":{patterns:[{include:"#magic-names"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#special-names"},{include:"#line-continuation"},{include:"#item-access"}]},"member-access-class":{begin:"(\\.)\\s*(?!\\.)",beginCaptures:{1:{name:"punctuation.separator.period.python"}},end:"(?<=\\S)(?=\\W)|$",name:"meta.member.access.python",patterns:[{include:"#call-wrapper-inheritance"},{include:"#member-access-base"},{include:"#inheritance-identifier"}]},meta_parameters:{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.python"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.parameters.end.python"}},name:"meta.function.parameters.python",patterns:[{begin:`(?x) +\\b +([[:alpha:]_]\\w*) \\s* (:) +`,beginCaptures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.annotation.python"}},end:"(,)|(?=\\])",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},{include:"#comments"}]},number:{name:"constant.numeric.python",patterns:[{include:"#number-float"},{include:"#number-dec"},{include:"#number-hex"},{include:"#number-oct"},{include:"#number-bin"},{include:"#number-long"},{match:"\\b[0-9]+\\w+",name:"invalid.illegal.name.python"}]},"number-bin":{captures:{1:{name:"storage.type.number.python"}},match:`(?x) +(?<![\\w\\.]) +(0[bB]) (_?[01])+ +\\b +`,name:"constant.numeric.bin.python"},"number-dec":{captures:{1:{name:"storage.type.imaginary.number.python"},2:{name:"invalid.illegal.dec.python"}},match:`(?x) +(?<![\\w\\.])(?: +[1-9](?: _?[0-9] )* +| +0+ +| +[0-9](?: _?[0-9] )* ([jJ]) +| +0 ([0-9]+)(?![eE\\.]) +)\\b +`,name:"constant.numeric.dec.python"},"number-float":{captures:{1:{name:"storage.type.imaginary.number.python"}},match:`(?x) +(?<! \\w)(?: +(?: +\\.[0-9](?: _?[0-9] )* +| +[0-9](?: _?[0-9] )* \\. [0-9](?: _?[0-9] )* +| +[0-9](?: _?[0-9] )* \\. +) (?: [eE][+-]?[0-9](?: _?[0-9] )* )? +| +[0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* ) +)([jJ])?\\b +`,name:"constant.numeric.float.python"},"number-hex":{captures:{1:{name:"storage.type.number.python"}},match:`(?x) +(?<![\\w\\.]) +(0[xX]) (_?[0-9a-fA-F])+ +\\b +`,name:"constant.numeric.hex.python"},"number-long":{captures:{2:{name:"storage.type.number.python"}},comment:"this is to support python2 syntax for long ints",match:`(?x) +(?<![\\w\\.]) +([1-9][0-9]* | 0) ([lL]) +\\b +`,name:"constant.numeric.bin.python"},"number-oct":{captures:{1:{name:"storage.type.number.python"}},match:`(?x) +(?<![\\w\\.]) +(0[oO]) (_?[0-7])+ +\\b +`,name:"constant.numeric.oct.python"},"odd-function-call":{begin:`(?x) +(?<= \\] | \\) ) \\s* +(?=\\() +`,comment:`A bit obscured function call where there may have been an +arbitrary number of other operations to get the function. +E.g. "arr[idx](args)" +`,end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#function-arguments"}]},operator:{captures:{1:{name:"keyword.operator.logical.python"},2:{name:"keyword.control.flow.python"},3:{name:"keyword.operator.bitwise.python"},4:{name:"keyword.operator.arithmetic.python"},5:{name:"keyword.operator.comparison.python"},6:{name:"keyword.operator.assignment.python"}},match:`(?x) +\\b(?<!\\.) +(?: +(and | or | not | in | is) (?# 1) +| +(for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2) +) +(?!\\s*:)\\b + +| (<< | >> | & | \\| | \\^ | ~) (?# 3) + +| (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4) + +| (!= | == | >= | <= | < | >) (?# 5) + +| (:=) (?# 6) +`},"parameter-special":{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"variable.parameter.function.language.special.self.python"},3:{name:"variable.parameter.function.language.special.cls.python"},4:{name:"punctuation.separator.parameters.python"}},match:`(?x) +\\b ((self)|(cls)) \\b \\s*(?:(,)|(?=\\))) +`},parameters:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.python"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.python"}},name:"meta.function.parameters.python",patterns:[{match:"\\b(owned|borrowed|inout)\\b",name:"storage.modifier"},{match:"/",name:"keyword.operator.positional.parameter.python"},{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-incomplete"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#parameter-special"},{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.parameters.python"}},match:`(?x) +([[:alpha:]_]\\w*) +\\s* (?: (,) | (?=[)#\\n=])) +`},{include:"#comments"},{include:"#loose-default"},{include:"#annotated-parameter"}]},punctuation:{patterns:[{match:":",name:"punctuation.separator.colon.python"},{match:",",name:"punctuation.separator.element.python"}]},regexp:{patterns:[{include:"#regexp-single-three-line"},{include:"#regexp-double-three-line"},{include:"#regexp-single-one-line"},{include:"#regexp-double-one-line"}]},"regexp-backreference":{captures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},2:{name:"entity.name.tag.named.backreference.regexp"},3:{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}},match:`(?x) +(\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\)) +`,name:"meta.backreference.named.regexp"},"regexp-backreference-number":{captures:{1:{name:"entity.name.tag.backreference.regexp"}},match:"(\\\\[1-9]\\d?)",name:"meta.backreference.regexp"},"regexp-base-common":{patterns:[{match:"\\.",name:"support.other.match.any.regexp"},{match:"\\^",name:"support.other.match.begin.regexp"},{match:"\\$",name:"support.other.match.end.regexp"},{match:"[+*?]\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.disjunction.regexp"},{include:"#regexp-escape-sequence"}]},"regexp-base-expression":{patterns:[{include:"#regexp-quantifier"},{include:"#regexp-base-common"}]},"regexp-charecter-set-escapes":{patterns:[{match:"\\\\[abfnrtv\\\\]",name:"constant.character.escape.regexp"},{include:"#regexp-escape-special"},{match:"\\\\([0-7]{1,3})",name:"constant.character.escape.regexp"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-escape-catchall"}]},"regexp-double-one-line":{begin:'\\b(([uU]r)|([bB]r)|(r[bB]?))(")',beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:'(")|(?<!\\\\)(\\n)',endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#double-one-regexp-expression"}]},"regexp-double-three-line":{begin:'\\b(([uU]r)|([bB]r)|(r[bB]?))(""")',beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:'(""")',endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#double-three-regexp-expression"}]},"regexp-escape-catchall":{match:"\\\\(.|\\n)",name:"constant.character.escape.regexp"},"regexp-escape-character":{match:`(?x) +\\\\ ( +x[0-9A-Fa-f]{2} +| 0[0-7]{1,2} +| [0-7]{3} +) +`,name:"constant.character.escape.regexp"},"regexp-escape-sequence":{patterns:[{include:"#regexp-escape-special"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-backreference-number"},{include:"#regexp-escape-catchall"}]},"regexp-escape-special":{match:"\\\\([AbBdDsSwWZ])",name:"support.other.escape.special.regexp"},"regexp-escape-unicode":{match:`(?x) +\\\\ ( +u[0-9A-Fa-f]{4} +| U[0-9A-Fa-f]{8} +) +`,name:"constant.character.unicode.regexp"},"regexp-flags":{match:"\\(\\?[aiLmsux]+\\)",name:"storage.modifier.flag.regexp"},"regexp-quantifier":{match:`(?x) +\\{( +\\d+ | \\d+,(\\d+)? | ,\\d+ +)\\} +`,name:"keyword.operator.quantifier.regexp"},"regexp-single-one-line":{begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:"(\\')|(?<!\\\\)(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#single-one-regexp-expression"}]},"regexp-single-three-line":{begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:"(\\'\\'\\')",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#single-three-regexp-expression"}]},"return-annotation":{begin:"(->)",beginCaptures:{1:{name:"punctuation.separator.annotation.result.python"}},end:"(?=:)",patterns:[{include:"#expression"}]},"round-braces":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.begin.python"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.end.python"}},patterns:[{include:"#expression"}]},semicolon:{patterns:[{match:"\\;$",name:"invalid.deprecated.semicolon.python"}]},"single-one-regexp-character-set":{patterns:[{match:`(?x) +\\[ \\^? \\] (?! .*?\\]) +`},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:"(\\]|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"single-one-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-one-regexp-character-set"},{include:"#single-one-regexp-comments"},{include:"#regexp-flags"},{include:"#single-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-one-regexp-lookahead"},{include:"#single-one-regexp-lookahead-negative"},{include:"#single-one-regexp-lookbehind"},{include:"#single-one-regexp-lookbehind-negative"},{include:"#single-one-regexp-conditional"},{include:"#single-one-regexp-parentheses-non-capturing"},{include:"#single-one-regexp-parentheses"}]},"single-one-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-three-regexp-character-set":{patterns:[{match:`(?x) +\\[ \\^? \\] (?! .*?\\]) +`},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:"(\\]|(?=\\'\\'\\'))",endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"single-three-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-three-regexp-character-set"},{include:"#single-three-regexp-comments"},{include:"#regexp-flags"},{include:"#single-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-three-regexp-lookahead"},{include:"#single-three-regexp-lookahead-negative"},{include:"#single-three-regexp-lookbehind"},{include:"#single-three-regexp-lookbehind-negative"},{include:"#single-three-regexp-conditional"},{include:"#single-three-regexp-parentheses-non-capturing"},{include:"#single-three-regexp-parentheses"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"special-names":{match:`(?x) +\\b + + + + + +( +_* [[:upper:]] [_\\d]* [[:upper:]] +) +[[:upper:]\\d]* (_\\w*)? +\\b +`,name:"constant.other.caps.python"},"special-variables":{captures:{1:{name:"variable.language.special.self.python"},2:{name:"variable.language.special.cls.python"}},match:`(?x) +\\b (?<!\\.) (?: +(self) | (cls) +)\\b +`},statement:{patterns:[{include:"#import"},{include:"#class-declaration"},{include:"#function-declaration"},{include:"#generator"},{include:"#statement-keyword"},{include:"#assignment-operator"},{include:"#decorator"},{include:"#semicolon"}]},"statement-keyword":{patterns:[{match:"\\b((async\\s+)?\\s*(def|fn))\\b",name:"storage.type.function.python"},{comment:`if \`as\` is eventually followed by \`:\` or line continuation +it's probably control flow like: + with foo as bar, \\ + Foo as Bar: + try: + do_stuff() + except Exception as e: + pass +`,match:"\\b(?<!\\.)as\\b(?=.*[:\\\\])",name:"keyword.control.flow.python"},{comment:"other legal use of `as` is in an import",match:"\\b(?<!\\.)as\\b",name:"keyword.control.import.python"},{match:`(?x) +\\b(?<!\\.)( +async | continue | del | assert | break | finally | for +| from | elif | else | if | except | pass | raise +| return | try | while | with +)\\b +`,name:"keyword.control.flow.python"},{match:`(?x) +\\b(?<!\\.)( +global | nonlocal +)\\b +`,name:"storage.modifier.declaration.python"},{match:"\\b(?<!\\.)(class|struct|trait)\\b",name:"storage.type.class.python"},{captures:{1:{name:"keyword.control.flow.python"}},match:`(?x) +^\\s*( +case | match +)(?=\\s*([-+\\w\\d(\\[{'":#]|$))\\b +`},{captures:{1:{name:"storage.modifier.declaration.python"},2:{name:"variable.other.python"}},match:"\\b(var|let|alias) \\s*([[:alpha:]_]\\w*)\\b"}]},string:{patterns:[{include:"#string-quoted-multi-line"},{include:"#string-quoted-single-line"},{include:"#string-bin-quoted-multi-line"},{include:"#string-bin-quoted-single-line"},{include:"#string-raw-quoted-multi-line"},{include:"#string-raw-quoted-single-line"},{include:"#string-raw-bin-quoted-multi-line"},{include:"#string-raw-bin-quoted-single-line"},{include:"#fstring-fnorm-quoted-multi-line"},{include:"#fstring-fnorm-quoted-single-line"},{include:"#fstring-normf-quoted-multi-line"},{include:"#fstring-normf-quoted-single-line"},{include:"#fstring-raw-quoted-multi-line"},{include:"#fstring-raw-quoted-single-line"}]},"string-bin-quoted-multi-line":{begin:`(\\b[bB])('''|""")`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.multi.python",patterns:[{include:"#string-entity"}]},"string-bin-quoted-single-line":{begin:`(\\b[bB])((['"]))`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.single.python",patterns:[{include:"#string-entity"}]},"string-brace-formatting":{patterns:[{captures:{1:{name:"constant.character.format.placeholder.other.python"},3:{name:"storage.type.format.python"},4:{name:"storage.type.format.python"}},match:`(?x) +( +{{ | }} +| (?: +{ +\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'"]+\\])* +(![rsa])? +( : \\w? [<>=^]? [-+ ]? \\#? +\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )? +}) +) +`,name:"meta.format.brace.python"},{captures:{1:{name:"constant.character.format.placeholder.other.python"},3:{name:"storage.type.format.python"},4:{name:"storage.type.format.python"}},match:`(?x) +( +{ +\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'"]+\\])* +(![rsa])? +(:) +[^'"{}\\n]* (?: +\\{ [^'"}\\n]*? \\} [^'"{}\\n]* +)* +} +) +`,name:"meta.format.brace.python"}]},"string-consume-escape":{match:`\\\\['"\\n\\\\]`},"string-entity":{patterns:[{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#string-formatting"}]},"string-formatting":{captures:{1:{name:"constant.character.format.placeholder.other.python"}},match:`(?x) +( +% (\\([\\w\\s]*\\))? +[-+#0 ]* +(\\d+|\\*)? (\\.(\\d+|\\*))? +([hlL])? +[diouxXeEfFgGcrsab%] +) +`,name:"meta.format.percent.python"},"string-line-continuation":{match:"\\\\$",name:"constant.language.python"},"string-mojo-code-block":{begin:"^(\\s*\\`{3,})(mojo)$",beginCaptures:{1:{name:"string.quoted.single.python"},2:{name:"string.quoted.single.python"}},contentName:"source.mojo",end:"^(\\1)$",endCaptures:{1:{name:"string.quoted.single.python"}},name:"meta.embedded.block.mojo",patterns:[{include:"source.mojo"}]},"string-multi-bad-brace1-formatting-raw":{begin:`(?x) +(?= \\{% +( .*? (?!'''|""") ) +%\\} +) +`,comment:"template using {% ... %}",end:`(?='''|""")`,patterns:[{include:"#string-consume-escape"}]},"string-multi-bad-brace1-formatting-unicode":{begin:`(?x) +(?= \\{% +( .*? (?!'''|""") ) +%\\} +) +`,comment:"template using {% ... %}",end:`(?='''|""")`,patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-multi-bad-brace2-formatting-raw":{begin:`(?x) +(?!\\{\\{) +(?= \\{ ( +\\w*? (?!'''|""") [^!:\\.\\[}\\w] +) +.*?(?!'''|""") +\\} +) +`,comment:"odd format or format-like syntax",end:`(?='''|""")`,patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-multi-bad-brace2-formatting-unicode":{begin:`(?x) +(?!\\{\\{) +(?= \\{ ( +\\w*? (?!'''|""") [^!:\\.\\[}\\w] +) +.*?(?!'''|""") +\\} +) +`,comment:"odd format or format-like syntax",end:`(?='''|""")`,patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-quoted-multi-line":{begin:`(?:\\b([rR])(?=[uU]))?([uU])?('''|""")`,beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-unicode"},{include:"#string-multi-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-quoted-single-line":{begin:`(?:\\b([rR])(?=[uU]))?([uU])?((['"]))`,beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-unicode"},{include:"#string-single-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-raw-bin-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-raw-bin-quoted-multi-line":{begin:`(\\b(?:R[bB]|[bB]R))('''|""")`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.multi.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-bin-quoted-single-line":{begin:`(\\b(?:R[bB]|[bB]R))((['"]))`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.single.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"},{include:"#string-brace-formatting"}]},"string-raw-quoted-multi-line":{begin:`\\b(([uU]R)|(R))('''|""")`,beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"punctuation.definition.string.begin.python"}},end:"(\\4)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-raw"},{include:"#string-multi-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-raw-quoted-single-line":{begin:`\\b(([uU]R)|(R))((['"]))`,beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"punctuation.definition.string.begin.python"}},end:"(\\4)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-raw"},{include:"#string-single-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-single-bad-brace1-formatting-raw":{begin:`(?x) +(?= \\{% +( .*? (?!(['"])|((?<!\\\\)\\n)) ) +%\\} +) +`,comment:"template using {% ... %}",end:`(?=(['"])|((?<!\\\\)\\n))`,patterns:[{include:"#string-consume-escape"}]},"string-single-bad-brace1-formatting-unicode":{begin:`(?x) +(?= \\{% +( .*? (?!(['"])|((?<!\\\\)\\n)) ) +%\\} +) +`,comment:"template using {% ... %}",end:`(?=(['"])|((?<!\\\\)\\n))`,patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-single-bad-brace2-formatting-raw":{begin:`(?x) +(?!\\{\\{) +(?= \\{ ( +\\w*? (?!(['"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w] +) +.*?(?!(['"])|((?<!\\\\)\\n)) +\\} +) +`,comment:"odd format or format-like syntax",end:`(?=(['"])|((?<!\\\\)\\n))`,patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-single-bad-brace2-formatting-unicode":{begin:`(?x) +(?!\\{\\{) +(?= \\{ ( +\\w*? (?!(['"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w] +) +.*?(?!(['"])|((?<!\\\\)\\n)) +\\} +) +`,comment:"odd format or format-like syntax",end:`(?=(['"])|((?<!\\\\)\\n))`,patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-unicode-guts":{patterns:[{include:"#string-mojo-code-block"},{include:"#escape-sequence-unicode"},{include:"#string-entity"},{include:"#string-brace-formatting"}]}},scopeName:"source.mojo"});var n=[e];export{n as default}; diff --git a/assets/chunks/monokai.sMI-pExk.js b/assets/chunks/monokai.sMI-pExk.js new file mode 100644 index 000000000..660a95466 --- /dev/null +++ b/assets/chunks/monokai.sMI-pExk.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.background":"#272822","activityBar.foreground":"#f8f8f2","badge.background":"#75715E","badge.foreground":"#f8f8f2","button.background":"#75715E","debugToolBar.background":"#1e1f1c","diffEditor.insertedTextBackground":"#4b661680","diffEditor.removedTextBackground":"#90274A70","dropdown.background":"#414339","dropdown.listBackground":"#1e1f1c","editor.background":"#272822","editor.foreground":"#f8f8f2","editor.lineHighlightBackground":"#3e3d32","editor.selectionBackground":"#878b9180","editor.selectionHighlightBackground":"#575b6180","editor.wordHighlightBackground":"#4a4a7680","editor.wordHighlightStrongBackground":"#6a6a9680","editorCursor.foreground":"#f8f8f0","editorGroup.border":"#34352f","editorGroup.dropBackground":"#41433980","editorGroupHeader.tabsBackground":"#1e1f1c","editorHoverWidget.background":"#414339","editorHoverWidget.border":"#75715E","editorIndentGuide.activeBackground":"#767771","editorIndentGuide.background":"#464741","editorLineNumber.activeForeground":"#c2c2bf","editorLineNumber.foreground":"#90908a","editorSuggestWidget.background":"#272822","editorSuggestWidget.border":"#75715E","editorWhitespace.foreground":"#464741","editorWidget.background":"#1e1f1c",focusBorder:"#99947c","input.background":"#414339","inputOption.activeBorder":"#75715E","inputValidation.errorBackground":"#90274A","inputValidation.errorBorder":"#f92672","inputValidation.infoBackground":"#546190","inputValidation.infoBorder":"#819aff","inputValidation.warningBackground":"#848528","inputValidation.warningBorder":"#e2e22e","list.activeSelectionBackground":"#75715E","list.dropBackground":"#414339","list.highlightForeground":"#f8f8f2","list.hoverBackground":"#3e3d32","list.inactiveSelectionBackground":"#414339","menu.background":"#1e1f1c","menu.foreground":"#cccccc","minimap.selectionHighlight":"#878b9180","panel.border":"#414339","panelTitle.activeBorder":"#75715E","panelTitle.activeForeground":"#f8f8f2","panelTitle.inactiveForeground":"#75715E","peekView.border":"#75715E","peekViewEditor.background":"#272822","peekViewEditor.matchHighlightBackground":"#75715E","peekViewResult.background":"#1e1f1c","peekViewResult.matchHighlightBackground":"#75715E","peekViewResult.selectionBackground":"#414339","peekViewTitle.background":"#1e1f1c","pickerGroup.foreground":"#75715E","ports.iconRunningProcessForeground":"#ccccc7","progressBar.background":"#75715E","quickInputList.focusBackground":"#414339","selection.background":"#878b9180","settings.focusedRowBackground":"#4143395A","sideBar.background":"#1e1f1c","sideBarSectionHeader.background":"#272822","statusBar.background":"#414339","statusBar.debuggingBackground":"#75715E","statusBar.noFolderBackground":"#414339","statusBarItem.remoteBackground":"#AC6218","tab.border":"#1e1f1c","tab.inactiveBackground":"#34352f","tab.inactiveForeground":"#ccccc7","tab.lastPinnedBorder":"#414339","terminal.ansiBlack":"#333333","terminal.ansiBlue":"#6A7EC8","terminal.ansiBrightBlack":"#666666","terminal.ansiBrightBlue":"#819aff","terminal.ansiBrightCyan":"#66D9EF","terminal.ansiBrightGreen":"#A6E22E","terminal.ansiBrightMagenta":"#AE81FF","terminal.ansiBrightRed":"#f92672","terminal.ansiBrightWhite":"#f8f8f2","terminal.ansiBrightYellow":"#e2e22e","terminal.ansiCyan":"#56ADBC","terminal.ansiGreen":"#86B42B","terminal.ansiMagenta":"#8C6BC8","terminal.ansiRed":"#C4265E","terminal.ansiWhite":"#e3e3dd","terminal.ansiYellow":"#B3B42B","titleBar.activeBackground":"#1e1f1c","widget.shadow":"#00000098"},displayName:"Monokai",name:"monokai",semanticHighlighting:!0,tokenColors:[{settings:{foreground:"#F8F8F2"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#F8F8F2"}},{scope:"comment",settings:{foreground:"#88846f"}},{scope:"string",settings:{foreground:"#E6DB74"}},{scope:["punctuation.definition.template-expression","punctuation.section.embedded"],settings:{foreground:"#F92672"}},{scope:["meta.template.expression"],settings:{foreground:"#F8F8F2"}},{scope:"constant.numeric",settings:{foreground:"#AE81FF"}},{scope:"constant.language",settings:{foreground:"#AE81FF"}},{scope:"constant.character, constant.other",settings:{foreground:"#AE81FF"}},{scope:"variable",settings:{fontStyle:"",foreground:"#F8F8F2"}},{scope:"keyword",settings:{foreground:"#F92672"}},{scope:"storage",settings:{fontStyle:"",foreground:"#F92672"}},{scope:"storage.type",settings:{fontStyle:"italic",foreground:"#66D9EF"}},{scope:"entity.name.type, entity.name.class, entity.name.namespace, entity.name.scope-resolution",settings:{fontStyle:"underline",foreground:"#A6E22E"}},{scope:"entity.other.inherited-class",settings:{fontStyle:"italic underline",foreground:"#A6E22E"}},{scope:"entity.name.function",settings:{fontStyle:"",foreground:"#A6E22E"}},{scope:"variable.parameter",settings:{fontStyle:"italic",foreground:"#FD971F"}},{scope:"entity.name.tag",settings:{fontStyle:"",foreground:"#F92672"}},{scope:"entity.other.attribute-name",settings:{fontStyle:"",foreground:"#A6E22E"}},{scope:"support.function",settings:{fontStyle:"",foreground:"#66D9EF"}},{scope:"support.constant",settings:{fontStyle:"",foreground:"#66D9EF"}},{scope:"support.type, support.class",settings:{fontStyle:"italic",foreground:"#66D9EF"}},{scope:"support.other.variable",settings:{fontStyle:""}},{scope:"invalid",settings:{fontStyle:"",foreground:"#F44747"}},{scope:"invalid.deprecated",settings:{foreground:"#F44747"}},{scope:"meta.structure.dictionary.json string.quoted.double.json",settings:{foreground:"#CFCFC2"}},{scope:"meta.diff, meta.diff.header",settings:{foreground:"#75715E"}},{scope:"markup.deleted",settings:{foreground:"#F92672"}},{scope:"markup.inserted",settings:{foreground:"#A6E22E"}},{scope:"markup.changed",settings:{foreground:"#E6DB74"}},{scope:"constant.numeric.line-number.find-in-files - match",settings:{foreground:"#AE81FFA0"}},{scope:"entity.name.filename.find-in-files",settings:{foreground:"#E6DB74"}},{scope:"markup.quote",settings:{foreground:"#F92672"}},{scope:"markup.list",settings:{foreground:"#E6DB74"}},{scope:"markup.bold, markup.italic",settings:{foreground:"#66D9EF"}},{scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#FD971F"}},{scope:"markup.heading",settings:{foreground:"#A6E22E"}},{scope:"markup.heading.setext",settings:{fontStyle:"bold",foreground:"#A6E22E"}},{scope:"markup.heading.markdown",settings:{fontStyle:"bold"}},{scope:"markup.quote.markdown",settings:{fontStyle:"italic",foreground:"#75715E"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{scope:"string.other.link.title.markdown,string.other.link.description.markdown",settings:{foreground:"#AE81FF"}},{scope:"markup.underline.link.markdown,markup.underline.link.image.markdown",settings:{foreground:"#E6DB74"}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.list.unnumbered.markdown, markup.list.numbered.markdown",settings:{foreground:"#f8f8f2"}},{scope:["punctuation.definition.list.begin.markdown"],settings:{foreground:"#A6E22E"}},{scope:"token.info-token",settings:{foreground:"#6796e6"}},{scope:"token.warn-token",settings:{foreground:"#cd9731"}},{scope:"token.error-token",settings:{foreground:"#f44747"}},{scope:"token.debug-token",settings:{foreground:"#b267e6"}},{scope:"variable.language",settings:{foreground:"#FD971F"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/move.C9UBdavN.js b/assets/chunks/move.C9UBdavN.js new file mode 100644 index 000000000..26ec1c0c6 --- /dev/null +++ b/assets/chunks/move.C9UBdavN.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Move",name:"move",patterns:[{include:"#address"},{include:"#comments"},{include:"#module"},{include:"#script"},{include:"#attributes"},{begin:"\\b(while)\\b",comment:"While experiment",name:"keyword.control.while.whaaat.move",while:"[a-z]"}],repository:{"=== DEPRECATED_BELOW ===":{},abilities:{comment:"Ability",match:"\\b(store|key|drop|copy)\\b",name:"support.type.ability.move"},address:{begin:"\\b(address)\\b",beginCaptures:{1:{name:"storage.modifier.type.address.keyword.move"}},comment:"Address block",end:"(?<=})",name:"meta.address_block.move",patterns:[{include:"#comments"},{begin:"(?<=address)",comment:"Address value/const",end:"(?=[{])",name:"meta.address.definition.move",patterns:[{include:"#comments"},{include:"#address_literal"},{comment:"Named Address",match:"\\b(\\w+)\\b",name:"entity.name.type.move"}]},{include:"#module"}]},as:{comment:"Keyword as (highlighted)",match:"\\b(as)\\b",name:"keyword.control.as.move"},"as-import":{comment:"Keyword as in import statement; not highlighted",match:"\\b(as)\\b",name:"meta.import.as.move"},attributes:{match:'#\\[(?:[\\w0-9=,_\\(\\)\\s"\\:=]+)\\]',name:"support.constant.attribute.move"},block:{begin:"{",comment:"Block expression or definition",end:"}",name:"meta.block.move",patterns:[{include:"#expr"}]},"block-comments":{comment:"Supported since https://github.com/diem/diem/pull/3714",patterns:[{begin:"/\\*[\\*!](?![\\*/])",comment:"Block documentation comment",end:"\\*/",name:"comment.block.documentation.move"},{begin:"/\\*",comment:"Block comment",end:"\\*/",name:"comment.block.move"}]},capitalized:{comment:"MyType - capitalized type name",match:"\\b([A-Z][a-zA-Z_0-9]*)\\b",name:"entity.name.type.use.move"},comments:{name:"meta.comments.move",patterns:[{include:"#line-comments"},{include:"#block-comments"}]},const:{begin:"\\b(const)\\b",beginCaptures:{1:{name:"storage.modifier.const.move"}},end:";",name:"meta.const.move",patterns:[{include:"#comments"},{include:"#primitives"},{include:"#literals"},{match:"\\b([\\w_]+)\\b",name:"constant.other.move"}]},control:{comment:"Control flow",match:"\\b(return|while|loop|if|else|break|continue|abort)\\b",name:"keyword.control.move"},entry:{comment:"entry",match:"\\b(entry)\\b",name:"storage.modifier.visibility.entry.move"},enum:{begin:"\\b(enum)\\b",beginCaptures:{1:{name:"keyword.control.enum.move"}},comment:"Enum syntax",end:"(?<=})",name:"meta.enum.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{include:"#type_param"},{comment:"Enum name (ident)",match:"\\b[A-Z][a-zA-Z_0-9]*\\b",name:"entity.name.type.enum.move"},{include:"#has"},{include:"#abilities"},{begin:"{",end:"}",name:"meta.enum.definition.move",patterns:[{include:"#comments"},{begin:"\\(",end:"\\)",name:"meta.enum.tuple.move",patterns:[{include:"#comments"},{include:"#types"}]},{begin:"{",end:"}",name:"meta.enum.struct.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{include:"#types"}]}]}]},error_const:{match:"\\b(E[A-Z][A-Za-z_]*)\\b",name:"variable.language.error.move"},escaped_identifier:{begin:"`",comment:"Escaped variable",end:"`",name:"variable.language.escaped.move"},expr:{comment:"Aggregate Expression",name:"meta.expression.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{include:"#expr_generic"},{include:"#error_const"},{include:"#packed_field"},{include:"#import"},{include:"#as"},{include:"#mut"},{include:"#let"},{include:"#types"},{include:"#literals"},{include:"#control"},{include:"#move_copy"},{include:"#resource_methods"},{include:"#self_access"},{include:"#module_access"},{include:"#label"},{include:"#macro_call"},{include:"#local_call"},{include:"#method_call"},{include:"#path_access"},{match:"\\$(?=[a-z])",name:"keyword.operator.macro.dollar.move"},{match:"(?<=[$])[a-z][A-Z_0-9a-z]*",name:"variable.other.meta.move"},{comment:"ALL_CONST_CAPS",match:"\\b([A-Z][A-Z_]+)\\b",name:"constant.other.move"},{comment:"CustomType",match:"\\b([A-Z][a-zA-Z_0-9]*)\\b",name:"entity.name.type.move"},{include:"#paren"},{include:"#block"}]},expr_generic:{begin:"<(?=([\\sa-z_,0-9A-Z<>]+>))",comment:"< angle brackets >",end:">",name:"meta.expression.generic.type.move",patterns:[{include:"#comments"},{include:"#types"},{include:"#capitalized"},{include:"#expr_generic"}]},friend:{begin:"\\b(friend)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},end:";",name:"meta.friend.move",patterns:[{include:"#comments"},{include:"#address_literal"},{comment:"Name of the imported module",match:"\\b([a-zA-Z][A-Za-z_0-9]*)\\b",name:"entity.name.type.module.move"}]},fun:{patterns:[{include:"#fun_signature"},{include:"#block"}]},fun_body:{begin:"{",comment:"Function body",end:"(?<=})",name:"meta.fun_body.move",patterns:[{include:"#expr"}]},fun_call:{begin:"\\b(\\w+)\\s*(?:<[\\w\\s,]+>)?\\s*[(]",beginCaptures:{1:{name:"entity.name.function.call.move"}},comment:"Function call",end:"[)]",name:"meta.fun_call.move",patterns:[{include:"#comments"},{include:"#resource_methods"},{include:"#self_access"},{include:"#module_access"},{include:"#move_copy"},{include:"#literals"},{include:"#fun_call"},{include:"#block"},{include:"#mut"},{include:"#as"}]},fun_signature:{begin:"\\b(fun)\\b",beginCaptures:{1:{name:"storage.modifier.fun.move"}},comment:"Function signature",end:"(?=[;{])",name:"meta.fun_signature.move",patterns:[{include:"#comments"},{include:"#module_access"},{include:"#capitalized"},{include:"#types"},{include:"#mut"},{begin:"(?<=\\bfun)",comment:"Function name",end:"(?=[<(])",name:"meta.function_name.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{match:"\\b(\\w+)\\b",name:"entity.name.function.move"}]},{include:"#type_param"},{begin:"[(]",comment:"Parentheses",end:"[)]",name:"meta.parentheses.move",patterns:[{include:"#comments"},{include:"#self_access"},{include:"#expr_generic"},{include:"#escaped_identifier"},{include:"#module_access"},{include:"#capitalized"},{include:"#types"},{include:"#mut"}]},{comment:"Keyword acquires",match:"\\b(acquires)\\b",name:"storage.modifier"}]},has:{comment:"Has Abilities",match:"\\b(has)\\b",name:"keyword.control.ability.has.move"},has_ability:{begin:"(?<=[})])\\s+(has)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},end:";",name:"meta.has.ability.move",patterns:[{include:"#comments"},{include:"#abilities"}]},ident:{match:"\\b([a-zA-Z][A-Z_a-z0-9]*)\\b",name:"meta.identifier.move"},import:{begin:"\\b(use)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},end:";",name:"meta.import.move",patterns:[{include:"#comments"},{include:"#use_fun"},{include:"#address_literal"},{include:"#as-import"},{comment:"Uppercase entities",match:"\\b([A-Z]\\w*)\\b",name:"entity.name.type.move"},{begin:"{",comment:"Module members",end:"}",patterns:[{include:"#comments"},{include:"#as-import"},{comment:"Uppercase entities",match:"\\b([A-Z]\\w*)\\b",name:"entity.name.type.move"}]},{comment:"Name of the imported module",match:"\\b(\\w+)\\b",name:"meta.entity.name.type.module.move"}]},label:{comment:"Label",match:"'[a-z][a-z_0-9]*",name:"string.quoted.single.label.move"},let:{comment:"Keyword let",match:"\\b(let)\\b",name:"keyword.control.move"},"line-comments":{begin:"//",comment:"Single-line comment",end:"$",name:"comment.line.double-slash.move"},literals:{comment:"Literals supported in Move",name:"meta.literal.move",patterns:[{comment:"base16 address literal",match:"@0x[A-F0-9a-f]+",name:"support.constant.address.base16.move"},{comment:"named address literal @[ident]",match:"@[a-zA-Z][a-zA-Z_0-9]*",name:"support.constant.address.name.move"},{comment:"Hex literal",match:"0x[_a-fA-F0-9]+(?:u(?:8|16|32|64|128|256))?",name:"constant.numeric.hex.move"},{comment:"Numeric literal",match:"(?<!(?:\\w|(?:(?<!\\.)\\.)))[0-9][_0-9]*(?:\\.(?!\\.)(?:[0-9][_0-9]*)?)?(?:[eE][+\\-]?[_0-9]+)?(?:[u](?:8|16|32|64|128|256))?",name:"constant.numeric.move"},{begin:'\\bb"',comment:"vector ascii bytestring literal",end:'"',name:"meta.vector.literal.ascii.move",patterns:[{comment:"Special symbol escape",match:'\\\\[nrt\\0"]',name:"constant.character.escape.move"},{comment:"HEX Escape",match:"\\\\x[a-fA-F0-9][A-Fa-f0-9]",name:"constant.character.escape.hex.move"},{comment:"ASCII Character",match:"[\\x00-\\x7F]",name:"string.quoted.double.raw.move"}]},{begin:'x"',comment:"vector hex literal",end:'"',name:"meta.vector.literal.hex.move",patterns:[{comment:"vector hex literal",match:"[A-Fa-f0-9]+",name:"constant.character.move"}]},{comment:"bool literal",match:"\\b(?:true|false)\\b",name:"constant.language.boolean.move"},{begin:"vector\\[",comment:"vector literal (macro?)",end:"\\]",name:"meta.vector.literal.macro.move",patterns:[{include:"#expr"}]}]},local_call:{comment:"call to a local / imported fun",match:"\\b([a-z][_a-z0-9]*)(?=[<\\(])",name:"entity.name.function.call.local.move"},macro:{begin:"\\b(macro)\\b",beginCaptures:{1:{name:"keyword.control.macro.move"}},comment:"macro fun [ident] {}",end:"(?<=})",name:"meta.macro.move",patterns:[{include:"#comments"},{include:"#fun"}]},macro_call:{captures:{2:{name:"support.function.macro.move"}},comment:"Macro fun call",match:"(\\b|\\.)([a-z][A-Za-z0-9_]*)!",name:"meta.macro.call"},method_call:{captures:{1:{name:"entity.name.function.call.path.move"}},comment:"<expr>.[ident]<>?() call",match:"\\.([a-z][_a-z0-9]*)(?=[<\\(])",name:"meta.path.call.move"},module:{begin:"\\b(module|spec)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},comment:"Module definition",end:"(?<=})",name:"meta.module.move",patterns:[{include:"#comments"},{begin:"(?<=(module|spec))",comment:"Module name",end:"(?={)",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{begin:"(?<=\\b(module|spec))",comment:"Module namespace / address",end:"(?=[(::){])",name:"constant.other.move"},{begin:"(?<=::)",comment:"Module name",end:"(?=[\\s{])",name:"entity.name.type.move"}]},{begin:"{",comment:"Module scope",end:"}",name:"meta.module_scope.move",patterns:[{include:"#comments"},{include:"#attributes"},{include:"#entry"},{include:"#public-scope"},{include:"#public"},{include:"#native"},{include:"#import"},{include:"#friend"},{include:"#const"},{include:"#struct"},{include:"#has_ability"},{include:"#enum"},{include:"#macro"},{include:"#fun"},{include:"#spec"}]}]},module_access:{captures:{1:{name:"meta.entity.name.type.accessed.module.move"},2:{name:"entity.name.function.call.move"}},comment:"Use of module type or method",match:"\\b(\\w+)::(\\w+)\\b",name:"meta.module_access.move"},move_copy:{comment:"Keywords move and copy",match:"\\b(move|copy)\\b",name:"variable.language.move"},mut:{comment:"Mutable reference and let mut",match:"\\b(mut)\\b",name:"storage.modifier.mut.move"},native:{comment:"native",match:"\\b(native)\\b",name:"storage.modifier.visibility.native.move"},packed_field:{comment:"[ident]: ",match:"[a-z][a-z0-9_]+\\s*:\\s*(?=\\s)",name:"meta.struct.field.move"},paren:{begin:"\\(",end:"\\)",name:"meta.paren.move",patterns:[{include:"#expr"}]},path_access:{comment:"<expr>.[ident] access",match:"\\.[a-z][_a-z0-9]*\\b",name:"meta.path.access.move"},phantom:{comment:"Keyword phantom inside type parameters",match:"\\b(phantom)\\b",name:"keyword.control.phantom.move"},primitives:{comment:"Primitive types",match:"\\b(u8|u16|u32|u64|u128|u256|address|bool|signer)\\b",name:"support.type.primitives.move"},public:{comment:"public",match:"\\b(public)\\b",name:"storage.modifier.visibility.public.move"},"public-scope":{begin:"(?<=\\b(public))\\s*\\(",comment:"public (friend/script/package)",end:"\\)",name:"meta.public.scoped.move",patterns:[{include:"#comments"},{match:"\\b(friend|script|package)\\b",name:"keyword.control.public.scope.move"}]},resource_methods:{comment:"Methods to work with resource",match:"\\b(borrow_global|borrow_global_mut|exists|move_from|move_to_sender|move_to)\\b",name:"support.function.typed.move"},script:{begin:"\\b(script)\\b",beginCaptures:{1:{name:"storage.modifier.script.move"}},end:"(?<=})",name:"meta.script.move",patterns:[{include:"#comments"},{begin:"{",comment:"Script scope",end:"}",name:"meta.script_scope.move",patterns:[{include:"#const"},{include:"#comments"},{include:"#import"},{include:"#fun"}]}]},self_access:{captures:{1:{name:"variable.language.self.move"},2:{name:"entity.name.function.call.move"}},comment:"Use of Self",match:"\\b(Self)::(\\w+)\\b",name:"meta.self_access.move"},spec:{begin:"\\b(spec)\\b",beginCaptures:{1:{name:"storage.modifier.spec.move"}},end:"(?<=[;}])",name:"meta.spec.move",patterns:[{comment:"Spec target",match:"\\b(module|schema|struct|fun)",name:"storage.modifier.spec.target.move"},{comment:"Spec define inline",match:"\\b(define)",name:"storage.modifier.spec.define.move"},{comment:"Target name",match:"\\b(\\w+)\\b",name:"entity.name.function.move"},{begin:"{",comment:"Spec block",end:"}",patterns:[{include:"#comments"},{include:"#spec_block"},{include:"#spec_types"},{include:"#spec_define"},{include:"#spec_keywords"},{include:"#control"},{include:"#fun_call"},{include:"#literals"},{include:"#types"},{include:"#let"}]}]},spec_block:{begin:"{",comment:"Spec block",end:"}",name:"meta.spec_block.move",patterns:[{include:"#comments"},{include:"#spec_block"},{include:"#spec_types"},{include:"#fun_call"},{include:"#literals"},{include:"#control"},{include:"#types"},{include:"#let"}]},spec_define:{begin:"\\b(define)\\b",beginCaptures:{1:{name:"keyword.control.move.spec"}},comment:"Spec define keyword",end:"(?=[;{])",name:"meta.spec_define.move",patterns:[{include:"#comments"},{include:"#spec_types"},{include:"#types"},{begin:"(?<=\\bdefine)",comment:"Function name",end:"(?=[(])",patterns:[{include:"#comments"},{match:"\\b(\\w+)\\b",name:"entity.name.function.move"}]}]},spec_keywords:{match:"\\b(global|pack|unpack|pragma|native|include|ensures|requires|invariant|apply|aborts_if|modifies)\\b",name:"keyword.control.move.spec"},spec_types:{comment:"Spec-only types",match:"\\b(range|num|vector|bool|u8|u16|u32|u64|u128|u256|address)\\b",name:"support.type.vector.move"},struct:{begin:"\\b(struct)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},end:"(?<=[};\\)])",name:"meta.struct.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{include:"#has"},{include:"#abilities"},{comment:"Struct name (ident)",match:"\\b[A-Z][a-zA-Z_0-9]*\\b",name:"entity.name.type.struct.move"},{begin:"\\(",comment:"Positional fields",end:"\\)",name:"meta.struct.paren.move",patterns:[{include:"#comments"},{include:"#capitalized"},{include:"#types"}]},{include:"#type_param"},{begin:"\\(",comment:"Simple struct",end:"(?<=[)])",name:"meta.struct.paren.move",patterns:[{include:"#comments"},{include:"#types"}]},{begin:"{",comment:"Struct body",end:"}",name:"meta.struct.body.move",patterns:[{include:"#comments"},{include:"#self_access"},{include:"#escaped_identifier"},{include:"#module_access"},{include:"#expr_generic"},{include:"#capitalized"},{include:"#types"}]},{include:"#has_ability"}]},struct_pack:{begin:"(?<=[A-Za-z0-9_>])\\s*{",comment:"Struct { field: value... }; identified as generic / ident followed by curly's",end:"}",name:"meta.struct.pack.move",patterns:[{include:"#comments"}]},type_param:{begin:"<",comment:"Generic type param",end:">",name:"meta.generic_param.move",patterns:[{include:"#comments"},{include:"#phantom"},{include:"#capitalized"},{include:"#module_access"},{include:"#abilities"}]},types:{comment:"Built-in types + vector",name:"meta.types.move",patterns:[{include:"#primitives"},{include:"#vector"}]},use_fun:{begin:"\\b(fun)\\b",beginCaptures:{1:{name:"storage.modifier.fun.move"}},comment:"use { fun } internals",end:"(?=;)",name:"meta.import.fun.move",patterns:[{include:"#comments"},{comment:"as keyword",match:"\\b(as)\\b",name:"keyword.control.as.move"},{comment:"Self keyword",match:"\\b(Self)\\b",name:"variable.language.self.use.fun.move"},{comment:"Function name",match:"\\b(_______[a-z][a-z_0-9]+)\\b",name:"entity.name.function.use.move"},{include:"#types"},{include:"#escaped_identifier"},{include:"#capitalized"}]},vector:{comment:"vector type",match:"\\b(vector)\\b",name:"support.type.vector.move"}},scopeName:"source.move"});var n=[e];export{n as default}; diff --git a/assets/chunks/narrat.B9CT-1u6.js b/assets/chunks/narrat.B9CT-1u6.js new file mode 100644 index 000000000..96b674694 --- /dev/null +++ b/assets/chunks/narrat.B9CT-1u6.js @@ -0,0 +1,7 @@ +const a=Object.freeze({displayName:"Narrat Language",name:"narrat",patterns:[{include:"#comments"},{include:"#expression"}],repository:{commands:{patterns:[{match:"\\b(set|var)\\b",name:"keyword.commands.variables.narrat"},{match:"\\b(talk|think)\\b",name:"keyword.commands.text.narrat"},{match:"\\b(jump|run|wait|return|save|save_prompt)",name:"keyword.commands.flow.narrat"},{match:"\\b(log|clear_dialog)\\b",name:"keyword.commands.helpers.narrat"},{match:"\\b(set_screen|empty_layer|set_button)",name:"keyword.commands.screens.narrat"},{match:"\\b(play|pause|stop)\\b",name:"keyword.commands.audio.narrat"},{match:"\\b(notify|enable_notifications|disable_notifications)\\b",name:"keyword.commands.notifications.narrat"},{match:"\\b(set_stat|get_stat_value|add_stat)",name:"keyword.commands.stats.narrat"},{match:"\\b(neg|abs|random|random_float|random_from_args|min|max|clamp|floor|round|ceil|sqrt|^)\\b",name:"keyword.commands.math.narrat"},{match:"\\b(concat|join)\\b",name:"keyword.commands.string.narrat"},{match:"\\b(text_field)\\b",name:"keyword.commands.text_field.narrat"},{match:"\\b(add_level|set_level|add_xp|roll|get_level|get_xp)\\b",name:"keyword.commands.skills.narrat"},{match:"\\b(add_item|remove_item|enable_interaction|disable_interaction|has_item?|item_amount?)",name:"keyword.commands.inventory.narrat"},{match:"\\b(start_quest|start_objective|complete_objective|complete_quest|quest_started?|objective_started?|quest_completed?|objective_completed?)",name:"keyword.commands.quests.narrat"}]},comments:{patterns:[{match:"\\/\\/.*$",name:"comment.line.narrat"}]},expression:{patterns:[{include:"#keywords"},{include:"#commands"},{include:"#operators"},{include:"#primitives"},{include:"#strings"},{include:"#paren-expression"}]},interpolation:{patterns:[{match:"(\\w|\\.)+",name:"variable.interpolation.narrat"}]},keywords:{patterns:[{match:"\\b(if|else|choice)\\b",name:"keyword.control.narrat"},{match:"\\$[\\w|\\.]+\\b",name:"variable.value.narrat"},{match:`(?x) +^\\w+ +(?=(\\s|\\w)*:) +`,name:"entity.name.function.narrat"},{match:`(?x) +^\\w+ +(?!(\\s|\\w)*:) +`,name:"invalid.label.narrat"},{match:"(?<=\\w)[^^](\\b\\w+\\b)(?=(\\s|\\w)*:)",name:"entity.other.attribute-name"}]},operators:{patterns:[{match:"(&&|\\|\\||!=|==|>=|<=|<|>|!|\\?)\\s",name:"keyword.operator.logic.narrat"},{match:"(\\+|-|\\*|\\/)\\s",name:"keyword.operator.arithmetic.narrat"}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"punctuation.paren.open"}},end:"\\)",endCaptures:{0:{name:"punctuation.paren.close"}},name:"expression.group",patterns:[{include:"#expression"}]},primitives:{patterns:[{match:"\\b\\d+\\b",name:"constant.numeric.narrat"},{match:"\\btrue\\b",name:"constant.language.true.narrat"},{match:"\\bfalse\\b",name:"constant.language.false.narrat"},{match:"\\bnull\\b",name:"constant.language.null.narrat"},{match:"\\bundefined\\b",name:"constant.language.undefined.narrat"}]},strings:{begin:'"',end:'"',name:"string.quoted.double.narrat",patterns:[{match:"\\\\.",name:"constant.character.escape.narrat"},{begin:"%{",beginCaptures:{0:{name:"punctuation.template.open"}},end:"}",endCaptures:{0:{name:"punctuation.template.close.narrat"}},name:"expression.template",patterns:[{include:"#expression"},{include:"#interpolation"}]}]}},scopeName:"source.narrat",aliases:["nar"]});var e=[a];export{e as default}; diff --git a/assets/chunks/nextflow.DBxHOdLe.js b/assets/chunks/nextflow.DBxHOdLe.js new file mode 100644 index 000000000..f970eab8b --- /dev/null +++ b/assets/chunks/nextflow.DBxHOdLe.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Nextflow",name:"nextflow",patterns:[{include:"#nfl-rules"}],repository:{"implicit-variables":{patterns:[{match:"(?<=[^\\.\\w]|^)(params|nextflow|workflow|launchDir|moduleDir|projectDir|workDir)\\b",name:"variable.language.nextflow"}]},"include-statement":{patterns:[{match:"^\\b(include)\\b",name:"keyword.nextflow"},{match:"\\b(from)\\b",name:"keyword.nextflow"}]},"nfl-rules":{patterns:[{include:"#process-def"},{include:"#workflow-def"},{include:"#code-block"},{include:"#include-statement"},{include:"#implicit-variables"},{begin:"(\\w*\\()",beginCaptures:{1:{patterns:[{include:"source.nextflow-groovy"}]}},comment:"method call and parens",end:"\\)",patterns:[{include:"#nfl-rules"}]},{begin:"{",comment:"braces",end:"}",patterns:[{include:"#nfl-rules"}]},{include:"source.nextflow-groovy"}]},"process-body":{patterns:[{match:"(?:accelerator|afterScript|beforeScript|cache|cpus|conda|container|containerOptions|clusterOptions|debug|disk|echo|errorStrategy|executor|ext|label|machineType|maxErrors|maxForks|maxRetries|memory|module|penv|pod|publishDir|queue|resourceLabels|scratch|stageInMode|stageOutMode|storeDir|tag|time)\\b",name:"entity.name.function.nextflow"},{match:"(?:input|output|when|script|shell|exec):",name:"constant.block.nextflow"},{match:"\\b(tuple|set|path|file|val|stdout)(\\(|\\s)",name:"entity.name.function.nextflow"},{include:"#implicit-variables"},{begin:"(\\w*\\()",beginCaptures:{1:{patterns:[{include:"source.nextflow-groovy"}]}},comment:"method call and parens",end:"\\)",patterns:[{include:"#process-body"}]},{begin:"{",comment:"braces",end:"}",patterns:[{include:"#process-body"}]},{include:"source.nextflow-groovy#comments"},{include:"source.nextflow-groovy#support-functions"},{include:"source.nextflow-groovy#keyword"},{include:"source.nextflow-groovy#values"},{include:"source.nextflow-groovy#anonymous-classes-and-new"},{include:"source.nextflow-groovy#types"},{include:"source.nextflow-groovy#parens"},{include:"source.nextflow-groovy#closures"},{include:"source.nextflow-groovy#braces"}]},"process-def":{begin:`^\\s*(process)\\s+(\\w+|"[^"]+"|'[^']+')\\s*{`,beginCaptures:{1:{name:"keyword.nextflow"},2:{name:"function.nextflow"}},end:"}",name:"process.nextflow",patterns:[{include:"#process-body"}]},"workflow-body":{patterns:[{include:"#implicit-variables"},{match:"(?:take|main|emit):",name:"constant.block.nextflow"},{match:"(?<=[\\s\\.])(branch|buffer|close|collate|collect|collectFile|combine|concat|count|countBy|cross|distinct|dump|filter|first|flatMap|flatten|groupTuple|ifEmpty|join|last|map|max|merge|min|mix|multiMap|randomSample|reduce|set|splitCsv|splitFasta|splitFastq|splitText|sum|take|tap|toInteger|toList|toSortedList|transpose|unique|until|view)(?=[{\\(\\s])",name:"entity.name.function.nextflow"},{captures:{1:{name:"keyword.nextflow"},2:{name:"entity.name.function.nextflow"}},comment:"Channel factory single line",match:"\\b((?:C|c)hannel\\.)((fromList|fromPath|fromFilePairs|fromSRA|from|of|empty|value|watchPath)\\W)?"},{begin:"\\b((?:C|c)hannel)\\s*$",beginCaptures:{1:{name:"keyword.nextflow"}},comment:"Channel factory multi-line",end:"(^\\s*)(?:(\\.)(fromList|fromPath|fromFilePairs|fromSRA|from|of|empty|value|watchPath)\\W)?",endCaptures:{1:{name:"keyword.nextflow"},2:{name:"keyword.nextflow"},3:{name:"entity.name.function.nextflow"}}},{begin:"(\\w*\\()",beginCaptures:{1:{patterns:[{include:"source.nextflow-groovy"}]}},comment:"method call and parens",end:"\\)",patterns:[{include:"#workflow-body"}]},{begin:"{",comment:"braces",end:"}",patterns:[{include:"#workflow-body"}]},{include:"source.nextflow-groovy#comments"},{include:"source.nextflow-groovy#support-functions"},{include:"source.nextflow-groovy#keyword"},{include:"source.nextflow-groovy#values"},{include:"source.nextflow-groovy#anonymous-classes-and-new"},{include:"source.nextflow-groovy#types"},{include:"source.nextflow-groovy#parens"},{include:"source.nextflow-groovy#closures"},{include:"source.nextflow-groovy#braces"}]},"workflow-def":{begin:`^\\s*(workflow)(?:\\s+(\\w+|"[^"]+"|'[^']+'))?\\s*{`,beginCaptures:{1:{name:"keyword.nextflow"},2:{name:"constant.nextflow"}},end:"}",name:"workflow.nextflow",patterns:[{include:"#workflow-body"}]}},scopeName:"source.nextflow",aliases:["nf"]});var n=[e];export{n as default}; diff --git a/assets/chunks/nginx.CFCDRImM.js b/assets/chunks/nginx.CFCDRImM.js new file mode 100644 index 000000000..c067edfc6 --- /dev/null +++ b/assets/chunks/nginx.CFCDRImM.js @@ -0,0 +1 @@ +import e from"./lua.CHJYZA-p.js";import"./c.RCJZWN-0.js";const n=Object.freeze({displayName:"Nginx",fileTypes:["conf.erb","conf","ngx","nginx.conf","mime.types","fastcgi_params","scgi_params","uwsgi_params"],foldingStartMarker:"\\{\\s*$",foldingStopMarker:"^\\s*\\}",name:"nginx",patterns:[{match:"\\#.*",name:"comment.line.number-sign"},{begin:"\\b((?:content|rewrite|access|init_worker|init|set|log|balancer|ssl_(?:client_hello|session_fetch|certificate))_by_lua(?:_block)?)\\s*\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},contentName:"meta.embedded.block.lua",end:"\\}",name:"meta.context.lua.nginx",patterns:[{include:"source.lua"}]},{begin:"\\b((?:content|rewrite|access|init_worker|init|set|log|balancer|ssl_(?:client_hello|session_fetch|certificate))_by_lua)\\s*'",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},contentName:"meta.embedded.block.lua",end:"'",name:"meta.context.lua.nginx",patterns:[{include:"source.lua"}]},{begin:"\\b(events) +\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},end:"\\}",name:"meta.context.events.nginx",patterns:[{include:"$self"}]},{begin:"\\b(http) +\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},end:"\\}",name:"meta.context.http.nginx",patterns:[{include:"$self"}]},{begin:"\\b(mail) +\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},end:"\\}",name:"meta.context.mail.nginx",patterns:[{include:"$self"}]},{begin:"\\b(stream) +\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},end:"\\}",name:"meta.context.stream.nginx",patterns:[{include:"$self"}]},{begin:"\\b(server) +\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},end:"\\}",name:"meta.context.server.nginx",patterns:[{include:"$self"}]},{begin:"\\b(location) +([\\^]?~[\\*]?|=) +(.*?)\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"},2:{name:"keyword.operator.nginx"},3:{name:"string.regexp.nginx"}},end:"\\}",name:"meta.context.location.nginx",patterns:[{include:"$self"}]},{begin:"\\b(location) +(.*?)\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"},2:{name:"entity.name.context.location.nginx"}},end:"\\}",name:"meta.context.location.nginx",patterns:[{include:"$self"}]},{begin:"\\b(limit_except) +\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},end:"\\}",name:"meta.context.limit_except.nginx",patterns:[{include:"$self"}]},{begin:"\\b(if) +\\(",beginCaptures:{1:{name:"keyword.control.nginx"}},end:"\\)",name:"meta.context.if.nginx",patterns:[{include:"#if_condition"}]},{begin:"\\b(upstream) +(.*?)\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"},2:{name:"entity.name.context.location.nginx"}},end:"\\}",name:"meta.context.upstream.nginx",patterns:[{include:"$self"}]},{begin:"\\b(types) +\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},end:"\\}",name:"meta.context.types.nginx",patterns:[{include:"$self"}]},{begin:"\\b(map) +(\\$)([A-Za-z0-9\\_]+) +(\\$)([A-Za-z0-9\\_]+) *\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"},2:{name:"punctuation.definition.variable.nginx"},3:{name:"variable.parameter.nginx"},4:{name:"punctuation.definition.variable.nginx"},5:{name:"variable.other.nginx"}},end:"\\}",name:"meta.context.map.nginx",patterns:[{include:"#values"},{match:";",name:"punctuation.terminator.nginx"},{match:"\\#.*",name:"comment.line.number-sign"}]},{begin:"\\{",end:"\\}",name:"meta.block.nginx",patterns:[{include:"$self"}]},{begin:"\\b(return)\\b",beginCaptures:{1:{name:"keyword.control.nginx"}},end:";",patterns:[{include:"#values"}]},{begin:"\\b(rewrite)\\s+",beginCaptures:{1:{name:"keyword.directive.nginx"}},end:"(last|break|redirect|permanent)?(;)",endCaptures:{1:{name:"keyword.other.nginx"},2:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"\\b(server)\\s+",beginCaptures:{1:{name:"keyword.directive.nginx"}},end:";",endCaptures:{1:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#server_parameters"}]},{begin:"\\b(internal|empty_gif|f4f|flv|hls|mp4|break|status|stub_status|ip_hash|ntlm|least_conn|upstream_conf|least_conn|zone_sync)\\b",beginCaptures:{1:{name:"keyword.directive.nginx"}},end:"(;|$)",endCaptures:{1:{name:"punctuation.terminator.nginx"}}},{begin:`(["'\\s]|^)(accept_)(mutex|mutex_delay)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(debug_)(connection|points)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(error_)(log|page)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(ssl_)(engine|buffer_size|certificate|certificate_key|ciphers|client_certificate|conf_command|crl|dhparam|early_data|ecdh_curve|ocsp|ocsp_cache|ocsp_responder|password_file|prefer_server_ciphers|protocols|reject_handshake|session_cache|session_ticket_key|session_tickets|session_timeout|stapling|stapling_file|stapling_responder|stapling_verify|trusted_certificate|verify_client|verify_depth|alpn|handshake_timeout|preread)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(worker_)(aio_requests|connections|cpu_affinity|priority|processes|rlimit_core|rlimit_nofile|shutdown_timeout)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(auth_)(delay|basic|basic_user_file|jwt|jwt_claim_set|jwt_header_set|jwt_key_cache|jwt_key_file|jwt_key_request|jwt_leeway|jwt_type|jwt_require|request|request_set|http|http_header|http_pass_client_cert|http_timeout)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(client_)(body_buffer_size|body_in_file_only|body_in_single_buffer|body_temp_path|body_timeout|header_buffer_size|header_timeout|max_body_size)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(keepalive_)(disable|requests|time|timeout)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(limit_)(rate|rate_after|conn|conn_dry_run|conn_log_level|conn_status|conn_zone|zone|req|req_dry_run|req_log_level|req_status|req_zone)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(lingering_)(close|time|timeout)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(log_)(not_found|subrequest|format)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(max_)(ranges|errors)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(msie_)(padding|refresh)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(open_)(file_cache|file_cache_errors|file_cache_min_uses|file_cache_valid|log_file_cache)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(send_)(lowat|timeout)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(server_)(name|name_in_redirect|names_hash_bucket_size|names_hash_max_size|tokens)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(tcp_)(nodelay|nopush)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(types_)(hash_bucket_size|hash_max_size)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(variables_)(hash_bucket_size|hash_max_size)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(add_)(before_body|after_body|header|trailer)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(status_)(zone|format)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(autoindex_)(exact_size|format|localtime)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(ancient_)(browser|browser_value)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(modern_)(browser|browser_value)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(charset_)(map|types)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(dav_)(access|methods)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(fastcgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|catch_stderr|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|index|intercept_errors|keep_conn|limit_rate|max_temp_file_size|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_lowat|send_timeout|socket_keepalive|split_path_info|store|store_access|temp_file_write_size|temp_path)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(geoip_)(country|city|org|proxy|proxy_recursive)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(grpc_)(bind|buffer_size|connect_timeout|hide_header|ignore_headers|intercept_errors|next_upstream|next_upstream_timeout|next_upstream_tries|pass|pass_header|read_timeout|send_timeout|set_header|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(gzip_)(buffers|comp_level|disable|http_version|min_length|proxied|types|vary|static)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(hls_)(buffers|forward_args|fragment|mp4_buffer_size|mp4_max_buffer_size)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(image_)(filter|filter_buffer|filter_interlace|filter_jpeg_quality|filter_sharpen|filter_transparency|filter_webp_quality)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(map_)(hash_bucket_size|hash_max_size)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(memcached_)(bind|buffer_size|connect_timeout|gzip_flag|next_upstream|next_upstream_timeout|next_upstream_tries|pass|read_timeout|send_timeout|socket_keepalive)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(mp4_)(buffer_size|max_buffer_size|limit_rate|limit_rate_after|start_key_frame)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(perl_)(modules|require|set)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(proxy_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_convert_head|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|cookie_domain|cookie_flags|cookie_path|force_ranges|headers_hash_bucket_size|headers_hash_max_size|hide_header|http_version|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|method|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|redirect|request_buffering|send_lowat|send_timeout|set_body|set_header|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth|store|store_access|temp_file_write_size|temp_path|buffer|pass_error_message|protocol|smtp_auth|timeout|protocol_timeout|download_rate|half_close|requests|responses|session_drop|ssl|upload_rate)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(real_)(ip_header|ip_recursive)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(referer_)(hash_bucket_size|hash_max_size)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(scgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_timeout|socket_keepalive|store|store_access|temp_file_write_size|temp_path)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(secure_)(link|link_md5|link_secret)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(session_)(log|log_format|log_zone)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(ssi_)(last_modified|min_file_chunk|silent_errors|types|value_length)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(sub_)(filter|filter_last_modified|filter_once|filter_types)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(health_)(check|check_timeout)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(userid_)(domain|expires|flags|mark|name|p3p|path|service)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(uwsgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|modifier1|modifier2|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_timeout|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth|store|store_access|temp_file_write_size|temp_path)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(http2_)(body_preread_size|chunk_size|idle_timeout|max_concurrent_pushes|max_concurrent_streams|max_field_size|max_header_size|max_requests|push|push_preload|recv_buffer_size|recv_timeout)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(http3_)(hq|max_concurrent_streams|stream_buffer_size)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(quic_)(active_connection_id_limit|bpf|gso|host_key|retry)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(xslt_)(last_modified|param|string_param|stylesheet|types)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(imap_)(auth|capabilities|client_buffer)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(pop3_)(auth|capabilities)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(smtp_)(auth|capabilities|client_buffer|greeting_delay)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(preread_)(buffer_size|timeout)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(mqtt_)(preread|buffers|rewrite_buffer_size|set_connect)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(zone_)(sync_buffers|sync_connect_retry_interval|sync_connect_timeout|sync_interval|sync_recv_buffer_size|sync_server|sync_ssl|sync_ssl_certificate|sync_ssl_certificate_key|sync_ssl_ciphers|sync_ssl_conf_command|sync_ssl_crl|sync_ssl_name|sync_ssl_password_file|sync_ssl_protocols|sync_ssl_server_name|sync_ssl_trusted_certificate|sync_ssl_verify|sync_ssl_verify_depth|sync_timeout)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(otel_)(exporter|service_name|trace|trace_context|span_name|span_attr)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(js_)(body_filter|content|fetch_buffer_size|fetch_ciphers|fetch_max_response_buffer_size|fetch_protocols|fetch_timeout|fetch_trusted_certificate|fetch_verify|fetch_verify_depth|header_filter|import|include|path|periodic|preload_object|set|shared_dict_zone|var|access|filter|preread)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:`(["'\\s]|^)(daemon|env|include|pid|use|user|aio|alias|directio|etag|listen|resolver|root|satisfy|sendfile|allow|deny|api|autoindex|charset|geo|gunzip|gzip|expires|index|keyval|mirror|perl|set|slice|ssi|ssl|zone|state|hash|keepalive|queue|random|sticky|match|userid|http2|http3|protocol|timeout|xclient|starttls|mqtt|load_module|lock_file|master_process|multi_accept|pcre_jit|thread_pool|timer_resolution|working_directory|absolute_redirect|aio_write|chunked_transfer_encoding|connection_pool_size|default_type|directio_alignment|disable_symlinks|if_modified_since|ignore_invalid_headers|large_client_header_buffers|merge_slashes|output_buffers|port_in_redirect|postpone_output|read_ahead|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver_timeout|sendfile_max_chunk|subrequest_output_buffer_size|try_files|underscores_in_headers|addition_types|override_charset|source_charset|create_full_put_path|min_delete_depth|f4f_buffer_size|gunzip_buffers|internal_redirect|keyval_zone|access_log|mirror_request_body|random_index|set_real_ip_from|valid_referers|rewrite_log|uninitialized_variable_warn|split_clients|least_time|sticky_cookie_insert|xml_entities|google_perftools_profiles)(["'\\s]|$)`,beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"\\b([a-zA-Z0-9\\_]+)\\s+",beginCaptures:{1:{name:"keyword.directive.unknown.nginx"}},end:"(;|$)",endCaptures:{1:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"\\b([a-z]+\\/[A-Za-z0-9\\-\\.\\+]+)\\b",beginCaptures:{1:{name:"constant.other.mediatype.nginx"}},end:"(;)",endCaptures:{1:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]}],repository:{if_condition:{patterns:[{include:"#variables"},{match:"\\!?\\~\\*?\\s",name:"keyword.operator.nginx"},{match:"\\!?\\-[fdex]\\s",name:"keyword.operator.nginx"},{match:"\\!?=[^=]",name:"keyword.operator.nginx"},{include:"#regexp_and_string"}]},regexp_and_string:{patterns:[{match:"\\^.*?\\$",name:"string.regexp.nginx"},{begin:'"',end:'"',name:"string.quoted.double.nginx",patterns:[{match:`\\\\["'nt\\\\]`,name:"constant.character.escape.nginx"},{include:"#variables"}]},{begin:"'",end:"'",name:"string.quoted.single.nginx",patterns:[{match:`\\\\["'nt\\\\]`,name:"constant.character.escape.nginx"},{include:"#variables"}]}]},server_parameters:{patterns:[{captures:{1:{name:"variable.parameter.nginx"},2:{name:"keyword.operator.nginx"},3:{name:"constant.numeric.nginx"}},match:"(?:^|\\s)(weight|max_conn|max_fails|fail_timeout|slow_start)(=)(\\d[\\d\\.]*[bBkKmMgGtTsShHdD]?)(?:\\s|;|$)"},{include:"#values"}]},values:{patterns:[{include:"#variables"},{match:"\\#.*",name:"comment.line.number-sign"},{captures:{1:{name:"constant.numeric.nginx"}},match:"(?<=\\G|\\s)(=?[0-9][0-9\\.]*[bBkKmMgGtTsShHdD]?)(?=[\\t ;])"},{match:"(?<=\\G|\\s)(on|off|true|false)(?=[\\t ;])",name:"constant.language.nginx"},{match:"(?<=\\G|\\s)(kqueue|rtsig|epoll|\\/dev\\/poll|select|poll|eventport|max|all|default_server|default|main|crit|error|debug|warn|notice|last)(?=[\\t ;])",name:"constant.language.nginx"},{match:"\\\\.*\\ |\\~\\*|\\~|\\!\\~\\*|\\!\\~",name:"keyword.operator.nginx"},{include:"#regexp_and_string"}]},variables:{patterns:[{captures:{1:{name:"punctuation.definition.variable.nginx"},2:{name:"variable.other.nginx"}},match:"(\\$)([A-Za-z0-9\\_]+)\\b"},{captures:{1:{name:"punctuation.definition.variable.nginx"},2:{name:"variable.other.nginx"},3:{name:"punctuation.definition.variable.nginx"}},match:"(\\$\\{)([A-Za-z0-9\\_]+)(\\})"}]}},scopeName:"source.nginx",embeddedLangs:["lua"]});var r=[...e,n];export{r as default}; diff --git a/assets/chunks/night-owl.BeocmOPF.js b/assets/chunks/night-owl.BeocmOPF.js new file mode 100644 index 000000000..f059fe636 --- /dev/null +++ b/assets/chunks/night-owl.BeocmOPF.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.background":"#011627","activityBar.border":"#011627","activityBar.dropBackground":"#5f7e97","activityBar.foreground":"#5f7e97","activityBarBadge.background":"#44596b","activityBarBadge.foreground":"#ffffff","badge.background":"#5f7e97","badge.foreground":"#ffffff","breadcrumb.activeSelectionForeground":"#FFFFFF","breadcrumb.focusForeground":"#ffffff","breadcrumb.foreground":"#A599E9","breadcrumbPicker.background":"#001122","button.background":"#7e57c2cc","button.foreground":"#ffffffcc","button.hoverBackground":"#7e57c2",contrastBorder:"#122d42","debugExceptionWidget.background":"#011627","debugExceptionWidget.border":"#5f7e97","debugToolBar.background":"#011627","diffEditor.insertedTextBackground":"#99b76d23","diffEditor.insertedTextBorder":"#c5e47833","diffEditor.removedTextBackground":"#ef535033","diffEditor.removedTextBorder":"#ef53504d","dropdown.background":"#011627","dropdown.border":"#5f7e97","dropdown.foreground":"#ffffffcc","editor.background":"#011627","editor.findMatchBackground":"#5f7e9779","editor.findMatchHighlightBackground":"#1085bb5d","editor.findRangeHighlightBackground":null,"editor.foreground":"#d6deeb","editor.hoverHighlightBackground":"#7e57c25a","editor.inactiveSelectionBackground":"#7e57c25a","editor.lineHighlightBackground":"#0003","editor.lineHighlightBorder":null,"editor.rangeHighlightBackground":"#7e57c25a","editor.selectionBackground":"#1d3b53","editor.selectionHighlightBackground":"#5f7e9779","editor.wordHighlightBackground":"#f6bbe533","editor.wordHighlightStrongBackground":"#e2a2f433","editorBracketMatch.background":"#5f7e974d","editorBracketMatch.border":null,"editorCodeLens.foreground":"#5e82ceb4","editorCursor.foreground":"#80a4c2","editorError.border":null,"editorError.foreground":"#EF5350","editorGroup.border":"#011627","editorGroup.dropBackground":"#7e57c273","editorGroup.emptyBackground":"#011627","editorGroupHeader.noTabsBackground":"#011627","editorGroupHeader.tabsBackground":"#011627","editorGroupHeader.tabsBorder":"#262A39","editorGutter.addedBackground":"#9CCC65","editorGutter.background":"#011627","editorGutter.deletedBackground":"#EF5350","editorGutter.modifiedBackground":"#e2b93d","editorHoverWidget.background":"#011627","editorHoverWidget.border":"#5f7e97","editorIndentGuide.activeBackground":"#7E97AC","editorIndentGuide.background":"#5e81ce52","editorLineNumber.activeForeground":"#C5E4FD","editorLineNumber.foreground":"#4b6479","editorLink.activeForeground":null,"editorMarkerNavigation.background":"#0b2942","editorMarkerNavigationError.background":"#EF5350","editorMarkerNavigationWarning.background":"#FFCA28","editorOverviewRuler.commonContentForeground":"#7e57c2","editorOverviewRuler.currentContentForeground":"#7e57c2","editorOverviewRuler.incomingContentForeground":"#7e57c2","editorRuler.foreground":"#5e81ce52","editorSuggestWidget.background":"#2C3043","editorSuggestWidget.border":"#2B2F40","editorSuggestWidget.foreground":"#d6deeb","editorSuggestWidget.highlightForeground":"#ffffff","editorSuggestWidget.selectedBackground":"#5f7e97","editorWarning.border":null,"editorWarning.foreground":"#b39554","editorWhitespace.foreground":null,"editorWidget.background":"#021320","editorWidget.border":"#5f7e97",errorForeground:"#EF5350","extensionButton.prominentBackground":"#7e57c2cc","extensionButton.prominentForeground":"#ffffffcc","extensionButton.prominentHoverBackground":"#7e57c2",focusBorder:"#122d42",foreground:"#d6deeb","gitDecoration.conflictingResourceForeground":"#ffeb95cc","gitDecoration.deletedResourceForeground":"#EF535090","gitDecoration.ignoredResourceForeground":"#395a75","gitDecoration.modifiedResourceForeground":"#a2bffc","gitDecoration.untrackedResourceForeground":"#c5e478ff","input.background":"#0b253a","input.border":"#5f7e97","input.foreground":"#ffffffcc","input.placeholderForeground":"#5f7e97","inputOption.activeBorder":"#ffffffcc","inputValidation.errorBackground":"#AB0300F2","inputValidation.errorBorder":"#EF5350","inputValidation.infoBackground":"#00589EF2","inputValidation.infoBorder":"#64B5F6","inputValidation.warningBackground":"#675700F2","inputValidation.warningBorder":"#FFCA28","list.activeSelectionBackground":"#234d708c","list.activeSelectionForeground":"#ffffff","list.dropBackground":"#011627","list.focusBackground":"#010d18","list.focusForeground":"#ffffff","list.highlightForeground":"#ffffff","list.hoverBackground":"#011627","list.hoverForeground":"#ffffff","list.inactiveSelectionBackground":"#0e293f","list.inactiveSelectionForeground":"#5f7e97","list.invalidItemForeground":"#975f94","merge.border":null,"merge.currentContentBackground":null,"merge.currentHeaderBackground":"#5f7e97","merge.incomingContentBackground":null,"merge.incomingHeaderBackground":"#7e57c25a","meta.objectliteral.js":"#82AAFF","notificationCenter.border":"#262a39","notificationLink.foreground":"#80CBC4","notificationToast.border":"#262a39","notifications.background":"#01111d","notifications.border":"#262a39","notifications.foreground":"#ffffffcc","panel.background":"#011627","panel.border":"#5f7e97","panelTitle.activeBorder":"#5f7e97","panelTitle.activeForeground":"#ffffffcc","panelTitle.inactiveForeground":"#d6deeb80","peekView.border":"#5f7e97","peekViewEditor.background":"#011627","peekViewEditor.matchHighlightBackground":"#7e57c25a","peekViewResult.background":"#011627","peekViewResult.fileForeground":"#5f7e97","peekViewResult.lineForeground":"#5f7e97","peekViewResult.matchHighlightBackground":"#ffffffcc","peekViewResult.selectionBackground":"#2E3250","peekViewResult.selectionForeground":"#5f7e97","peekViewTitle.background":"#011627","peekViewTitleDescription.foreground":"#697098","peekViewTitleLabel.foreground":"#5f7e97","pickerGroup.border":"#011627","pickerGroup.foreground":"#d1aaff","progress.background":"#7e57c2","punctuation.definition.generic.begin.html":"#ef5350f2","scrollbar.shadow":"#010b14","scrollbarSlider.activeBackground":"#084d8180","scrollbarSlider.background":"#084d8180","scrollbarSlider.hoverBackground":"#084d8180","selection.background":"#4373c2","sideBar.background":"#011627","sideBar.border":"#011627","sideBar.foreground":"#89a4bb","sideBarSectionHeader.background":"#011627","sideBarSectionHeader.foreground":"#5f7e97","sideBarTitle.foreground":"#5f7e97","source.elm":"#5f7e97","statusBar.background":"#011627","statusBar.border":"#262A39","statusBar.debuggingBackground":"#202431","statusBar.debuggingBorder":"#1F2330","statusBar.debuggingForeground":null,"statusBar.foreground":"#5f7e97","statusBar.noFolderBackground":"#011627","statusBar.noFolderBorder":"#25293A","statusBar.noFolderForeground":null,"statusBarItem.activeBackground":"#202431","statusBarItem.hoverBackground":"#202431","statusBarItem.prominentBackground":"#202431","statusBarItem.prominentHoverBackground":"#202431","string.quoted.single.js":"#ffffff","tab.activeBackground":"#0b2942","tab.activeBorder":"#262A39","tab.activeForeground":"#d2dee7","tab.border":"#272B3B","tab.inactiveBackground":"#01111d","tab.inactiveForeground":"#5f7e97","tab.unfocusedActiveBorder":"#262A39","tab.unfocusedActiveForeground":"#5f7e97","tab.unfocusedInactiveForeground":"#5f7e97","terminal.ansiBlack":"#011627","terminal.ansiBlue":"#82AAFF","terminal.ansiBrightBlack":"#575656","terminal.ansiBrightBlue":"#82AAFF","terminal.ansiBrightCyan":"#7fdbca","terminal.ansiBrightGreen":"#22da6e","terminal.ansiBrightMagenta":"#C792EA","terminal.ansiBrightRed":"#EF5350","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#ffeb95","terminal.ansiCyan":"#21c7a8","terminal.ansiGreen":"#22da6e","terminal.ansiMagenta":"#C792EA","terminal.ansiRed":"#EF5350","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#c5e478","terminal.selectionBackground":"#1b90dd4d","terminalCursor.background":"#234d70","textCodeBlock.background":"#4f4f4f","titleBar.activeBackground":"#011627","titleBar.activeForeground":"#eeefff","titleBar.inactiveBackground":"#010e1a","titleBar.inactiveForeground":null,"walkThrough.embeddedEditorBackground":"#011627","welcomePage.buttonBackground":"#011627","welcomePage.buttonHoverBackground":"#011627","widget.shadow":"#011627"},displayName:"Night Owl",name:"night-owl",semanticHighlighting:!1,tokenColors:[{scope:["markup.changed","meta.diff.header.git","meta.diff.header.from-file","meta.diff.header.to-file"],settings:{fontStyle:"italic",foreground:"#a2bffc"}},{scope:"markup.deleted.diff",settings:{fontStyle:"italic",foreground:"#EF535090"}},{scope:"markup.inserted.diff",settings:{fontStyle:"italic",foreground:"#c5e478ff"}},{settings:{background:"#011627",foreground:"#d6deeb"}},{scope:"comment",settings:{fontStyle:"italic",foreground:"#637777"}},{scope:"string",settings:{foreground:"#ecc48d"}},{scope:["string.quoted","variable.other.readwrite.js"],settings:{foreground:"#ecc48d"}},{scope:"support.constant.math",settings:{foreground:"#c5e478"}},{scope:["constant.numeric","constant.character.numeric"],settings:{fontStyle:"",foreground:"#F78C6C"}},{scope:["constant.language","punctuation.definition.constant","variable.other.constant"],settings:{foreground:"#82AAFF"}},{scope:["constant.character","constant.other"],settings:{foreground:"#82AAFF"}},{scope:"constant.character.escape",settings:{foreground:"#F78C6C"}},{scope:["string.regexp","string.regexp keyword.other"],settings:{foreground:"#5ca7e4"}},{scope:"meta.function punctuation.separator.comma",settings:{foreground:"#5f7e97"}},{scope:"variable",settings:{foreground:"#c5e478"}},{scope:["punctuation.accessor","keyword"],settings:{fontStyle:"italic",foreground:"#c792ea"}},{scope:["storage","meta.var.expr","meta.class meta.method.declaration meta.var.expr storage.type.js","storage.type.property.js","storage.type.property.ts","storage.type.property.tsx"],settings:{fontStyle:"italic",foreground:"#c792ea"}},{scope:"storage.type",settings:{foreground:"#c792ea"}},{scope:"storage.type.function.arrow.js",settings:{fontStyle:""}},{scope:["entity.name.class","meta.class entity.name.type.class"],settings:{foreground:"#ffcb8b"}},{scope:"entity.other.inherited-class",settings:{foreground:"#c5e478"}},{scope:"entity.name.function",settings:{fontStyle:"italic",foreground:"#c792ea"}},{scope:["punctuation.definition.tag","meta.tag"],settings:{foreground:"#7fdbca"}},{scope:["entity.name.tag","meta.tag.other.html","meta.tag.other.js","meta.tag.other.tsx","entity.name.tag.tsx","entity.name.tag.js","entity.name.tag","meta.tag.js","meta.tag.tsx","meta.tag.html"],settings:{fontStyle:"",foreground:"#caece6"}},{scope:"entity.other.attribute-name",settings:{fontStyle:"italic",foreground:"#c5e478"}},{scope:"entity.name.tag.custom",settings:{foreground:"#f78c6c"}},{scope:["support.function","support.constant"],settings:{foreground:"#82AAFF"}},{scope:"support.constant.meta.property-value",settings:{foreground:"#7fdbca"}},{scope:["support.type","support.class"],settings:{foreground:"#c5e478"}},{scope:"support.variable.dom",settings:{foreground:"#c5e478"}},{scope:"invalid",settings:{background:"#ff2c83",foreground:"#ffffff"}},{scope:"invalid.deprecated",settings:{background:"#d3423e",foreground:"#ffffff"}},{scope:"keyword.operator",settings:{fontStyle:"",foreground:"#7fdbca"}},{scope:"keyword.operator.relational",settings:{fontStyle:"italic",foreground:"#c792ea"}},{scope:"keyword.operator.assignment",settings:{foreground:"#c792ea"}},{scope:"keyword.operator.arithmetic",settings:{foreground:"#c792ea"}},{scope:"keyword.operator.bitwise",settings:{foreground:"#c792ea"}},{scope:"keyword.operator.increment",settings:{foreground:"#c792ea"}},{scope:"keyword.operator.ternary",settings:{foreground:"#c792ea"}},{scope:"comment.line.double-slash",settings:{foreground:"#637777"}},{scope:"object",settings:{foreground:"#cdebf7"}},{scope:"constant.language.null",settings:{foreground:"#ff5874"}},{scope:"meta.brace",settings:{foreground:"#d6deeb"}},{scope:"meta.delimiter.period",settings:{fontStyle:"italic",foreground:"#c792ea"}},{scope:"punctuation.definition.string",settings:{foreground:"#d9f5dd"}},{scope:"punctuation.definition.string.begin.markdown",settings:{foreground:"#ff5874"}},{scope:"constant.language.boolean",settings:{foreground:"#ff5874"}},{scope:"object.comma",settings:{foreground:"#ffffff"}},{scope:"variable.parameter.function",settings:{fontStyle:"",foreground:"#7fdbca"}},{scope:["support.type.vendor.property-name","support.constant.vendor.property-value","support.type.property-name","meta.property-list entity.name.tag"],settings:{fontStyle:"",foreground:"#80CBC4"}},{scope:"meta.property-list entity.name.tag.reference",settings:{foreground:"#57eaf1"}},{scope:"constant.other.color.rgb-value punctuation.definition.constant",settings:{foreground:"#F78C6C"}},{scope:"constant.other.color",settings:{foreground:"#FFEB95"}},{scope:"keyword.other.unit",settings:{foreground:"#FFEB95"}},{scope:"meta.selector",settings:{fontStyle:"italic",foreground:"#c792ea"}},{scope:"entity.other.attribute-name.id",settings:{foreground:"#FAD430"}},{scope:"meta.property-name",settings:{foreground:"#80CBC4"}},{scope:["entity.name.tag.doctype","meta.tag.sgml.doctype"],settings:{fontStyle:"italic",foreground:"#c792ea"}},{scope:"punctuation.definition.parameters",settings:{foreground:"#d9f5dd"}},{scope:"keyword.control.operator",settings:{foreground:"#7fdbca"}},{scope:"keyword.operator.logical",settings:{fontStyle:"",foreground:"#c792ea"}},{scope:["variable.instance","variable.other.instance","variable.readwrite.instance","variable.other.readwrite.instance","variable.other.property"],settings:{foreground:"#baebe2"}},{scope:["variable.other.object.property"],settings:{fontStyle:"italic",foreground:"#faf39f"}},{scope:["variable.other.object.js"],settings:{fontStyle:""}},{scope:["entity.name.function"],settings:{fontStyle:"italic",foreground:"#82AAFF"}},{scope:["keyword.operator.comparison","keyword.control.flow.js","keyword.control.flow.ts","keyword.control.flow.tsx","keyword.control.ruby","keyword.control.module.ruby","keyword.control.class.ruby","keyword.control.def.ruby","keyword.control.loop.js","keyword.control.loop.ts","keyword.control.import.js","keyword.control.import.ts","keyword.control.import.tsx","keyword.control.from.js","keyword.control.from.ts","keyword.control.from.tsx","keyword.operator.instanceof.js","keyword.operator.expression.instanceof.ts","keyword.operator.expression.instanceof.tsx"],settings:{fontStyle:"italic",foreground:"#c792ea"}},{scope:["keyword.control.conditional.js","keyword.control.conditional.ts","keyword.control.switch.js","keyword.control.switch.ts"],settings:{fontStyle:"",foreground:"#c792ea"}},{scope:["support.constant","keyword.other.special-method","keyword.other.new","keyword.other.debugger","keyword.control"],settings:{foreground:"#7fdbca"}},{scope:"support.function",settings:{foreground:"#c5e478"}},{scope:"invalid.broken",settings:{background:"#F78C6C",foreground:"#020e14"}},{scope:"invalid.unimplemented",settings:{background:"#8BD649",foreground:"#ffffff"}},{scope:"invalid.illegal",settings:{background:"#ec5f67",foreground:"#ffffff"}},{scope:"variable.language",settings:{foreground:"#7fdbca"}},{scope:"support.variable.property",settings:{foreground:"#7fdbca"}},{scope:"variable.function",settings:{foreground:"#82AAFF"}},{scope:"variable.interpolation",settings:{foreground:"#ec5f67"}},{scope:"meta.function-call",settings:{foreground:"#82AAFF"}},{scope:"punctuation.section.embedded",settings:{foreground:"#d3423e"}},{scope:["punctuation.terminator.expression","punctuation.definition.arguments","punctuation.definition.array","punctuation.section.array","meta.array"],settings:{foreground:"#d6deeb"}},{scope:["punctuation.definition.list.begin","punctuation.definition.list.end","punctuation.separator.arguments","punctuation.definition.list"],settings:{foreground:"#d9f5dd"}},{scope:"string.template meta.template.expression",settings:{foreground:"#d3423e"}},{scope:"string.template punctuation.definition.string",settings:{foreground:"#d6deeb"}},{scope:"italic",settings:{fontStyle:"italic",foreground:"#c792ea"}},{scope:"bold",settings:{fontStyle:"bold",foreground:"#c5e478"}},{scope:"quote",settings:{fontStyle:"italic",foreground:"#697098"}},{scope:"raw",settings:{foreground:"#80CBC4"}},{scope:"variable.assignment.coffee",settings:{foreground:"#31e1eb"}},{scope:"variable.parameter.function.coffee",settings:{foreground:"#d6deeb"}},{scope:"variable.assignment.coffee",settings:{foreground:"#7fdbca"}},{scope:"variable.other.readwrite.cs",settings:{foreground:"#d6deeb"}},{scope:["entity.name.type.class.cs","storage.type.cs"],settings:{foreground:"#ffcb8b"}},{scope:"entity.name.type.namespace.cs",settings:{foreground:"#B2CCD6"}},{scope:"string.unquoted.preprocessor.message.cs",settings:{foreground:"#d6deeb"}},{scope:["punctuation.separator.hash.cs","keyword.preprocessor.region.cs","keyword.preprocessor.endregion.cs"],settings:{fontStyle:"bold",foreground:"#ffcb8b"}},{scope:"variable.other.object.cs",settings:{foreground:"#B2CCD6"}},{scope:"entity.name.type.enum.cs",settings:{foreground:"#c5e478"}},{scope:["string.interpolated.single.dart","string.interpolated.double.dart"],settings:{foreground:"#FFCB8B"}},{scope:"support.class.dart",settings:{foreground:"#FFCB8B"}},{scope:["entity.name.tag.css","entity.name.tag.less","entity.name.tag.custom.css","support.constant.property-value.css"],settings:{fontStyle:"",foreground:"#ff6363"}},{scope:["entity.name.tag.wildcard.css","entity.name.tag.wildcard.less","entity.name.tag.wildcard.scss","entity.name.tag.wildcard.sass"],settings:{foreground:"#7fdbca"}},{scope:"keyword.other.unit.css",settings:{foreground:"#FFEB95"}},{scope:["meta.attribute-selector.css entity.other.attribute-name.attribute","variable.other.readwrite.js"],settings:{foreground:"#F78C6C"}},{scope:["source.elixir support.type.elixir","source.elixir meta.module.elixir entity.name.class.elixir"],settings:{foreground:"#82AAFF"}},{scope:"source.elixir entity.name.function",settings:{foreground:"#c5e478"}},{scope:["source.elixir constant.other.symbol.elixir","source.elixir constant.other.keywords.elixir"],settings:{foreground:"#82AAFF"}},{scope:"source.elixir punctuation.definition.string",settings:{foreground:"#c5e478"}},{scope:["source.elixir variable.other.readwrite.module.elixir","source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir"],settings:{foreground:"#c5e478"}},{scope:"source.elixir .punctuation.binary.elixir",settings:{fontStyle:"italic",foreground:"#c792ea"}},{scope:"constant.keyword.clojure",settings:{foreground:"#7fdbca"}},{scope:"source.go meta.function-call.go",settings:{foreground:"#DDDDDD"}},{scope:["source.go keyword.package.go","source.go keyword.import.go","source.go keyword.function.go","source.go keyword.type.go","source.go keyword.struct.go","source.go keyword.interface.go","source.go keyword.const.go","source.go keyword.var.go","source.go keyword.map.go","source.go keyword.channel.go","source.go keyword.control.go"],settings:{fontStyle:"italic",foreground:"#c792ea"}},{scope:["source.go constant.language.go","source.go constant.other.placeholder.go"],settings:{foreground:"#ff5874"}},{scope:["entity.name.function.preprocessor.cpp","entity.scope.name.cpp"],settings:{foreground:"#7fdbcaff"}},{scope:["meta.namespace-block.cpp"],settings:{foreground:"#e0dec6"}},{scope:["storage.type.language.primitive.cpp"],settings:{foreground:"#ff5874"}},{scope:["meta.preprocessor.macro.cpp"],settings:{foreground:"#d6deeb"}},{scope:["variable.parameter"],settings:{foreground:"#ffcb8b"}},{scope:["variable.other.readwrite.powershell"],settings:{foreground:"#82AAFF"}},{scope:["support.function.powershell"],settings:{foreground:"#7fdbcaff"}},{scope:"entity.other.attribute-name.id.html",settings:{foreground:"#c5e478"}},{scope:"punctuation.definition.tag.html",settings:{foreground:"#6ae9f0"}},{scope:"meta.tag.sgml.doctype.html",settings:{fontStyle:"italic",foreground:"#c792ea"}},{scope:"meta.class entity.name.type.class.js",settings:{foreground:"#ffcb8b"}},{scope:"meta.method.declaration storage.type.js",settings:{foreground:"#82AAFF"}},{scope:"terminator.js",settings:{foreground:"#d6deeb"}},{scope:"meta.js punctuation.definition.js",settings:{foreground:"#d6deeb"}},{scope:["entity.name.type.instance.jsdoc","entity.name.type.instance.phpdoc"],settings:{foreground:"#5f7e97"}},{scope:["variable.other.jsdoc","variable.other.phpdoc"],settings:{foreground:"#78ccf0"}},{scope:["variable.other.meta.import.js","meta.import.js variable.other","variable.other.meta.export.js","meta.export.js variable.other"],settings:{foreground:"#d6deeb"}},{scope:"variable.parameter.function.js",settings:{foreground:"#7986E7"}},{scope:["variable.other.object.js","variable.other.object.jsx","variable.object.property.js","variable.object.property.jsx"],settings:{foreground:"#d6deeb"}},{scope:["variable.js","variable.other.js"],settings:{foreground:"#d6deeb"}},{scope:["entity.name.type.js","entity.name.type.module.js"],settings:{fontStyle:"",foreground:"#ffcb8b"}},{scope:"support.class.js",settings:{foreground:"#d6deeb"}},{scope:"support.type.property-name.json",settings:{foreground:"#7fdbca"}},{scope:"support.constant.json",settings:{foreground:"#c5e478"}},{scope:"meta.structure.dictionary.value.json string.quoted.double",settings:{foreground:"#c789d6"}},{scope:"string.quoted.double.json punctuation.definition.string.json",settings:{foreground:"#80CBC4"}},{scope:"meta.structure.dictionary.json meta.structure.dictionary.value constant.language",settings:{foreground:"#ff5874"}},{scope:"variable.other.object.js",settings:{fontStyle:"italic",foreground:"#7fdbca"}},{scope:["variable.other.ruby"],settings:{foreground:"#d6deeb"}},{scope:["entity.name.type.class.ruby"],settings:{foreground:"#ecc48d"}},{scope:"constant.language.symbol.hashkey.ruby",settings:{foreground:"#7fdbca"}},{scope:"constant.language.symbol.ruby",settings:{foreground:"#7fdbca"}},{scope:"entity.name.tag.less",settings:{foreground:"#7fdbca"}},{scope:"keyword.other.unit.css",settings:{foreground:"#FFEB95"}},{scope:"meta.attribute-selector.less entity.other.attribute-name.attribute",settings:{foreground:"#F78C6C"}},{scope:["markup.heading.markdown","markup.heading.setext.1.markdown","markup.heading.setext.2.markdown"],settings:{foreground:"#82b1ff"}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic",foreground:"#c792ea"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold",foreground:"#c5e478"}},{scope:"markup.quote.markdown",settings:{fontStyle:"italic",foreground:"#697098"}},{scope:"markup.inline.raw.markdown",settings:{foreground:"#80CBC4"}},{scope:["markup.underline.link.markdown","markup.underline.link.image.markdown"],settings:{foreground:"#ff869a"}},{scope:["string.other.link.title.markdown","string.other.link.description.markdown"],settings:{foreground:"#d6deeb"}},{scope:["punctuation.definition.string.markdown","punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","meta.link.inline.markdown punctuation.definition.string"],settings:{foreground:"#82b1ff"}},{scope:["punctuation.definition.metadata.markdown"],settings:{foreground:"#7fdbca"}},{scope:["beginning.punctuation.definition.list.markdown"],settings:{foreground:"#82b1ff"}},{scope:"markup.inline.raw.string.markdown",settings:{foreground:"#c5e478"}},{scope:["variable.other.php","variable.other.property.php"],settings:{foreground:"#bec5d4"}},{scope:"support.class.php",settings:{foreground:"#ffcb8b"}},{scope:"meta.function-call.php punctuation",settings:{foreground:"#d6deeb"}},{scope:"variable.other.global.php",settings:{foreground:"#c5e478"}},{scope:"variable.other.global.php punctuation.definition.variable",settings:{foreground:"#c5e478"}},{scope:"constant.language.python",settings:{foreground:"#ff5874"}},{scope:["variable.parameter.function.python","meta.function-call.arguments.python"],settings:{foreground:"#82AAFF"}},{scope:["meta.function-call.python","meta.function-call.generic.python"],settings:{foreground:"#B2CCD6"}},{scope:"punctuation.python",settings:{foreground:"#d6deeb"}},{scope:"entity.name.function.decorator.python",settings:{foreground:"#c5e478"}},{scope:"source.python variable.language.special",settings:{foreground:"#8EACE3"}},{scope:"keyword.control",settings:{fontStyle:"italic",foreground:"#c792ea"}},{scope:["variable.scss","variable.sass","variable.parameter.url.scss","variable.parameter.url.sass"],settings:{foreground:"#c5e478"}},{scope:["source.css.scss meta.at-rule variable","source.css.sass meta.at-rule variable"],settings:{foreground:"#82AAFF"}},{scope:["source.css.scss meta.at-rule variable","source.css.sass meta.at-rule variable"],settings:{foreground:"#bec5d4"}},{scope:["meta.attribute-selector.scss entity.other.attribute-name.attribute","meta.attribute-selector.sass entity.other.attribute-name.attribute"],settings:{foreground:"#F78C6C"}},{scope:["entity.name.tag.scss","entity.name.tag.sass"],settings:{foreground:"#7fdbca"}},{scope:["keyword.other.unit.scss","keyword.other.unit.sass"],settings:{foreground:"#FFEB95"}},{scope:["variable.other.readwrite.alias.ts","variable.other.readwrite.alias.tsx","variable.other.readwrite.ts","variable.other.readwrite.tsx","variable.other.object.ts","variable.other.object.tsx","variable.object.property.ts","variable.object.property.tsx","variable.other.ts","variable.other.tsx","variable.tsx","variable.ts"],settings:{foreground:"#d6deeb"}},{scope:["entity.name.type.ts","entity.name.type.tsx"],settings:{foreground:"#ffcb8b"}},{scope:["support.class.node.ts","support.class.node.tsx"],settings:{foreground:"#82AAFF"}},{scope:["meta.type.parameters.ts entity.name.type","meta.type.parameters.tsx entity.name.type"],settings:{foreground:"#5f7e97"}},{scope:["meta.import.ts punctuation.definition.block","meta.import.tsx punctuation.definition.block","meta.export.ts punctuation.definition.block","meta.export.tsx punctuation.definition.block"],settings:{foreground:"#d6deeb"}},{scope:["meta.decorator punctuation.decorator.ts","meta.decorator punctuation.decorator.tsx"],settings:{foreground:"#82AAFF"}},{scope:"meta.tag.js meta.jsx.children.tsx",settings:{foreground:"#82AAFF"}},{scope:"entity.name.tag.yaml",settings:{foreground:"#7fdbca"}},{scope:["variable.other.readwrite.js","variable.parameter"],settings:{foreground:"#d7dbe0"}},{scope:["support.class.component.js","support.class.component.tsx"],settings:{fontStyle:"",foreground:"#f78c6c"}},{scope:["meta.jsx.children","meta.jsx.children.js","meta.jsx.children.tsx"],settings:{foreground:"#d6deeb"}},{scope:"meta.class entity.name.type.class.tsx",settings:{foreground:"#ffcb8b"}},{scope:["entity.name.type.tsx","entity.name.type.module.tsx"],settings:{foreground:"#ffcb8b"}},{scope:["meta.class.ts meta.var.expr.ts storage.type.ts","meta.class.tsx meta.var.expr.tsx storage.type.tsx"],settings:{foreground:"#C792EA"}},{scope:["meta.method.declaration storage.type.ts","meta.method.declaration storage.type.tsx"],settings:{foreground:"#82AAFF"}},{scope:["meta.property-list.css meta.property-value.css variable.other.less","meta.property-list.scss variable.scss","meta.property-list.sass variable.sass","meta.brace","keyword.operator.operator","keyword.operator.or.regexp","keyword.operator.expression.in","keyword.operator.relational","keyword.operator.assignment","keyword.operator.comparison","keyword.operator.type","keyword.operator","keyword","punctuation.definintion.string","punctuation","variable.other.readwrite.js","storage.type","source.css","string.quoted"],settings:{fontStyle:""}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/nim.whBoXTHG.js b/assets/chunks/nim.whBoXTHG.js new file mode 100644 index 000000000..fcf8382e8 --- /dev/null +++ b/assets/chunks/nim.whBoXTHG.js @@ -0,0 +1 @@ +import e from"./c.RCJZWN-0.js";import n from"./html.CuK0VrWf.js";import t from"./xml.BzTcx3OS.js";import a from"./javascript.Dch3xQiY.js";import i from"./css.CbYhyuC0.js";import m from"./glsl.-GlVTnW0.js";import r from"./markdown.BdfWgkoX.js";import"./java.ClXEvkw9.js";const o=Object.freeze({displayName:"Nim",fileTypes:["nim"],name:"nim",patterns:[{begin:"[ \\t]*##\\[",contentName:"comment.block.doc-comment.content.nim",end:"\\]##",name:"comment.block.doc-comment.nim",patterns:[{include:"#multilinedoccomment",name:"comment.block.doc-comment.nested.nim"}]},{begin:"[ \\t]*#\\[",contentName:"comment.block.content.nim",end:"\\]#",name:"comment.block.nim",patterns:[{include:"#multilinecomment",name:"comment.block.nested.nim"}]},{begin:"(^[ \\t]+)?(?=##)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.nim"}},end:"(?!\\G)",patterns:[{begin:"##",beginCaptures:{0:{name:"punctuation.definition.comment.nim"}},end:"\\n",name:"comment.line.number-sign.doc-comment.nim"}]},{begin:"(^[ \\t]+)?(?=#[^\\[])",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.nim"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.nim"}},end:"\\n",name:"comment.line.number-sign.nim"}]},{comment:"A nim procedure or method",name:"meta.proc.nim",patterns:[{begin:"\\b(proc|method|template|macro|iterator|converter|func)\\s+\\`?([^\\:\\{\\s\\`\\*\\(]*)\\`?(\\s*\\*)?\\s*(?=\\(|\\=|:|\\[|\\n|\\{)",captures:{1:{name:"keyword.other"},2:{name:"entity.name.function.nim"},3:{name:"keyword.control.export"}},end:"\\)",patterns:[{include:"source.nim"}]}]},{begin:'discard """',comment:"A discarded triple string literal comment",end:'"""(?!")',name:"comment.line.discarded.nim"},{include:"#float_literal"},{include:"#integer_literal"},{comment:"Operator as function name",match:"(?<=\\`)[^\\` ]+(?=\\`)",name:"entity.name.function.nim"},{captures:{1:{name:"keyword.control.export"}},comment:"Export qualifier.",match:"\\b\\s*(\\*)(?:\\s*(?=[,:])|\\s+(?=[=]))"},{captures:{1:{name:"support.type.nim"},2:{name:"keyword.control.export"}},comment:"Export qualifier following a type def.",match:"\\b([A-Z]\\w+)(\\*)"},{include:"#string_literal"},{comment:"Language Constants.",match:"\\b(true|false|Inf|NegInf|NaN|nil)\\b",name:"constant.language.nim"},{comment:"Keywords that affect program control flow or scope.",match:"\\b(block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\b",name:"keyword.control.nim"},{comment:"Keyword boolean operators for expressions.",match:"(\\b(and|in|is|isnot|not|notin|or|xor)\\b)",name:"keyword.boolean.nim"},{comment:"Generic operators for expressions.",match:"(=|\\+|-|\\*|/|<|>|@|\\$|~|&|%|!|\\?|\\^|\\.|:|\\\\)+",name:"keyword.operator.nim"},{comment:"Other keywords.",match:"(\\b(addr|as|asm|atomic|bind|cast|const|converter|concept|defer|discard|distinct|div|enum|export|from|import|include|let|mod|mixin|object|of|ptr|ref|shl|shr|static|type|using|var|tuple|iterator|macro|func|method|proc|template)\\b)",name:"keyword.other.nim"},{comment:"Invalid and unused keywords.",match:"(\\b(generic|interface|lambda|out|shared)\\b)",name:"invalid.illegal.invalid-keyword.nim"},{comment:"Common functions",match:"\\b(new|await|assert|echo|defined|declared|newException|countup|countdown|high|low)\\b",name:"keyword.other.common.function.nim"},{comment:"Built-in, concrete types.",match:"\\b(((uint|int)(8|16|32|64)?)|float(32|64)?|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed)\\b",name:"storage.type.concrete.nim"},{comment:"Built-in, generic types.",match:"\\b(range|array|seq|set|pointer)\\b",name:"storage.type.generic.nim"},{comment:"Special types.",match:"\\b(openarray|varargs|void)\\b",name:"storage.type.generic.nim"},{comment:"Other constants.",match:"\\b[A-Z][A-Z0-9_]+\\b",name:"support.constant.nim"},{comment:"Other types.",match:"\\b[A-Z]\\w+\\b",name:"support.type.nim"},{comment:"Function call.",match:"\\b\\w+\\b(?=(\\[([a-zA-Z0-9_,]|\\s)+\\])?\\()",name:"support.function.any-method.nim"},{comment:"Function call (no parenthesis).",match:"(?!(openarray|varargs|void|range|array|seq|set|pointer|new|await|assert|echo|defined|declared|newException|countup|countdown|high|low|((uint|int)(8|16|32|64)?)|float(32|64)?|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed|addr|as|asm|atomic|bind|cast|const|converter|concept|defer|discard|distinct|div|enum|export|from|import|include|let|mod|mixin|object|of|ptr|ref|shl|shr|static|type|using|var|tuple|iterator|macro|func|method|proc|template|and|in|is|isnot|not|notin|or|xor|proc|method|template|macro|iterator|converter|func|true|false|Inf|NegInf|NaN|nil|block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\b)\\w+\\s+(?!(and|in|is|isnot|not|notin|or|xor|[^a-zA-Z0-9_\"'`(-+]+)\\b)(?=[a-zA-Z0-9_\"'`(-+])",name:"support.function.any-method.nim"},{begin:'(^\\s*)?(?=\\{\\.emit: ?""")',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'\\{\\.(emit:) ?(""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.c",end:'(")""(?!")(\\.{0,1}\\})?',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"source.c"}},name:"meta.embedded.block.c",patterns:[{begin:"\\`",end:"\\`",name:"keyword.operator.nim"},{include:"source.c"}]}]},{begin:"\\{\\.",beginCaptures:{0:{name:"punctuation.pragma.start.nim"}},end:"\\.?\\}",endCaptures:{0:{name:"punctuation.pragma.end.nim"}},patterns:[{begin:"\\b([[:alpha:]]\\w*)(?:\\s|\\s*:)",beginCaptures:{1:{name:"meta.preprocessor.pragma.nim"}},end:"(?=\\.?\\}|,)",patterns:[{include:"source.nim"}]},{begin:"\\b([[:alpha:]]\\w*)\\(",beginCaptures:{1:{name:"meta.preprocessor.pragma.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{captures:{1:{name:"meta.preprocessor.pragma.nim"}},match:"\\b([[:alpha:]]\\w*)(?=\\.?\\}|,)"},{begin:'\\b([[:alpha:]]\\w*)(""")',beginCaptures:{1:{name:"meta.preprocessor.pragma.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"""(?!")',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim"},{begin:'\\b([[:alpha:]]\\w*)(")',beginCaptures:{1:{name:"meta.preprocessor.pragma.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.raw.nim"},{begin:"\\b(hint\\[\\w+\\]):",beginCaptures:{1:{name:"meta.preprocessor.pragma.nim"}},end:"(?=\\.?\\}|,)",patterns:[{include:"source.nim"}]},{match:",",name:"punctuation.separator.comma.nim"}]},{begin:'(^\\s*)?(?=asm """)',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'(asm) (""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.asm",end:'(")""(?!")',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"source.asm"}},name:"meta.embedded.block.asm",patterns:[{begin:"\\`",end:"\\`",name:"keyword.operator.nim"},{include:"source.asm"}]}]},{captures:{1:{name:"storage.type.function.nim"},2:{name:"keyword.operator.nim"}},comment:"tmpl specifier",match:'(tmpl(i)?)(?=( (html|xml|js|css|glsl|md))?""")'},{begin:'(^\\s*)?(?=html""")',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'(html)(""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"text.html",end:'(")""(?!")',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"text.html"}},name:"meta.embedded.block.html",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{1:{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{1:{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"text.html.basic"}]}]},{begin:'(^\\s*)?(?=xml""")',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'(xml)(""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"text.xml",end:'(")""(?!")',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"text.xml"}},name:"meta.embedded.block.xml",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{1:{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{1:{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"text.xml"}]}]},{begin:'(^\\s*)?(?=js""")',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'(js)(""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.js",end:'(")""(?!")',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"source.js"}},name:"meta.embedded.block.js",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{1:{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{1:{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"source.js"}]}]},{begin:'(^\\s*)?(?=css""")',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'(css)(""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.css",end:'(")""(?!")',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"source.css"}},name:"meta.embedded.block.css",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{1:{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{1:{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"source.css"}]}]},{begin:'(^\\s*)?(?=glsl""")',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'(glsl)(""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.glsl",end:'(")""(?!")',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"source.glsl"}},name:"meta.embedded.block.glsl",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{1:{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{1:{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"source.glsl"}]}]},{begin:'(^\\s*)?(?=md""")',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'(md)(""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"text.html.markdown",end:'(")""(?!")',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"text.html.markdown"}},name:"meta.embedded.block.html.markdown",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{1:{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{1:{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"text.html.markdown"}]}]}],repository:{char_escapes:{patterns:[{match:"\\\\[cC]|\\\\[rR]",name:"constant.character.escape.carriagereturn.nim"},{match:"\\\\[lL]|\\\\[nN]",name:"constant.character.escape.linefeed.nim"},{match:"\\\\[fF]",name:"constant.character.escape.formfeed.nim"},{match:"\\\\[tT]",name:"constant.character.escape.tabulator.nim"},{match:"\\\\[vV]",name:"constant.character.escape.verticaltabulator.nim"},{match:'\\\\\\"',name:"constant.character.escape.double-quote.nim"},{match:"\\\\'",name:"constant.character.escape.single-quote.nim"},{match:"\\\\[0-9]+",name:"constant.character.escape.chardecimalvalue.nim"},{match:"\\\\[aA]",name:"constant.character.escape.alert.nim"},{match:"\\\\[bB]",name:"constant.character.escape.backspace.nim"},{match:"\\\\[eE]",name:"constant.character.escape.escape.nim"},{match:"\\\\[xX]\\h\\h",name:"constant.character.escape.hex.nim"},{match:"\\\\\\\\",name:"constant.character.escape.backslash.nim"}]},extended_string_quoted_double_raw:{begin:'\\b(\\w+)(")',beginCaptures:{1:{name:"support.function.any-method.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.raw.nim",patterns:[{include:"#raw_string_escapes"}]},extended_string_quoted_triple_raw:{begin:'\\b(\\w+)(""")',beginCaptures:{1:{name:"support.function.any-method.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim"},float_literal:{patterns:[{match:"\\b\\d[_\\d]*((\\.\\d[_\\d]*([eE][\\+\\-]?\\d[_\\d]*)?)|([eE][\\+\\-]?\\d[_\\d]*))('([fF](32|64|128)|[fFdD]))?",name:"constant.numeric.float.decimal.nim"},{match:"\\b0[xX]\\h[_\\h]*'([fF](32|64|128)|[fFdD])",name:"constant.numeric.float.hexadecimal.nim"},{match:"\\b0o[0-7][_0-7]*'([fF](32|64|128)|[fFdD])",name:"constant.numeric.float.octal.nim"},{match:"\\b0(b|B)[01][_01]*'([fF](32|64|128)|[fFdD])",name:"constant.numeric.float.binary.nim"},{match:"\\b(\\d[_\\d]*)'([fF](32|64|128)|[fFdD])",name:"constant.numeric.float.decimal.nim"}]},fmt_interpolation:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.nim"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.nim"}},name:"meta.template.expression.nim",patterns:[{begin:":",end:"(?=\\})",name:"meta.template.format-specifier.nim"},{include:"source.nim"}]},fmt_string:{begin:'\\b(fmt)(")',beginCaptures:{1:{name:"support.function.any-method.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.raw.nim",patterns:[{match:'(?<!")"(?!")',name:"invalid.illegal.nim"},{include:"#raw_string_escapes"},{include:"#fmt_interpolation"}]},fmt_string_call:{begin:'(fmt)\\((?=")',beginCaptures:{1:{name:"support.function.any-method.nim"}},end:"\\)",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.nim"}},end:'"(?=\\))',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.nim",patterns:[{match:'"',name:"invalid.illegal.nim"},{include:"#string_escapes"},{include:"#fmt_interpolation"}]}]},fmt_string_operator:{begin:'(&)(")',beginCaptures:{1:{name:"keyword.operator.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.nim",patterns:[{match:'"',name:"invalid.illegal.nim"},{include:"#string_escapes"},{include:"#fmt_interpolation"}]},fmt_string_triple:{begin:'\\b(fmt)(""")',beginCaptures:{1:{name:"support.function.any-method.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim",patterns:[{include:"#fmt_interpolation"}]},fmt_string_triple_operator:{begin:'(&)(""")',beginCaptures:{1:{name:"keyword.operator.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim",patterns:[{include:"#fmt_interpolation"}]},integer_literal:{patterns:[{match:"\\b(0[xX]\\h[_\\h]*)('(([iIuU](8|16|32|64))|[uU]))?",name:"constant.numeric.integer.hexadecimal.nim"},{match:"\\b(0o[0-7][_0-7]*)('(([iIuU](8|16|32|64))|[uU]))?",name:"constant.numeric.integer.octal.nim"},{match:"\\b(0(b|B)[01][_01]*)('(([iIuU](8|16|32|64))|[uU]))?",name:"constant.numeric.integer.binary.nim"},{match:"\\b(\\d[_\\d]*)('(([iIuU](8|16|32|64))|[uU]))?",name:"constant.numeric.integer.decimal.nim"}]},multilinecomment:{begin:"#\\[",end:"\\]#",patterns:[{include:"#multilinecomment"}]},multilinedoccomment:{begin:"##\\[",end:"\\]##",patterns:[{include:"#multilinedoccomment"}]},raw_string_escapes:{captures:{1:{name:"constant.character.escape.double-quote.nim"}},match:'[^"]("")'},string_escapes:{patterns:[{match:"\\\\[pP]",name:"constant.character.escape.newline.nim"},{match:"\\\\[uU]\\h\\h\\h\\h",name:"constant.character.escape.hex.nim"},{match:"\\\\[uU]\\{\\h+\\}",name:"constant.character.escape.hex.nim"},{include:"#char_escapes"}]},string_literal:{patterns:[{include:"#fmt_string_triple"},{include:"#fmt_string_triple_operator"},{include:"#extended_string_quoted_triple_raw"},{include:"#string_quoted_triple_raw"},{include:"#fmt_string_operator"},{include:"#fmt_string"},{include:"#fmt_string_call"},{include:"#string_quoted_double_raw"},{include:"#extended_string_quoted_double_raw"},{include:"#string_quoted_single"},{include:"#string_quoted_triple"},{include:"#string_quoted_double"}]},string_quoted_double:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.nim"}},comment:"Double Quoted String",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.nim",patterns:[{include:"#string_escapes"}]},string_quoted_double_raw:{begin:'\\br"',beginCaptures:{0:{name:"punctuation.definition.string.begin.nim"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.raw.nim",patterns:[{include:"#raw_string_escapes"}]},string_quoted_single:{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.nim"}},comment:"Single quoted character literal",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.single.nim",patterns:[{include:"#char_escapes"},{match:"([^']{2,}?)",name:"invalid.illegal.character.nim"}]},string_quoted_triple:{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.nim"}},comment:"Triple Quoted String",end:'"""(?!")',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.nim"},string_quoted_triple_raw:{begin:'r"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.nim"}},comment:"Raw Triple Quoted String",end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim"}},scopeName:"source.nim",embeddedLangs:["c","html","xml","javascript","css","glsl","markdown"]});var h=[...e,...n,...t,...a,...i,...m,...r,o];export{h as default}; diff --git a/assets/chunks/nix.Dszwcx0o.js b/assets/chunks/nix.Dszwcx0o.js new file mode 100644 index 000000000..ad8648236 --- /dev/null +++ b/assets/chunks/nix.Dszwcx0o.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Nix",fileTypes:["nix"],name:"nix",patterns:[{include:"#expression"}],repository:{"attribute-bind":{patterns:[{include:"#attribute-name"},{include:"#attribute-bind-from-equals"}]},"attribute-bind-from-equals":{begin:"\\=",beginCaptures:{0:{name:"keyword.operator.bind.nix"}},end:"\\;",endCaptures:{0:{name:"punctuation.terminator.bind.nix"}},patterns:[{include:"#expression"}]},"attribute-inherit":{begin:"\\binherit\\b",beginCaptures:{0:{name:"keyword.other.inherit.nix"}},end:"\\;",endCaptures:{0:{name:"punctuation.terminator.inherit.nix"}},patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.function.arguments.nix"}},end:"(?=\\;)",patterns:[{begin:"\\)",beginCaptures:{0:{name:"punctuation.section.function.arguments.nix"}},end:"(?=\\;)",patterns:[{include:"#bad-reserved"},{include:"#attribute-name-single"},{include:"#others"}]},{include:"#expression"}]},{begin:"(?=[a-zA-Z\\_])",end:"(?=\\;)",patterns:[{include:"#bad-reserved"},{include:"#attribute-name-single"},{include:"#others"}]},{include:"#others"}]},"attribute-name":{patterns:[{match:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",name:"entity.other.attribute-name.multipart.nix"},{match:"\\."},{include:"#string-quoted"},{include:"#interpolation"}]},"attribute-name-single":{match:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",name:"entity.other.attribute-name.single.nix"},"attrset-contents":{patterns:[{include:"#attribute-inherit"},{include:"#bad-reserved"},{include:"#attribute-bind"},{include:"#others"}]},"attrset-definition":{begin:"(?=\\{)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"(\\{)",beginCaptures:{0:{name:"punctuation.definition.attrset.nix"}},end:"(\\})",endCaptures:{0:{name:"punctuation.definition.attrset.nix"}},patterns:[{include:"#attrset-contents"}]},{begin:"(?<=\\})",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]}]},"attrset-definition-brace-opened":{patterns:[{begin:"(?<=\\})",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"(?=.?)",end:"\\}",endCaptures:{0:{name:"punctuation.definition.attrset.nix"}},patterns:[{include:"#attrset-contents"}]}]},"attrset-for-sure":{patterns:[{begin:"(?=\\brec\\b)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\brec\\b",beginCaptures:{0:{name:"keyword.other.nix"}},end:"(?=\\{)",patterns:[{include:"#others"}]},{include:"#attrset-definition"},{include:"#others"}]},{begin:"(?=\\{\\s*(\\}|[^,?]*(=|;)))",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#attrset-definition"},{include:"#others"}]}]},"attrset-or-function":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.attrset-or-function.nix"}},end:"(?=([\\])};]|\\b(else|then)\\b))",patterns:[{begin:`(?=(\\s*\\}|\\"|\\binherit\\b|\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*(\\s*\\.|\\s*=[^=])))`,end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#attrset-definition-brace-opened"}]},{begin:"(?=(\\.\\.\\.|\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*\\s*[,?]))",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-definition-brace-opened"}]},{include:"#bad-reserved"},{begin:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",beginCaptures:{0:{name:"variable.parameter.function.maybe.nix"}},end:"(?=([\\])};]|\\b(else|then)\\b))",patterns:[{begin:"(?=\\.)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#attrset-definition-brace-opened"}]},{begin:"\\s*(\\,)",beginCaptures:{1:{name:"keyword.operator.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-definition-brace-opened"}]},{begin:"(?=\\=)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#attribute-bind-from-equals"},{include:"#attrset-definition-brace-opened"}]},{begin:"(?=\\?)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-parameter-default"},{begin:"\\,",beginCaptures:{0:{name:"keyword.operator.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-definition-brace-opened"}]}]},{include:"#others"}]},{include:"#others"}]},"bad-reserved":{match:"\\b(if|then|else|assert|with|let|in|rec|inherit)\\b",name:"invalid.illegal.reserved.nix"},comment:{patterns:[{begin:"/\\*([^*]|\\*[^\\/])*",end:"\\*\\/",name:"comment.block.nix",patterns:[{include:"#comment-remark"}]},{begin:"\\#",end:"$",name:"comment.line.number-sign.nix",patterns:[{include:"#comment-remark"}]}]},"comment-remark":{captures:{1:{name:"markup.bold.comment.nix"}},match:"(TODO|FIXME|BUG|\\!\\!\\!):?"},constants:{patterns:[{begin:"\\b(builtins|true|false|null)\\b",beginCaptures:{0:{name:"constant.language.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"\\b(scopedImport|import|isNull|abort|throw|baseNameOf|dirOf|removeAttrs|map|toString|derivationStrict|derivation)\\b",beginCaptures:{0:{name:"support.function.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"\\b[0-9]+\\b",beginCaptures:{0:{name:"constant.numeric.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]}]},expression:{patterns:[{include:"#parens-and-cont"},{include:"#list-and-cont"},{include:"#string"},{include:"#interpolation"},{include:"#with-assert"},{include:"#function-for-sure"},{include:"#attrset-for-sure"},{include:"#attrset-or-function"},{include:"#let"},{include:"#if"},{include:"#operator-unary"},{include:"#constants"},{include:"#bad-reserved"},{include:"#parameter-name-and-cont"},{include:"#others"}]},"expression-cont":{begin:"(?=.?)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#parens"},{include:"#list"},{include:"#string"},{include:"#interpolation"},{include:"#function-for-sure"},{include:"#attrset-for-sure"},{include:"#attrset-or-function"},{match:"(\\bor\\b|\\.|==|!=|!|\\<\\=|\\<|\\>\\=|\\>|&&|\\|\\||-\\>|//|\\?|\\+\\+|-|\\*|/(?=([^*]|$))|\\+)",name:"keyword.operator.nix"},{include:"#constants"},{include:"#bad-reserved"},{include:"#parameter-name"},{include:"#others"}]},"function-body":{begin:"(@\\s*([a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)\\s*)?(\\:)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression"}]},"function-body-from-colon":{begin:"(\\:)",beginCaptures:{0:{name:"punctuation.definition.function.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression"}]},"function-contents":{patterns:[{include:"#bad-reserved"},{include:"#function-parameter"},{include:"#others"}]},"function-definition":{begin:"(?=.?)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-body-from-colon"},{begin:"(?=.?)",end:"(?=\\:)",patterns:[{begin:"(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)",beginCaptures:{0:{name:"variable.parameter.function.4.nix"}},end:"(?=\\:)",patterns:[{begin:"\\@",end:"(?=\\:)",patterns:[{include:"#function-header-until-colon-no-arg"},{include:"#others"}]},{include:"#others"}]},{begin:"(?=\\{)",end:"(?=\\:)",patterns:[{include:"#function-header-until-colon-with-arg"}]}]},{include:"#others"}]},"function-definition-brace-opened":{begin:"(?=.?)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-body-from-colon"},{begin:"(?=.?)",end:"(?=\\:)",patterns:[{include:"#function-header-close-brace-with-arg"},{begin:"(?=.?)",end:"(?=\\})",patterns:[{include:"#function-contents"}]}]},{include:"#others"}]},"function-for-sure":{patterns:[{begin:`(?=(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*\\s*[:@]|\\{[^}]*\\}\\s*:|\\{[^#}"'/=]*[,\\?]))`,end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-definition"}]}]},"function-header-close-brace-no-arg":{begin:"\\}",beginCaptures:{0:{name:"punctuation.definition.entity.function.nix"}},end:"(?=\\:)",patterns:[{include:"#others"}]},"function-header-close-brace-with-arg":{begin:"\\}",beginCaptures:{0:{name:"punctuation.definition.entity.function.nix"}},end:"(?=\\:)",patterns:[{include:"#function-header-terminal-arg"},{include:"#others"}]},"function-header-open-brace":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.entity.function.2.nix"}},end:"(?=\\})",patterns:[{include:"#function-contents"}]},"function-header-terminal-arg":{begin:"(?=@)",end:"(?=\\:)",patterns:[{begin:"\\@",end:"(?=\\:)",patterns:[{begin:"(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)",end:"(?=\\:)",name:"variable.parameter.function.3.nix"},{include:"#others"}]},{include:"#others"}]},"function-header-until-colon-no-arg":{begin:"(?=\\{)",end:"(?=\\:)",patterns:[{include:"#function-header-open-brace"},{include:"#function-header-close-brace-no-arg"}]},"function-header-until-colon-with-arg":{begin:"(?=\\{)",end:"(?=\\:)",patterns:[{include:"#function-header-open-brace"},{include:"#function-header-close-brace-with-arg"}]},"function-parameter":{patterns:[{begin:"(\\.\\.\\.)",end:"(,|(?=\\}))",name:"keyword.operator.nix",patterns:[{include:"#others"}]},{begin:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",beginCaptures:{0:{name:"variable.parameter.function.1.nix"}},end:"(,|(?=\\}))",endCaptures:{0:{name:"keyword.operator.nix"}},patterns:[{include:"#whitespace"},{include:"#comment"},{include:"#function-parameter-default"},{include:"#expression"}]},{include:"#others"}]},"function-parameter-default":{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.nix"}},end:"(?=[,}])",patterns:[{include:"#expression"}]},if:{begin:"(?=\\bif\\b)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\bif\\b",beginCaptures:{0:{name:"keyword.other.nix"}},end:"\\bth(?=en\\b)",endCaptures:{0:{name:"keyword.other.nix"}},patterns:[{include:"#expression"}]},{begin:"(?<=th)en\\b",beginCaptures:{0:{name:"keyword.other.nix"}},end:"\\bel(?=se\\b)",endCaptures:{0:{name:"keyword.other.nix"}},patterns:[{include:"#expression"}]},{begin:"(?<=el)se\\b",beginCaptures:{0:{name:"keyword.other.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",endCaptures:{0:{name:"keyword.other.nix"}},patterns:[{include:"#expression"}]}]},illegal:{match:".",name:"invalid.illegal"},interpolation:{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.nix"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.nix"}},name:"markup.italic",patterns:[{include:"#expression"}]},let:{begin:"(?=\\blet\\b)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\blet\\b",beginCaptures:{0:{name:"keyword.other.nix"}},end:"(?=([\\])};,]|\\b(in|else|then)\\b))",patterns:[{begin:"(?=\\{)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\{",end:"\\}",patterns:[{include:"#attrset-contents"}]},{begin:"(^|(?<=\\}))",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{include:"#others"}]},{include:"#attrset-contents"},{include:"#others"}]},{begin:"\\bin\\b",beginCaptures:{0:{name:"keyword.other.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression"}]}]},list:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.list.nix"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.list.nix"}},patterns:[{include:"#expression"}]},"list-and-cont":{begin:"(?=\\[)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#list"},{include:"#expression-cont"}]},"operator-unary":{match:"(!|-)",name:"keyword.operator.unary.nix"},others:{patterns:[{include:"#whitespace"},{include:"#comment"},{include:"#illegal"}]},"parameter-name":{captures:{0:{name:"variable.parameter.name.nix"}},match:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*"},"parameter-name-and-cont":{begin:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",beginCaptures:{0:{name:"variable.parameter.name.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.expression.nix"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.expression.nix"}},patterns:[{include:"#expression"}]},"parens-and-cont":{begin:"(?=\\()",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#parens"},{include:"#expression-cont"}]},string:{patterns:[{begin:"(?=\\'\\')",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\'\\'",beginCaptures:{0:{name:"punctuation.definition.string.other.start.nix"}},end:"\\'\\'(?!\\$|\\'|\\\\.)",endCaptures:{0:{name:"punctuation.definition.string.other.end.nix"}},name:"string.quoted.other.nix",patterns:[{match:"\\'\\'(\\$|\\'|\\\\.)",name:"constant.character.escape.nix"},{include:"#interpolation"}]},{include:"#expression-cont"}]},{begin:'(?=\\")',end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#string-quoted"},{include:"#expression-cont"}]},{begin:"([a-zA-Z0-9\\.\\_\\-\\+]*(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)+)",beginCaptures:{0:{name:"string.unquoted.path.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"(\\<[a-zA-Z0-9\\.\\_\\-\\+]+(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)*\\>)",beginCaptures:{0:{name:"string.unquoted.spath.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"([a-zA-Z][a-zA-Z0-9\\+\\-\\.]*\\:[a-zA-Z0-9\\%\\/\\?\\:\\@\\&\\=\\+\\$\\,\\-\\_\\.\\!\\~\\*\\']+)",beginCaptures:{0:{name:"string.unquoted.url.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]}]},"string-quoted":{begin:'\\"',beginCaptures:{0:{name:"punctuation.definition.string.double.start.nix"}},end:'\\"',endCaptures:{0:{name:"punctuation.definition.string.double.end.nix"}},name:"string.quoted.double.nix",patterns:[{match:"\\\\.",name:"constant.character.escape.nix"},{include:"#interpolation"}]},whitespace:{match:"\\s+"},"with-assert":{begin:"\\b(with|assert)\\b",beginCaptures:{0:{name:"keyword.other.nix"}},end:"\\;",patterns:[{include:"#expression"}]}},scopeName:"source.nix"});var n=[e];export{n as default}; diff --git a/assets/chunks/nord.CsyjKwr8.js b/assets/chunks/nord.CsyjKwr8.js new file mode 100644 index 000000000..bf5fb68c5 --- /dev/null +++ b/assets/chunks/nord.CsyjKwr8.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBackground":"#3b4252","activityBar.activeBorder":"#88c0d0","activityBar.background":"#2e3440","activityBar.dropBackground":"#3b4252","activityBar.foreground":"#d8dee9","activityBarBadge.background":"#88c0d0","activityBarBadge.foreground":"#2e3440","badge.background":"#88c0d0","badge.foreground":"#2e3440","button.background":"#88c0d0ee","button.foreground":"#2e3440","button.hoverBackground":"#88c0d0","button.secondaryBackground":"#434c5e","button.secondaryForeground":"#d8dee9","button.secondaryHoverBackground":"#4c566a","charts.blue":"#81a1c1","charts.foreground":"#d8dee9","charts.green":"#a3be8c","charts.lines":"#88c0d0","charts.orange":"#d08770","charts.purple":"#b48ead","charts.red":"#bf616a","charts.yellow":"#ebcb8b","debugConsole.errorForeground":"#bf616a","debugConsole.infoForeground":"#88c0d0","debugConsole.sourceForeground":"#616e88","debugConsole.warningForeground":"#ebcb8b","debugConsoleInputIcon.foreground":"#81a1c1","debugExceptionWidget.background":"#4c566a","debugExceptionWidget.border":"#2e3440","debugToolBar.background":"#3b4252",descriptionForeground:"#d8dee9e6","diffEditor.insertedTextBackground":"#81a1c133","diffEditor.removedTextBackground":"#bf616a4d","dropdown.background":"#3b4252","dropdown.border":"#3b4252","dropdown.foreground":"#d8dee9","editor.background":"#2e3440","editor.findMatchBackground":"#88c0d066","editor.findMatchHighlightBackground":"#88c0d033","editor.findRangeHighlightBackground":"#88c0d033","editor.focusedStackFrameHighlightBackground":"#5e81ac","editor.foreground":"#d8dee9","editor.hoverHighlightBackground":"#3b4252","editor.inactiveSelectionBackground":"#434c5ecc","editor.inlineValuesBackground":"#4c566a","editor.inlineValuesForeground":"#eceff4","editor.lineHighlightBackground":"#3b4252","editor.lineHighlightBorder":"#3b4252","editor.rangeHighlightBackground":"#434c5e52","editor.selectionBackground":"#434c5ecc","editor.selectionHighlightBackground":"#434c5ecc","editor.stackFrameHighlightBackground":"#5e81ac","editor.wordHighlightBackground":"#81a1c166","editor.wordHighlightStrongBackground":"#81a1c199","editorActiveLineNumber.foreground":"#d8dee9cc","editorBracketHighlight.foreground1":"#8fbcbb","editorBracketHighlight.foreground2":"#88c0d0","editorBracketHighlight.foreground3":"#81a1c1","editorBracketHighlight.foreground4":"#5e81ac","editorBracketHighlight.foreground5":"#8fbcbb","editorBracketHighlight.foreground6":"#88c0d0","editorBracketHighlight.unexpectedBracket.foreground":"#bf616a","editorBracketMatch.background":"#2e344000","editorBracketMatch.border":"#88c0d0","editorCodeLens.foreground":"#4c566a","editorCursor.foreground":"#d8dee9","editorError.border":"#bf616a00","editorError.foreground":"#bf616a","editorGroup.background":"#2e3440","editorGroup.border":"#3b425201","editorGroup.dropBackground":"#3b425299","editorGroupHeader.border":"#3b425200","editorGroupHeader.noTabsBackground":"#2e3440","editorGroupHeader.tabsBackground":"#2e3440","editorGroupHeader.tabsBorder":"#3b425200","editorGutter.addedBackground":"#a3be8c","editorGutter.background":"#2e3440","editorGutter.deletedBackground":"#bf616a","editorGutter.modifiedBackground":"#ebcb8b","editorHint.border":"#ebcb8b00","editorHint.foreground":"#ebcb8b","editorHoverWidget.background":"#3b4252","editorHoverWidget.border":"#3b4252","editorIndentGuide.activeBackground":"#4c566a","editorIndentGuide.background":"#434c5eb3","editorInlayHint.background":"#434c5e","editorInlayHint.foreground":"#d8dee9","editorLineNumber.activeForeground":"#d8dee9","editorLineNumber.foreground":"#4c566a","editorLink.activeForeground":"#88c0d0","editorMarkerNavigation.background":"#5e81acc0","editorMarkerNavigationError.background":"#bf616ac0","editorMarkerNavigationWarning.background":"#ebcb8bc0","editorOverviewRuler.addedForeground":"#a3be8c","editorOverviewRuler.border":"#3b4252","editorOverviewRuler.currentContentForeground":"#3b4252","editorOverviewRuler.deletedForeground":"#bf616a","editorOverviewRuler.errorForeground":"#bf616a","editorOverviewRuler.findMatchForeground":"#88c0d066","editorOverviewRuler.incomingContentForeground":"#3b4252","editorOverviewRuler.infoForeground":"#81a1c1","editorOverviewRuler.modifiedForeground":"#ebcb8b","editorOverviewRuler.rangeHighlightForeground":"#88c0d066","editorOverviewRuler.selectionHighlightForeground":"#88c0d066","editorOverviewRuler.warningForeground":"#ebcb8b","editorOverviewRuler.wordHighlightForeground":"#88c0d066","editorOverviewRuler.wordHighlightStrongForeground":"#88c0d066","editorRuler.foreground":"#434c5e","editorSuggestWidget.background":"#2e3440","editorSuggestWidget.border":"#3b4252","editorSuggestWidget.focusHighlightForeground":"#88c0d0","editorSuggestWidget.foreground":"#d8dee9","editorSuggestWidget.highlightForeground":"#88c0d0","editorSuggestWidget.selectedBackground":"#434c5e","editorSuggestWidget.selectedForeground":"#d8dee9","editorWarning.border":"#ebcb8b00","editorWarning.foreground":"#ebcb8b","editorWhitespace.foreground":"#4c566ab3","editorWidget.background":"#2e3440","editorWidget.border":"#3b4252",errorForeground:"#bf616a","extensionButton.prominentBackground":"#434c5e","extensionButton.prominentForeground":"#d8dee9","extensionButton.prominentHoverBackground":"#4c566a",focusBorder:"#3b4252",foreground:"#d8dee9","gitDecoration.conflictingResourceForeground":"#5e81ac","gitDecoration.deletedResourceForeground":"#bf616a","gitDecoration.ignoredResourceForeground":"#d8dee966","gitDecoration.modifiedResourceForeground":"#ebcb8b","gitDecoration.stageDeletedResourceForeground":"#bf616a","gitDecoration.stageModifiedResourceForeground":"#ebcb8b","gitDecoration.submoduleResourceForeground":"#8fbcbb","gitDecoration.untrackedResourceForeground":"#a3be8c","input.background":"#3b4252","input.border":"#3b4252","input.foreground":"#d8dee9","input.placeholderForeground":"#d8dee999","inputOption.activeBackground":"#5e81ac","inputOption.activeBorder":"#5e81ac","inputOption.activeForeground":"#eceff4","inputValidation.errorBackground":"#bf616a","inputValidation.errorBorder":"#bf616a","inputValidation.infoBackground":"#81a1c1","inputValidation.infoBorder":"#81a1c1","inputValidation.warningBackground":"#d08770","inputValidation.warningBorder":"#d08770","keybindingLabel.background":"#4c566a","keybindingLabel.border":"#4c566a","keybindingLabel.bottomBorder":"#4c566a","keybindingLabel.foreground":"#d8dee9","list.activeSelectionBackground":"#88c0d0","list.activeSelectionForeground":"#2e3440","list.dropBackground":"#88c0d099","list.errorForeground":"#bf616a","list.focusBackground":"#88c0d099","list.focusForeground":"#d8dee9","list.focusHighlightForeground":"#eceff4","list.highlightForeground":"#88c0d0","list.hoverBackground":"#3b4252","list.hoverForeground":"#eceff4","list.inactiveFocusBackground":"#434c5ecc","list.inactiveSelectionBackground":"#434c5e","list.inactiveSelectionForeground":"#d8dee9","list.warningForeground":"#ebcb8b","merge.border":"#3b425200","merge.currentContentBackground":"#81a1c14d","merge.currentHeaderBackground":"#81a1c166","merge.incomingContentBackground":"#8fbcbb4d","merge.incomingHeaderBackground":"#8fbcbb66","minimap.background":"#2e3440","minimap.errorHighlight":"#bf616acc","minimap.findMatchHighlight":"#88c0d0","minimap.selectionHighlight":"#88c0d0cc","minimap.warningHighlight":"#ebcb8bcc","minimapGutter.addedBackground":"#a3be8c","minimapGutter.deletedBackground":"#bf616a","minimapGutter.modifiedBackground":"#ebcb8b","minimapSlider.activeBackground":"#434c5eaa","minimapSlider.background":"#434c5e99","minimapSlider.hoverBackground":"#434c5eaa","notification.background":"#3b4252","notification.buttonBackground":"#434c5e","notification.buttonForeground":"#d8dee9","notification.buttonHoverBackground":"#4c566a","notification.errorBackground":"#bf616a","notification.errorForeground":"#2e3440","notification.foreground":"#d8dee9","notification.infoBackground":"#88c0d0","notification.infoForeground":"#2e3440","notification.warningBackground":"#ebcb8b","notification.warningForeground":"#2e3440","notificationCenter.border":"#3b425200","notificationCenterHeader.background":"#2e3440","notificationCenterHeader.foreground":"#88c0d0","notificationLink.foreground":"#88c0d0","notificationToast.border":"#3b425200","notifications.background":"#3b4252","notifications.border":"#2e3440","notifications.foreground":"#d8dee9","panel.background":"#2e3440","panel.border":"#3b4252","panelTitle.activeBorder":"#88c0d000","panelTitle.activeForeground":"#88c0d0","panelTitle.inactiveForeground":"#d8dee9","peekView.border":"#4c566a","peekViewEditor.background":"#2e3440","peekViewEditor.matchHighlightBackground":"#88c0d04d","peekViewEditorGutter.background":"#2e3440","peekViewResult.background":"#2e3440","peekViewResult.fileForeground":"#88c0d0","peekViewResult.lineForeground":"#d8dee966","peekViewResult.matchHighlightBackground":"#88c0d0cc","peekViewResult.selectionBackground":"#434c5e","peekViewResult.selectionForeground":"#d8dee9","peekViewTitle.background":"#3b4252","peekViewTitleDescription.foreground":"#d8dee9","peekViewTitleLabel.foreground":"#88c0d0","pickerGroup.border":"#3b4252","pickerGroup.foreground":"#88c0d0","progressBar.background":"#88c0d0","quickInputList.focusBackground":"#88c0d0","quickInputList.focusForeground":"#2e3440","sash.hoverBorder":"#88c0d0","scrollbar.shadow":"#00000066","scrollbarSlider.activeBackground":"#434c5eaa","scrollbarSlider.background":"#434c5e99","scrollbarSlider.hoverBackground":"#434c5eaa","selection.background":"#88c0d099","sideBar.background":"#2e3440","sideBar.border":"#3b4252","sideBar.foreground":"#d8dee9","sideBarSectionHeader.background":"#3b4252","sideBarSectionHeader.foreground":"#d8dee9","sideBarTitle.foreground":"#d8dee9","statusBar.background":"#3b4252","statusBar.border":"#3b425200","statusBar.debuggingBackground":"#5e81ac","statusBar.debuggingForeground":"#d8dee9","statusBar.foreground":"#d8dee9","statusBar.noFolderBackground":"#3b4252","statusBar.noFolderForeground":"#d8dee9","statusBarItem.activeBackground":"#4c566a","statusBarItem.errorBackground":"#3b4252","statusBarItem.errorForeground":"#bf616a","statusBarItem.hoverBackground":"#434c5e","statusBarItem.prominentBackground":"#3b4252","statusBarItem.prominentHoverBackground":"#434c5e","statusBarItem.warningBackground":"#ebcb8b","statusBarItem.warningForeground":"#2e3440","tab.activeBackground":"#3b4252","tab.activeBorder":"#88c0d000","tab.activeBorderTop":"#88c0d000","tab.activeForeground":"#d8dee9","tab.border":"#3b425200","tab.hoverBackground":"#3b4252cc","tab.hoverBorder":"#88c0d000","tab.inactiveBackground":"#2e3440","tab.inactiveForeground":"#d8dee966","tab.lastPinnedBorder":"#4c566a","tab.unfocusedActiveBorder":"#88c0d000","tab.unfocusedActiveBorderTop":"#88c0d000","tab.unfocusedActiveForeground":"#d8dee999","tab.unfocusedHoverBackground":"#3b4252b3","tab.unfocusedHoverBorder":"#88c0d000","tab.unfocusedInactiveForeground":"#d8dee966","terminal.ansiBlack":"#3b4252","terminal.ansiBlue":"#81a1c1","terminal.ansiBrightBlack":"#4c566a","terminal.ansiBrightBlue":"#81a1c1","terminal.ansiBrightCyan":"#8fbcbb","terminal.ansiBrightGreen":"#a3be8c","terminal.ansiBrightMagenta":"#b48ead","terminal.ansiBrightRed":"#bf616a","terminal.ansiBrightWhite":"#eceff4","terminal.ansiBrightYellow":"#ebcb8b","terminal.ansiCyan":"#88c0d0","terminal.ansiGreen":"#a3be8c","terminal.ansiMagenta":"#b48ead","terminal.ansiRed":"#bf616a","terminal.ansiWhite":"#e5e9f0","terminal.ansiYellow":"#ebcb8b","terminal.background":"#2e3440","terminal.foreground":"#d8dee9","terminal.tab.activeBorder":"#88c0d0","textBlockQuote.background":"#3b4252","textBlockQuote.border":"#81a1c1","textCodeBlock.background":"#4c566a","textLink.activeForeground":"#88c0d0","textLink.foreground":"#88c0d0","textPreformat.foreground":"#8fbcbb","textSeparator.foreground":"#eceff4","titleBar.activeBackground":"#2e3440","titleBar.activeForeground":"#d8dee9","titleBar.border":"#2e344000","titleBar.inactiveBackground":"#2e3440","titleBar.inactiveForeground":"#d8dee966","tree.indentGuidesStroke":"#616e88","walkThrough.embeddedEditorBackground":"#2e3440","welcomePage.buttonBackground":"#434c5e","welcomePage.buttonHoverBackground":"#4c566a","widget.shadow":"#00000066"},displayName:"Nord",name:"nord",semanticHighlighting:!0,tokenColors:[{settings:{background:"#2e3440ff",foreground:"#d8dee9ff"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"comment",settings:{foreground:"#616E88"}},{scope:"constant.character",settings:{foreground:"#EBCB8B"}},{scope:"constant.character.escape",settings:{foreground:"#EBCB8B"}},{scope:"constant.language",settings:{foreground:"#81A1C1"}},{scope:"constant.numeric",settings:{foreground:"#B48EAD"}},{scope:"constant.regexp",settings:{foreground:"#EBCB8B"}},{scope:["entity.name.class","entity.name.type.class"],settings:{foreground:"#8FBCBB"}},{scope:"entity.name.function",settings:{foreground:"#88C0D0"}},{scope:"entity.name.tag",settings:{foreground:"#81A1C1"}},{scope:"entity.other.attribute-name",settings:{foreground:"#8FBCBB"}},{scope:"entity.other.inherited-class",settings:{fontStyle:"bold",foreground:"#8FBCBB"}},{scope:"invalid.deprecated",settings:{background:"#EBCB8B",foreground:"#D8DEE9"}},{scope:"invalid.illegal",settings:{background:"#BF616A",foreground:"#D8DEE9"}},{scope:"keyword",settings:{foreground:"#81A1C1"}},{scope:"keyword.operator",settings:{foreground:"#81A1C1"}},{scope:"keyword.other.new",settings:{foreground:"#81A1C1"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.changed",settings:{foreground:"#EBCB8B"}},{scope:"markup.deleted",settings:{foreground:"#BF616A"}},{scope:"markup.inserted",settings:{foreground:"#A3BE8C"}},{scope:"meta.preprocessor",settings:{foreground:"#5E81AC"}},{scope:"punctuation",settings:{foreground:"#ECEFF4"}},{scope:["punctuation.definition.method-parameters","punctuation.definition.function-parameters","punctuation.definition.parameters"],settings:{foreground:"#ECEFF4"}},{scope:"punctuation.definition.tag",settings:{foreground:"#81A1C1"}},{scope:["punctuation.definition.comment","punctuation.end.definition.comment","punctuation.start.definition.comment"],settings:{foreground:"#616E88"}},{scope:"punctuation.section",settings:{foreground:"#ECEFF4"}},{scope:["punctuation.section.embedded.begin","punctuation.section.embedded.end"],settings:{foreground:"#81A1C1"}},{scope:"punctuation.terminator",settings:{foreground:"#81A1C1"}},{scope:"punctuation.definition.variable",settings:{foreground:"#81A1C1"}},{scope:"storage",settings:{foreground:"#81A1C1"}},{scope:"string",settings:{foreground:"#A3BE8C"}},{scope:"string.regexp",settings:{foreground:"#EBCB8B"}},{scope:"support.class",settings:{foreground:"#8FBCBB"}},{scope:"support.constant",settings:{foreground:"#81A1C1"}},{scope:"support.function",settings:{foreground:"#88C0D0"}},{scope:"support.function.construct",settings:{foreground:"#81A1C1"}},{scope:"support.type",settings:{foreground:"#8FBCBB"}},{scope:"support.type.exception",settings:{foreground:"#8FBCBB"}},{scope:"token.debug-token",settings:{foreground:"#b48ead"}},{scope:"token.error-token",settings:{foreground:"#bf616a"}},{scope:"token.info-token",settings:{foreground:"#88c0d0"}},{scope:"token.warn-token",settings:{foreground:"#ebcb8b"}},{scope:"variable.other",settings:{foreground:"#D8DEE9"}},{scope:"variable.language",settings:{foreground:"#81A1C1"}},{scope:"variable.parameter",settings:{foreground:"#D8DEE9"}},{scope:"punctuation.separator.pointer-access.c",settings:{foreground:"#81A1C1"}},{scope:["source.c meta.preprocessor.include","source.c string.quoted.other.lt-gt.include"],settings:{foreground:"#8FBCBB"}},{scope:["source.cpp keyword.control.directive.conditional","source.cpp punctuation.definition.directive","source.c keyword.control.directive.conditional","source.c punctuation.definition.directive"],settings:{fontStyle:"bold",foreground:"#5E81AC"}},{scope:"source.css constant.other.color.rgb-value",settings:{foreground:"#B48EAD"}},{scope:"source.css meta.property-value",settings:{foreground:"#88C0D0"}},{scope:["source.css keyword.control.at-rule.media","source.css keyword.control.at-rule.media punctuation.definition.keyword"],settings:{foreground:"#D08770"}},{scope:"source.css punctuation.definition.keyword",settings:{foreground:"#81A1C1"}},{scope:"source.css support.type.property-name",settings:{foreground:"#D8DEE9"}},{scope:"source.diff meta.diff.range.context",settings:{foreground:"#8FBCBB"}},{scope:"source.diff meta.diff.header.from-file",settings:{foreground:"#8FBCBB"}},{scope:"source.diff punctuation.definition.from-file",settings:{foreground:"#8FBCBB"}},{scope:"source.diff punctuation.definition.range",settings:{foreground:"#8FBCBB"}},{scope:"source.diff punctuation.definition.separator",settings:{foreground:"#81A1C1"}},{scope:"entity.name.type.module.elixir",settings:{foreground:"#8FBCBB"}},{scope:"variable.other.readwrite.module.elixir",settings:{fontStyle:"bold",foreground:"#D8DEE9"}},{scope:"constant.other.symbol.elixir",settings:{fontStyle:"bold",foreground:"#D8DEE9"}},{scope:"variable.other.constant.elixir",settings:{foreground:"#8FBCBB"}},{scope:"source.go constant.other.placeholder.go",settings:{foreground:"#EBCB8B"}},{scope:"source.java comment.block.documentation.javadoc punctuation.definition.entity.html",settings:{foreground:"#81A1C1"}},{scope:"source.java constant.other",settings:{foreground:"#D8DEE9"}},{scope:"source.java keyword.other.documentation",settings:{foreground:"#8FBCBB"}},{scope:"source.java keyword.other.documentation.author.javadoc",settings:{foreground:"#8FBCBB"}},{scope:["source.java keyword.other.documentation.directive","source.java keyword.other.documentation.custom"],settings:{foreground:"#8FBCBB"}},{scope:"source.java keyword.other.documentation.see.javadoc",settings:{foreground:"#8FBCBB"}},{scope:"source.java meta.method-call meta.method",settings:{foreground:"#88C0D0"}},{scope:["source.java meta.tag.template.link.javadoc","source.java string.other.link.title.javadoc"],settings:{foreground:"#8FBCBB"}},{scope:"source.java meta.tag.template.value.javadoc",settings:{foreground:"#88C0D0"}},{scope:"source.java punctuation.definition.keyword.javadoc",settings:{foreground:"#8FBCBB"}},{scope:["source.java punctuation.definition.tag.begin.javadoc","source.java punctuation.definition.tag.end.javadoc"],settings:{foreground:"#616E88"}},{scope:"source.java storage.modifier.import",settings:{foreground:"#8FBCBB"}},{scope:"source.java storage.modifier.package",settings:{foreground:"#8FBCBB"}},{scope:"source.java storage.type",settings:{foreground:"#8FBCBB"}},{scope:"source.java storage.type.annotation",settings:{foreground:"#D08770"}},{scope:"source.java storage.type.generic",settings:{foreground:"#8FBCBB"}},{scope:"source.java storage.type.primitive",settings:{foreground:"#81A1C1"}},{scope:["source.js punctuation.decorator","source.js meta.decorator variable.other.readwrite","source.js meta.decorator entity.name.function"],settings:{foreground:"#D08770"}},{scope:"source.js meta.object-literal.key",settings:{foreground:"#88C0D0"}},{scope:"source.js storage.type.class.jsdoc",settings:{foreground:"#8FBCBB"}},{scope:["source.js string.quoted.template punctuation.quasi.element.begin","source.js string.quoted.template punctuation.quasi.element.end","source.js string.template punctuation.definition.template-expression"],settings:{foreground:"#81A1C1"}},{scope:"source.js string.quoted.template meta.method-call.with-arguments",settings:{foreground:"#ECEFF4"}},{scope:["source.js string.template meta.template.expression support.variable.property","source.js string.template meta.template.expression variable.other.object"],settings:{foreground:"#D8DEE9"}},{scope:"source.js support.type.primitive",settings:{foreground:"#81A1C1"}},{scope:"source.js variable.other.object",settings:{foreground:"#D8DEE9"}},{scope:"source.js variable.other.readwrite.alias",settings:{foreground:"#8FBCBB"}},{scope:["source.js meta.embedded.line meta.brace.square","source.js meta.embedded.line meta.brace.round","source.js string.quoted.template meta.brace.square","source.js string.quoted.template meta.brace.round"],settings:{foreground:"#ECEFF4"}},{scope:"text.html.basic constant.character.entity.html",settings:{foreground:"#EBCB8B"}},{scope:"text.html.basic constant.other.inline-data",settings:{fontStyle:"italic",foreground:"#D08770"}},{scope:"text.html.basic meta.tag.sgml.doctype",settings:{foreground:"#5E81AC"}},{scope:"text.html.basic punctuation.definition.entity",settings:{foreground:"#81A1C1"}},{scope:"source.properties entity.name.section.group-title.ini",settings:{foreground:"#88C0D0"}},{scope:"source.properties punctuation.separator.key-value.ini",settings:{foreground:"#81A1C1"}},{scope:["text.html.markdown markup.fenced_code.block","text.html.markdown markup.fenced_code.block punctuation.definition"],settings:{foreground:"#8FBCBB"}},{scope:"markup.heading",settings:{foreground:"#88C0D0"}},{scope:["text.html.markdown markup.inline.raw","text.html.markdown markup.inline.raw punctuation.definition.raw"],settings:{foreground:"#8FBCBB"}},{scope:"text.html.markdown markup.italic",settings:{fontStyle:"italic"}},{scope:"text.html.markdown markup.underline.link",settings:{fontStyle:"underline"}},{scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#81A1C1"}},{scope:"text.html.markdown beginning.punctuation.definition.quote",settings:{foreground:"#8FBCBB"}},{scope:"text.html.markdown markup.quote",settings:{foreground:"#616E88"}},{scope:"text.html.markdown constant.character.math.tex",settings:{foreground:"#81A1C1"}},{scope:["text.html.markdown punctuation.definition.math.begin","text.html.markdown punctuation.definition.math.end"],settings:{foreground:"#5E81AC"}},{scope:"text.html.markdown punctuation.definition.function.math.tex",settings:{foreground:"#88C0D0"}},{scope:"text.html.markdown punctuation.math.operator.latex",settings:{foreground:"#81A1C1"}},{scope:"text.html.markdown punctuation.definition.heading",settings:{foreground:"#81A1C1"}},{scope:["text.html.markdown punctuation.definition.constant","text.html.markdown punctuation.definition.string"],settings:{foreground:"#81A1C1"}},{scope:["text.html.markdown constant.other.reference.link","text.html.markdown string.other.link.description","text.html.markdown string.other.link.title"],settings:{foreground:"#88C0D0"}},{scope:"source.perl punctuation.definition.variable",settings:{foreground:"#D8DEE9"}},{scope:["source.php meta.function-call","source.php meta.function-call.object"],settings:{foreground:"#88C0D0"}},{scope:["source.python entity.name.function.decorator","source.python meta.function.decorator support.type"],settings:{foreground:"#D08770"}},{scope:"source.python meta.function-call.generic",settings:{foreground:"#88C0D0"}},{scope:"source.python support.type",settings:{foreground:"#88C0D0"}},{scope:["source.python variable.parameter.function.language"],settings:{foreground:"#D8DEE9"}},{scope:["source.python meta.function.parameters variable.parameter.function.language.special.self"],settings:{foreground:"#81A1C1"}},{scope:"source.rust entity.name.type",settings:{foreground:"#8FBCBB"}},{scope:"source.rust meta.macro entity.name.function",settings:{fontStyle:"bold",foreground:"#88C0D0"}},{scope:["source.rust meta.attribute","source.rust meta.attribute punctuation","source.rust meta.attribute keyword.operator"],settings:{foreground:"#5E81AC"}},{scope:"source.rust entity.name.type.trait",settings:{fontStyle:"bold"}},{scope:"source.rust punctuation.definition.interpolation",settings:{foreground:"#EBCB8B"}},{scope:["source.css.scss punctuation.definition.interpolation.begin.bracket.curly","source.css.scss punctuation.definition.interpolation.end.bracket.curly"],settings:{foreground:"#81A1C1"}},{scope:"source.css.scss variable.interpolation",settings:{fontStyle:"italic",foreground:"#D8DEE9"}},{scope:["source.ts punctuation.decorator","source.ts meta.decorator variable.other.readwrite","source.ts meta.decorator entity.name.function","source.tsx punctuation.decorator","source.tsx meta.decorator variable.other.readwrite","source.tsx meta.decorator entity.name.function"],settings:{foreground:"#D08770"}},{scope:["source.ts meta.object-literal.key","source.tsx meta.object-literal.key"],settings:{foreground:"#D8DEE9"}},{scope:["source.ts meta.object-literal.key entity.name.function","source.tsx meta.object-literal.key entity.name.function"],settings:{foreground:"#88C0D0"}},{scope:["source.ts support.class","source.ts support.type","source.ts entity.name.type","source.ts entity.name.class","source.tsx support.class","source.tsx support.type","source.tsx entity.name.type","source.tsx entity.name.class"],settings:{foreground:"#8FBCBB"}},{scope:["source.ts support.constant.math","source.ts support.constant.dom","source.ts support.constant.json","source.tsx support.constant.math","source.tsx support.constant.dom","source.tsx support.constant.json"],settings:{foreground:"#8FBCBB"}},{scope:["source.ts support.variable","source.tsx support.variable"],settings:{foreground:"#D8DEE9"}},{scope:["source.ts meta.embedded.line meta.brace.square","source.ts meta.embedded.line meta.brace.round","source.tsx meta.embedded.line meta.brace.square","source.tsx meta.embedded.line meta.brace.round"],settings:{foreground:"#ECEFF4"}},{scope:"text.xml entity.name.tag.namespace",settings:{foreground:"#8FBCBB"}},{scope:"text.xml keyword.other.doctype",settings:{foreground:"#5E81AC"}},{scope:"text.xml meta.tag.preprocessor entity.name.tag",settings:{foreground:"#5E81AC"}},{scope:["text.xml string.unquoted.cdata","text.xml string.unquoted.cdata punctuation.definition.string"],settings:{fontStyle:"italic",foreground:"#D08770"}},{scope:"source.yaml entity.name.tag",settings:{foreground:"#8FBCBB"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/nushell.CrgTADc5.js b/assets/chunks/nushell.CrgTADc5.js new file mode 100644 index 000000000..d1024c727 --- /dev/null +++ b/assets/chunks/nushell.CrgTADc5.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"nushell",name:"nushell",patterns:[{include:"#define-variable"},{include:"#define-alias"},{include:"#function"},{include:"#extern"},{include:"#module"},{include:"#use-module"},{include:"#expression"},{include:"#comment"}],repository:{binary:{begin:"\\b(0x)(\\[)",beginCaptures:{1:{name:"constant.numeric.nushell"},2:{name:"meta.brace.square.begin.nushell"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.begin.nushell"}},name:"constant.binary.nushell",patterns:[{match:"[0-9a-fA-F]{2}",name:"constant.numeric.nushell"}]},"braced-expression":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.nushell"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.nushell"}},name:"meta.expression.braced.nushell",patterns:[{begin:"(?<=\\{)\\s*\\|",end:"\\|",name:"meta.closure.parameters.nushell",patterns:[{include:"#function-parameter"}]},{captures:{1:{name:"variable.other.nushell"},2:{name:"keyword.control.nushell"}},match:"(\\w+)\\s*(:)\\s*"},{captures:{1:{name:"variable.other.nushell"},2:{name:"variable.other.nushell",patterns:[{include:"#paren-expression"}]},3:{name:"keyword.control.nushell"}},match:'(\\$"((?:[^"\\\\]|\\\\.)*)")\\s*(:)\\s*',name:"meta.record-entry.nushell"},{captures:{1:{name:"variable.other.nushell"},2:{name:"keyword.control.nushell"}},match:'("(?:[^"\\\\]|\\\\.)*")\\s*(:)\\s*',name:"meta.record-entry.nushell"},{captures:{1:{name:"variable.other.nushell"},2:{name:"variable.other.nushell",patterns:[{include:"#paren-expression"}]},3:{name:"keyword.control.nushell"}},match:"(\\$'([^']*)')\\s*(:)\\s*",name:"meta.record-entry.nushell"},{captures:{1:{name:"variable.other.nushell"},2:{name:"keyword.control.nushell"}},match:"('[^']*')\\s*(:)\\s*",name:"meta.record-entry.nushell"},{include:"#spread"},{include:"source.nushell"}]},command:{begin:`(?<!\\w)(?:(\\^)|(?![0-9]|\\$))([\\w.!]+(?:(?: (?!-)[\\w\\-.!]+(?:(?= |\\))|$)|[\\w\\-.!]+))*|(?<=\\^)\\$?(?:"[^"]+"|'[^']+'))`,beginCaptures:{1:{name:"keyword.operator.nushell"},2:{patterns:[{include:"#control-keywords"},{captures:{0:{name:"keyword.other.builtin.nushell"}},match:"(?:ansi|char) \\w+"},{captures:{1:{name:"keyword.other.builtin.nushell"},2:{patterns:[{include:"#value"}]}},comment:"Regex generated with list-to-tree (https://github.com/glcraft/list-to-tree)",match:"(a(?:l(?:ias|l)|n(?:si(?: (?:gradient|link|strip))?|y)|ppend|st)|b(?:g|its(?: (?:and|not|or|ro(?:l|r)|sh(?:l|r)|xor))?|reak|ytes(?: (?:a(?:dd|t)|build|collect|ends-with|index-of|length|re(?:move|place|verse)|starts-with))?)|c(?:al|d|har|l(?:ear|ipboard (?:copy|paste))|o(?:l(?:lect|umns)|m(?:mandline(?: (?:edit|get-cursor|set-cursor))?|p(?:act|lete))|n(?:fig(?: (?:env|nu|reset))?|st|tinue))|p|ustom-value (?:generate(?:2)?|update(?:-arg)?))|d(?:ate(?: (?:format|humanize|list-timezone|now|to-(?:record|t(?:able|imezone))))?|e(?:bug(?: info)?|code(?: (?:base64|hex))?|f(?:ault)?|scribe|tect columns)|fr(?: (?:a(?:gg(?:-groups)?|ll-(?:false|true)|ppend|rg-(?:m(?:ax|in)|sort|true|unique|where)|s(?:-date(?:time)?)?)|c(?:a(?:che|st)|o(?:l(?:lect|umns)?|n(?:cat(?:-str|enate)|tains)|unt(?:-null)?)|umulative)|d(?:atepart|rop(?:-(?:duplicates|nulls))?|types|ummies)|exp(?:lode|r-not)|f(?:etch|i(?:l(?:l-n(?:an|ull)|ter(?:-with)?)|rst)|latten)|g(?:et(?:-(?:day|hour|m(?:inute|onth)|nanosecond|ordinal|second|week(?:day)?|year))?|roup-by)|i(?:mplode|nto-(?:df|lazy|nu)|s-(?:duplicated|in|n(?:ot-null|ull)|unique))|join|l(?:ast|it|owercase|s)|m(?:ax|e(?:an|dian|lt)|in)|n(?:-unique|ot)|o(?:pen|therwise)|qu(?:antile|ery)|r(?:e(?:name|place(?:-all)?|verse)|olling)|s(?:ample|chema|e(?:lect|t(?:-with-idx)?)|h(?:ape|ift)|lice|ort-by|t(?:d|r(?:-(?:lengths|slice)|ftime))|um(?:mary)?)|t(?:ake|o-(?:a(?:rrow|vro)|csv|jsonl|parquet))|u(?:nique|ppercase)|va(?:lue-counts|r)|w(?:hen|ith-column)))?|o|rop(?: (?:column|nth))?|u)|e(?:ach(?: while)?|cho|moji|n(?:code(?: (?:base64|hex))?|umerate)|rror make|very|x(?:ec|it|p(?:l(?:ain|ore)|ort(?: (?:alias|const|def|extern|module|use)|-env)?)|tern))|f(?:i(?:l(?:e|l|ter)|nd|rst)|latten|mt|or(?:mat(?: (?:d(?:ate|uration)|filesize|pattern))?)?|rom(?: (?:csv|eml|i(?:cs|ni)|json|nuon|ods|p(?:arquet|ng)|ssv|t(?:oml|sv)|url|vcf|x(?:lsx|ml)|y(?:aml|ml)))?)|g(?:e(?:nerate|t)|lob|r(?:id|oup(?:-by)?)|stat)|h(?:ash(?: (?:md5|sha256))?|e(?:aders|lp(?: (?:aliases|commands|e(?:scapes|xterns)|modules|operators))?)|i(?:de(?:-env)?|ghlight|st(?:o(?:gram|ry(?: session)?))?)|ttp(?: (?:delete|get|head|options|p(?:atch|ost|ut)))?)|i(?:f|gnore|n(?:c|put(?: list(?:en)?)?|s(?:ert|pect)|t(?:erleave|o(?: (?:b(?:i(?:nary|ts)|ool)|cell-path|d(?:atetime|uration)|f(?:ilesize|loat)|glob|int|record|s(?:qlite|tring)|value))?))|s-(?:admin|empty|not-empty|terminal)|tems)|j(?:oin|son path|walk)|k(?:eybindings(?: (?:default|list(?:en)?))?|ill)|l(?:a(?:st|zy make)|e(?:ngth|t(?:-env)?)|ines|o(?:ad-env|op)|s)|m(?:at(?:ch|h(?: (?:a(?:bs|rc(?:cos(?:h)?|sin(?:h)?|tan(?:h)?)|vg)|c(?:eil|os(?:h)?)|exp|floor|l(?:n|og)|m(?:ax|edian|in|ode)|product|round|s(?:in(?:h)?|qrt|tddev|um)|tan(?:h)?|variance))?)|e(?:rge|tadata)|k(?:dir|temp)|o(?:dule|ve)|ut|v)|nu-(?:check|example-(?:1|2|3|config)|highlight)|o(?:pen|verlay(?: (?:hide|list|new|use))?)|p(?:a(?:nic|r(?:-each|se)|th(?: (?:basename|dirname|ex(?:ists|pand)|join|parse|relative-to|split|type))?)|eriodic-table|lot|net|ort(?: (?:list|scan))?|r(?:epend|int)|s)|query(?: (?:db|git|json|web|xml))?|r(?:an(?:dom(?: (?:bool|chars|dice|float|int|uuid))?|ge)|e(?:duce|g(?:ex|ist(?:er|ry query))|ject|name|turn|verse)|m|o(?:ll(?: (?:down|left|right|up))?|tate)|un-external)|s(?:ave|c(?:hema|ope(?: (?:aliases|commands|e(?:ngine-stats|xterns)|modules|variables))?)|e(?:lect|q(?: (?:char|date))?)|huffle|kip(?: (?:until|while))?|leep|o(?:rt(?:-by)?|urce(?:-env)?)|plit(?: (?:c(?:hars|olumn)|list|row|words)|-by)?|t(?:art|or(?: (?:create|delete|export|i(?:mport|nsert)|open|reset|update))?|r(?: (?:c(?:a(?:mel-case|pitalize)|ontains)|d(?:istance|owncase)|e(?:nds-with|scape-glob|xpand)|index-of|join|kebab-case|length|pascal-case|re(?:place|verse)|s(?:creaming-snake-case|imilarity|nake-case|ta(?:rts-with|ts)|ubstring)|t(?:itle-case|rim)|upcase)|eam_example(?: (?:collect-external|s(?:eq|um)))?)?)|ys)|t(?:a(?:ble|ke(?: (?:until|while))?)|e(?:e|rm size)|imeit|o(?: (?:csv|html|json|md|nuon|png|qr|t(?:ext|oml|sv)|xml|yaml)|uch)?|r(?:anspose|y)|utor)|u(?:limit|ni(?:q(?:-by)?|ts)|p(?:date(?: cells)?|sert)|rl(?: (?:build-query|decode|encode|join|parse))?|se)|v(?:alues|ersion|iew(?: (?:files|s(?:ource|pan)))?)|w(?:atch|h(?:ere|i(?:ch|le)|oami)|i(?:ndow|th-env)|rap)|xyplot|zip)(?![\\w-])( (.*))?"},{captures:{1:{patterns:[{include:"#paren-expression"}]}},match:`(?<=\\^)(?:\\$("[^"]+"|'[^']+')|"[^"]+"|'[^']+')`,name:"entity.name.type.external.nushell"},{captures:{1:{name:"entity.name.type.external.nushell"},2:{patterns:[{include:"#value"}]}},match:"([\\w.]+(?:-[\\w.!]+)*)(?: (.*))?"},{include:"#value"}]}},end:"(?=\\||\\)|\\}|;)|$",name:"meta.command.nushell",patterns:[{include:"#parameters"},{include:"#spread"},{include:"#value"}]},comment:{match:"(#.*)$",name:"comment.nushell"},"constant-keywords":{match:"\\b(?:true|false|null)\\b",name:"constant.language.nushell"},"constant-value":{patterns:[{include:"#constant-keywords"},{include:"#datetime"},{include:"#numbers"},{include:"#numbers-hexa"},{include:"#binary"}]},"control-keywords":{comment:"Regex generated with list-to-tree (https://github.com/glcraft/list-to-tree)",match:"(?<![0-9a-zA-Z_\\-.\\/:\\\\])(?:break|continue|else(?: if)?|for|if|loop|mut|return|try|while)(?![0-9a-zA-Z_\\-.\\/:\\\\])",name:"keyword.control.nushell"},datetime:{match:"\\b\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:\\+\\d{2}:?\\d{2}|Z)?)?\\b",name:"constant.numeric.nushell"},"define-alias":{captures:{1:{name:"entity.name.function.nushell"},2:{name:"entity.name.type.nushell"},3:{patterns:[{include:"#operators"}]}},match:"((?:export )?alias)\\s+([\\w\\-!]+)\\s*(=)"},"define-variable":{captures:{1:{name:"keyword.other.nushell"},2:{name:"variable.other.nushell"},3:{patterns:[{include:"#operators"}]}},match:"(let|mut|(?:export\\s+)?const)\\s+(\\w+)\\s+(=)"},expression:{patterns:[{include:"#pre-command"},{include:"#for-loop"},{include:"#operators"},{match:"\\|",name:"keyword.control.nushell"},{include:"#control-keywords"},{include:"#constant-value"},{include:"#command"},{include:"#value"}]},extern:{begin:'((?:export\\s+)?extern)\\s+([\\w\\-]+|"[\\w\\- ]+")',beginCaptures:{1:{name:"entity.name.function.nushell"},2:{name:"entity.name.type.nushell"}},end:"(?<=\\])",endCaptures:{0:{name:"punctuation.definition.function.end.nushell"}},patterns:[{include:"#function-parameters"}]},"for-loop":{begin:"(for)\\s+(\\$?\\w+)\\s+(in)\\s+(.+)\\s*(\\{)",beginCaptures:{1:{name:"keyword.other.nushell"},2:{name:"variable.other.nushell"},3:{name:"keyword.other.nushell"},4:{patterns:[{include:"#value"}]},5:{name:"punctuation.section.block.begin.bracket.curly.nushell"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.nushell"}},name:"meta.for-loop.nushell",patterns:[{include:"source.nushell"}]},function:{begin:"((?:export\\s+)?def(?:\\s+--\\w+)*)\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+'|`[\\w\\- ]+`)(\\s+--\\w+)*",beginCaptures:{1:{name:"entity.name.function.nushell"},2:{name:"entity.name.type.nushell"},3:{name:"entity.name.function.nushell"}},end:"(?<=\\})",patterns:[{include:"#function-parameters"},{include:"#function-body"},{include:"#function-inout"}]},"function-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.function.begin.nushell"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.function.end.nushell"}},name:"meta.function.body.nushell",patterns:[{include:"source.nushell"}]},"function-inout":{patterns:[{include:"#types"},{match:"->",name:"keyword.operator.nushell"},{include:"#function-multiple-inout"}]},"function-multiple-inout":{begin:"(?<=]\\s*)(:)\\s+(\\[)",beginCaptures:{1:{name:"punctuation.definition.in-out.nushell"},2:{name:"meta.brace.square.begin.nushell"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.end.nushell"}},patterns:[{include:"#types"},{captures:{1:{name:"punctuation.separator.nushell"}},match:"\\s*(,)\\s*"},{captures:{1:{name:"keyword.operator.nushell"}},match:"\\s+(->)\\s+"}]},"function-parameter":{patterns:[{captures:{1:{name:"keyword.control.nushell"}},match:"(-{0,2}|\\.{3})[\\w-]+(?:\\((-[\\w?])\\))?",name:"variable.parameter.nushell"},{begin:"\\??:\\s*",end:"(?=(?:\\s+(?:-{0,2}|\\.{3})[\\w-]+)|(?:\\s*(?:,|\\]|\\||@|=|#|$)))",patterns:[{include:"#types"}]},{begin:`@(?="|')`,end:`(?<="|')`,patterns:[{include:"#string"}]},{begin:"=\\s*",end:"(?=(?:\\s+-{0,2}[\\w-]+)|(?:\\s*(?:,|\\]|\\||#|$)))",name:"default.value.nushell",patterns:[{include:"#value"}]}]},"function-parameters":{begin:"\\[",beginCaptures:{0:{name:"meta.brace.square.begin.nushell"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.end.nushell"}},name:"meta.function.parameters.nushell",patterns:[{include:"#function-parameter"},{include:"#comment"}]},"internal-variables":{match:"\\$(?:nu|env)\\b",name:"variable.language.nushell"},keyword:{match:"(?:def(?:-env)?)",name:"keyword.other.nushell"},module:{begin:"((?:export\\s+)?module)\\s+([\\w\\-]+)\\s*\\{",beginCaptures:{1:{name:"entity.name.function.nushell"},2:{name:"entity.name.namespace.nushell"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.module.end.nushell"}},name:"meta.module.nushell",patterns:[{include:"source.nushell"}]},numbers:{match:"(?<![\\w-])[-+]?(?:\\d+|\\d{1,3}(?:_\\d{3})*)(?:\\.\\d*)?(?i:ns|us|ms|sec|min|hr|day|wk|b|kb|mb|gb|tb|pt|eb|zb|kib|mib|gib|tib|pit|eib|zib)?(?:(?![\\w.])|(?=\\.\\.))",name:"constant.numeric.nushell"},"numbers-hexa":{match:"(?<![\\w-])0x[0-9a-fA-F]+(?![\\w.])",name:"constant.numeric.nushell"},operators:{patterns:[{include:"#operators-word"},{include:"#operators-symbols"},{include:"#ranges"}]},"operators-symbols":{match:"(?<= )(?:(?:\\+|\\-|\\*|\\/)=?|\\/\\/|\\*\\*|!=|[<>=]=?|[!=]~|\\+\\+=?)(?= |$)",name:"keyword.control.nushell"},"operators-word":{match:"(?<= |\\()(?:mod|in|not-in|not|and|or|xor|bit-or|bit-and|bit-xor|bit-shl|bit-shr|starts-with|ends-with)(?= |\\)|$)",name:"keyword.control.nushell"},parameters:{captures:{1:{name:"keyword.control.nushell"}},match:"(?<=\\s)(-{1,2})[\\w-]+",name:"variable.parameter.nushell"},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.begin.nushell"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.end.nushell"}},name:"meta.expression.parenthesis.nushell",patterns:[{include:"#expression"}]},"pre-command":{begin:"(\\w+)(=)",beginCaptures:{1:{name:"variable.other.nushell"},2:{patterns:[{include:"#operators"}]}},end:"(?=\\s+)",patterns:[{include:"#value"}]},ranges:{match:"\\.\\.<?",name:"keyword.control.nushell"},spread:{match:"\\.\\.\\.(?=[^\\s\\]}])",name:"keyword.control.nushell"},string:{patterns:[{include:"#string-single-quote"},{include:"#string-backtick"},{include:"#string-double-quote"},{include:"#string-interpolated-double"},{include:"#string-interpolated-single"},{include:"#string-bare"}]},"string-backtick":{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.nushell"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.nushell"}},name:"string.quoted.single.nushell"},"string-bare":{match:`[^$\\[{("',|#\\s|][^\\[\\]{}()"'\\s#,|]*`,name:"string.bare.nushell"},"string-double-quote":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.nushell"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nushell"}},name:"string.quoted.double.nushell",patterns:[{match:"\\w+"},{include:"#string-escape"}]},"string-escape":{match:`\\\\(?:[bfrnt\\\\'"/]|u[0-9a-fA-F]{4})`,name:"constant.character.escape.nushell"},"string-interpolated-double":{begin:'\\$"',beginCaptures:{0:{name:"punctuation.definition.string.begin.nushell"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nushell"}},name:"string.interpolated.double.nushell",patterns:[{match:"\\\\[()]",name:"constant.character.escape.nushell"},{include:"#string-escape"},{include:"#paren-expression"}]},"string-interpolated-single":{begin:"\\$'",beginCaptures:{0:{name:"punctuation.definition.string.begin.nushell"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.nushell"}},name:"string.interpolated.single.nushell",patterns:[{include:"#paren-expression"}]},"string-single-quote":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.nushell"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.nushell"}},name:"string.quoted.single.nushell"},table:{begin:"\\[",beginCaptures:{0:{name:"meta.brace.square.begin.nushell"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.end.nushell"}},name:"meta.table.nushell",patterns:[{include:"#spread"},{include:"#value"},{match:",",name:"punctuation.separator.nushell"}]},types:{patterns:[{begin:"\\b(list)\\s*<",beginCaptures:{1:{name:"entity.name.type.nushell"}},end:">",name:"meta.list.nushell",patterns:[{include:"#types"}]},{begin:"\\b(record)\\s*<",beginCaptures:{1:{name:"entity.name.type.nushell"}},end:">",name:"meta.record.nushell",patterns:[{captures:{1:{name:"variable.parameter.nushell"}},match:`([\\w\\-]+|"[\\w\\- ]+"|'[^']+')\\s*:\\s*`},{include:"#types"}]},{match:"\\b(\\w+)\\b",name:"entity.name.type.nushell"}]},"use-module":{patterns:[{captures:{1:{name:"entity.name.function.nushell"},2:{name:"entity.name.namespace.nushell"},3:{name:"keyword.other.nushell"}},match:`^\\s*((?:export )?use)\\s+([\\w\\-]+|"[\\w\\- ]+"|'[\\w\\- ]+')(?:\\s+([\\w\\-]+|"[\\w\\- ]+"|'[\\w\\- ]+'|\\*))?\\s*;?$`},{begin:`^\\s*((?:export )?use)\\s+([\\w\\-]+|"[\\w\\- ]+"|'[\\w\\- ]+')\\s*\\[`,beginCaptures:{1:{name:"entity.name.function.nushell"},2:{name:"entity.name.namespace.nushell"}},end:"(\\])\\s*;?\\s*$",endCaptures:{1:{name:"meta.brace.square.end.nushell"}},patterns:[{captures:{1:{name:"keyword.other.nushell"}},match:`([\\w\\-]+|"[\\w\\- ]+"|'[\\w\\- ]+'|\\*),?`},{include:"#comment"}]},{captures:{2:{name:"entity.name.function.nushell"},3:{name:"string.bare.nushell",patterns:[{captures:{1:{name:"entity.name.namespace.nushell"}},match:`([\\w\\- ]+)(?:\\.nu)?(?=$|"|')`}]},4:{name:"keyword.other.nushell"}},match:`(?<path>(?:/|\\\\|~[\\/\\\\]|\\.\\.?[\\/\\\\])?(?:[^\\/\\\\]+[\\/\\\\])*[\\w\\- ]+(?:\\.nu)?){0}^\\s*((?:export )?use)\\s+("\\g<path>"|'\\g<path>\\'|(?!["'])\\g<path>)(?:\\s+([\\w\\-]+|"[\\w\\- ]+"|'[^']+'|\\*))?\\s*;?$`},{begin:`(?<path>(?:/|\\\\|~[\\/\\\\]|\\.\\.?[\\/\\\\])?(?:[^\\/\\\\]+[\\/\\\\])*[\\w\\- ]+(?:\\.nu)?){0}^\\s*((?:export )?use)\\s+("\\g<path>"|'\\g<path>\\'|(?!["'])\\g<path>)\\s+\\[`,beginCaptures:{2:{name:"entity.name.function.nushell"},3:{name:"string.bare.nushell",patterns:[{captures:{1:{name:"entity.name.namespace.nushell"}},match:`([\\w\\- ]+)(?:\\.nu)?(?=$|"|')`}]}},end:"(\\])\\s*;?\\s*$",endCaptures:{1:{name:"meta.brace.square.end.nushell"}},patterns:[{captures:{0:{name:"keyword.other.nushell"}},match:`([\\w\\-]+|"[\\w\\- ]+"|'[\\w\\- ]+'|\\*),?`},{include:"#comment"}]},{captures:{0:{name:"entity.name.function.nushell"}},match:"^\\s*(?:export )?use\\b"}]},value:{patterns:[{include:"#variables"},{include:"#variable-fields"},{include:"#control-keywords"},{include:"#constant-value"},{include:"#table"},{include:"#operators"},{include:"#paren-expression"},{include:"#braced-expression"},{include:"#string"},{include:"#comment"}]},"variable-fields":{match:'(?<=\\)|\\}|\\])(?:\\.(?:[\\w-]+|"[\\w\\- ]+"))+',name:"variable.other.nushell"},variables:{captures:{1:{patterns:[{include:"#internal-variables"},{match:"\\$.+",name:"variable.other.nushell"}]},2:{name:"variable.other.nushell"}},match:'(\\$[a-zA-Z0-9_]+)((?:\\.(?:[\\w-]+|"[\\w\\- ]+"))*)'}},scopeName:"source.nushell",aliases:["nu"]});var n=[e];export{n as default}; diff --git a/assets/chunks/objective-c.DHmGyzbM.js b/assets/chunks/objective-c.DHmGyzbM.js new file mode 100644 index 000000000..b3c6ce552 --- /dev/null +++ b/assets/chunks/objective-c.DHmGyzbM.js @@ -0,0 +1,109 @@ +const e=Object.freeze({displayName:"Objective-C",name:"objective-c",patterns:[{include:"#anonymous_pattern_1"},{include:"#anonymous_pattern_2"},{include:"#anonymous_pattern_3"},{include:"#anonymous_pattern_4"},{include:"#anonymous_pattern_5"},{include:"#apple_foundation_functional_macros"},{include:"#anonymous_pattern_7"},{include:"#anonymous_pattern_8"},{include:"#anonymous_pattern_9"},{include:"#anonymous_pattern_10"},{include:"#anonymous_pattern_11"},{include:"#anonymous_pattern_12"},{include:"#anonymous_pattern_13"},{include:"#anonymous_pattern_14"},{include:"#anonymous_pattern_15"},{include:"#anonymous_pattern_16"},{include:"#anonymous_pattern_17"},{include:"#anonymous_pattern_18"},{include:"#anonymous_pattern_19"},{include:"#anonymous_pattern_20"},{include:"#anonymous_pattern_21"},{include:"#anonymous_pattern_22"},{include:"#anonymous_pattern_23"},{include:"#anonymous_pattern_24"},{include:"#anonymous_pattern_25"},{include:"#anonymous_pattern_26"},{include:"#anonymous_pattern_27"},{include:"#anonymous_pattern_28"},{include:"#anonymous_pattern_29"},{include:"#anonymous_pattern_30"},{include:"#bracketed_content"},{include:"#c_lang"}],repository:{anonymous_pattern_1:{begin:"((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?",captures:{1:{name:"storage.type.objc"},2:{name:"punctuation.definition.storage.type.objc"},4:{name:"entity.name.type.objc"},6:{name:"punctuation.definition.entity.other.inherited-class.objc"},7:{name:"entity.other.inherited-class.objc"},8:{name:"meta.divider.objc"},9:{name:"meta.inherited-class.objc"}},contentName:"meta.scope.interface.objc",end:"((@)end)\\b",name:"meta.interface-or-protocol.objc",patterns:[{include:"#interface_innards"}]},anonymous_pattern_10:{captures:{1:{name:"punctuation.definition.keyword.objc"}},match:"(@)(defs|encode)\\b",name:"keyword.other.objc"},anonymous_pattern_11:{match:"\\bid\\b",name:"storage.type.id.objc"},anonymous_pattern_12:{match:"\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b",name:"storage.type.objc"},anonymous_pattern_13:{captures:{1:{name:"punctuation.definition.storage.type.objc"}},match:"(@)(class|protocol)\\b",name:"storage.type.objc"},anonymous_pattern_14:{begin:"((@)selector)\\s*(\\()",beginCaptures:{1:{name:"storage.type.objc"},2:{name:"punctuation.definition.storage.type.objc"},3:{name:"punctuation.definition.storage.type.objc"}},contentName:"meta.selector.method-name.objc",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.storage.type.objc"}},name:"meta.selector.objc",patterns:[{captures:{1:{name:"punctuation.separator.arguments.objc"}},match:"\\b(?:[a-zA-Z_:][\\w]*)+",name:"support.function.any-method.name-of-parameter.objc"}]},anonymous_pattern_15:{captures:{1:{name:"punctuation.definition.storage.modifier.objc"}},match:"(@)(synchronized|public|package|private|protected)\\b",name:"storage.modifier.objc"},anonymous_pattern_16:{match:"\\b(YES|NO|Nil|nil)\\b",name:"constant.language.objc"},anonymous_pattern_17:{match:"\\bNSApp\\b",name:"support.variable.foundation.objc"},anonymous_pattern_18:{captures:{1:{name:"punctuation.whitespace.support.function.cocoa.leopard.objc"},2:{name:"support.function.cocoa.leopard.objc"}},match:"(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b"},anonymous_pattern_19:{captures:{1:{name:"punctuation.whitespace.support.function.leading.cocoa.objc"},2:{name:"support.function.cocoa.objc"}},match:"(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b"},anonymous_pattern_2:{begin:"((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?",captures:{1:{name:"storage.type.objc"},2:{name:"punctuation.definition.storage.type.objc"},4:{name:"entity.name.type.objc"},5:{name:"entity.other.inherited-class.objc"}},contentName:"meta.scope.implementation.objc",end:"((@)end)\\b",name:"meta.implementation.objc",patterns:[{include:"#implementation_innards"}]},anonymous_pattern_20:{match:"\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b",name:"support.class.cocoa.leopard.objc"},anonymous_pattern_21:{match:"\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b",name:"support.class.cocoa.objc"},anonymous_pattern_22:{match:"\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b",name:"support.type.cocoa.leopard.objc"},anonymous_pattern_23:{match:"\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b",name:"support.class.quartz.objc"},anonymous_pattern_24:{match:"\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b",name:"support.type.quartz.objc"},anonymous_pattern_25:{match:"\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b",name:"support.type.cocoa.objc"},anonymous_pattern_26:{match:"\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b",name:"support.constant.cocoa.objc"},anonymous_pattern_27:{match:"\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b",name:"support.constant.notification.cocoa.leopard.objc"},anonymous_pattern_28:{match:"\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b",name:"support.constant.notification.cocoa.objc"},anonymous_pattern_29:{match:"\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b",name:"support.constant.cocoa.leopard.objc"},anonymous_pattern_3:{begin:'@"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{include:"#string_escaped_char"},{match:`(?x)% +(\\d+\\$)? +[#0\\- +']* +((-?\\d+)|\\*(-?\\d+\\$)?)? +(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? +[@] +`,name:"constant.other.placeholder.objc"},{include:"#string_placeholder"}]},anonymous_pattern_30:{match:"\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b",name:"support.constant.cocoa.objc"},anonymous_pattern_4:{begin:"\\b(id)\\s*(?=<)",beginCaptures:{1:{name:"storage.type.objc"}},end:"(?<=>)",name:"meta.id-with-protocol.objc",patterns:[{include:"#protocol_list"}]},anonymous_pattern_5:{match:"\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b",name:"keyword.control.macro.objc"},anonymous_pattern_7:{captures:{1:{name:"punctuation.definition.keyword.objc"}},match:"(@)(try|catch|finally|throw)\\b",name:"keyword.control.exception.objc"},anonymous_pattern_8:{captures:{1:{name:"punctuation.definition.keyword.objc"}},match:"(@)(synchronized)\\b",name:"keyword.control.synchronize.objc"},anonymous_pattern_9:{captures:{1:{name:"punctuation.definition.keyword.objc"}},match:"(@)(required|optional)\\b",name:"keyword.control.protocol-specification.objc"},apple_foundation_functional_macros:{begin:"(\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\s)+)?(\\()",beginCaptures:{1:{name:"entity.name.function.preprocessor.apple-foundation.objc"},2:{name:"punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objc"}},name:"meta.preprocessor.macro.callable.apple-foundation.objc",patterns:[{include:"#c_lang"}]},bracketed_content:{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.scope.begin.objc"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.scope.end.objc"}},name:"meta.bracketed.objc",patterns:[{begin:"(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)",beginCaptures:{1:{name:"support.function.any-method.objc"},2:{name:"punctuation.separator.arguments.objc"}},end:"(?=\\])",name:"meta.function-call.predicate.objc",patterns:[{captures:{1:{name:"punctuation.separator.arguments.objc"}},match:"\\bargument(Array|s)(:)",name:"support.function.any-method.name-of-parameter.objc"},{captures:{1:{name:"punctuation.separator.arguments.objc"}},match:"\\b\\w+(:)",name:"invalid.illegal.unknown-method.objc"},{begin:'@"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{match:"\\b(AND|OR|NOT|IN)\\b",name:"keyword.operator.logical.predicate.cocoa.objc"},{match:"\\b(ALL|ANY|SOME|NONE)\\b",name:"constant.language.predicate.cocoa.objc"},{match:"\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b",name:"constant.language.predicate.cocoa.objc"},{match:"\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b",name:"keyword.operator.comparison.predicate.cocoa.objc"},{match:"\\bC(ASEINSENSITIVE|I)\\b",name:"keyword.other.modifier.predicate.cocoa.objc"},{match:"\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b",name:"keyword.other.predicate.cocoa.objc"},{match:`\\\\(\\\\|[abefnrtv'"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)`,name:"constant.character.escape.objc"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objc"}]},{include:"#special_variables"},{include:"#c_functions"},{include:"$base"}]},{begin:'(?=\\w)(?<=[\\w\\])"] )(\\w+(?:(:)|(?=\\])))',beginCaptures:{1:{name:"support.function.any-method.objc"},2:{name:"punctuation.separator.arguments.objc"}},end:"(?=\\])",name:"meta.function-call.objc",patterns:[{captures:{1:{name:"punctuation.separator.arguments.objc"}},match:"\\b\\w+(:)",name:"support.function.any-method.name-of-parameter.objc"},{include:"#special_variables"},{include:"#c_functions"},{include:"$base"}]},{include:"#special_variables"},{include:"#c_functions"},{include:"$self"}]},c_functions:{patterns:[{captures:{1:{name:"punctuation.whitespace.support.function.leading.objc"},2:{name:"support.function.C99.objc"}},match:"(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b"},{captures:{1:{name:"punctuation.whitespace.function-call.leading.objc"},2:{name:"support.function.any-method.objc"},3:{name:"punctuation.definition.parameters.objc"}},match:`(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))? +(\\b +(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ +) +\\s*(\\()`,name:"meta.function-call.objc"}]},c_lang:{patterns:[{include:"#preprocessor-rule-enabled"},{include:"#preprocessor-rule-disabled"},{include:"#preprocessor-rule-conditional"},{include:"#comments"},{include:"#switch_statement"},{match:"\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",name:"keyword.control.objc"},{include:"#storage_types"},{match:"typedef",name:"keyword.other.typedef.objc"},{match:"\\bin\\b",name:"keyword.other.in.objc"},{match:"\\b(const|extern|register|restrict|static|volatile|inline|__block)\\b",name:"storage.modifier.objc"},{match:"\\bk[A-Z]\\w*\\b",name:"constant.other.variable.mac-classic.objc"},{match:"\\bg[A-Z]\\w*\\b",name:"variable.other.readwrite.global.mac-classic.objc"},{match:"\\bs[A-Z]\\w*\\b",name:"variable.other.readwrite.static.mac-classic.objc"},{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.objc"},{include:"#operators"},{include:"#numbers"},{include:"#strings"},{include:"#special_variables"},{begin:`(?x) +^\\s* ((\\#)\\s*define) \\s+ +((?<id>[a-zA-Z_$][\\w$]*)) +(?: +(\\() +( +\\s* \\g<id> \\s* +((,) \\s* \\g<id> \\s*)* +(?:\\.\\.\\.)? +) +(\\)) +)?`,beginCaptures:{1:{name:"keyword.control.directive.define.objc"},2:{name:"punctuation.definition.directive.objc"},3:{name:"entity.name.function.preprocessor.objc"},5:{name:"punctuation.definition.parameters.begin.objc"},6:{name:"variable.parameter.preprocessor.objc"},8:{name:"punctuation.separator.parameters.objc"},9:{name:"punctuation.definition.parameters.end.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.macro.objc",patterns:[{include:"#preprocessor-rule-define-line-contents"}]},{begin:"^\\s*((#)\\s*(error|warning))\\b\\s*",beginCaptures:{1:{name:"keyword.control.directive.diagnostic.$3.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?<!\\\\)(?=\\n)",name:"meta.preprocessor.diagnostic.objc",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:'"|(?<!\\\\)(?=\\s*\\n)',endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.single.objc",patterns:[{include:"#line_continuation_character"}]},{begin:`[^'"]`,end:"(?<!\\\\)(?=\\s*\\n)",name:"string.unquoted.single.objc",patterns:[{include:"#line_continuation_character"},{include:"#comments"}]}]},{begin:"^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",beginCaptures:{1:{name:"keyword.control.directive.$3.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.include.objc",patterns:[{include:"#line_continuation_character"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.include.objc"},{begin:"<",beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:">",endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.other.lt-gt.include.objc"}]},{include:"#pragma-mark"},{begin:"^\\s*((#)\\s*line)\\b",beginCaptures:{1:{name:"keyword.control.directive.line.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#strings"},{include:"#numbers"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*undef))\\b",beginCaptures:{1:{name:"keyword.control.directive.undef.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objc"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*pragma))\\b",beginCaptures:{1:{name:"keyword.control.directive.pragma.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.pragma.objc",patterns:[{include:"#strings"},{match:"[a-zA-Z_$][\\w\\-$]*",name:"entity.other.attribute-name.pragma.preprocessor.objc"},{include:"#numbers"},{include:"#line_continuation_character"}]},{match:"\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",name:"support.type.sys-types.objc"},{match:"\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",name:"support.type.pthread.objc"},{match:`(?x) \\b +(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t +|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t +|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t +|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t +|uintmax_t|uintmax_t) +\\b`,name:"support.type.stdint.objc"},{match:"\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",name:"support.constant.mac-classic.objc"},{match:`(?x) \\b +(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam +|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr +|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber +|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64 +|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32 +|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr +|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char) +\\b`,name:"support.type.mac-classic.objc"},{match:"\\b([A-Za-z0-9_]+_t)\\b",name:"support.type.posix-reserved.objc"},{include:"#block"},{include:"#parens"},{begin:"(?<!\\w)(?!\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()",end:"(?<=\\))",name:"meta.function.objc",patterns:[{include:"#function-innards"}]},{include:"#line_continuation_character"},{begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",beginCaptures:{1:{name:"variable.object.objc"},2:{name:"punctuation.definition.begin.bracket.square.objc"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.end.bracket.square.objc"}},name:"meta.bracket.square.access.objc",patterns:[{include:"#function-call-innards"}]},{match:"\\[\\s*\\]",name:"storage.modifier.array.bracket.square.objc"},{match:";",name:"punctuation.terminator.statement.objc"},{match:",",name:"punctuation.separator.delimiter.objc"}],repository:{"access-method":{begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",beginCaptures:{1:{name:"variable.object.objc"},2:{name:"punctuation.separator.dot-access.objc"},3:{name:"punctuation.separator.pointer-access.objc"},4:{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.objc"},{match:"->",name:"punctuation.separator.pointer-access.objc"},{match:"[a-zA-Z_][a-zA-Z_0-9]*",name:"variable.object.objc"},{match:".+",name:"everything.else.objc"}]},5:{name:"entity.name.function.member.objc"},6:{name:"punctuation.section.arguments.begin.bracket.round.function.member.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.member.objc"}},name:"meta.function-call.member.objc",patterns:[{include:"#function-call-innards"}]},block:{patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objc"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objc"}},name:"meta.block.objc",patterns:[{include:"#block_innards"}]}]},block_innards:{patterns:[{include:"#preprocessor-rule-enabled-block"},{include:"#preprocessor-rule-disabled-block"},{include:"#preprocessor-rule-conditional-block"},{include:"#method_access"},{include:"#member_access"},{include:"#c_function_call"},{begin:`(?x) +(?: + (?: + (?=\\s)(?<!else|new|return) + (?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name + ) +) +( + (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name + | + (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\])) +) +\\s*(\\() # opening bracket`,beginCaptures:{1:{name:"variable.other.objc"},2:{name:"punctuation.section.parens.begin.bracket.round.initialization.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.initialization.objc"}},name:"meta.initialization.objc",patterns:[{include:"#function-call-innards"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objc"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objc"}},patterns:[{include:"#block_innards"}]},{include:"#parens-block"},{include:"$base"}]},c_function_call:{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\() +(?= +(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name +| +(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\( +)`,end:"(?<=\\))(?!\\w)",name:"meta.function-call.objc",patterns:[{include:"#function-call-innards"}]},case_statement:{begin:"((?<!\\w)case(?!\\w))",beginCaptures:{1:{name:"keyword.control.case.objc"}},end:"(:)",endCaptures:{1:{name:"punctuation.separator.case.objc"}},name:"meta.conditional.case.objc",patterns:[{include:"#conditional_context"}]},comments:{patterns:[{captures:{1:{name:"meta.toc-list.banner.block.objc"}},match:"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",name:"comment.block.objc"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.objc"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.objc"}},name:"comment.block.objc"},{captures:{1:{name:"meta.toc-list.banner.line.objc"}},match:"^// =(\\s*.*?)\\s*=\\s*$\\n?",name:"comment.line.banner.objc"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.objc"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.objc"}},end:"(?=\\n)",name:"comment.line.double-slash.objc",patterns:[{include:"#line_continuation_character"}]}]}]},conditional_context:{patterns:[{include:"$base"},{include:"#block_innards"}]},default_statement:{begin:"((?<!\\w)default(?!\\w))",beginCaptures:{1:{name:"keyword.control.default.objc"}},end:"(:)",endCaptures:{1:{name:"punctuation.separator.case.default.objc"}},name:"meta.conditional.case.objc",patterns:[{include:"#conditional_context"}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",end:"^\\s*#\\s*endif\\b",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},"function-call-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#method_access"},{include:"#member_access"},{include:"#operators"},{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\() +( +(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name +| +(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\])) +) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.objc"},2:{name:"punctuation.section.arguments.begin.bracket.round.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.objc"}},patterns:[{include:"#function-call-innards"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objc"}},patterns:[{include:"#function-call-innards"}]},{include:"#block_innards"}]},"function-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#operators"},{include:"#vararg_ellipses"},{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\() +( +(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name +| +(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\])) +) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.objc"},2:{name:"punctuation.section.parameters.begin.bracket.round.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.objc"}},name:"meta.function.definition.parameters.objc",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objc"}},patterns:[{include:"#function-innards"}]},{include:"$base"}]},line_continuation_character:{patterns:[{captures:{1:{name:"constant.character.escape.line-continuation.objc"}},match:"(\\\\)\\n"}]},member_access:{captures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objc"}]},2:{name:"punctuation.separator.dot-access.objc"},3:{name:"punctuation.separator.pointer-access.objc"},4:{patterns:[{include:"#member_access"},{include:"#method_access"},{captures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objc"}]},2:{name:"punctuation.separator.dot-access.objc"},3:{name:"punctuation.separator.pointer-access.objc"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))"}]},5:{name:"variable.other.member.objc"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())"},method_access:{begin:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",beginCaptures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objc"}]},2:{name:"punctuation.separator.dot-access.objc"},3:{name:"punctuation.separator.pointer-access.objc"},4:{patterns:[{include:"#member_access"},{include:"#method_access"},{captures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objc"}]},2:{name:"punctuation.separator.dot-access.objc"},3:{name:"punctuation.separator.pointer-access.objc"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))"}]},5:{name:"entity.name.function.member.objc"},6:{name:"punctuation.section.arguments.begin.bracket.round.function.member.objc"}},contentName:"meta.function-call.member.objc",end:"(\\))",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.function.member.objc"}},patterns:[{include:"#function-call-innards"}]},numbers:{begin:"(?<!\\w)(?=\\d|\\.\\d)",end:"(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",patterns:[{captures:{1:{name:"keyword.other.unit.hexadecimal.objc"},2:{name:"constant.numeric.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},3:{name:"punctuation.separator.constant.numeric.objc"},4:{name:"constant.numeric.hexadecimal.objc"},5:{name:"constant.numeric.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},6:{name:"punctuation.separator.constant.numeric.objc"},8:{name:"keyword.other.unit.exponent.hexadecimal.objc"},9:{name:"keyword.operator.plus.exponent.hexadecimal.objc"},10:{name:"keyword.operator.minus.exponent.hexadecimal.objc"},11:{name:"constant.numeric.exponent.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},12:{name:"keyword.other.unit.suffix.floating-point.objc"}},match:"(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{2:{name:"constant.numeric.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},3:{name:"punctuation.separator.constant.numeric.objc"},4:{name:"constant.numeric.decimal.point.objc"},5:{name:"constant.numeric.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},6:{name:"punctuation.separator.constant.numeric.objc"},8:{name:"keyword.other.unit.exponent.decimal.objc"},9:{name:"keyword.operator.plus.exponent.decimal.objc"},10:{name:"keyword.operator.minus.exponent.decimal.objc"},11:{name:"constant.numeric.exponent.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},12:{name:"keyword.other.unit.suffix.floating-point.objc"}},match:"(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{1:{name:"keyword.other.unit.binary.objc"},2:{name:"constant.numeric.binary.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},3:{name:"punctuation.separator.constant.numeric.objc"},4:{name:"keyword.other.unit.suffix.integer.objc"}},match:"(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{1:{name:"keyword.other.unit.octal.objc"},2:{name:"constant.numeric.octal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},3:{name:"punctuation.separator.constant.numeric.objc"},4:{name:"keyword.other.unit.suffix.integer.objc"}},match:"(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{1:{name:"keyword.other.unit.hexadecimal.objc"},2:{name:"constant.numeric.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},3:{name:"punctuation.separator.constant.numeric.objc"},5:{name:"keyword.other.unit.exponent.hexadecimal.objc"},6:{name:"keyword.operator.plus.exponent.hexadecimal.objc"},7:{name:"keyword.operator.minus.exponent.hexadecimal.objc"},8:{name:"constant.numeric.exponent.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},9:{name:"keyword.other.unit.suffix.integer.objc"}},match:"(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{2:{name:"constant.numeric.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},3:{name:"punctuation.separator.constant.numeric.objc"},5:{name:"keyword.other.unit.exponent.decimal.objc"},6:{name:"keyword.operator.plus.exponent.decimal.objc"},7:{name:"keyword.operator.minus.exponent.decimal.objc"},8:{name:"constant.numeric.exponent.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},9:{name:"keyword.other.unit.suffix.integer.objc"}},match:"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{match:"(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+",name:"invalid.illegal.constant.numeric.objc"}]},operators:{patterns:[{match:"(?<![\\w$])(sizeof)(?![\\w$])",name:"keyword.operator.sizeof.objc"},{match:"--",name:"keyword.operator.decrement.objc"},{match:"\\+\\+",name:"keyword.operator.increment.objc"},{match:"%=|\\+=|-=|\\*=|(?<!\\()/=",name:"keyword.operator.assignment.compound.objc"},{match:"&=|\\^=|<<=|>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.objc"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.objc"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.objc"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.objc"},{match:"&|\\||\\^|~",name:"keyword.operator.objc"},{match:"=",name:"keyword.operator.assignment.objc"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.objc"},{begin:"(\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.objc"}},end:"(:)",endCaptures:{1:{name:"keyword.operator.ternary.objc"}},patterns:[{include:"#function-call-innards"},{include:"$base"}]}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objc"}},name:"meta.parens.objc",patterns:[{include:"$base"}]},"parens-block":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objc"}},name:"meta.parens.block.objc",patterns:[{include:"#block_innards"},{match:"(?-mix:(?<!:):(?!:))",name:"punctuation.range-based.objc"}]},"pragma-mark":{captures:{1:{name:"meta.preprocessor.pragma.objc"},2:{name:"keyword.control.directive.pragma.pragma-mark.objc"},3:{name:"punctuation.definition.directive.objc"},4:{name:"entity.name.tag.pragma-mark.objc"}},match:"^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",name:"meta.section.objc"},"preprocessor-rule-conditional":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{captures:{0:{name:"invalid.illegal.stray-$1.objc"}},match:"^\\s*#\\s*(else|elif|endif)\\b"}]},"preprocessor-rule-conditional-block":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards"}]},{captures:{0:{name:"invalid.illegal.stray-$1.objc"}},match:"^\\s*#\\s*(else|elif|endif)\\b"}]},"preprocessor-rule-conditional-line":{patterns:[{match:"(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",name:"keyword.control.directive.conditional.objc"},{match:"\\bdefined\\b",name:"invalid.illegal.macro-name.objc"},{include:"#comments"},{include:"#strings"},{include:"#numbers"},{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.objc"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.objc"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#operators"},{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.objc"},{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objc"},{include:"#line_continuation_character"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objc"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]}]},"preprocessor-rule-define-line-blocks":{patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objc"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objc"}},patterns:[{include:"#preprocessor-rule-define-line-blocks"},{include:"#preprocessor-rule-define-line-contents"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-define-line-contents":{patterns:[{include:"#vararg_ellipses"},{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objc"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objc"}},name:"meta.block.objc",patterns:[{include:"#preprocessor-rule-define-line-blocks"}]},{match:"\\(",name:"punctuation.section.parens.begin.bracket.round.objc"},{match:"\\)",name:"punctuation.section.parens.end.bracket.round.objc"},{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\() +(?= + (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name + | + (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\( +)`,end:"(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",name:"meta.function.objc",patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:'"|(?<!\\\\)(?=\\s*\\n)',endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.single.objc",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]},{include:"#method_access"},{include:"#member_access"},{include:"$base"}]},"preprocessor-rule-define-line-functions":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#vararg_ellipses"},{include:"#method_access"},{include:"#member_access"},{include:"#operators"},{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\() +( +(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name +| +(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\])) +) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.objc"},2:{name:"punctuation.section.arguments.begin.bracket.round.objc"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.objc"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.objc"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-disabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{begin:"\\n",contentName:"comment.block.preprocessor.if-branch.objc",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards"}]},{begin:"\\n",contentName:"comment.block.preprocessor.if-branch.in-block.objc",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",contentName:"comment.block.preprocessor.elif-branch.objc",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"},3:{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.else-branch.objc",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.if-branch.objc",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"$base"}]}]}]},"preprocessor-rule-enabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.else-branch.in-block.objc",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.if-branch.in-block.objc",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#block_innards"}]}]}]},"preprocessor-rule-enabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.elif-branch.objc",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.elif-branch.objc",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"$base"}]}]},"preprocessor-rule-enabled-elif-block":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.elif-branch.in-block.objc",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.elif-branch.objc",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"#block_innards"}]}]},"preprocessor-rule-enabled-else":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"$base"}]},"preprocessor-rule-enabled-else-block":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#block_innards"}]},probably_a_parameter:{captures:{1:{name:"variable.parameter.probably.objc"}},match:"(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))"},static_assert:{begin:"(static_assert|_Static_assert)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.static_assert.objc"},2:{name:"punctuation.section.arguments.begin.bracket.round.objc"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.objc"}},patterns:[{begin:'(,)\\s*(?=(?:L|u8|u|U\\s*\\")?)',beginCaptures:{1:{name:"punctuation.separator.delimiter.objc"}},end:"(?=\\))",name:"meta.static_assert.message.objc",patterns:[{include:"#string_context"},{include:"#string_context_c"}]},{include:"#function_call_context"}]},storage_types:{patterns:[{match:"(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))",name:"storage.type.built-in.primitive.objc"},{match:"(?-mix:(?<!\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\w))",name:"storage.type.built-in.objc"},{match:"(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)",name:"storage.type.$1.objc"}]},string_escaped_char:{patterns:[{match:`(?x)\\\\ ( +\\\\ | +[abefnprtv'"?] | +[0-3]\\d{,2} | +[4-7]\\d? | +x[a-fA-F0-9]{,2} | +u[a-fA-F0-9]{,4} | +U[a-fA-F0-9]{,8} )`,name:"constant.character.escape.objc"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objc"}]},string_placeholder:{patterns:[{match:`(?x) % +(\\d+\\$)? # field (argument #) +[#0\\- +']* # flags +[,;:_]? # separator character (AltiVec) +((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width +(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision +(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier +[diouxXDOUeEfFgGaACcSspn%] # conversion type`,name:"constant.other.placeholder.objc"},{captures:{1:{name:"invalid.illegal.placeholder.objc"}},match:'(%)(?!"\\s*(PRI|SCN))'}]},strings:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.single.objc",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]}]},switch_conditional_parentheses:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.parens.begin.bracket.round.conditional.switch.objc"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.conditional.switch.objc"}},name:"meta.conditional.switch.objc",patterns:[{include:"#conditional_context"}]},switch_statement:{begin:"(((?<!\\w)switch(?!\\w)))",beginCaptures:{1:{name:"meta.head.switch.objc"},2:{name:"keyword.control.switch.objc"}},end:"(?:(?<=\\})|(?=[;>\\[\\]=]))",name:"meta.block.switch.objc",patterns:[{begin:"\\G ?",end:"((?:\\{|(?=;)))",endCaptures:{1:{name:"punctuation.section.block.begin.bracket.curly.switch.objc"}},name:"meta.head.switch.objc",patterns:[{include:"#switch_conditional_parentheses"},{include:"$base"}]},{begin:"(?<=\\{)",end:"(\\})",endCaptures:{1:{name:"punctuation.section.block.end.bracket.curly.switch.objc"}},name:"meta.body.switch.objc",patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$base"},{include:"#block_innards"}]},{begin:"(?<=})[\\s\\n]*",end:"[\\s\\n]*(?=;)",name:"meta.tail.switch.objc",patterns:[{include:"$base"}]}]},vararg_ellipses:{match:"(?<!\\.)\\.\\.\\.(?!\\.)",name:"punctuation.vararg-ellipses.objc"}}},comment:{patterns:[{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.objc"}},end:"\\*/",name:"comment.block.objc"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.objc"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.objc"}},end:"\\n",name:"comment.line.double-slash.objc",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.objc"}]}]}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",comment:"eat nested preprocessor if(def)s",end:"^\\s*#\\s*endif\\b.*$",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},implementation_innards:{patterns:[{include:"#preprocessor-rule-enabled-implementation"},{include:"#preprocessor-rule-disabled-implementation"},{include:"#preprocessor-rule-other-implementation"},{include:"#property_directive"},{include:"#method_super"},{include:"$base"}]},interface_innards:{patterns:[{include:"#preprocessor-rule-enabled-interface"},{include:"#preprocessor-rule-disabled-interface"},{include:"#preprocessor-rule-other-interface"},{include:"#properties"},{include:"#protocol_list"},{include:"#method"},{include:"$base"}]},method:{begin:"^(-|\\+)\\s*",end:"(?=\\{|#)|;",name:"meta.function.objc",patterns:[{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.type.begin.objc"}},end:"(\\))\\s*(\\w+\\b)",endCaptures:{1:{name:"punctuation.definition.type.end.objc"},2:{name:"entity.name.function.objc"}},name:"meta.return-type.objc",patterns:[{include:"#protocol_list"},{include:"#protocol_type_qualifier"},{include:"$base"}]},{match:"\\b\\w+(?=:)",name:"entity.name.function.name-of-parameter.objc"},{begin:"((:))\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.name-of-parameter.objc"},2:{name:"punctuation.separator.arguments.objc"},3:{name:"punctuation.definition.type.begin.objc"}},end:"(\\))\\s*(\\w+\\b)?",endCaptures:{1:{name:"punctuation.definition.type.end.objc"},2:{name:"variable.parameter.function.objc"}},name:"meta.argument-type.objc",patterns:[{include:"#protocol_list"},{include:"#protocol_type_qualifier"},{include:"$base"}]},{include:"#comment"}]},method_super:{begin:"^(?=-|\\+)",end:"(?<=\\})|(?=#)",name:"meta.function-with-body.objc",patterns:[{include:"#method"},{include:"$base"}]},"pragma-mark":{captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.pragma.objc"},3:{name:"meta.toc-list.pragma-mark.objc"}},match:"^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",name:"meta.section.objc"},"preprocessor-rule-disabled-implementation":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.if.objc"},3:{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.else.objc"}},end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",name:"comment.block.preprocessor.if-branch.objc",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-disabled-interface":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.if.objc"},3:{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.else.objc"}},end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",name:"comment.block.preprocessor.if-branch.objc",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled-implementation":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.if.objc"},3:{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.else.objc"}},contentName:"comment.block.preprocessor.else-branch.objc",end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#implementation_innards"}]}]},"preprocessor-rule-enabled-interface":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.if.objc"},3:{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.else.objc"}},contentName:"comment.block.preprocessor.else-branch.objc",end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]}]},"preprocessor-rule-other-implementation":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.objc"}},end:"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",patterns:[{include:"#implementation_innards"}]},"preprocessor-rule-other-interface":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.objc"}},end:"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",patterns:[{include:"#interface_innards"}]},properties:{patterns:[{begin:"((@)property)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.property.objc"},2:{name:"punctuation.definition.keyword.objc"},3:{name:"punctuation.section.scope.begin.objc"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.scope.end.objc"}},name:"meta.property-with-attributes.objc",patterns:[{match:"\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\b",name:"keyword.other.property.attribute.objc"}]},{captures:{1:{name:"keyword.other.property.objc"},2:{name:"punctuation.definition.keyword.objc"}},match:"((@)property)\\b",name:"meta.property.objc"}]},property_directive:{captures:{1:{name:"punctuation.definition.keyword.objc"}},match:"(@)(dynamic|synthesize)\\b",name:"keyword.other.property.directive.objc"},protocol_list:{begin:"(<)",beginCaptures:{1:{name:"punctuation.section.scope.begin.objc"}},end:"(>)",endCaptures:{1:{name:"punctuation.section.scope.end.objc"}},name:"meta.protocol-list.objc",patterns:[{match:"\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b",name:"support.other.protocol.objc"}]},protocol_type_qualifier:{match:"\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\b",name:"storage.modifier.protocol.objc"},special_variables:{patterns:[{match:"\\b_cmd\\b",name:"variable.other.selector.objc"},{match:"\\b(self|super)\\b",name:"variable.language.objc"}]},string_escaped_char:{patterns:[{match:`(?x)\\\\ ( +\\\\ | +[abefnprtv'"?] | +[0-3]\\d{,2} | +[4-7]\\d? | +x[a-fA-F0-9]{,2} | +u[a-fA-F0-9]{,4} | +U[a-fA-F0-9]{,8} )`,name:"constant.character.escape.objc"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objc"}]},string_placeholder:{patterns:[{match:`(?x) % +(\\d+\\$)? +[#0\\- +']* +[,;:_]? +((-?\\d+)|\\*(-?\\d+\\$)?)? +(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? +(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? +[diouxXDOUeEfFgGaACcSspn%]`,name:"constant.other.placeholder.objc"},{captures:{1:{name:"invalid.illegal.placeholder.objc"}},match:'(%)(?!"\\s*(PRI|SCN))'}]}},scopeName:"source.objc",aliases:["objc"]});var n=[e];export{n as default}; diff --git a/assets/chunks/objective-cpp.BWKJ1FCf.js b/assets/chunks/objective-cpp.BWKJ1FCf.js new file mode 100644 index 000000000..4bfff86c1 --- /dev/null +++ b/assets/chunks/objective-cpp.BWKJ1FCf.js @@ -0,0 +1,239 @@ +const e=Object.freeze({displayName:"Objective-C++",name:"objective-cpp",patterns:[{include:"#cpp_lang"},{include:"#anonymous_pattern_1"},{include:"#anonymous_pattern_2"},{include:"#anonymous_pattern_3"},{include:"#anonymous_pattern_4"},{include:"#anonymous_pattern_5"},{include:"#apple_foundation_functional_macros"},{include:"#anonymous_pattern_7"},{include:"#anonymous_pattern_8"},{include:"#anonymous_pattern_9"},{include:"#anonymous_pattern_10"},{include:"#anonymous_pattern_11"},{include:"#anonymous_pattern_12"},{include:"#anonymous_pattern_13"},{include:"#anonymous_pattern_14"},{include:"#anonymous_pattern_15"},{include:"#anonymous_pattern_16"},{include:"#anonymous_pattern_17"},{include:"#anonymous_pattern_18"},{include:"#anonymous_pattern_19"},{include:"#anonymous_pattern_20"},{include:"#anonymous_pattern_21"},{include:"#anonymous_pattern_22"},{include:"#anonymous_pattern_23"},{include:"#anonymous_pattern_24"},{include:"#anonymous_pattern_25"},{include:"#anonymous_pattern_26"},{include:"#anonymous_pattern_27"},{include:"#anonymous_pattern_28"},{include:"#anonymous_pattern_29"},{include:"#anonymous_pattern_30"},{include:"#bracketed_content"},{include:"#c_lang"}],repository:{anonymous_pattern_1:{begin:"((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?",captures:{1:{name:"storage.type.objcpp"},2:{name:"punctuation.definition.storage.type.objcpp"},4:{name:"entity.name.type.objcpp"},6:{name:"punctuation.definition.entity.other.inherited-class.objcpp"},7:{name:"entity.other.inherited-class.objcpp"},8:{name:"meta.divider.objcpp"},9:{name:"meta.inherited-class.objcpp"}},contentName:"meta.scope.interface.objcpp",end:"((@)end)\\b",name:"meta.interface-or-protocol.objcpp",patterns:[{include:"#interface_innards"}]},anonymous_pattern_10:{captures:{1:{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(defs|encode)\\b",name:"keyword.other.objcpp"},anonymous_pattern_11:{match:"\\bid\\b",name:"storage.type.id.objcpp"},anonymous_pattern_12:{match:"\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b",name:"storage.type.objcpp"},anonymous_pattern_13:{captures:{1:{name:"punctuation.definition.storage.type.objcpp"}},match:"(@)(class|protocol)\\b",name:"storage.type.objcpp"},anonymous_pattern_14:{begin:"((@)selector)\\s*(\\()",beginCaptures:{1:{name:"storage.type.objcpp"},2:{name:"punctuation.definition.storage.type.objcpp"},3:{name:"punctuation.definition.storage.type.objcpp"}},contentName:"meta.selector.method-name.objcpp",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.storage.type.objcpp"}},name:"meta.selector.objcpp",patterns:[{captures:{1:{name:"punctuation.separator.arguments.objcpp"}},match:"\\b(?:[a-zA-Z_:][\\w]*)+",name:"support.function.any-method.name-of-parameter.objcpp"}]},anonymous_pattern_15:{captures:{1:{name:"punctuation.definition.storage.modifier.objcpp"}},match:"(@)(synchronized|public|package|private|protected)\\b",name:"storage.modifier.objcpp"},anonymous_pattern_16:{match:"\\b(YES|NO|Nil|nil)\\b",name:"constant.language.objcpp"},anonymous_pattern_17:{match:"\\bNSApp\\b",name:"support.variable.foundation.objcpp"},anonymous_pattern_18:{captures:{1:{name:"punctuation.whitespace.support.function.cocoa.leopard.objcpp"},2:{name:"support.function.cocoa.leopard.objcpp"}},match:"(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b"},anonymous_pattern_19:{captures:{1:{name:"punctuation.whitespace.support.function.leading.cocoa.objcpp"},2:{name:"support.function.cocoa.objcpp"}},match:"(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b"},anonymous_pattern_2:{begin:"((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?",captures:{1:{name:"storage.type.objcpp"},2:{name:"punctuation.definition.storage.type.objcpp"},4:{name:"entity.name.type.objcpp"},5:{name:"entity.other.inherited-class.objcpp"}},contentName:"meta.scope.implementation.objcpp",end:"((@)end)\\b",name:"meta.implementation.objcpp",patterns:[{include:"#implementation_innards"}]},anonymous_pattern_20:{match:"\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b",name:"support.class.cocoa.leopard.objcpp"},anonymous_pattern_21:{match:"\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b",name:"support.class.cocoa.objcpp"},anonymous_pattern_22:{match:"\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b",name:"support.type.cocoa.leopard.objcpp"},anonymous_pattern_23:{match:"\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b",name:"support.class.quartz.objcpp"},anonymous_pattern_24:{match:"\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b",name:"support.type.quartz.objcpp"},anonymous_pattern_25:{match:"\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b",name:"support.type.cocoa.objcpp"},anonymous_pattern_26:{match:"\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b",name:"support.constant.cocoa.objcpp"},anonymous_pattern_27:{match:"\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b",name:"support.constant.notification.cocoa.leopard.objcpp"},anonymous_pattern_28:{match:"\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b",name:"support.constant.notification.cocoa.objcpp"},anonymous_pattern_29:{match:"\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b",name:"support.constant.cocoa.leopard.objcpp"},anonymous_pattern_3:{begin:'@"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char"},{match:`(?x)% +(\\d+\\$)? +[#0\\- +']* +((-?\\d+)|\\*(-?\\d+\\$)?)? +(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? +[@] +`,name:"constant.other.placeholder.objcpp"},{include:"#string_placeholder"}]},anonymous_pattern_30:{match:"\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b",name:"support.constant.cocoa.objcpp"},anonymous_pattern_4:{begin:"\\b(id)\\s*(?=<)",beginCaptures:{1:{name:"storage.type.objcpp"}},end:"(?<=>)",name:"meta.id-with-protocol.objcpp",patterns:[{include:"#protocol_list"}]},anonymous_pattern_5:{match:"\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b",name:"keyword.control.macro.objcpp"},anonymous_pattern_7:{captures:{1:{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(try|catch|finally|throw)\\b",name:"keyword.control.exception.objcpp"},anonymous_pattern_8:{captures:{1:{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(synchronized)\\b",name:"keyword.control.synchronize.objcpp"},anonymous_pattern_9:{captures:{1:{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(required|optional)\\b",name:"keyword.control.protocol-specification.objcpp"},apple_foundation_functional_macros:{begin:"(\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\s)+)?(\\()",beginCaptures:{1:{name:"entity.name.function.preprocessor.apple-foundation.objcpp"},2:{name:"punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objcpp"}},name:"meta.preprocessor.macro.callable.apple-foundation.objcpp",patterns:[{include:"#c_lang"}]},bracketed_content:{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.scope.begin.objcpp"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.scope.end.objcpp"}},name:"meta.bracketed.objcpp",patterns:[{begin:"(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)",beginCaptures:{1:{name:"support.function.any-method.objcpp"},2:{name:"punctuation.separator.arguments.objcpp"}},end:"(?=\\])",name:"meta.function-call.predicate.objcpp",patterns:[{captures:{1:{name:"punctuation.separator.arguments.objcpp"}},match:"\\bargument(Array|s)(:)",name:"support.function.any-method.name-of-parameter.objcpp"},{captures:{1:{name:"punctuation.separator.arguments.objcpp"}},match:"\\b\\w+(:)",name:"invalid.illegal.unknown-method.objcpp"},{begin:'@"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{match:"\\b(AND|OR|NOT|IN)\\b",name:"keyword.operator.logical.predicate.cocoa.objcpp"},{match:"\\b(ALL|ANY|SOME|NONE)\\b",name:"constant.language.predicate.cocoa.objcpp"},{match:"\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b",name:"constant.language.predicate.cocoa.objcpp"},{match:"\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b",name:"keyword.operator.comparison.predicate.cocoa.objcpp"},{match:"\\bC(ASEINSENSITIVE|I)\\b",name:"keyword.other.modifier.predicate.cocoa.objcpp"},{match:"\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b",name:"keyword.other.predicate.cocoa.objcpp"},{match:`\\\\(\\\\|[abefnrtv'"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)`,name:"constant.character.escape.objcpp"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objcpp"}]},{include:"#special_variables"},{include:"#c_functions"},{include:"$base"}]},{begin:'(?=\\w)(?<=[\\w\\])"] )(\\w+(?:(:)|(?=\\])))',beginCaptures:{1:{name:"support.function.any-method.objcpp"},2:{name:"punctuation.separator.arguments.objcpp"}},end:"(?=\\])",name:"meta.function-call.objcpp",patterns:[{captures:{1:{name:"punctuation.separator.arguments.objcpp"}},match:"\\b\\w+(:)",name:"support.function.any-method.name-of-parameter.objcpp"},{include:"#special_variables"},{include:"#c_functions"},{include:"$base"}]},{include:"#special_variables"},{include:"#c_functions"},{include:"$self"}]},c_functions:{patterns:[{captures:{1:{name:"punctuation.whitespace.support.function.leading.objcpp"},2:{name:"support.function.C99.objcpp"}},match:"(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b"},{captures:{1:{name:"punctuation.whitespace.function-call.leading.objcpp"},2:{name:"support.function.any-method.objcpp"},3:{name:"punctuation.definition.parameters.objcpp"}},match:`(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))? +(\\b +(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ +) +\\s*(\\()`,name:"meta.function-call.objcpp"}]},c_lang:{patterns:[{include:"#preprocessor-rule-enabled"},{include:"#preprocessor-rule-disabled"},{include:"#preprocessor-rule-conditional"},{include:"#comments"},{include:"#switch_statement"},{match:"\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",name:"keyword.control.objcpp"},{include:"#storage_types"},{match:"typedef",name:"keyword.other.typedef.objcpp"},{match:"\\bin\\b",name:"keyword.other.in.objcpp"},{match:"\\b(const|extern|register|restrict|static|volatile|inline|__block)\\b",name:"storage.modifier.objcpp"},{match:"\\bk[A-Z]\\w*\\b",name:"constant.other.variable.mac-classic.objcpp"},{match:"\\bg[A-Z]\\w*\\b",name:"variable.other.readwrite.global.mac-classic.objcpp"},{match:"\\bs[A-Z]\\w*\\b",name:"variable.other.readwrite.static.mac-classic.objcpp"},{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.objcpp"},{include:"#operators"},{include:"#numbers"},{include:"#strings"},{include:"#special_variables"},{begin:`(?x) +^\\s* ((\\#)\\s*define) \\s+ +((?<id>[a-zA-Z_$][\\w$]*)) +(?: +(\\() +( +\\s* \\g<id> \\s* +((,) \\s* \\g<id> \\s*)* +(?:\\.\\.\\.)? +) +(\\)) +)?`,beginCaptures:{1:{name:"keyword.control.directive.define.objcpp"},2:{name:"punctuation.definition.directive.objcpp"},3:{name:"entity.name.function.preprocessor.objcpp"},5:{name:"punctuation.definition.parameters.begin.objcpp"},6:{name:"variable.parameter.preprocessor.objcpp"},8:{name:"punctuation.separator.parameters.objcpp"},9:{name:"punctuation.definition.parameters.end.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.macro.objcpp",patterns:[{include:"#preprocessor-rule-define-line-contents"}]},{begin:"^\\s*((#)\\s*(error|warning))\\b\\s*",beginCaptures:{1:{name:"keyword.control.directive.diagnostic.$3.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?<!\\\\)(?=\\n)",name:"meta.preprocessor.diagnostic.objcpp",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"|(?<!\\\\)(?=\\s*\\n)',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#line_continuation_character"}]},{begin:`[^'"]`,end:"(?<!\\\\)(?=\\s*\\n)",name:"string.unquoted.single.objcpp",patterns:[{include:"#line_continuation_character"},{include:"#comments"}]}]},{begin:"^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",beginCaptures:{1:{name:"keyword.control.directive.$3.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.include.objcpp",patterns:[{include:"#line_continuation_character"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.include.objcpp"},{begin:"<",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:">",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.other.lt-gt.include.objcpp"}]},{include:"#pragma-mark"},{begin:"^\\s*((#)\\s*line)\\b",beginCaptures:{1:{name:"keyword.control.directive.line.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#strings"},{include:"#numbers"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*undef))\\b",beginCaptures:{1:{name:"keyword.control.directive.undef.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objcpp"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*pragma))\\b",beginCaptures:{1:{name:"keyword.control.directive.pragma.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.pragma.objcpp",patterns:[{include:"#strings"},{match:"[a-zA-Z_$][\\w\\-$]*",name:"entity.other.attribute-name.pragma.preprocessor.objcpp"},{include:"#numbers"},{include:"#line_continuation_character"}]},{match:"\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",name:"support.type.sys-types.objcpp"},{match:"\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",name:"support.type.pthread.objcpp"},{match:`(?x) \\b +(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t +|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t +|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t +|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t +|uintmax_t|uintmax_t) +\\b`,name:"support.type.stdint.objcpp"},{match:"\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",name:"support.constant.mac-classic.objcpp"},{match:`(?x) \\b +(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam +|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr +|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber +|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64 +|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32 +|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr +|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char) +\\b`,name:"support.type.mac-classic.objcpp"},{match:"\\b([A-Za-z0-9_]+_t)\\b",name:"support.type.posix-reserved.objcpp"},{include:"#block"},{include:"#parens"},{begin:"(?<!\\w)(?!\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()",end:"(?<=\\))",name:"meta.function.objcpp",patterns:[{include:"#function-innards"}]},{include:"#line_continuation_character"},{begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",beginCaptures:{1:{name:"variable.object.objcpp"},2:{name:"punctuation.definition.begin.bracket.square.objcpp"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.end.bracket.square.objcpp"}},name:"meta.bracket.square.access.objcpp",patterns:[{include:"#function-call-innards"}]},{match:"\\[\\s*\\]",name:"storage.modifier.array.bracket.square.objcpp"},{match:";",name:"punctuation.terminator.statement.objcpp"},{match:",",name:"punctuation.separator.delimiter.objcpp"}],repository:{"access-method":{begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",beginCaptures:{1:{name:"variable.object.objcpp"},2:{name:"punctuation.separator.dot-access.objcpp"},3:{name:"punctuation.separator.pointer-access.objcpp"},4:{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.objcpp"},{match:"->",name:"punctuation.separator.pointer-access.objcpp"},{match:"[a-zA-Z_][a-zA-Z_0-9]*",name:"variable.object.objcpp"},{match:".+",name:"everything.else.objcpp"}]},5:{name:"entity.name.function.member.objcpp"},6:{name:"punctuation.section.arguments.begin.bracket.round.function.member.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.member.objcpp"}},name:"meta.function-call.member.objcpp",patterns:[{include:"#function-call-innards"}]},block:{patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{include:"#block_innards"}]}]},block_innards:{patterns:[{include:"#preprocessor-rule-enabled-block"},{include:"#preprocessor-rule-disabled-block"},{include:"#preprocessor-rule-conditional-block"},{include:"#method_access"},{include:"#member_access"},{include:"#c_function_call"},{begin:`(?x) +(?: + (?: + (?=\\s)(?<!else|new|return) + (?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name + ) +) +( + (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name + | + (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\])) +) +\\s*(\\() # opening bracket`,beginCaptures:{1:{name:"variable.other.objcpp"},2:{name:"punctuation.section.parens.begin.bracket.round.initialization.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.initialization.objcpp"}},name:"meta.initialization.objcpp",patterns:[{include:"#function-call-innards"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#block_innards"}]},{include:"#parens-block"},{include:"$base"}]},c_function_call:{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\() +(?= +(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name +| +(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\( +)`,end:"(?<=\\))(?!\\w)",name:"meta.function-call.objcpp",patterns:[{include:"#function-call-innards"}]},case_statement:{begin:"((?<!\\w)case(?!\\w))",beginCaptures:{1:{name:"keyword.control.case.objcpp"}},end:"(:)",endCaptures:{1:{name:"punctuation.separator.case.objcpp"}},name:"meta.conditional.case.objcpp",patterns:[{include:"#conditional_context"}]},comments:{patterns:[{captures:{1:{name:"meta.toc-list.banner.block.objcpp"}},match:"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",name:"comment.block.objcpp"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.objcpp"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.objcpp"}},name:"comment.block.objcpp"},{captures:{1:{name:"meta.toc-list.banner.line.objcpp"}},match:"^// =(\\s*.*?)\\s*=\\s*$\\n?",name:"comment.line.banner.objcpp"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.objcpp"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.objcpp"}},end:"(?=\\n)",name:"comment.line.double-slash.objcpp",patterns:[{include:"#line_continuation_character"}]}]}]},conditional_context:{patterns:[{include:"$base"},{include:"#block_innards"}]},default_statement:{begin:"((?<!\\w)default(?!\\w))",beginCaptures:{1:{name:"keyword.control.default.objcpp"}},end:"(:)",endCaptures:{1:{name:"punctuation.separator.case.default.objcpp"}},name:"meta.conditional.case.objcpp",patterns:[{include:"#conditional_context"}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",end:"^\\s*#\\s*endif\\b",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},"function-call-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#method_access"},{include:"#member_access"},{include:"#operators"},{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\() +( +(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name +| +(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\])) +) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards"}]},{include:"#block_innards"}]},"function-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#operators"},{include:"#vararg_ellipses"},{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\() +( +(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name +| +(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\])) +) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.section.parameters.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.objcpp"}},name:"meta.function.definition.parameters.objcpp",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#function-innards"}]},{include:"$base"}]},line_continuation_character:{patterns:[{captures:{1:{name:"constant.character.escape.line-continuation.objcpp"}},match:"(\\\\)\\n"}]},member_access:{captures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objcpp"}]},2:{name:"punctuation.separator.dot-access.objcpp"},3:{name:"punctuation.separator.pointer-access.objcpp"},4:{patterns:[{include:"#member_access"},{include:"#method_access"},{captures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objcpp"}]},2:{name:"punctuation.separator.dot-access.objcpp"},3:{name:"punctuation.separator.pointer-access.objcpp"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))"}]},5:{name:"variable.other.member.objcpp"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())"},method_access:{begin:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",beginCaptures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objcpp"}]},2:{name:"punctuation.separator.dot-access.objcpp"},3:{name:"punctuation.separator.pointer-access.objcpp"},4:{patterns:[{include:"#member_access"},{include:"#method_access"},{captures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objcpp"}]},2:{name:"punctuation.separator.dot-access.objcpp"},3:{name:"punctuation.separator.pointer-access.objcpp"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))"}]},5:{name:"entity.name.function.member.objcpp"},6:{name:"punctuation.section.arguments.begin.bracket.round.function.member.objcpp"}},contentName:"meta.function-call.member.objcpp",end:"(\\))",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.function.member.objcpp"}},patterns:[{include:"#function-call-innards"}]},numbers:{begin:"(?<!\\w)(?=\\d|\\.\\d)",end:"(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",patterns:[{captures:{1:{name:"keyword.other.unit.hexadecimal.objcpp"},2:{name:"constant.numeric.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},3:{name:"punctuation.separator.constant.numeric.objcpp"},4:{name:"constant.numeric.hexadecimal.objcpp"},5:{name:"constant.numeric.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},6:{name:"punctuation.separator.constant.numeric.objcpp"},8:{name:"keyword.other.unit.exponent.hexadecimal.objcpp"},9:{name:"keyword.operator.plus.exponent.hexadecimal.objcpp"},10:{name:"keyword.operator.minus.exponent.hexadecimal.objcpp"},11:{name:"constant.numeric.exponent.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},12:{name:"keyword.other.unit.suffix.floating-point.objcpp"}},match:"(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{2:{name:"constant.numeric.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},3:{name:"punctuation.separator.constant.numeric.objcpp"},4:{name:"constant.numeric.decimal.point.objcpp"},5:{name:"constant.numeric.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},6:{name:"punctuation.separator.constant.numeric.objcpp"},8:{name:"keyword.other.unit.exponent.decimal.objcpp"},9:{name:"keyword.operator.plus.exponent.decimal.objcpp"},10:{name:"keyword.operator.minus.exponent.decimal.objcpp"},11:{name:"constant.numeric.exponent.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},12:{name:"keyword.other.unit.suffix.floating-point.objcpp"}},match:"(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{1:{name:"keyword.other.unit.binary.objcpp"},2:{name:"constant.numeric.binary.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},3:{name:"punctuation.separator.constant.numeric.objcpp"},4:{name:"keyword.other.unit.suffix.integer.objcpp"}},match:"(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{1:{name:"keyword.other.unit.octal.objcpp"},2:{name:"constant.numeric.octal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},3:{name:"punctuation.separator.constant.numeric.objcpp"},4:{name:"keyword.other.unit.suffix.integer.objcpp"}},match:"(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{1:{name:"keyword.other.unit.hexadecimal.objcpp"},2:{name:"constant.numeric.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},3:{name:"punctuation.separator.constant.numeric.objcpp"},5:{name:"keyword.other.unit.exponent.hexadecimal.objcpp"},6:{name:"keyword.operator.plus.exponent.hexadecimal.objcpp"},7:{name:"keyword.operator.minus.exponent.hexadecimal.objcpp"},8:{name:"constant.numeric.exponent.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},9:{name:"keyword.other.unit.suffix.integer.objcpp"}},match:"(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{2:{name:"constant.numeric.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},3:{name:"punctuation.separator.constant.numeric.objcpp"},5:{name:"keyword.other.unit.exponent.decimal.objcpp"},6:{name:"keyword.operator.plus.exponent.decimal.objcpp"},7:{name:"keyword.operator.minus.exponent.decimal.objcpp"},8:{name:"constant.numeric.exponent.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},9:{name:"keyword.other.unit.suffix.integer.objcpp"}},match:"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{match:"(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+",name:"invalid.illegal.constant.numeric.objcpp"}]},operators:{patterns:[{match:"(?<![\\w$])(sizeof)(?![\\w$])",name:"keyword.operator.sizeof.objcpp"},{match:"--",name:"keyword.operator.decrement.objcpp"},{match:"\\+\\+",name:"keyword.operator.increment.objcpp"},{match:"%=|\\+=|-=|\\*=|(?<!\\()/=",name:"keyword.operator.assignment.compound.objcpp"},{match:"&=|\\^=|<<=|>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.objcpp"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.objcpp"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.objcpp"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.objcpp"},{match:"&|\\||\\^|~",name:"keyword.operator.objcpp"},{match:"=",name:"keyword.operator.assignment.objcpp"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.objcpp"},{begin:"(\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.objcpp"}},end:"(:)",endCaptures:{1:{name:"keyword.operator.ternary.objcpp"}},patterns:[{include:"#function-call-innards"},{include:"$base"}]}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},name:"meta.parens.objcpp",patterns:[{include:"$base"}]},"parens-block":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},name:"meta.parens.block.objcpp",patterns:[{include:"#block_innards"},{match:"(?-mix:(?<!:):(?!:))",name:"punctuation.range-based.objcpp"}]},"pragma-mark":{captures:{1:{name:"meta.preprocessor.pragma.objcpp"},2:{name:"keyword.control.directive.pragma.pragma-mark.objcpp"},3:{name:"punctuation.definition.directive.objcpp"},4:{name:"entity.name.tag.pragma-mark.objcpp"}},match:"^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",name:"meta.section.objcpp"},"preprocessor-rule-conditional":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{captures:{0:{name:"invalid.illegal.stray-$1.objcpp"}},match:"^\\s*#\\s*(else|elif|endif)\\b"}]},"preprocessor-rule-conditional-block":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards"}]},{captures:{0:{name:"invalid.illegal.stray-$1.objcpp"}},match:"^\\s*#\\s*(else|elif|endif)\\b"}]},"preprocessor-rule-conditional-line":{patterns:[{match:"(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",name:"keyword.control.directive.conditional.objcpp"},{match:"\\bdefined\\b",name:"invalid.illegal.macro-name.objcpp"},{include:"#comments"},{include:"#strings"},{include:"#numbers"},{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.objcpp"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.objcpp"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#operators"},{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.objcpp"},{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objcpp"},{include:"#line_continuation_character"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]}]},"preprocessor-rule-define-line-blocks":{patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-blocks"},{include:"#preprocessor-rule-define-line-contents"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-define-line-contents":{patterns:[{include:"#vararg_ellipses"},{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{include:"#preprocessor-rule-define-line-blocks"}]},{match:"\\(",name:"punctuation.section.parens.begin.bracket.round.objcpp"},{match:"\\)",name:"punctuation.section.parens.end.bracket.round.objcpp"},{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\() +(?= + (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name + | + (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\( +)`,end:"(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",name:"meta.function.objcpp",patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"|(?<!\\\\)(?=\\s*\\n)',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]},{include:"#method_access"},{include:"#member_access"},{include:"$base"}]},"preprocessor-rule-define-line-functions":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#vararg_ellipses"},{include:"#method_access"},{include:"#member_access"},{include:"#operators"},{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\() +( +(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name +| +(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\])) +) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-disabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{begin:"\\n",contentName:"comment.block.preprocessor.if-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards"}]},{begin:"\\n",contentName:"comment.block.preprocessor.if-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"},3:{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.else-branch.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.if-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"$base"}]}]}]},"preprocessor-rule-enabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.else-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.if-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#block_innards"}]}]}]},"preprocessor-rule-enabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"$base"}]}]},"preprocessor-rule-enabled-elif-block":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"#block_innards"}]}]},"preprocessor-rule-enabled-else":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"$base"}]},"preprocessor-rule-enabled-else-block":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#block_innards"}]},probably_a_parameter:{captures:{1:{name:"variable.parameter.probably.objcpp"}},match:"(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))"},static_assert:{begin:"(static_assert|_Static_assert)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.static_assert.objcpp"},2:{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{begin:'(,)\\s*(?=(?:L|u8|u|U\\s*\\")?)',beginCaptures:{1:{name:"punctuation.separator.delimiter.objcpp"}},end:"(?=\\))",name:"meta.static_assert.message.objcpp",patterns:[{include:"#string_context"},{include:"#string_context_c"}]},{include:"#function_call_context"}]},storage_types:{patterns:[{match:"(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))",name:"storage.type.built-in.primitive.objcpp"},{match:"(?-mix:(?<!\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\w))",name:"storage.type.built-in.objcpp"},{match:"(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)",name:"storage.type.$1.objcpp"}]},string_escaped_char:{patterns:[{match:`(?x)\\\\ ( +\\\\ | +[abefnprtv'"?] | +[0-3]\\d{,2} | +[4-7]\\d? | +x[a-fA-F0-9]{,2} | +u[a-fA-F0-9]{,4} | +U[a-fA-F0-9]{,8} )`,name:"constant.character.escape.objcpp"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objcpp"}]},string_placeholder:{patterns:[{match:`(?x) % +(\\d+\\$)? # field (argument #) +[#0\\- +']* # flags +[,;:_]? # separator character (AltiVec) +((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width +(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision +(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier +[diouxXDOUeEfFgGaACcSspn%] # conversion type`,name:"constant.other.placeholder.objcpp"},{captures:{1:{name:"invalid.illegal.placeholder.objcpp"}},match:'(%)(?!"\\s*(PRI|SCN))'}]},strings:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]}]},switch_conditional_parentheses:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.parens.begin.bracket.round.conditional.switch.objcpp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.conditional.switch.objcpp"}},name:"meta.conditional.switch.objcpp",patterns:[{include:"#conditional_context"}]},switch_statement:{begin:"(((?<!\\w)switch(?!\\w)))",beginCaptures:{1:{name:"meta.head.switch.objcpp"},2:{name:"keyword.control.switch.objcpp"}},end:"(?:(?<=\\})|(?=[;>\\[\\]=]))",name:"meta.block.switch.objcpp",patterns:[{begin:"\\G ?",end:"((?:\\{|(?=;)))",endCaptures:{1:{name:"punctuation.section.block.begin.bracket.curly.switch.objcpp"}},name:"meta.head.switch.objcpp",patterns:[{include:"#switch_conditional_parentheses"},{include:"$base"}]},{begin:"(?<=\\{)",end:"(\\})",endCaptures:{1:{name:"punctuation.section.block.end.bracket.curly.switch.objcpp"}},name:"meta.body.switch.objcpp",patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$base"},{include:"#block_innards"}]},{begin:"(?<=})[\\s\\n]*",end:"[\\s\\n]*(?=;)",name:"meta.tail.switch.objcpp",patterns:[{include:"$base"}]}]},vararg_ellipses:{match:"(?<!\\.)\\.\\.\\.(?!\\.)",name:"punctuation.vararg-ellipses.objcpp"}}},comment:{patterns:[{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.objcpp"}},end:"\\*/",name:"comment.block.objcpp"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.objcpp"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.objcpp"}},end:"\\n",name:"comment.line.double-slash.objcpp",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.objcpp"}]}]}]},cpp_lang:{patterns:[{include:"#special_block"},{include:"#strings"},{match:"\\b(friend|explicit|virtual|override|final|noexcept)\\b",name:"storage.modifier.objcpp"},{match:"\\b(private:|protected:|public:)",name:"storage.type.modifier.access.objcpp"},{match:"\\b(catch|try|throw|using)\\b",name:"keyword.control.objcpp"},{match:"\\bdelete\\b(\\s*\\[\\])?|\\bnew\\b(?!])",name:"keyword.control.objcpp"},{match:"\\b(f|m)[A-Z]\\w*\\b",name:"variable.other.readwrite.member.objcpp"},{match:"\\bthis\\b",name:"variable.language.this.objcpp"},{match:"\\bnullptr\\b",name:"constant.language.objcpp"},{include:"#template_definition"},{match:"\\btemplate\\b\\s*",name:"storage.type.template.objcpp"},{match:"\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*",name:"keyword.operator.cast.objcpp"},{captures:{1:{name:"entity.scope.objcpp"},2:{name:"entity.scope.name.objcpp"},3:{name:"punctuation.separator.namespace.access.objcpp"}},match:"((?:[a-zA-Z_][a-zA-Z_0-9]*::)*)([a-zA-Z_][a-zA-Z_0-9]*)(::)",name:"punctuation.separator.namespace.access.objcpp"},{match:"\\b(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\b",name:"keyword.operator.objcpp"},{match:"\\b(decltype|wchar_t|char16_t|char32_t)\\b",name:"storage.type.objcpp"},{match:"\\b(constexpr|export|mutable|typename|thread_local)\\b",name:"storage.modifier.objcpp"},{begin:`(?x) +(?: +^ | +(?:(?<!else|new|=)) +) +((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.definition.parameters.begin.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.objcpp"}},name:"meta.function.destructor.objcpp",patterns:[{include:"$base"}]},{begin:`(?x) +(?: +^ | +(?:(?<!else|new|=)) +) +((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.definition.parameters.begin.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.objcpp"}},name:"meta.function.destructor.prototype.objcpp",patterns:[{include:"$base"}]},{include:"#c_lang"}],repository:{angle_brackets:{begin:"<",end:">",name:"meta.angle-brackets.objcpp",patterns:[{include:"#angle_brackets"},{include:"$base"}]},block:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{captures:{1:{name:"support.function.any-method.objcpp"},2:{name:"punctuation.definition.parameters.objcpp"}},match:`(?x) +( + (?!while|for|do|if|else|switch|catch|enumerate|return|r?iterate) + (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name +) +\\s*(\\() # opening bracket`,name:"meta.function-call.objcpp"},{include:"$base"}]},constructor:{patterns:[{begin:`(?x) +(?:^\\s*) # beginning of line +((?!while|for|do|if|else|switch|catch|enumerate|r?iterate)[A-Za-z_][A-Za-z0-9_:]*) # actual name +\\s*(\\() # opening bracket`,beginCaptures:{1:{name:"entity.name.function.constructor.objcpp"},2:{name:"punctuation.definition.parameters.begin.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.objcpp"}},name:"meta.function.constructor.objcpp",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards"}]},{begin:`(?x) +(:) +( + (?= + \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name + \\s* (\\() # opening bracket + ) +)`,beginCaptures:{1:{name:"punctuation.definition.parameters.objcpp"}},end:"(?=\\{)",name:"meta.function.constructor.initializer-list.objcpp",patterns:[{include:"$base"}]}]},special_block:{patterns:[{begin:"\\b(using)\\b\\s*(namespace)\\b\\s*((?:[_A-Za-z][_A-Za-z0-9]*\\b(::)?)*)",beginCaptures:{1:{name:"keyword.control.objcpp"},2:{name:"storage.type.namespace.objcpp"},3:{name:"entity.name.type.objcpp"}},end:";",endCaptures:{0:{name:"punctuation.terminator.statement.objcpp"}},name:"meta.using-namespace-declaration.objcpp"},{begin:"\\b(namespace)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+",beginCaptures:{1:{name:"storage.type.namespace.objcpp"},2:{name:"entity.name.type.objcpp"}},captures:{1:{name:"keyword.control.namespace.$2.objcpp"}},end:"(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))",name:"meta.namespace-block.objcpp",patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.scope.objcpp"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.scope.objcpp"}},patterns:[{include:"#special_block"},{include:"#constructor"},{include:"$base"}]},{include:"$base"}]},{begin:"\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?",beginCaptures:{1:{name:"storage.type.class.objcpp"},2:{name:"storage.type.struct.objcpp"},3:{name:"entity.name.type.objcpp"},5:{name:"storage.type.modifier.access.objcpp"},6:{name:"entity.name.type.inherited.objcpp"},7:{patterns:[{match:"(public|protected|private)",name:"storage.type.modifier.access.objcpp"},{match:"[_A-Za-z][_A-Za-z0-9]*",name:"entity.name.type.inherited.objcpp"}]}},end:"(?<=\\})|(?=(;|\\(|\\)|>|\\[|\\]|=))",name:"meta.class-struct-block.objcpp",patterns:[{include:"#angle_brackets"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"(\\})(\\s*\\n)?",endCaptures:{1:{name:"punctuation.section.block.end.bracket.curly.objcpp"},2:{name:"invalid.illegal.you-forgot-semicolon.objcpp"}},patterns:[{include:"#special_block"},{include:"#constructor"},{include:"$base"}]},{include:"$base"}]},{begin:'\\b(extern)(?=\\s*")',beginCaptures:{1:{name:"storage.modifier.objcpp"}},end:"(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)",name:"meta.extern-block.objcpp",patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"\\}|(?=\\s*#\\s*endif\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#special_block"},{include:"$base"}]},{include:"$base"}]}]},strings:{patterns:[{begin:'(u|u8|U|L)?"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"},1:{name:"meta.encoding.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{match:"\\\\u\\h{4}|\\\\U\\h{8}",name:"constant.character.escape.objcpp"},{match:`\\\\['"?\\\\abfnrtv]`,name:"constant.character.escape.objcpp"},{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.objcpp"},{match:"\\\\x\\h+",name:"constant.character.escape.objcpp"},{include:"#string_placeholder"}]},{begin:'(u|u8|U|L)?R"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"},1:{name:"meta.encoding.objcpp"},3:{name:"invalid.illegal.delimiter-too-long.objcpp"}},end:'\\)\\2(\\3)"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"},1:{name:"invalid.illegal.delimiter-too-long.objcpp"}},name:"string.quoted.double.raw.objcpp"}]},template_definition:{begin:"\\b(template)\\s*(<)\\s*",beginCaptures:{1:{name:"storage.type.template.objcpp"},2:{name:"meta.template.angle-brackets.start.objcpp"}},end:">",endCaptures:{0:{name:"meta.template.angle-brackets.end.objcpp"}},name:"template.definition.objcpp",patterns:[{include:"#template_definition_argument"}]},template_definition_argument:{captures:{1:{name:"storage.type.template.objcpp"},2:{name:"storage.type.template.objcpp"},3:{name:"entity.name.type.template.objcpp"},4:{name:"storage.type.template.objcpp"},5:{name:"meta.template.operator.ellipsis.objcpp"},6:{name:"entity.name.type.template.objcpp"},7:{name:"storage.type.template.objcpp"},8:{name:"entity.name.type.template.objcpp"},9:{name:"keyword.operator.assignment.objcpp"},10:{name:"constant.language.objcpp"},11:{name:"meta.template.operator.comma.objcpp"}},match:"\\s*(?:([a-zA-Z_][a-zA-Z_0-9]*\\s*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)|([a-zA-Z_][a-zA-Z_0-9]*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_][a-zA-Z_0-9]*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)\\s*(=)\\s*(\\w+))(,|(?=>))"}}},cpp_lang_newish:{patterns:[{include:"#special_block"},{match:"(?-mix:##[a-zA-Z_]\\w*(?!\\w))",name:"variable.other.macro.argument.objcpp"},{include:"#strings"},{match:"(?<!\\w)((?:inline|constexpr|mutable|friend|explicit|virtual))(?!\\w)",name:"storage.modifier.specificer.functional.pre-parameters.$1.objcpp"},{match:"(?<!\\w)((?:final|override|volatile|const|noexcept))(?!\\w)(?=\\s*(?:(?:(?:(?:\\{|;))|[\\n\\r])))",name:"storage.modifier.specifier.functional.post-parameters.$1.objcpp"},{match:"(?<!\\w)((?:const|static|volatile|register|restrict|extern))(?!\\w)",name:"storage.modifier.specifier.$1.objcpp"},{match:"(?<!\\w)((?:private|protected|public)) *:",name:"storage.type.modifier.access.control.$1.objcpp"},{match:"(?<!\\w)(?:throw|try|catch)(?!\\w)",name:"keyword.control.exception.$1.objcpp"},{match:"(?<!\\w)(using|typedef)(?!\\w)",name:"keyword.other.$1.objcpp"},{include:"#memory_operators"},{match:"\\bthis\\b",name:"variable.language.this.objcpp"},{include:"#constants"},{include:"#template_definition"},{match:"\\btemplate\\b\\s*",name:"storage.type.template.objcpp"},{match:"\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*",name:"keyword.operator.cast.$1.objcpp"},{include:"#scope_resolution"},{match:"\\b(decltype|wchar_t|char16_t|char32_t)\\b",name:"storage.type.objcpp"},{match:"\\b(constexpr|export|mutable|typename|thread_local)\\b",name:"storage.modifier.objcpp"},{begin:`(?x) +(?: +^ | +(?:(?<!else|new|=)) +) +((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.destructor.objcpp"},2:{name:"punctuation.definition.parameters.begin.destructor.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.destructor.objcpp"}},name:"meta.function.destructor.objcpp",patterns:[{include:"$base"}]},{begin:`(?x) +(?: +^ | +(?:(?<!else|new|=)) +) +((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.definition.parameters.begin.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.objcpp"}},name:"meta.function.destructor.prototype.objcpp",patterns:[{include:"$base"}]},{include:"#preprocessor-rule-enabled"},{include:"#preprocessor-rule-disabled"},{include:"#preprocessor-rule-conditional"},{include:"#comments-c"},{match:"\\b(break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while)\\b",name:"keyword.control.$1.objcpp"},{include:"#storage_types_c"},{match:"\\b(const|extern|register|restrict|static|volatile|inline)\\b",name:"storage.modifier.objcpp"},{include:"#operators"},{include:"#operator_overload"},{include:"#number_literal"},{include:"#strings-c"},{begin:`(?x) +^\\s* ((\\#)\\s*define) \\s+ +((?<id>[a-zA-Z_$][\\w$]*)) +(?: +(\\() +( +\\s* \\g<id> \\s* +((,) \\s* \\g<id> \\s*)* +(?:\\.\\.\\.)? +) +(\\)) +)?`,beginCaptures:{1:{name:"keyword.control.directive.define.objcpp"},2:{name:"punctuation.definition.directive.objcpp"},3:{name:"entity.name.function.preprocessor.objcpp"},5:{name:"punctuation.definition.parameters.begin.objcpp"},6:{name:"variable.parameter.preprocessor.objcpp"},8:{name:"punctuation.separator.parameters.objcpp"},9:{name:"punctuation.definition.parameters.end.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.macro.objcpp",patterns:[{include:"#preprocessor-rule-define-line-contents"}]},{begin:"^\\s*((#)\\s*(error|warning))\\b\\s*",beginCaptures:{1:{name:"keyword.control.directive.diagnostic.$3.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?<!\\\\)(?=\\n)",name:"meta.preprocessor.diagnostic.objcpp",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"|(?<!\\\\)(?=\\s*\\n)',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#line_continuation_character"}]},{begin:`[^'"]`,end:"(?<!\\\\)(?=\\s*\\n)",name:"string.unquoted.single.objcpp",patterns:[{include:"#line_continuation_character"},{include:"#comments-c"}]}]},{begin:"^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",beginCaptures:{1:{name:"keyword.control.directive.$3.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.include.objcpp",patterns:[{include:"#line_continuation_character"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.include.objcpp"},{begin:"<",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:">",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.other.lt-gt.include.objcpp"}]},{include:"#pragma-mark"},{begin:"^\\s*((#)\\s*line)\\b",beginCaptures:{1:{name:"keyword.control.directive.line.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#strings-c"},{include:"#number_literal"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*undef))\\b",beginCaptures:{1:{name:"keyword.control.directive.undef.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objcpp"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*pragma))\\b",beginCaptures:{1:{name:"keyword.control.directive.pragma.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.pragma.objcpp",patterns:[{include:"#strings-c"},{match:"[a-zA-Z_$][\\w\\-$]*",name:"entity.other.attribute-name.pragma.preprocessor.objcpp"},{include:"#number_literal"},{include:"#line_continuation_character"}]},{match:"\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",name:"support.type.sys-types.objcpp"},{match:"\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",name:"support.type.pthread.objcpp"},{match:`(?x) \\b +(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t +|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t +|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t +|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t +|uintmax_t|uintmax_t) +\\b`,name:"support.type.stdint.objcpp"},{match:"(?<!\\w)[a-zA-Z_](?:\\w)*_t(?!\\w)",name:"support.type.posix-reserved.objcpp"},{include:"#block-c"},{include:"#parens-c"},{begin:"(?<!\\w)(?!\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()",end:"(?<=\\))",name:"meta.function.definition.objcpp",patterns:[{include:"#function-innards-c"}]},{include:"#line_continuation_character"},{begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",beginCaptures:{1:{name:"variable.other.object.objcpp"},2:{name:"punctuation.definition.begin.bracket.square.objcpp"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.end.bracket.square.objcpp"}},name:"meta.bracket.square.access.objcpp",patterns:[{include:"#function-call-innards-c"}]},{match:"(?-mix:(?<!delete))\\\\[\\\\s*\\\\]",name:"storage.modifier.array.bracket.square.objcpp"},{match:";",name:"punctuation.terminator.statement.objcpp"},{match:",",name:"punctuation.separator.delimiter.objcpp"}],repository:{"access-member":{captures:{1:{name:"variable.other.object.objcpp"},2:{name:"punctuation.separator.dot-access.objcpp"},3:{name:"punctuation.separator.pointer-access.objcpp"},4:{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.objcpp"},{match:"->",name:"punctuation.separator.pointer-access.objcpp"},{match:"[a-zA-Z_]\\w*",name:"variable.other.object.objcpp"},{match:".+",name:"everything.else.objcpp"}]},5:{name:"variable.other.member.objcpp"}},match:"(?:(?:([a-zA-Z_]\\w*)|(?<=\\]|\\))))\\s*(?:(?:((?:(?:\\.|\\.\\*)))|((?:(?:->|->\\*)))))\\s*((?:[a-zA-Z_]\\w*\\s*(?:(?:\\.|->))\\s*)*)\\b(?!(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t))([a-zA-Z_]\\w*)\\b(?!\\()",name:"variable.other.object.access.objcpp"},"access-method":{begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",beginCaptures:{1:{name:"variable.other.object.objcpp"},2:{name:"punctuation.separator.dot-access.objcpp"},3:{name:"punctuation.separator.pointer-access.objcpp"},4:{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.objcpp"},{match:"->",name:"punctuation.separator.pointer-access.objcpp"},{match:"[a-zA-Z_][a-zA-Z_0-9]*",name:"variable.other.object.objcpp"},{match:".+",name:"everything.else.objcpp"}]},5:{name:"entity.name.function.member.objcpp"},6:{name:"punctuation.section.arguments.begin.bracket.round.function.member.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.member.objcpp"}},name:"meta.function-call.member.objcpp",patterns:[{include:"#function-call-innards-c"}]},angle_brackets:{begin:"<",end:">",name:"meta.angle-brackets.objcpp",patterns:[{include:"#angle_brackets"},{include:"$base"}]},block:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{captures:{1:{name:"support.function.any-method.objcpp"},2:{name:"punctuation.definition.parameters.objcpp"}},match:`(?x) +( + (?!while|for|do|if|else|switch|catch|return) + (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name +) +\\s*(\\() # opening bracket`,name:"meta.function-call.objcpp"},{include:"$base"}]},"block-c":{patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{include:"#block_innards-c"}]}]},"block_innards-c":{patterns:[{include:"#preprocessor-rule-enabled-block"},{include:"#preprocessor-rule-disabled-block"},{include:"#preprocessor-rule-conditional-block"},{include:"#access-method"},{include:"#access-member"},{include:"#c_function_call"},{begin:`(?x) +(?: + (?: + (?=\\s)(?<!else|new|return) + (?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name + ) +) +( + (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name + | + (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\])) +) +\\s*(\\() # opening bracket`,beginCaptures:{1:{name:"variable.other.objcpp"},2:{name:"punctuation.section.parens.begin.bracket.round.initialization.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.initialization.objcpp"}},name:"meta.initialization.objcpp",patterns:[{include:"#function-call-innards-c"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#block_innards-c"}]},{include:"#parens-block-c"},{include:"$base"}]},c_function_call:{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\() +(?= +(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?\\( # actual name +| +(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\( +)`,end:"(?<=\\))(?!\\w)",name:"meta.function-call.objcpp",patterns:[{include:"#function-call-innards-c"}]},"comments-c":{patterns:[{captures:{1:{name:"meta.toc-list.banner.block.objcpp"}},match:"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",name:"comment.block.objcpp"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.objcpp"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.objcpp"}},name:"comment.block.objcpp"},{captures:{1:{name:"meta.toc-list.banner.line.objcpp"}},match:"^// =(\\s*.*?)\\s*=\\s*$\\n?",name:"comment.line.banner.objcpp"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.objcpp"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.objcpp"}},end:"(?=\\n)",name:"comment.line.double-slash.objcpp",patterns:[{include:"#line_continuation_character"}]}]}]},constants:{match:"(?<!\\w)(?:NULL|true|false|nullptr)(?!\\w)",name:"constant.language.objcpp"},constructor:{patterns:[{begin:`(?x) +(?:^\\s*) # beginning of line +((?!while|for|do|if|else|switch|catch)[A-Za-z_][A-Za-z0-9_:]*) # actual name +\\s*(\\() # opening bracket`,beginCaptures:{1:{name:"entity.name.function.constructor.objcpp"},2:{name:"punctuation.definition.parameters.begin.constructor.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.constructor.objcpp"}},name:"meta.function.constructor.objcpp",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards-c"}]},{begin:`(?x) +(:) +( + (?= + \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name + \\s* (\\() # opening bracket + ) +)`,beginCaptures:{1:{name:"punctuation.definition.initializer-list.parameters.objcpp"}},end:"(?=\\{)",name:"meta.function.constructor.initializer-list.objcpp",patterns:[{include:"$base"}]}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",end:"^\\s*#\\s*endif\\b",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},"function-call-innards-c":{patterns:[{include:"#comments-c"},{include:"#storage_types_c"},{include:"#access-method"},{include:"#access-member"},{include:"#operators"},{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\() +( +(?:new)\\s*((?:(?:<(?:[\\s<>,\\w])*>\\s*))?) # actual name +| +(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\])) +) +\\s*(\\()`,beginCaptures:{1:{name:"keyword.operator.memory.new.objcpp"},2:{patterns:[{include:"#template_call_innards"}]},3:{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards-c"}]},{begin:"(?<!\\w)(?!\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\s*\\()((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*([a-zA-Z_]\\w*)\\s*(?:((?:<(?:[\\s<>,\\w])*>\\s*)))?(\\()",beginCaptures:{1:{patterns:[{include:"#scope_resolution"}]},2:{name:"entity.name.function.call.objcpp"},3:{patterns:[{include:"#template_call_innards"}]},4:{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards-c"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards-c"}]},{include:"#block_innards-c"}]},"function-innards-c":{patterns:[{include:"#comments-c"},{include:"#storage_types_c"},{include:"#operators"},{include:"#vararg_ellipses-c"},{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\() +( +(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name +| +(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\])) +) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.section.parameters.begin.bracket.round.objcpp"}},end:"\\)|:",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.objcpp"}},name:"meta.function.definition.parameters.objcpp",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards-c"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#function-innards-c"}]},{include:"$base"}]},line_continuation_character:{patterns:[{captures:{1:{name:"constant.character.escape.line-continuation.objcpp"}},match:"(\\\\)\\n"}]},literal_numeric_seperator:{match:"(?<!')'(?!')",name:"punctuation.separator.constant.numeric.objcpp"},memory_operators:{captures:{1:{name:"keyword.operator.memory.delete.array.objcpp"},2:{name:"keyword.operator.memory.delete.array.bracket.objcpp"},3:{name:"keyword.operator.memory.delete.objcpp"},4:{name:"keyword.operator.memory.new.objcpp"}},match:"(?<!\\w)(?:(?:(delete)\\s*(\\[\\])|(delete))|(new))(?!\\w)",name:"keyword.operator.memory.objcpp"},number_literal:{captures:{2:{name:"keyword.other.unit.hexadecimal.objcpp"},3:{name:"constant.numeric.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},4:{name:"punctuation.separator.constant.numeric.objcpp"},5:{name:"constant.numeric.hexadecimal.objcpp"},6:{name:"constant.numeric.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},7:{name:"punctuation.separator.constant.numeric.objcpp"},8:{name:"keyword.other.unit.exponent.hexadecimal.objcpp"},9:{name:"keyword.operator.plus.exponent.hexadecimal.objcpp"},10:{name:"keyword.operator.minus.exponent.hexadecimal.objcpp"},11:{name:"constant.numeric.exponent.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},12:{name:"constant.numeric.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},13:{name:"punctuation.separator.constant.numeric.objcpp"},14:{name:"constant.numeric.decimal.point.objcpp"},15:{name:"constant.numeric.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},16:{name:"punctuation.separator.constant.numeric.objcpp"},17:{name:"keyword.other.unit.exponent.decimal.objcpp"},18:{name:"keyword.operator.plus.exponent.decimal.objcpp"},19:{name:"keyword.operator.minus.exponent.decimal.objcpp"},20:{name:"constant.numeric.exponent.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},21:{name:"keyword.other.unit.suffix.floating-point.objcpp"},22:{name:"keyword.other.unit.binary.objcpp"},23:{name:"constant.numeric.binary.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},24:{name:"punctuation.separator.constant.numeric.objcpp"},25:{name:"keyword.other.unit.octal.objcpp"},26:{name:"constant.numeric.octal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},27:{name:"punctuation.separator.constant.numeric.objcpp"},28:{name:"keyword.other.unit.hexadecimal.objcpp"},29:{name:"constant.numeric.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},30:{name:"punctuation.separator.constant.numeric.objcpp"},31:{name:"keyword.other.unit.exponent.hexadecimal.objcpp"},32:{name:"keyword.operator.plus.exponent.hexadecimal.objcpp"},33:{name:"keyword.operator.minus.exponent.hexadecimal.objcpp"},34:{name:"constant.numeric.exponent.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},35:{name:"constant.numeric.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},36:{name:"punctuation.separator.constant.numeric.objcpp"},37:{name:"keyword.other.unit.exponent.decimal.objcpp"},38:{name:"keyword.operator.plus.exponent.decimal.objcpp"},39:{name:"keyword.operator.minus.exponent.decimal.objcpp"},40:{name:"constant.numeric.exponent.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},41:{name:"keyword.other.unit.suffix.integer.objcpp"},42:{name:"keyword.other.unit.user-defined.objcpp"}},match:"((?<!\\w)(?:(?:(?:(0[xX])(?:([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F]))))(?:([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*))?(?:([pP])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?|(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9])\\.|\\.(?=[0-9]))))(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?(?:([eE])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:([lLfF](?!\\w)))?|(?:(?:(?:(?:(?:(0[bB])((?:(?:(?:[01]|((?<!')'(?!')))))+)|(0)((?:(?:(?:[0-7]|((?<!')'(?!')))))+)))|(0[xX])([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*)(?:([pP])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?))|([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*)(?:([eE])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:((?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:LL[uU]|ll[uU]))|[uU]LL))|[uU]ll))|ll))|LL))|[uUlL]))(?!\\w)))?))(\\w*))"},operator_overload:{begin:"((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*(operator)((?:(?:\\s*(?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,)|\\s+(?:(?:(?:new|new\\[\\]|delete|delete\\[\\])|(?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*\\s*(?:&)?)))))\\s*(\\()",beginCaptures:{1:{name:"entity.scope.objcpp"},2:{name:"keyword.other.operator.overload.objcpp"},3:{name:"entity.name.operator.overloadee.objcpp"},4:{name:"punctuation.section.parameters.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.objcpp"}},name:"meta.function.definition.parameters.operator-overload.objcpp",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards-c"}]},operators:{patterns:[{match:"(?-mix:(?<!\\w)((?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept))(?!\\w))",name:"keyword.operator.$1.objcpp"},{match:"--",name:"keyword.operator.decrement.objcpp"},{match:"\\+\\+",name:"keyword.operator.increment.objcpp"},{match:"%=|\\+=|-=|\\*=|(?<!\\()/=",name:"keyword.operator.assignment.compound.objcpp"},{match:"&=|\\^=|<<=|>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.objcpp"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.objcpp"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.objcpp"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.objcpp"},{match:"&|\\||\\^|~",name:"keyword.operator.objcpp"},{match:"=",name:"keyword.operator.assignment.objcpp"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.objcpp"},{applyEndPatternLast:!0,begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.objcpp"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.objcpp"}},patterns:[{include:"#access-method"},{include:"#access-member"},{include:"#c_function_call"},{include:"$base"}]}]},"parens-block-c":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},name:"meta.block.parens.objcpp",patterns:[{include:"#block_innards-c"},{match:"(?<!:):(?!:)",name:"punctuation.range-based.objcpp"}]},"parens-c":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},name:"punctuation.section.parens-c\b.objcpp",patterns:[{include:"$base"}]},"pragma-mark":{captures:{1:{name:"meta.preprocessor.pragma.objcpp"},2:{name:"keyword.control.directive.pragma.pragma-mark.objcpp"},3:{name:"punctuation.definition.directive.objcpp"},4:{name:"entity.name.tag.pragma-mark.objcpp"}},match:"^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",name:"meta.section.objcpp"},"preprocessor-rule-conditional":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{captures:{0:{name:"invalid.illegal.stray-$1.objcpp"}},match:"^\\s*#\\s*(else|elif|endif)\\b"}]},"preprocessor-rule-conditional-block":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards-c"}]},{captures:{0:{name:"invalid.illegal.stray-$1.objcpp"}},match:"^\\s*#\\s*(else|elif|endif)\\b"}]},"preprocessor-rule-conditional-line":{patterns:[{match:"(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",name:"keyword.control.directive.conditional.objcpp"},{match:"\\bdefined\\b",name:"invalid.illegal.macro-name.objcpp"},{include:"#comments-c"},{include:"#strings-c"},{include:"#number_literal"},{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.objcpp"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.objcpp"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#operators"},{include:"#constants"},{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objcpp"},{include:"#line_continuation_character"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]}]},"preprocessor-rule-define-line-blocks":{patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-blocks"},{include:"#preprocessor-rule-define-line-contents"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-define-line-contents":{patterns:[{include:"#vararg_ellipses-c"},{match:"(?-mix:##?[a-zA-Z_]\\w*(?!\\w))",name:"variable.other.macro.argument.objcpp"},{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{include:"#preprocessor-rule-define-line-blocks"}]},{match:"\\(",name:"punctuation.section.parens.begin.bracket.round.objcpp"},{match:"\\)",name:"punctuation.section.parens.end.bracket.round.objcpp"},{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\() +(?= + (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name + | + (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\( +)`,end:"(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",name:"meta.function.objcpp",patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"|(?<!\\\\)(?=\\s*\\n)',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char-c"},{include:"#string_placeholder-c"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#string_escaped_char-c"},{include:"#line_continuation_character"}]},{include:"#access-method"},{include:"#access-member"},{include:"$base"}]},"preprocessor-rule-define-line-functions":{patterns:[{include:"#comments-c"},{include:"#storage_types_c"},{include:"#vararg_ellipses-c"},{include:"#access-method"},{include:"#access-member"},{include:"#operators"},{begin:`(?x) +(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\() +( +(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name +| +(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\])) +) +\\s*(\\()`,beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-disabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{begin:"\\n",contentName:"comment.block.preprocessor.if-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards-c"}]},{begin:"\\n",contentName:"comment.block.preprocessor.if-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"\\n",contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"},3:{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.else-branch.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.if-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"$base"}]}]}]},"preprocessor-rule-enabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.else-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.if-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#block_innards-c"}]}]}]},"preprocessor-rule-enabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"$base"}]}]},"preprocessor-rule-enabled-elif-block":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"#block_innards-c"}]}]},"preprocessor-rule-enabled-else":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"$base"}]},"preprocessor-rule-enabled-else-block":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#block_innards-c"}]},probably_a_parameter:{captures:{1:{name:"variable.parameter.probably.defaulted.objcpp"},2:{name:"variable.parameter.probably.objcpp"}},match:"(?:(?:([a-zA-Z_]\\w*)\\s*(?==)|(?<=\\w\\s|\\*\\/|[&*>\\]\\)])\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:(?:,|\\))))))"},scope_resolution:{captures:{1:{patterns:[{include:"#scope_resolution"}]},2:{name:"entity.name.namespace.scope-resolution.objcpp"},3:{patterns:[{include:"#template_call_innards"}]},4:{name:"punctuation.separator.namespace.access.objcpp"}},match:"((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*\\s*)([a-zA-Z_]\\w*)\\s*((?:<(?:[\\s<>,\\w])*>\\s*))?(::)",name:"meta.scope-resolution.objcpp"},special_block:{patterns:[{begin:"\\b(using)\\s+(namespace)\\s+(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*)?((?<!\\w)[a-zA-Z_]\\w*(?!\\w))(?=;|\\n)",beginCaptures:{1:{name:"keyword.other.using.directive.objcpp"},2:{name:"keyword.other.namespace.directive.objcpp storage.type.namespace.directive.objcpp"},3:{patterns:[{include:"#scope_resolution"}]},4:{name:"entity.name.namespace.objcpp"}},comment:"https://en.cppreference.com/w/cpp/language/namespace",end:";",endCaptures:{0:{name:"punctuation.terminator.statement.objcpp"}},name:"meta.using-namespace-declaration.objcpp"},{begin:"(?<!\\w)(namespace)\\s+(?:(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*)|(?={)))",beginCaptures:{1:{name:"keyword.other.namespace.definition.objcpp storage.type.namespace.definition.objcpp"},2:{patterns:[{match:"(?-mix:(?<!\\w)[a-zA-Z_]\\w*(?!\\w))",name:"entity.name.type.objcpp"},{match:"::",name:"punctuation.separator.namespace.access.objcpp"}]}},end:"(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))",name:"meta.namespace-block.objcpp",patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.scope.objcpp"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.scope.objcpp"}},patterns:[{include:"#special_block"},{include:"#constructor"},{include:"$base"}]},{include:"$base"}]},{begin:"\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?",beginCaptures:{1:{name:"storage.type.class.objcpp"},2:{name:"storage.type.struct.objcpp"},3:{name:"entity.name.type.objcpp"},5:{name:"storage.type.modifier.access.objcpp"},6:{name:"entity.name.type.inherited.objcpp"},7:{patterns:[{match:"(public|protected|private)",name:"storage.type.modifier.access.objcpp"},{match:"[_A-Za-z][_A-Za-z0-9]*",name:"entity.name.type.inherited.objcpp"}]}},end:"(?<=\\})|(;)|(?=(\\(|\\)|>|\\[|\\]|=))",endCaptures:{1:{name:"punctuation.terminator.statement.objcpp"}},name:"meta.class-struct-block.objcpp",patterns:[{include:"#angle_brackets"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"(\\})(\\s*\\n)?",endCaptures:{1:{name:"punctuation.section.block.end.bracket.curly.objcpp"},2:{name:"invalid.illegal.you-forgot-semicolon.objcpp"}},patterns:[{include:"#special_block"},{include:"#constructor"},{include:"$base"}]},{include:"$base"}]},{begin:'\\b(extern)(?=\\s*")',beginCaptures:{1:{name:"storage.modifier.objcpp"}},end:"(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)",name:"meta.extern-block.objcpp",patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"\\}|(?=\\s*#\\s*endif\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#special_block"},{include:"$base"}]},{include:"$base"}]}]},storage_types_c:{patterns:[{match:"(?<!\\w)(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t)(?!\\w)",name:"storage.type.primitive.objcpp"},{match:"(?<!\\w)(?:u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)(?!\\w)",name:"storage.type.objcpp"},{match:"(?<!\\w)(asm|__asm__|enum|union|struct)(?!\\w)",name:"storage.type.$1.objcpp"}]},"string_escaped_char-c":{patterns:[{match:`(?x)\\\\ ( +\\\\ | +[abefnprtv'"?] | +[0-3]\\d{,2} | +[4-7]\\d? | +x[a-fA-F0-9]{,2} | +u[a-fA-F0-9]{,4} | +U[a-fA-F0-9]{,8} )`,name:"constant.character.escape.objcpp"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objcpp"}]},"string_placeholder-c":{patterns:[{match:`(?x) % +(\\d+\\$)? # field (argument #) +[#0\\- +']* # flags +[,;:_]? # separator character (AltiVec) +((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width +(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision +(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier +[diouxXDOUeEfFgGaACcSspn%] # conversion type`,name:"constant.other.placeholder.objcpp"}]},strings:{patterns:[{begin:'(u|u8|U|L)?"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"},1:{name:"meta.encoding.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{match:"\\\\u\\h{4}|\\\\U\\h{8}",name:"constant.character.escape.objcpp"},{match:`\\\\['"?\\\\abfnrtv]`,name:"constant.character.escape.objcpp"},{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.objcpp"},{match:"\\\\x\\h+",name:"constant.character.escape.objcpp"},{include:"#string_placeholder-c"}]},{begin:'(u|u8|U|L)?R"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"},1:{name:"meta.encoding.objcpp"},3:{name:"invalid.illegal.delimiter-too-long.objcpp"}},end:'\\)\\2(\\3)"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"},1:{name:"invalid.illegal.delimiter-too-long.objcpp"}},name:"string.quoted.double.raw.objcpp"}]},"strings-c":{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char-c"},{include:"#string_placeholder-c"},{include:"#line_continuation_character"}]},{begin:"(?-mix:(?<![\\da-fA-F])')",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#string_escaped_char-c"},{include:"#line_continuation_character"}]}]},template_call_innards:{captures:{0:{name:"meta.template.call.objcpp",patterns:[{include:"#storage_types_c"},{include:"#constants"},{include:"#scope_resolution"},{match:"(?<!\\w)[a-zA-Z_]\\w*(?!\\w)",name:"storage.type.user-defined.objcpp"},{include:"#operators"},{include:"#number_literal"},{include:"#strings"},{match:",",name:"punctuation.separator.comma.template.argument.objcpp"}]}},match:"<(?:[\\s<>,\\w])*>\\s*"},template_definition:{begin:"(?-mix:(?<!\\w)(template)\\s*(<))",beginCaptures:{1:{name:"storage.type.template.objcpp"},2:{name:"punctuation.section.angle-brackets.start.template.definition.objcpp"}},end:"(?-mix:(>))",endCaptures:{1:{name:"punctuation.section.angle-brackets.end.template.definition.objcpp"}},name:"meta.template.definition.objcpp",patterns:[{include:"#scope_resolution"},{include:"#template_definition_argument"},{include:"#template_call_innards"}]},template_definition_argument:{captures:{2:{name:"storage.type.template.argument.$1.objcpp"},3:{name:"storage.type.template.argument.$2.objcpp"},4:{name:"entity.name.type.template.objcpp"},5:{name:"storage.type.template.objcpp"},6:{name:"keyword.operator.ellipsis.template.definition.objcpp"},7:{name:"entity.name.type.template.objcpp"},8:{name:"storage.type.template.objcpp"},9:{name:"entity.name.type.template.objcpp"},10:{name:"keyword.operator.assignment.objcpp"},11:{name:"constant.other.objcpp"},12:{name:"punctuation.separator.comma.template.argument.objcpp"}},match:"((?:(?:(?:(?:(?:(?:\\s*([a-zA-Z_]\\w*)|((?:[a-zA-Z_]\\w*\\s+)+)([a-zA-Z_]\\w*)))|([a-zA-Z_]\\w*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_]\\w*)))|((?:[a-zA-Z_]\\w*\\s+)*)([a-zA-Z_]\\w*)\\s*([=])\\s*(\\w+)))\\s*(?:(?:(,)|(?=>))))"},"vararg_ellipses-c":{match:"(?<!\\.)\\.\\.\\.(?!\\.)",name:"punctuation.vararg-ellipses.objcpp"}}},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",comment:"eat nested preprocessor if(def)s",end:"^\\s*#\\s*endif\\b.*$",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},implementation_innards:{patterns:[{include:"#preprocessor-rule-enabled-implementation"},{include:"#preprocessor-rule-disabled-implementation"},{include:"#preprocessor-rule-other-implementation"},{include:"#property_directive"},{include:"#method_super"},{include:"$base"}]},interface_innards:{patterns:[{include:"#preprocessor-rule-enabled-interface"},{include:"#preprocessor-rule-disabled-interface"},{include:"#preprocessor-rule-other-interface"},{include:"#properties"},{include:"#protocol_list"},{include:"#method"},{include:"$base"}]},method:{begin:"^(-|\\+)\\s*",end:"(?=\\{|#)|;",name:"meta.function.objcpp",patterns:[{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.type.begin.objcpp"}},end:"(\\))\\s*(\\w+\\b)",endCaptures:{1:{name:"punctuation.definition.type.end.objcpp"},2:{name:"entity.name.function.objcpp"}},name:"meta.return-type.objcpp",patterns:[{include:"#protocol_list"},{include:"#protocol_type_qualifier"},{include:"$base"}]},{match:"\\b\\w+(?=:)",name:"entity.name.function.name-of-parameter.objcpp"},{begin:"((:))\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.name-of-parameter.objcpp"},2:{name:"punctuation.separator.arguments.objcpp"},3:{name:"punctuation.definition.type.begin.objcpp"}},end:"(\\))\\s*(\\w+\\b)?",endCaptures:{1:{name:"punctuation.definition.type.end.objcpp"},2:{name:"variable.parameter.function.objcpp"}},name:"meta.argument-type.objcpp",patterns:[{include:"#protocol_list"},{include:"#protocol_type_qualifier"},{include:"$base"}]},{include:"#comment"}]},method_super:{begin:"^(?=-|\\+)",end:"(?<=\\})|(?=#)",name:"meta.function-with-body.objcpp",patterns:[{include:"#method"},{include:"$base"}]},"pragma-mark":{captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.pragma.objcpp"},3:{name:"meta.toc-list.pragma-mark.objcpp"}},match:"^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",name:"meta.section.objcpp"},"preprocessor-rule-disabled-implementation":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.if.objcpp"},3:{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.else.objcpp"}},end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",name:"comment.block.preprocessor.if-branch.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-disabled-interface":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.if.objcpp"},3:{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.else.objcpp"}},end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",name:"comment.block.preprocessor.if-branch.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled-implementation":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.if.objcpp"},3:{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.else.objcpp"}},contentName:"comment.block.preprocessor.else-branch.objcpp",end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#implementation_innards"}]}]},"preprocessor-rule-enabled-interface":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.if.objcpp"},3:{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.else.objcpp"}},contentName:"comment.block.preprocessor.else-branch.objcpp",end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]}]},"preprocessor-rule-other-implementation":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.objcpp"}},end:"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",patterns:[{include:"#implementation_innards"}]},"preprocessor-rule-other-interface":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.objcpp"}},end:"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",patterns:[{include:"#interface_innards"}]},properties:{patterns:[{begin:"((@)property)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.property.objcpp"},2:{name:"punctuation.definition.keyword.objcpp"},3:{name:"punctuation.section.scope.begin.objcpp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.scope.end.objcpp"}},name:"meta.property-with-attributes.objcpp",patterns:[{match:"\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\b",name:"keyword.other.property.attribute.objcpp"}]},{captures:{1:{name:"keyword.other.property.objcpp"},2:{name:"punctuation.definition.keyword.objcpp"}},match:"((@)property)\\b",name:"meta.property.objcpp"}]},property_directive:{captures:{1:{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(dynamic|synthesize)\\b",name:"keyword.other.property.directive.objcpp"},protocol_list:{begin:"(<)",beginCaptures:{1:{name:"punctuation.section.scope.begin.objcpp"}},end:"(>)",endCaptures:{1:{name:"punctuation.section.scope.end.objcpp"}},name:"meta.protocol-list.objcpp",patterns:[{match:"\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b",name:"support.other.protocol.objcpp"}]},protocol_type_qualifier:{match:"\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\b",name:"storage.modifier.protocol.objcpp"},special_variables:{patterns:[{match:"\\b_cmd\\b",name:"variable.other.selector.objcpp"},{match:"\\b(self|super)\\b",name:"variable.language.objcpp"}]},string_escaped_char:{patterns:[{match:`(?x)\\\\ ( +\\\\ | +[abefnprtv'"?] | +[0-3]\\d{,2} | +[4-7]\\d? | +x[a-fA-F0-9]{,2} | +u[a-fA-F0-9]{,4} | +U[a-fA-F0-9]{,8} )`,name:"constant.character.escape.objcpp"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objcpp"}]},string_placeholder:{patterns:[{match:`(?x) % +(\\d+\\$)? +[#0\\- +']* +[,;:_]? +((-?\\d+)|\\*(-?\\d+\\$)?)? +(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? +(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? +[diouxXDOUeEfFgGaACcSspn%]`,name:"constant.other.placeholder.objcpp"},{captures:{1:{name:"invalid.illegal.placeholder.objcpp"}},match:'(%)(?!"\\s*(PRI|SCN))'}]}},scopeName:"source.objcpp"});var n=[e];export{n as default}; diff --git a/assets/chunks/ocaml.RqY_Nz63.js b/assets/chunks/ocaml.RqY_Nz63.js new file mode 100644 index 000000000..920ea97da --- /dev/null +++ b/assets/chunks/ocaml.RqY_Nz63.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"OCaml",fileTypes:[".ml",".mli"],name:"ocaml",patterns:[{include:"#comment"},{include:"#pragma"},{include:"#decl"}],repository:{attribute:{begin:"(\\[)[[:space:]]*((?<![#\\-:!?.@*/&%^+<=>|~$])@{1,3}(?![#\\-:!?.@*/&%^+<=>|~$]))",beginCaptures:{1:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},2:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:"\\]",endCaptures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},patterns:[{include:"#attributePayload"}]},attributeIdentifier:{captures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"punctuation.definition.tag"}},match:`((?<![#\\-:!?.@*/&%^+<=>|~$])%(?![#\\-:!?.@*/&%^+<=>|~$]))((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))`},attributePayload:{patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]%|^%))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"((?<![#\\-:!?.@*/&%^+<=>|~$])[:\\?](?![#\\-:!?.@*/&%^+<=>|~$]))|(?<=[[:space:]])|(?=\\])",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pathModuleExtended"},{include:"#pathRecord"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=\\])",patterns:[{include:"#signature"},{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=\\])",patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=\\])|\\bwhen\\b",endCaptures:{1:{}},patterns:[{include:"#pattern"}]},{begin:"(?:(?<=(?:[^[:word:]]when|^when))(?![[:word:]]))",end:"(?=\\])",patterns:[{include:"#term"}]}]},{include:"#term"}]},bindClassTerm:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",end:`(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\btype\\b)`,endCaptures:{0:{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"}]},{begin:"\\[",captures:{0:{name:"punctuation.definition.tag"}},end:"\\]",patterns:[{include:"#type"}]},{include:"#bindTermArgs"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)",endCaptures:{0:{name:"support.type strong"}},patterns:[{include:"#literalClassType"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#term"}]}]},bindClassType:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",end:`(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\btype\\b)`,endCaptures:{0:{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"}]},{begin:"\\[",captures:{0:{name:"punctuation.definition.tag"}},end:"\\]",patterns:[{include:"#type"}]},{include:"#bindTermArgs"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)",endCaptures:{0:{name:"support.type strong"}},patterns:[{include:"#literalClassType"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#literalClassType"}]}]},bindConstructor:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]exception|^exception))(?![[:word:]]))|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\+=|^\\+=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\-:!?.@*/&%^+<=>|~$]\\||^\\|))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(:)|(\\bof\\b)|((?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"punctuation.definition.tag"},3:{name:"support.type strong"}},patterns:[{include:"#attributeIdentifier"},{match:"\\.\\.",name:"variable.other.class.js message.error variable.interpolation string.regexp"},{match:"\\b(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)\\b(?![[:space:]]*(?:\\.|\\([^\\*]))",name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"support.type strong"}},patterns:[{include:"#type"}]}]},bindSignature:{patterns:[{include:"#comment"},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])",endCaptures:{0:{name:"support.type strong"}},patterns:[{include:"#comment"},{include:"#pathModuleExtended"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#signature"}]}]},bindStructure:{patterns:[{include:"#comment"},{begin:"(?:(?<=(?:[^[:word:]]and|^and))(?![[:word:]]))|(?=[[:upper:]])",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(:(?!=))|(:?=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|open|type|val)\\b)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"}},patterns:[{include:"#comment"},{match:"\\bmodule\\b",name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},{match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",name:"entity.name.function strong emphasis"},{begin:"\\((?!\\))",captures:{0:{name:"punctuation.definition.tag"}},end:"\\)",patterns:[{include:"#comment"},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},end:"(?=\\))",patterns:[{include:"#signature"}]},{include:"#variableModule"}]},{include:"#literalUnit"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\b(and)\\b|((?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},2:{name:"support.type strong"}},patterns:[{include:"#signature"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:=|^:=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\b(?:(and)|(with))\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},2:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#structure"}]}]},bindTerm:{patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))",end:"(\\bmodule\\b)|(\\bopen\\b)|(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|((?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$]))(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},2:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},4:{name:"support.type strong"}},patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))",end:`(?=\\b(?:module|open)\\b)|(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(\\brec\\b)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))`,endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},2:{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"}]},{begin:"(?:(?<=(?:[^[:word:]]rec|^rec))(?![[:word:]]))",end:`((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?=[^[:space:][:alpha:]])`,endCaptures:{0:{name:"entity.name.function strong emphasis"}},patterns:[{include:"#bindTermArgs"}]},{include:"#bindTermArgs"}]},{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#declModule"}]},{begin:"(?:(?<=(?:[^[:word:]]open|^open))(?![[:word:]]))",end:"(?=\\bin\\b)|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#pathModuleSimple"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"support.type strong"}},patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\btype\\b|(?=[^[:space:]])",endCaptures:{0:{name:"keyword.control"}}},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pattern"}]},{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#term"}]}]},bindTermArgs:{patterns:[{applyEndPatternLast:!0,begin:"~|\\?",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:":|(?=[^[:space:]])",endCaptures:{0:{name:"keyword"}},patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]~|^~|[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:`(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?<=\\))`,endCaptures:{0:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},patterns:[{include:"#comment"},{begin:"\\((?!\\*)",captures:{0:{name:"punctuation.definition.tag"}},end:"\\)",patterns:[{begin:"(?<=\\()",end:":|=",endCaptures:{0:{name:"keyword"}},patterns:[{match:`(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`,name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}]},{begin:"(?<=:)",end:"=|(?=\\))",endCaptures:{0:{name:"keyword"}},patterns:[{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=\\))",patterns:[{include:"#term"}]}]}]}]},{include:"#pattern"}]},bindType:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\+=|=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"support.type strong"}},patterns:[{include:"#attributeIdentifier"},{include:"#pathType"},{match:`(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`,name:"entity.name.function strong"},{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\+=|^\\+=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#bindConstructor"}]}]},comment:{patterns:[{include:"#attribute"},{include:"#extension"},{include:"#commentBlock"},{include:"#commentDoc"}]},commentBlock:{begin:"\\(\\*(?!\\*[^\\)])",contentName:"emphasis",end:"\\*\\)",name:"comment constant.regexp meta.separator.markdown",patterns:[{include:"#commentBlock"},{include:"#commentDoc"}]},commentDoc:{begin:"\\(\\*\\*",end:"\\*\\)",name:"comment constant.regexp meta.separator.markdown",patterns:[{match:"\\*"},{include:"#comment"}]},decl:{patterns:[{include:"#declClass"},{include:"#declException"},{include:"#declInclude"},{include:"#declModule"},{include:"#declOpen"},{include:"#declTerm"},{include:"#declType"}]},declClass:{begin:"\\bclass\\b",beginCaptures:{0:{name:"entity.name.class constant.numeric markup.underline"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{begin:"(?:(?<=(?:[^[:word:]]class|^class))(?![[:word:]]))",beginCaptures:{0:{name:"entity.name.class constant.numeric markup.underline"}},end:"\\btype\\b|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)",endCaptures:{0:{name:"keyword"}},patterns:[{include:"#bindClassTerm"}]},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#bindClassType"}]}]},declException:{begin:"\\bexception\\b",beginCaptures:{0:{name:"keyword markup.underline"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#bindConstructor"}]},declInclude:{begin:"\\binclude\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#signature"}]},declModule:{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))|\\bmodule\\b",beginCaptures:{0:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename markup.underline"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",end:"(\\btype\\b)|(?=[[:upper:]])",endCaptures:{0:{name:"keyword"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{match:"\\brec\\b",name:"variable.other.class.js message.error variable.interpolation string.regexp"}]},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#bindSignature"}]},{begin:"(?=[[:upper:]])",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#bindStructure"}]}]},declOpen:{begin:"\\bopen\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#pathModuleExtended"}]},declTerm:{begin:"\\b(?:(external|val)|(method)|(let))\\b(!?)",beginCaptures:{1:{name:"support.type markup.underline"},2:{name:"storage.type markup.underline"},3:{name:"keyword.control markup.underline"},4:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{include:"#bindTerm"}]},declType:{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))|\\btype\\b",beginCaptures:{0:{name:"keyword markup.underline"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{include:"#bindType"}]},extension:{begin:"(\\[)((?<![#\\-:!?.@*/&%^+<=>|~$])%{1,3}(?![#\\-:!?.@*/&%^+<=>|~$]))",beginCaptures:{1:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},2:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:"\\]",endCaptures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},patterns:[{include:"#attributePayload"}]},literal:{patterns:[{include:"#termConstructor"},{include:"#literalArray"},{include:"#literalBoolean"},{include:"#literalCharacter"},{include:"#literalList"},{include:"#literalNumber"},{include:"#literalObjectTerm"},{include:"#literalString"},{include:"#literalRecord"},{include:"#literalUnit"}]},literalArray:{begin:"\\[\\|",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:"\\|\\]",patterns:[{include:"#term"}]},literalBoolean:{match:"\\bfalse|true\\b",name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},literalCharacter:{begin:"(?<![[:word:]])'",end:"'",name:"markup.punctuation.quote.beginning",patterns:[{include:"#literalCharacterEscape"}]},literalCharacterEscape:{match:`\\\\(?:[\\\\"'ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])`},literalClassType:{patterns:[{include:"#comment"},{begin:"\\bobject\\b",captures:{0:{name:"punctuation.definition.tag emphasis"}},end:"\\bend\\b",patterns:[{begin:"\\binherit\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{begin:"\\bas\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#variablePattern"}]},{include:"#type"}]},{include:"#pattern"},{include:"#declTerm"}]},{begin:"\\[",end:"\\]"}]},literalList:{patterns:[{begin:"\\[",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:"\\]",patterns:[{include:"#term"}]}]},literalNumber:{match:"(?<![[:alpha:]])[[:digit:]][[:digit:]]*(\\.[[:digit:]][[:digit:]]*)?",name:"constant.numeric"},literalObjectTerm:{patterns:[{include:"#comment"},{begin:"\\bobject\\b",captures:{0:{name:"punctuation.definition.tag emphasis"}},end:"\\bend\\b",patterns:[{begin:"\\binherit\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{begin:"\\bas\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#variablePattern"}]},{include:"#term"}]},{include:"#pattern"},{include:"#declTerm"}]},{begin:"\\[",end:"\\]"}]},literalRecord:{begin:"\\{",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:"\\}",patterns:[{begin:"(?<=\\{|;)",end:"(:)|(=)|(;)|(with)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},4:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:`(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",end:"(:)|(=)|(;)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:`(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(;)|(=)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},2:{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:";|(?=\\})",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#term"}]}]},literalString:{patterns:[{begin:'"',end:'"',name:"string beginning.punctuation.definition.quote.markdown",patterns:[{include:"#literalStringEscape"}]},{begin:"(\\{)([_[:lower:]]*?)(\\|)",end:"(\\|)(\\2)(\\})",name:"string beginning.punctuation.definition.quote.markdown",patterns:[{include:"#literalStringEscape"}]}]},literalStringEscape:{match:'\\\\(?:[\\\\"ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])'},literalUnit:{match:"\\(\\)",name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},pathModuleExtended:{patterns:[{include:"#pathModulePrefixExtended"},{match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",name:"entity.name.class constant.numeric"}]},pathModulePrefixExtended:{begin:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.|$|\\()",beginCaptures:{0:{name:"entity.name.class constant.numeric"}},end:"(?![[:space:]\\.]|$|\\()",patterns:[{include:"#comment"},{begin:"\\(",captures:{0:{name:"keyword.control"}},end:"\\)",patterns:[{match:"((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))",name:"string.other.link variable.language variable.parameter emphasis"},{include:"#structure"}]},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"keyword strong"}},end:"((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.|$))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*(?:$|\\()))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))|(?![[:space:]\\.[:upper:]]|$|\\()",endCaptures:{1:{name:"entity.name.class constant.numeric"},2:{name:"entity.name.function strong"},3:{name:"string.other.link variable.language variable.parameter emphasis"}}}]},pathModulePrefixExtendedParens:{begin:"\\(",captures:{0:{name:"keyword.control"}},end:"\\)",patterns:[{match:"((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))",name:"string.other.link variable.language variable.parameter emphasis"},{include:"#structure"}]},pathModulePrefixSimple:{begin:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.)",beginCaptures:{0:{name:"entity.name.class constant.numeric"}},end:"(?![[:space:]\\.])",patterns:[{include:"#comment"},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"keyword strong"}},end:"((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*))|(?![[:space:]\\.[:upper:]])",endCaptures:{1:{name:"entity.name.class constant.numeric"},2:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}}}]},pathModuleSimple:{patterns:[{include:"#pathModulePrefixSimple"},{match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",name:"entity.name.class constant.numeric"}]},pathRecord:{patterns:[{begin:`(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`,end:"(?=[^[:space:]\\.])(?!\\(\\*)",patterns:[{include:"#comment"},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\.|^\\.))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"keyword strong"}},end:`((?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$]))|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|mutable|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=\\))|(?<=\\])`,endCaptures:{1:{name:"keyword strong"},2:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{begin:"\\((?!\\*)",captures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:"\\)",patterns:[{include:"#term"}]},{begin:"\\[",captures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:"\\]",patterns:[{include:"#pattern"}]}]}]}]},pattern:{patterns:[{include:"#comment"},{include:"#patternArray"},{include:"#patternLazy"},{include:"#patternList"},{include:"#patternMisc"},{include:"#patternModule"},{include:"#patternRecord"},{include:"#literal"},{include:"#patternParens"},{include:"#patternType"},{include:"#variablePattern"},{include:"#termOperator"}]},patternArray:{begin:"\\[\\|",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:"\\|\\]",patterns:[{include:"#pattern"}]},patternLazy:{match:"lazy",name:"variable.other.class.js message.error variable.interpolation string.regexp"},patternList:{begin:"\\[",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:"\\]",patterns:[{include:"#pattern"}]},patternMisc:{captures:{1:{name:"string.regexp strong"},2:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},match:"((?<![#\\-:!?.@*/&%^+<=>|~$]),(?![#\\-:!?.@*/&%^+<=>|~$]))|([#\\-:!?.@*/&%^+<=>|~$]+)|\\b(as)\\b"},patternModule:{begin:"\\bmodule\\b",beginCaptures:{0:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},end:"(?=\\))",patterns:[{include:"#declModule"}]},patternParens:{begin:"\\((?!\\))",captures:{0:{name:"punctuation.definition.tag"}},end:"\\)",patterns:[{include:"#comment"},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},end:"(?=\\))",patterns:[{include:"#type"}]},{include:"#pattern"}]},patternRecord:{begin:"\\{",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:"\\}",patterns:[{begin:"(?<=\\{|;)",end:"(:)|(=)|(;)|(with)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},4:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:`(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",end:"(:)|(=)|(;)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:`(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(;)|(=)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},2:{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:";|(?=\\})",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pattern"}]}]},patternType:{begin:"\\btype\\b",beginCaptures:{0:{name:"keyword"}},end:"(?=\\))",patterns:[{include:"#declType"}]},pragma:{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])#(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"punctuation.definition.tag"}},end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#comment"},{include:"#literalNumber"},{include:"#literalString"}]},signature:{patterns:[{include:"#comment"},{include:"#signatureLiteral"},{include:"#signatureFunctor"},{include:"#pathModuleExtended"},{include:"#signatureParens"},{include:"#signatureRecovered"},{include:"#signatureConstraints"}]},signatureConstraints:{begin:"\\bwith\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},end:"(?=\\))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{begin:"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",end:"\\b(?:(module)|(type))\\b",endCaptures:{1:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},2:{name:"keyword"}}},{include:"#declModule"},{include:"#declType"}]},signatureFunctor:{patterns:[{begin:"\\bfunctor\\b",beginCaptures:{0:{name:"keyword"}},end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{begin:"(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))",end:"(\\(\\))|(\\((?!\\)))",endCaptures:{1:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},2:{name:"punctuation.definition.tag"}}},{begin:"(?<=\\()",end:"(:)|(\\))",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"punctuation.definition.tag"}},patterns:[{include:"#variableModule"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#signature"}]},{begin:"(?<=\\))",end:"(\\()|((?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",endCaptures:{1:{name:"punctuation.definition.tag"},2:{name:"support.type strong"}}},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#signature"}]}]},{match:"(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$])",name:"support.type strong"}]},signatureLiteral:{begin:"\\bsig\\b",captures:{0:{name:"punctuation.definition.tag emphasis"}},end:"\\bend\\b",patterns:[{include:"#comment"},{include:"#pragma"},{include:"#decl"}]},signatureParens:{begin:"\\((?!\\))",captures:{0:{name:"punctuation.definition.tag"}},end:"\\)",patterns:[{include:"#comment"},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},end:"(?=\\))",patterns:[{include:"#signature"}]},{include:"#signature"}]},signatureRecovered:{patterns:[{begin:"\\(|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:|[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]include|^include|[^[:word:]]open|^open))(?![[:word:]]))",end:"\\bmodule\\b|(?!$|[[:space:]]|\\bmodule\\b)",endCaptures:{0:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}}},{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",end:"\\btype\\b",endCaptures:{0:{name:"keyword"}}},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"\\bof\\b",endCaptures:{0:{name:"punctuation.definition.tag"}}},{begin:"(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#signature"}]}]}]},structure:{patterns:[{include:"#comment"},{include:"#structureLiteral"},{include:"#structureFunctor"},{include:"#pathModuleExtended"},{include:"#structureParens"}]},structureFunctor:{patterns:[{begin:"\\bfunctor\\b",beginCaptures:{0:{name:"keyword"}},end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{begin:"(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))",end:"(\\(\\))|(\\((?!\\)))",endCaptures:{1:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},2:{name:"punctuation.definition.tag"}}},{begin:"(?<=\\()",end:"(:)|(\\))",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"punctuation.definition.tag"}},patterns:[{include:"#variableModule"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#signature"}]},{begin:"(?<=\\))",end:"(\\()|((?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",endCaptures:{1:{name:"punctuation.definition.tag"},2:{name:"support.type strong"}}},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#structure"}]}]},{match:"(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$])",name:"support.type strong"}]},structureLiteral:{begin:"\\bstruct\\b",captures:{0:{name:"punctuation.definition.tag emphasis"}},end:"\\bend\\b",patterns:[{include:"#comment"},{include:"#pragma"},{include:"#decl"}]},structureParens:{begin:"\\(",captures:{0:{name:"punctuation.definition.tag"}},end:"\\)",patterns:[{include:"#structureUnpack"},{include:"#structure"}]},structureUnpack:{begin:"\\bval\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:"(?=\\))"},term:{patterns:[{include:"#termLet"},{include:"#termAtomic"}]},termAtomic:{patterns:[{include:"#comment"},{include:"#termConditional"},{include:"#termConstructor"},{include:"#termDelim"},{include:"#termFor"},{include:"#termFunction"},{include:"#literal"},{include:"#termMatch"},{include:"#termMatchRule"},{include:"#termPun"},{include:"#termOperator"},{include:"#termTry"},{include:"#termWhile"},{include:"#pathRecord"}]},termConditional:{match:"\\b(?:if|then|else)\\b",name:"keyword.control"},termConstructor:{patterns:[{include:"#pathModulePrefixSimple"},{match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}]},termDelim:{patterns:[{begin:"\\((?!\\))",captures:{0:{name:"punctuation.definition.tag"}},end:"\\)",patterns:[{include:"#term"}]},{begin:"\\bbegin\\b",captures:{0:{name:"punctuation.definition.tag"}},end:"\\bend\\b",patterns:[{include:"#attributeIdentifier"},{include:"#term"}]}]},termFor:{patterns:[{begin:"\\bfor\\b",beginCaptures:{0:{name:"keyword.control"}},end:"\\bdone\\b",endCaptures:{0:{name:"keyword.control"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]for|^for))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])",endCaptures:{0:{name:"support.type strong"}},patterns:[{include:"#pattern"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\b(?:downto|to)\\b",endCaptures:{0:{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:"(?:(?<=(?:[^[:word:]]to|^to))(?![[:word:]]))",end:"\\bdo\\b",endCaptures:{0:{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:"(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))",end:"(?=\\bdone\\b)",patterns:[{include:"#term"}]}]}]},termFunction:{captures:{1:{name:"storage.type"},2:{name:"storage.type"}},match:"\\b(?:(fun)|(function))\\b"},termLet:{patterns:[{begin:"(?:(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<=;|\\())(?=[[:space:]]|\\blet\\b)|(?:(?<=(?:[^[:word:]]begin|^begin|[^[:word:]]do|^do|[^[:word:]]else|^else|[^[:word:]]in|^in|[^[:word:]]struct|^struct|[^[:word:]]then|^then|[^[:word:]]try|^try))(?![[:word:]]))|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]@@|^@@))(?![#\\-:!?.@*/&%^+<=>|~$]))[[:space:]]+",end:"\\b(?:(and)|(let))\\b|(?=[^[:space:]])(?!\\(\\*)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},2:{name:"storage.type markup.underline"}},patterns:[{include:"#comment"}]},{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]let|^let))(?![[:word:]]))|(let)",beginCaptures:{1:{name:"storage.type markup.underline"}},end:"\\b(?:(and)|(in))\\b|(?=\\}|\\)|\\]|\\b(?:end|class|exception|external|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},2:{name:"storage.type markup.underline"}},patterns:[{include:"#bindTerm"}]}]},termMatch:{begin:"\\bmatch\\b",captures:{0:{name:"keyword.control"}},end:"\\bwith\\b",patterns:[{include:"#term"}]},termMatchRule:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]fun|^fun|[^[:word:]]function|^function|[^[:word:]]with|^with))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(\\|)|(->)(?![#\\-:!?.@*/&%^+<=>|~$])",endCaptures:{1:{name:"support.type strong"},2:{name:"support.type strong"}},patterns:[{include:"#comment"},{include:"#attributeIdentifier"},{include:"#pattern"}]},{begin:"(?:(?<=(?:[^\\[#\\-:!?.@*/&%^+<=>|~$]\\||^\\|))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"support.type strong"}},end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(\\|)|(->)(?![#\\-:!?.@*/&%^+<=>|~$])",endCaptures:{1:{name:"support.type strong"},2:{name:"support.type strong"}},patterns:[{include:"#pattern"},{begin:"\\bwhen\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:"(?=(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",patterns:[{include:"#term"}]}]}]},termOperator:{patterns:[{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])#(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"keyword"}},end:`(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`,endCaptures:{0:{name:"entity.name.function"}}},{captures:{0:{name:"keyword.control strong"}},match:"<-"},{captures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},2:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},match:"(,|[#\\-:!?.@*/&%^+<=>|~$]+)|(;)"},{match:"\\b(?:and|assert|asr|land|lazy|lsr|lxor|mod|new|or)\\b",name:"variable.other.class.js message.error variable.interpolation string.regexp"}]},termPun:{applyEndPatternLast:!0,begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\?|~(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:":|(?=[^[:space:]:])",endCaptures:{0:{name:"keyword"}},patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?|[^#\\-:!?.@*/&%^+<=>|~$]~|^~))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:`(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`,endCaptures:{0:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}}}]},termTry:{begin:"\\btry\\b",captures:{0:{name:"keyword.control"}},end:"\\bwith\\b",patterns:[{include:"#term"}]},termWhile:{patterns:[{begin:"\\bwhile\\b",beginCaptures:{0:{name:"keyword.control"}},end:"\\bdone\\b",endCaptures:{0:{name:"keyword.control"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]while|^while))(?![[:word:]]))",end:"\\bdo\\b",endCaptures:{0:{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:"(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))",end:"(?=\\bdone\\b)",patterns:[{include:"#term"}]}]}]},type:{patterns:[{include:"#comment"},{match:"\\bnonrec\\b",name:"variable.other.class.js message.error variable.interpolation string.regexp"},{include:"#pathModulePrefixExtended"},{include:"#typeLabel"},{include:"#typeObject"},{include:"#typeOperator"},{include:"#typeParens"},{include:"#typePolymorphicVariant"},{include:"#typeRecord"},{include:"#typeConstructor"}]},typeConstructor:{patterns:[{begin:`(_)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(')((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=[^\\*]\\)|\\])`,beginCaptures:{1:{name:"comment constant.regexp meta.separator.markdown"},3:{name:"string.other.link variable.language variable.parameter emphasis strong emphasis"},4:{name:"keyword.control emphasis"}},end:`(?=\\((?!\\*)|\\*|:|,|=|\\.|>|-|\\{|\\[|\\+|\\}|\\)|\\]|;|\\|)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[:space:]*(?!\\(\\*|[[:word:]])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)`,endCaptures:{1:{name:"entity.name.function strong"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixExtended"}]}]},typeLabel:{patterns:[{begin:`(\\??)((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[[:space:]]*((?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$]))`,captures:{1:{name:"keyword strong emphasis"},2:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"},3:{name:"keyword"}},end:"(?=(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",patterns:[{include:"#type"}]}]},typeModule:{begin:"\\bmodule\\b",beginCaptures:{0:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},end:"(?=\\))",patterns:[{include:"#pathModuleExtended"},{include:"#signatureConstraints"}]},typeObject:{begin:"<",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:">",patterns:[{begin:"(?<=<|;)",end:"(:)|(?=>)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},4:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:`(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(;)|(?=>)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},2:{name:"support.type strong"}},patterns:[{include:"#type"}]}]},typeOperator:{patterns:[{match:",|;|[#\\-:!?.@*/&%^+<=>|~$]+",name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}]},typeParens:{begin:"\\(",captures:{0:{name:"punctuation.definition.tag"}},end:"\\)",patterns:[{match:",",name:"variable.other.class.js message.error variable.interpolation string.regexp"},{include:"#typeModule"},{include:"#type"}]},typePolymorphicVariant:{begin:"\\[",end:"\\]",patterns:[]},typeRecord:{begin:"\\{",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:"\\}",patterns:[{begin:"(?<=\\{|;)",end:"(:)|(=)|(;)|(with)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},4:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:`(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",end:"(:)|(=)|(;)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:`(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)`,name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(;)|(=)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},2:{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:";|(?=\\})",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#type"}]}]},variableModule:{captures:{0:{name:"string.other.link variable.language variable.parameter emphasis"}},match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)"},variablePattern:{captures:{1:{name:"comment constant.regexp meta.separator.markdown"},2:{name:"string.other.link variable.language variable.parameter emphasis"}},match:`(\\b_\\b)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))`}},scopeName:"source.ocaml"});var n=[e];export{n as default}; diff --git a/assets/chunks/one-dark-pro.BTtaZsq5.js b/assets/chunks/one-dark-pro.BTtaZsq5.js new file mode 100644 index 000000000..89cf50939 --- /dev/null +++ b/assets/chunks/one-dark-pro.BTtaZsq5.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.background":"#282c34","activityBar.foreground":"#d7dae0","activityBarBadge.background":"#4d78cc","activityBarBadge.foreground":"#f8fafd","badge.background":"#282c34","button.background":"#404754","button.secondaryBackground":"#30333d","button.secondaryForeground":"#c0bdbd","checkbox.border":"#404754","debugToolBar.background":"#21252b",descriptionForeground:"#abb2bf","diffEditor.insertedTextBackground":"#00809b33","dropdown.background":"#21252b","dropdown.border":"#21252b","editor.background":"#282c34","editor.findMatchBackground":"#d19a6644","editor.findMatchBorder":"#ffffff5a","editor.findMatchHighlightBackground":"#ffffff22","editor.foreground":"#abb2bf","editor.lineHighlightBackground":"#2c313c","editor.selectionBackground":"#67769660","editor.selectionHighlightBackground":"#ffffff10","editor.selectionHighlightBorder":"#dddddd","editor.wordHighlightBackground":"#d2e0ff2f","editor.wordHighlightBorder":"#7f848e","editor.wordHighlightStrongBackground":"#abb2bf26","editor.wordHighlightStrongBorder":"#7f848e","editorBracketHighlight.foreground1":"#d19a66","editorBracketHighlight.foreground2":"#c678dd","editorBracketHighlight.foreground3":"#56b6c2","editorBracketMatch.background":"#515a6b","editorBracketMatch.border":"#515a6b","editorCursor.background":"#ffffffc9","editorCursor.foreground":"#528bff","editorError.foreground":"#c24038","editorGroup.background":"#181a1f","editorGroup.border":"#181a1f","editorGroupHeader.tabsBackground":"#21252b","editorGutter.addedBackground":"#109868","editorGutter.deletedBackground":"#9A353D","editorGutter.modifiedBackground":"#948B60","editorHoverWidget.background":"#21252b","editorHoverWidget.border":"#181a1f","editorHoverWidget.highlightForeground":"#61afef","editorIndentGuide.activeBackground":"#c8c8c859","editorIndentGuide.background":"#3b4048","editorInlayHint.background":"#2c313c","editorInlayHint.foreground":"#abb2bf","editorLineNumber.activeForeground":"#abb2bf","editorLineNumber.foreground":"#495162","editorMarkerNavigation.background":"#21252b","editorOverviewRuler.addedBackground":"#109868","editorOverviewRuler.deletedBackground":"#9A353D","editorOverviewRuler.modifiedBackground":"#948B60","editorRuler.foreground":"#abb2bf26","editorSuggestWidget.background":"#21252b","editorSuggestWidget.border":"#181a1f","editorSuggestWidget.selectedBackground":"#2c313a","editorWarning.foreground":"#d19a66","editorWhitespace.foreground":"#ffffff1d","editorWidget.background":"#21252b",focusBorder:"#3e4452","gitDecoration.ignoredResourceForeground":"#636b78","input.background":"#1d1f23","input.foreground":"#abb2bf","list.activeSelectionBackground":"#2c313a","list.activeSelectionForeground":"#d7dae0","list.focusBackground":"#323842","list.focusForeground":"#f0f0f0","list.highlightForeground":"#ecebeb","list.hoverBackground":"#2c313a","list.hoverForeground":"#abb2bf","list.inactiveSelectionBackground":"#323842","list.inactiveSelectionForeground":"#d7dae0","list.warningForeground":"#d19a66","menu.foreground":"#abb2bf","menu.separatorBackground":"#343a45","minimapGutter.addedBackground":"#109868","minimapGutter.deletedBackground":"#9A353D","minimapGutter.modifiedBackground":"#948B60","panel.border":"#3e4452","panelSectionHeader.background":"#21252b","peekViewEditor.background":"#1b1d23","peekViewEditor.matchHighlightBackground":"#29244b","peekViewResult.background":"#22262b","scrollbar.shadow":"#23252c","scrollbarSlider.activeBackground":"#747d9180","scrollbarSlider.background":"#4e566660","scrollbarSlider.hoverBackground":"#5a637580","settings.focusedRowBackground":"#282c34","settings.headerForeground":"#fff","sideBar.background":"#21252b","sideBar.foreground":"#abb2bf","sideBarSectionHeader.background":"#282c34","sideBarSectionHeader.foreground":"#abb2bf","statusBar.background":"#21252b","statusBar.debuggingBackground":"#cc6633","statusBar.debuggingBorder":"#ff000000","statusBar.debuggingForeground":"#ffffff","statusBar.foreground":"#9da5b4","statusBar.noFolderBackground":"#21252b","statusBarItem.remoteBackground":"#4d78cc","statusBarItem.remoteForeground":"#f8fafd","tab.activeBackground":"#282c34","tab.activeBorder":"#b4b4b4","tab.activeForeground":"#dcdcdc","tab.border":"#181a1f","tab.hoverBackground":"#323842","tab.inactiveBackground":"#21252b","tab.unfocusedHoverBackground":"#323842","terminal.ansiBlack":"#3f4451","terminal.ansiBlue":"#4aa5f0","terminal.ansiBrightBlack":"#4f5666","terminal.ansiBrightBlue":"#4dc4ff","terminal.ansiBrightCyan":"#4cd1e0","terminal.ansiBrightGreen":"#a5e075","terminal.ansiBrightMagenta":"#de73ff","terminal.ansiBrightRed":"#ff616e","terminal.ansiBrightWhite":"#e6e6e6","terminal.ansiBrightYellow":"#f0a45d","terminal.ansiCyan":"#42b3c2","terminal.ansiGreen":"#8cc265","terminal.ansiMagenta":"#c162de","terminal.ansiRed":"#e05561","terminal.ansiWhite":"#d7dae0","terminal.ansiYellow":"#d18f52","terminal.background":"#282c34","terminal.border":"#3e4452","terminal.foreground":"#abb2bf","terminal.selectionBackground":"#abb2bf30","textBlockQuote.background":"#2e3440","textBlockQuote.border":"#4b5362","textLink.foreground":"#61afef","textPreformat.foreground":"#d19a66","titleBar.activeBackground":"#282c34","titleBar.activeForeground":"#9da5b4","titleBar.inactiveBackground":"#282c34","titleBar.inactiveForeground":"#6b717d","tree.indentGuidesStroke":"#ffffff1d","walkThrough.embeddedEditorBackground":"#2e3440","welcomePage.buttonHoverBackground":"#404754"},displayName:"One Dark Pro",name:"one-dark-pro",semanticHighlighting:!0,semanticTokenColors:{"annotation:dart":{foreground:"#d19a66"},enumMember:{foreground:"#56b6c2"},macro:{foreground:"#d19a66"},memberOperatorOverload:{foreground:"#c678dd"},"parameter.label:dart":{foreground:"#abb2bf"},"property:dart":{foreground:"#d19a66"},tomlArrayKey:{foreground:"#e5c07b"},"variable.constant":{foreground:"#d19a66"},"variable.defaultLibrary":{foreground:"#e5c07b"},"variable:dart":{foreground:"#d19a66"}},tokenColors:[{scope:"meta.embedded",settings:{foreground:"#abb2bf"}},{scope:"punctuation.definition.delayed.unison,punctuation.definition.list.begin.unison,punctuation.definition.list.end.unison,punctuation.definition.ability.begin.unison,punctuation.definition.ability.end.unison,punctuation.operator.assignment.as.unison,punctuation.separator.pipe.unison,punctuation.separator.delimiter.unison,punctuation.definition.hash.unison",settings:{foreground:"#e06c75"}},{scope:"variable.other.generic-type.haskell",settings:{foreground:"#c678dd"}},{scope:"storage.type.haskell",settings:{foreground:"#d19a66"}},{scope:"support.variable.magic.python",settings:{foreground:"#e06c75"}},{scope:"punctuation.separator.period.python,punctuation.separator.element.python,punctuation.parenthesis.begin.python,punctuation.parenthesis.end.python",settings:{foreground:"#abb2bf"}},{scope:"variable.parameter.function.language.special.self.python",settings:{foreground:"#e5c07b"}},{scope:"variable.parameter.function.language.special.cls.python",settings:{foreground:"#e5c07b"}},{scope:"storage.modifier.lifetime.rust",settings:{foreground:"#abb2bf"}},{scope:"support.function.std.rust",settings:{foreground:"#61afef"}},{scope:"entity.name.lifetime.rust",settings:{foreground:"#e5c07b"}},{scope:"variable.language.rust",settings:{foreground:"#e06c75"}},{scope:"support.constant.edge",settings:{foreground:"#c678dd"}},{scope:"constant.other.character-class.regexp",settings:{foreground:"#e06c75"}},{scope:["keyword.operator.word"],settings:{foreground:"#c678dd"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#d19a66"}},{scope:"variable.parameter.function",settings:{foreground:"#abb2bf"}},{scope:"comment markup.link",settings:{foreground:"#5c6370"}},{scope:"markup.changed.diff",settings:{foreground:"#e5c07b"}},{scope:"meta.diff.header.from-file,meta.diff.header.to-file,punctuation.definition.from-file.diff,punctuation.definition.to-file.diff",settings:{foreground:"#61afef"}},{scope:"markup.inserted.diff",settings:{foreground:"#98c379"}},{scope:"markup.deleted.diff",settings:{foreground:"#e06c75"}},{scope:"meta.function.c,meta.function.cpp",settings:{foreground:"#e06c75"}},{scope:"punctuation.section.block.begin.bracket.curly.cpp,punctuation.section.block.end.bracket.curly.cpp,punctuation.terminator.statement.c,punctuation.section.block.begin.bracket.curly.c,punctuation.section.block.end.bracket.curly.c,punctuation.section.parens.begin.bracket.round.c,punctuation.section.parens.end.bracket.round.c,punctuation.section.parameters.begin.bracket.round.c,punctuation.section.parameters.end.bracket.round.c",settings:{foreground:"#abb2bf"}},{scope:"punctuation.separator.key-value",settings:{foreground:"#abb2bf"}},{scope:"keyword.operator.expression.import",settings:{foreground:"#61afef"}},{scope:"support.constant.math",settings:{foreground:"#e5c07b"}},{scope:"support.constant.property.math",settings:{foreground:"#d19a66"}},{scope:"variable.other.constant",settings:{foreground:"#e5c07b"}},{scope:["storage.type.annotation.java","storage.type.object.array.java"],settings:{foreground:"#e5c07b"}},{scope:"source.java",settings:{foreground:"#e06c75"}},{scope:"punctuation.section.block.begin.java,punctuation.section.block.end.java,punctuation.definition.method-parameters.begin.java,punctuation.definition.method-parameters.end.java,meta.method.identifier.java,punctuation.section.method.begin.java,punctuation.section.method.end.java,punctuation.terminator.java,punctuation.section.class.begin.java,punctuation.section.class.end.java,punctuation.section.inner-class.begin.java,punctuation.section.inner-class.end.java,meta.method-call.java,punctuation.section.class.begin.bracket.curly.java,punctuation.section.class.end.bracket.curly.java,punctuation.section.method.begin.bracket.curly.java,punctuation.section.method.end.bracket.curly.java,punctuation.separator.period.java,punctuation.bracket.angle.java,punctuation.definition.annotation.java,meta.method.body.java",settings:{foreground:"#abb2bf"}},{scope:"meta.method.java",settings:{foreground:"#61afef"}},{scope:"storage.modifier.import.java,storage.type.java,storage.type.generic.java",settings:{foreground:"#e5c07b"}},{scope:"keyword.operator.instanceof.java",settings:{foreground:"#c678dd"}},{scope:"meta.definition.variable.name.java",settings:{foreground:"#e06c75"}},{scope:"keyword.operator.logical",settings:{foreground:"#56b6c2"}},{scope:"keyword.operator.bitwise",settings:{foreground:"#56b6c2"}},{scope:"keyword.operator.channel",settings:{foreground:"#56b6c2"}},{scope:"support.constant.property-value.scss,support.constant.property-value.css",settings:{foreground:"#d19a66"}},{scope:"keyword.operator.css,keyword.operator.scss,keyword.operator.less",settings:{foreground:"#56b6c2"}},{scope:"support.constant.color.w3c-standard-color-name.css,support.constant.color.w3c-standard-color-name.scss",settings:{foreground:"#d19a66"}},{scope:"punctuation.separator.list.comma.css",settings:{foreground:"#abb2bf"}},{scope:"support.constant.color.w3c-standard-color-name.css",settings:{foreground:"#d19a66"}},{scope:"support.type.vendored.property-name.css",settings:{foreground:"#56b6c2"}},{scope:"support.module.node,support.type.object.module,support.module.node",settings:{foreground:"#e5c07b"}},{scope:"entity.name.type.module",settings:{foreground:"#e5c07b"}},{scope:"variable.other.readwrite,meta.object-literal.key,support.variable.property,support.variable.object.process,support.variable.object.node",settings:{foreground:"#e06c75"}},{scope:"support.constant.json",settings:{foreground:"#d19a66"}},{scope:["keyword.operator.expression.instanceof","keyword.operator.new","keyword.operator.ternary","keyword.operator.optional","keyword.operator.expression.keyof"],settings:{foreground:"#c678dd"}},{scope:"support.type.object.console",settings:{foreground:"#e06c75"}},{scope:"support.variable.property.process",settings:{foreground:"#d19a66"}},{scope:"entity.name.function,support.function.console",settings:{foreground:"#61afef"}},{scope:"keyword.operator.misc.rust",settings:{foreground:"#abb2bf"}},{scope:"keyword.operator.sigil.rust",settings:{foreground:"#c678dd"}},{scope:"keyword.operator.delete",settings:{foreground:"#c678dd"}},{scope:"support.type.object.dom",settings:{foreground:"#56b6c2"}},{scope:"support.variable.dom,support.variable.property.dom",settings:{foreground:"#e06c75"}},{scope:"keyword.operator.arithmetic,keyword.operator.comparison,keyword.operator.decrement,keyword.operator.increment,keyword.operator.relational",settings:{foreground:"#56b6c2"}},{scope:"keyword.operator.assignment.c,keyword.operator.comparison.c,keyword.operator.c,keyword.operator.increment.c,keyword.operator.decrement.c,keyword.operator.bitwise.shift.c,keyword.operator.assignment.cpp,keyword.operator.comparison.cpp,keyword.operator.cpp,keyword.operator.increment.cpp,keyword.operator.decrement.cpp,keyword.operator.bitwise.shift.cpp",settings:{foreground:"#c678dd"}},{scope:"punctuation.separator.delimiter",settings:{foreground:"#abb2bf"}},{scope:"punctuation.separator.c,punctuation.separator.cpp",settings:{foreground:"#c678dd"}},{scope:"support.type.posix-reserved.c,support.type.posix-reserved.cpp",settings:{foreground:"#56b6c2"}},{scope:"keyword.operator.sizeof.c,keyword.operator.sizeof.cpp",settings:{foreground:"#c678dd"}},{scope:"variable.parameter.function.language.python",settings:{foreground:"#d19a66"}},{scope:"support.type.python",settings:{foreground:"#56b6c2"}},{scope:"keyword.operator.logical.python",settings:{foreground:"#c678dd"}},{scope:"variable.parameter.function.python",settings:{foreground:"#d19a66"}},{scope:"punctuation.definition.arguments.begin.python,punctuation.definition.arguments.end.python,punctuation.separator.arguments.python,punctuation.definition.list.begin.python,punctuation.definition.list.end.python",settings:{foreground:"#abb2bf"}},{scope:"meta.function-call.generic.python",settings:{foreground:"#61afef"}},{scope:"constant.character.format.placeholder.other.python",settings:{foreground:"#d19a66"}},{scope:"keyword.operator",settings:{foreground:"#abb2bf"}},{scope:"keyword.operator.assignment.compound",settings:{foreground:"#c678dd"}},{scope:"keyword.operator.assignment.compound.js,keyword.operator.assignment.compound.ts",settings:{foreground:"#56b6c2"}},{scope:"keyword",settings:{foreground:"#c678dd"}},{scope:"entity.name.namespace",settings:{foreground:"#e5c07b"}},{scope:"variable",settings:{foreground:"#e06c75"}},{scope:"variable.c",settings:{foreground:"#abb2bf"}},{scope:"variable.language",settings:{foreground:"#e5c07b"}},{scope:"token.variable.parameter.java",settings:{foreground:"#abb2bf"}},{scope:"import.storage.java",settings:{foreground:"#e5c07b"}},{scope:"token.package.keyword",settings:{foreground:"#c678dd"}},{scope:"token.package",settings:{foreground:"#abb2bf"}},{scope:["entity.name.function","meta.require","support.function.any-method","variable.function"],settings:{foreground:"#61afef"}},{scope:"entity.name.type.namespace",settings:{foreground:"#e5c07b"}},{scope:"support.class, entity.name.type.class",settings:{foreground:"#e5c07b"}},{scope:"entity.name.class.identifier.namespace.type",settings:{foreground:"#e5c07b"}},{scope:["entity.name.class","variable.other.class.js","variable.other.class.ts"],settings:{foreground:"#e5c07b"}},{scope:"variable.other.class.php",settings:{foreground:"#e06c75"}},{scope:"entity.name.type",settings:{foreground:"#e5c07b"}},{scope:"keyword.control",settings:{foreground:"#c678dd"}},{scope:"control.elements, keyword.operator.less",settings:{foreground:"#d19a66"}},{scope:"keyword.other.special-method",settings:{foreground:"#61afef"}},{scope:"storage",settings:{foreground:"#c678dd"}},{scope:"token.storage",settings:{foreground:"#c678dd"}},{scope:"keyword.operator.expression.delete,keyword.operator.expression.in,keyword.operator.expression.of,keyword.operator.expression.instanceof,keyword.operator.new,keyword.operator.expression.typeof,keyword.operator.expression.void",settings:{foreground:"#c678dd"}},{scope:"token.storage.type.java",settings:{foreground:"#e5c07b"}},{scope:"support.function",settings:{foreground:"#56b6c2"}},{scope:"support.type.property-name",settings:{foreground:"#abb2bf"}},{scope:"support.type.property-name.toml, support.type.property-name.table.toml, support.type.property-name.array.toml",settings:{foreground:"#e06c75"}},{scope:"support.constant.property-value",settings:{foreground:"#abb2bf"}},{scope:"support.constant.font-name",settings:{foreground:"#d19a66"}},{scope:"meta.tag",settings:{foreground:"#abb2bf"}},{scope:"string",settings:{foreground:"#98c379"}},{scope:"constant.other.symbol",settings:{foreground:"#56b6c2"}},{scope:"constant.numeric",settings:{foreground:"#d19a66"}},{scope:"constant",settings:{foreground:"#d19a66"}},{scope:"punctuation.definition.constant",settings:{foreground:"#d19a66"}},{scope:"entity.name.tag",settings:{foreground:"#e06c75"}},{scope:"entity.other.attribute-name",settings:{foreground:"#d19a66"}},{scope:"entity.other.attribute-name.id",settings:{foreground:"#61afef"}},{scope:"entity.other.attribute-name.class.css",settings:{foreground:"#d19a66"}},{scope:"meta.selector",settings:{foreground:"#c678dd"}},{scope:"markup.heading",settings:{foreground:"#e06c75"}},{scope:"markup.heading punctuation.definition.heading, entity.name.section",settings:{foreground:"#61afef"}},{scope:"keyword.other.unit",settings:{foreground:"#e06c75"}},{scope:"markup.bold,todo.bold",settings:{foreground:"#d19a66"}},{scope:"punctuation.definition.bold",settings:{foreground:"#e5c07b"}},{scope:"markup.italic, punctuation.definition.italic,todo.emphasis",settings:{foreground:"#c678dd"}},{scope:"emphasis md",settings:{foreground:"#c678dd"}},{scope:"entity.name.section.markdown",settings:{foreground:"#e06c75"}},{scope:"punctuation.definition.heading.markdown",settings:{foreground:"#e06c75"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#e5c07b"}},{scope:"markup.heading.setext",settings:{foreground:"#abb2bf"}},{scope:"punctuation.definition.bold.markdown",settings:{foreground:"#d19a66"}},{scope:"markup.inline.raw.markdown",settings:{foreground:"#98c379"}},{scope:"markup.inline.raw.string.markdown",settings:{foreground:"#98c379"}},{scope:"punctuation.definition.raw.markdown",settings:{foreground:"#e5c07b"}},{scope:"punctuation.definition.list.markdown",settings:{foreground:"#e5c07b"}},{scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","punctuation.definition.metadata.markdown"],settings:{foreground:"#e06c75"}},{scope:["beginning.punctuation.definition.list.markdown"],settings:{foreground:"#e06c75"}},{scope:"punctuation.definition.metadata.markdown",settings:{foreground:"#e06c75"}},{scope:"markup.underline.link.markdown,markup.underline.link.image.markdown",settings:{foreground:"#c678dd"}},{scope:"string.other.link.title.markdown,string.other.link.description.markdown",settings:{foreground:"#61afef"}},{scope:"markup.raw.monospace.asciidoc",settings:{foreground:"#98c379"}},{scope:"punctuation.definition.asciidoc",settings:{foreground:"#e5c07b"}},{scope:"markup.list.asciidoc",settings:{foreground:"#e5c07b"}},{scope:"markup.link.asciidoc,markup.other.url.asciidoc",settings:{foreground:"#c678dd"}},{scope:"string.unquoted.asciidoc,markup.other.url.asciidoc",settings:{foreground:"#61afef"}},{scope:"string.regexp",settings:{foreground:"#56b6c2"}},{scope:"punctuation.section.embedded, variable.interpolation",settings:{foreground:"#e06c75"}},{scope:"punctuation.section.embedded.begin,punctuation.section.embedded.end",settings:{foreground:"#c678dd"}},{scope:"invalid.illegal",settings:{foreground:"#ffffff"}},{scope:"invalid.illegal.bad-ampersand.html",settings:{foreground:"#abb2bf"}},{scope:"invalid.illegal.unrecognized-tag.html",settings:{foreground:"#e06c75"}},{scope:"invalid.broken",settings:{foreground:"#ffffff"}},{scope:"invalid.deprecated",settings:{foreground:"#ffffff"}},{scope:"invalid.deprecated.entity.other.attribute-name.html",settings:{foreground:"#d19a66"}},{scope:"invalid.unimplemented",settings:{foreground:"#ffffff"}},{scope:"source.json meta.structure.dictionary.json > string.quoted.json",settings:{foreground:"#e06c75"}},{scope:"source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string",settings:{foreground:"#e06c75"}},{scope:"source.json meta.structure.dictionary.json > value.json > string.quoted.json,source.json meta.structure.array.json > value.json > string.quoted.json,source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation,source.json meta.structure.array.json > value.json > string.quoted.json > punctuation",settings:{foreground:"#98c379"}},{scope:"source.json meta.structure.dictionary.json > constant.language.json,source.json meta.structure.array.json > constant.language.json",settings:{foreground:"#56b6c2"}},{scope:"support.type.property-name.json",settings:{foreground:"#e06c75"}},{scope:"support.type.property-name.json punctuation",settings:{foreground:"#e06c75"}},{scope:"text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade",settings:{foreground:"#c678dd"}},{scope:"text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade",settings:{foreground:"#c678dd"}},{scope:"support.other.namespace.use.php,support.other.namespace.use-as.php,entity.other.alias.php,meta.interface.php",settings:{foreground:"#e5c07b"}},{scope:"keyword.operator.error-control.php",settings:{foreground:"#c678dd"}},{scope:"keyword.operator.type.php",settings:{foreground:"#c678dd"}},{scope:"punctuation.section.array.begin.php",settings:{foreground:"#abb2bf"}},{scope:"punctuation.section.array.end.php",settings:{foreground:"#abb2bf"}},{scope:"invalid.illegal.non-null-typehinted.php",settings:{foreground:"#f44747"}},{scope:"storage.type.php,meta.other.type.phpdoc.php,keyword.other.type.php,keyword.other.array.phpdoc.php",settings:{foreground:"#e5c07b"}},{scope:"meta.function-call.php,meta.function-call.object.php,meta.function-call.static.php",settings:{foreground:"#61afef"}},{scope:"punctuation.definition.parameters.begin.bracket.round.php,punctuation.definition.parameters.end.bracket.round.php,punctuation.separator.delimiter.php,punctuation.section.scope.begin.php,punctuation.section.scope.end.php,punctuation.terminator.expression.php,punctuation.definition.arguments.begin.bracket.round.php,punctuation.definition.arguments.end.bracket.round.php,punctuation.definition.storage-type.begin.bracket.round.php,punctuation.definition.storage-type.end.bracket.round.php,punctuation.definition.array.begin.bracket.round.php,punctuation.definition.array.end.bracket.round.php,punctuation.definition.begin.bracket.round.php,punctuation.definition.end.bracket.round.php,punctuation.definition.begin.bracket.curly.php,punctuation.definition.end.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php,punctuation.definition.section.switch-block.start.bracket.curly.php,punctuation.definition.section.switch-block.begin.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php",settings:{foreground:"#abb2bf"}},{scope:"support.constant.core.rust",settings:{foreground:"#d19a66"}},{scope:"support.constant.ext.php,support.constant.std.php,support.constant.core.php,support.constant.parser-token.php",settings:{foreground:"#d19a66"}},{scope:"entity.name.goto-label.php,support.other.php",settings:{foreground:"#61afef"}},{scope:"keyword.operator.logical.php,keyword.operator.bitwise.php,keyword.operator.arithmetic.php",settings:{foreground:"#56b6c2"}},{scope:"keyword.operator.regexp.php",settings:{foreground:"#c678dd"}},{scope:"keyword.operator.comparison.php",settings:{foreground:"#56b6c2"}},{scope:"keyword.operator.heredoc.php,keyword.operator.nowdoc.php",settings:{foreground:"#c678dd"}},{scope:"meta.function.decorator.python",settings:{foreground:"#61afef"}},{scope:"support.token.decorator.python,meta.function.decorator.identifier.python",settings:{foreground:"#56b6c2"}},{scope:"function.parameter",settings:{foreground:"#abb2bf"}},{scope:"function.brace",settings:{foreground:"#abb2bf"}},{scope:"function.parameter.ruby, function.parameter.cs",settings:{foreground:"#abb2bf"}},{scope:"constant.language.symbol.ruby",settings:{foreground:"#56b6c2"}},{scope:"constant.language.symbol.hashkey.ruby",settings:{foreground:"#56b6c2"}},{scope:"rgb-value",settings:{foreground:"#56b6c2"}},{scope:"inline-color-decoration rgb-value",settings:{foreground:"#d19a66"}},{scope:"less rgb-value",settings:{foreground:"#d19a66"}},{scope:"selector.sass",settings:{foreground:"#e06c75"}},{scope:"support.type.primitive.ts,support.type.builtin.ts,support.type.primitive.tsx,support.type.builtin.tsx",settings:{foreground:"#e5c07b"}},{scope:"block.scope.end,block.scope.begin",settings:{foreground:"#abb2bf"}},{scope:"storage.type.cs",settings:{foreground:"#e5c07b"}},{scope:"entity.name.variable.local.cs",settings:{foreground:"#e06c75"}},{scope:"token.info-token",settings:{foreground:"#61afef"}},{scope:"token.warn-token",settings:{foreground:"#d19a66"}},{scope:"token.error-token",settings:{foreground:"#f44747"}},{scope:"token.debug-token",settings:{foreground:"#c678dd"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#c678dd"}},{scope:["meta.template.expression"],settings:{foreground:"#abb2bf"}},{scope:["keyword.operator.module"],settings:{foreground:"#c678dd"}},{scope:["support.type.type.flowtype"],settings:{foreground:"#61afef"}},{scope:["support.type.primitive"],settings:{foreground:"#e5c07b"}},{scope:["meta.property.object"],settings:{foreground:"#e06c75"}},{scope:["variable.parameter.function.js"],settings:{foreground:"#e06c75"}},{scope:["keyword.other.template.begin"],settings:{foreground:"#98c379"}},{scope:["keyword.other.template.end"],settings:{foreground:"#98c379"}},{scope:["keyword.other.substitution.begin"],settings:{foreground:"#98c379"}},{scope:["keyword.other.substitution.end"],settings:{foreground:"#98c379"}},{scope:["keyword.operator.assignment"],settings:{foreground:"#56b6c2"}},{scope:["keyword.operator.assignment.go"],settings:{foreground:"#e5c07b"}},{scope:["keyword.operator.arithmetic.go","keyword.operator.address.go"],settings:{foreground:"#c678dd"}},{scope:["entity.name.package.go"],settings:{foreground:"#e5c07b"}},{scope:["support.type.prelude.elm"],settings:{foreground:"#56b6c2"}},{scope:["support.constant.elm"],settings:{foreground:"#d19a66"}},{scope:["punctuation.quasi.element"],settings:{foreground:"#c678dd"}},{scope:["constant.character.entity"],settings:{foreground:"#e06c75"}},{scope:["entity.other.attribute-name.pseudo-element","entity.other.attribute-name.pseudo-class"],settings:{foreground:"#56b6c2"}},{scope:["entity.global.clojure"],settings:{foreground:"#e5c07b"}},{scope:["meta.symbol.clojure"],settings:{foreground:"#e06c75"}},{scope:["constant.keyword.clojure"],settings:{foreground:"#56b6c2"}},{scope:["meta.arguments.coffee","variable.parameter.function.coffee"],settings:{foreground:"#e06c75"}},{scope:["source.ini"],settings:{foreground:"#98c379"}},{scope:["meta.scope.prerequisites.makefile"],settings:{foreground:"#e06c75"}},{scope:["source.makefile"],settings:{foreground:"#e5c07b"}},{scope:["storage.modifier.import.groovy"],settings:{foreground:"#e5c07b"}},{scope:["meta.method.groovy"],settings:{foreground:"#61afef"}},{scope:["meta.definition.variable.name.groovy"],settings:{foreground:"#e06c75"}},{scope:["meta.definition.class.inherited.classes.groovy"],settings:{foreground:"#98c379"}},{scope:["support.variable.semantic.hlsl"],settings:{foreground:"#e5c07b"}},{scope:["support.type.texture.hlsl","support.type.sampler.hlsl","support.type.object.hlsl","support.type.object.rw.hlsl","support.type.fx.hlsl","support.type.object.hlsl"],settings:{foreground:"#c678dd"}},{scope:["text.variable","text.bracketed"],settings:{foreground:"#e06c75"}},{scope:["support.type.swift","support.type.vb.asp"],settings:{foreground:"#e5c07b"}},{scope:["entity.name.function.xi"],settings:{foreground:"#e5c07b"}},{scope:["entity.name.class.xi"],settings:{foreground:"#56b6c2"}},{scope:["constant.character.character-class.regexp.xi"],settings:{foreground:"#e06c75"}},{scope:["constant.regexp.xi"],settings:{foreground:"#c678dd"}},{scope:["keyword.control.xi"],settings:{foreground:"#56b6c2"}},{scope:["invalid.xi"],settings:{foreground:"#abb2bf"}},{scope:["beginning.punctuation.definition.quote.markdown.xi"],settings:{foreground:"#98c379"}},{scope:["beginning.punctuation.definition.list.markdown.xi"],settings:{foreground:"#7f848e"}},{scope:["constant.character.xi"],settings:{foreground:"#61afef"}},{scope:["accent.xi"],settings:{foreground:"#61afef"}},{scope:["wikiword.xi"],settings:{foreground:"#d19a66"}},{scope:["constant.other.color.rgb-value.xi"],settings:{foreground:"#ffffff"}},{scope:["punctuation.definition.tag.xi"],settings:{foreground:"#5c6370"}},{scope:["entity.name.label.cs","entity.name.scope-resolution.function.call","entity.name.scope-resolution.function.definition"],settings:{foreground:"#e5c07b"}},{scope:["entity.name.label.cs","markup.heading.setext.1.markdown","markup.heading.setext.2.markdown"],settings:{foreground:"#e06c75"}},{scope:[" meta.brace.square"],settings:{foreground:"#abb2bf"}},{scope:"comment, punctuation.definition.comment",settings:{fontStyle:"italic",foreground:"#7f848e"}},{scope:"markup.quote.markdown",settings:{foreground:"#5c6370"}},{scope:"punctuation.definition.block.sequence.item.yaml",settings:{foreground:"#abb2bf"}},{scope:["constant.language.symbol.elixir","constant.language.symbol.double-quoted.elixir"],settings:{foreground:"#56b6c2"}},{scope:["entity.name.variable.parameter.cs"],settings:{foreground:"#e5c07b"}},{scope:["entity.name.variable.field.cs"],settings:{foreground:"#e06c75"}},{scope:"markup.deleted",settings:{foreground:"#e06c75"}},{scope:"markup.inserted",settings:{foreground:"#98c379"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#BE5046"}},{scope:["support.other.namespace.php"],settings:{foreground:"#abb2bf"}},{scope:["variable.parameter.function.latex"],settings:{foreground:"#e06c75"}},{scope:["variable.other.object"],settings:{foreground:"#e5c07b"}},{scope:["variable.other.constant.property"],settings:{foreground:"#e06c75"}},{scope:["entity.other.inherited-class"],settings:{foreground:"#e5c07b"}},{scope:"variable.other.readwrite.c",settings:{foreground:"#e06c75"}},{scope:"entity.name.variable.parameter.php,punctuation.separator.colon.php,constant.other.php",settings:{foreground:"#abb2bf"}},{scope:["constant.numeric.decimal.asm.x86_64"],settings:{foreground:"#c678dd"}},{scope:["support.other.parenthesis.regexp"],settings:{foreground:"#d19a66"}},{scope:["constant.character.escape"],settings:{foreground:"#56b6c2"}},{scope:["string.regexp"],settings:{foreground:"#e06c75"}},{scope:["log.info"],settings:{foreground:"#98c379"}},{scope:["log.warning"],settings:{foreground:"#e5c07b"}},{scope:["log.error"],settings:{foreground:"#e06c75"}},{scope:"keyword.operator.expression.is",settings:{foreground:"#c678dd"}},{scope:"entity.name.label",settings:{foreground:"#e06c75"}},{scope:"entity.other.attribute-name.js,entity.other.attribute-name.ts,entity.other.attribute-name.jsx,entity.other.attribute-name.tsx,variable.parameter,variable.language.super",settings:{fontStyle:"italic"}},{scope:"comment.line.double-slash,comment.block.documentation",settings:{fontStyle:"italic"}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/one-light.alpzPJ78.js b/assets/chunks/one-light.alpzPJ78.js new file mode 100644 index 000000000..75ecf6893 --- /dev/null +++ b/assets/chunks/one-light.alpzPJ78.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.background":"#FAFAFA","activityBar.foreground":"#121417","activityBarBadge.background":"#526FFF","activityBarBadge.foreground":"#FFFFFF","badge.background":"#526FFF","badge.foreground":"#FFFFFF","button.background":"#5871EF","button.foreground":"#FFFFFF","button.hoverBackground":"#6B83ED","diffEditor.insertedTextBackground":"#00809B33","dropdown.background":"#FFFFFF","dropdown.border":"#DBDBDC","editor.background":"#FAFAFA","editor.findMatchHighlightBackground":"#526FFF33","editor.foreground":"#383A42","editor.lineHighlightBackground":"#383A420C","editor.selectionBackground":"#E5E5E6","editorCursor.foreground":"#526FFF","editorGroup.background":"#EAEAEB","editorGroup.border":"#DBDBDC","editorGroupHeader.tabsBackground":"#EAEAEB","editorHoverWidget.background":"#EAEAEB","editorHoverWidget.border":"#DBDBDC","editorIndentGuide.activeBackground":"#626772","editorIndentGuide.background":"#383A4233","editorInlayHint.background":"#F5F5F5","editorInlayHint.foreground":"#AFB2BB","editorLineNumber.activeForeground":"#383A42","editorLineNumber.foreground":"#9D9D9F","editorRuler.foreground":"#383A4233","editorSuggestWidget.background":"#EAEAEB","editorSuggestWidget.border":"#DBDBDC","editorSuggestWidget.selectedBackground":"#FFFFFF","editorWhitespace.foreground":"#383A4233","editorWidget.background":"#EAEAEB","editorWidget.border":"#E5E5E6","extensionButton.prominentBackground":"#3BBA54","extensionButton.prominentHoverBackground":"#4CC263",focusBorder:"#526FFF","input.background":"#FFFFFF","input.border":"#DBDBDC","list.activeSelectionBackground":"#DBDBDC","list.activeSelectionForeground":"#232324","list.focusBackground":"#DBDBDC","list.highlightForeground":"#121417","list.hoverBackground":"#DBDBDC66","list.inactiveSelectionBackground":"#DBDBDC","list.inactiveSelectionForeground":"#232324","notebook.cellEditorBackground":"#F5F5F5","notification.background":"#333333","peekView.border":"#526FFF","peekViewEditor.background":"#FFFFFF","peekViewResult.background":"#EAEAEB","peekViewResult.selectionBackground":"#DBDBDC","peekViewTitle.background":"#FFFFFF","pickerGroup.border":"#526FFF","scrollbarSlider.activeBackground":"#747D9180","scrollbarSlider.background":"#4E566680","scrollbarSlider.hoverBackground":"#5A637580","sideBar.background":"#EAEAEB","sideBarSectionHeader.background":"#FAFAFA","statusBar.background":"#EAEAEB","statusBar.debuggingForeground":"#FFFFFF","statusBar.foreground":"#424243","statusBar.noFolderBackground":"#EAEAEB","statusBarItem.hoverBackground":"#DBDBDC","tab.activeBackground":"#FAFAFA","tab.activeForeground":"#121417","tab.border":"#DBDBDC","tab.inactiveBackground":"#EAEAEB","titleBar.activeBackground":"#EAEAEB","titleBar.activeForeground":"#424243","titleBar.inactiveBackground":"#EAEAEB","titleBar.inactiveForeground":"#424243"},displayName:"One Light",name:"one-light",tokenColors:[{scope:["comment"],settings:{fontStyle:"italic",foreground:"#A0A1A7"}},{scope:["comment markup.link"],settings:{foreground:"#A0A1A7"}},{scope:["entity.name.type"],settings:{foreground:"#C18401"}},{scope:["entity.other.inherited-class"],settings:{foreground:"#C18401"}},{scope:["keyword"],settings:{foreground:"#A626A4"}},{scope:["keyword.control"],settings:{foreground:"#A626A4"}},{scope:["keyword.operator"],settings:{foreground:"#383A42"}},{scope:["keyword.other.special-method"],settings:{foreground:"#4078F2"}},{scope:["keyword.other.unit"],settings:{foreground:"#986801"}},{scope:["storage"],settings:{foreground:"#A626A4"}},{scope:["storage.type.annotation","storage.type.primitive"],settings:{foreground:"#A626A4"}},{scope:["storage.modifier.package","storage.modifier.import"],settings:{foreground:"#383A42"}},{scope:["constant"],settings:{foreground:"#986801"}},{scope:["constant.variable"],settings:{foreground:"#986801"}},{scope:["constant.character.escape"],settings:{foreground:"#0184BC"}},{scope:["constant.numeric"],settings:{foreground:"#986801"}},{scope:["constant.other.color"],settings:{foreground:"#0184BC"}},{scope:["constant.other.symbol"],settings:{foreground:"#0184BC"}},{scope:["variable"],settings:{foreground:"#E45649"}},{scope:["variable.interpolation"],settings:{foreground:"#CA1243"}},{scope:["variable.parameter"],settings:{foreground:"#383A42"}},{scope:["string"],settings:{foreground:"#50A14F"}},{scope:["string > source","string embedded"],settings:{foreground:"#383A42"}},{scope:["string.regexp"],settings:{foreground:"#0184BC"}},{scope:["string.regexp source.ruby.embedded"],settings:{foreground:"#C18401"}},{scope:["string.other.link"],settings:{foreground:"#E45649"}},{scope:["punctuation.definition.comment"],settings:{foreground:"#A0A1A7"}},{scope:["punctuation.definition.method-parameters","punctuation.definition.function-parameters","punctuation.definition.parameters","punctuation.definition.separator","punctuation.definition.seperator","punctuation.definition.array"],settings:{foreground:"#383A42"}},{scope:["punctuation.definition.heading","punctuation.definition.identity"],settings:{foreground:"#4078F2"}},{scope:["punctuation.definition.bold"],settings:{fontStyle:"bold",foreground:"#C18401"}},{scope:["punctuation.definition.italic"],settings:{fontStyle:"italic",foreground:"#A626A4"}},{scope:["punctuation.section.embedded"],settings:{foreground:"#CA1243"}},{scope:["punctuation.section.method","punctuation.section.class","punctuation.section.inner-class"],settings:{foreground:"#383A42"}},{scope:["support.class"],settings:{foreground:"#C18401"}},{scope:["support.type"],settings:{foreground:"#0184BC"}},{scope:["support.function"],settings:{foreground:"#0184BC"}},{scope:["support.function.any-method"],settings:{foreground:"#4078F2"}},{scope:["entity.name.function"],settings:{foreground:"#4078F2"}},{scope:["entity.name.class","entity.name.type.class"],settings:{foreground:"#C18401"}},{scope:["entity.name.section"],settings:{foreground:"#4078F2"}},{scope:["entity.name.tag"],settings:{foreground:"#E45649"}},{scope:["entity.other.attribute-name"],settings:{foreground:"#986801"}},{scope:["entity.other.attribute-name.id"],settings:{foreground:"#4078F2"}},{scope:["meta.class"],settings:{foreground:"#C18401"}},{scope:["meta.class.body"],settings:{foreground:"#383A42"}},{scope:["meta.method-call","meta.method"],settings:{foreground:"#383A42"}},{scope:["meta.definition.variable"],settings:{foreground:"#E45649"}},{scope:["meta.link"],settings:{foreground:"#986801"}},{scope:["meta.require"],settings:{foreground:"#4078F2"}},{scope:["meta.selector"],settings:{foreground:"#A626A4"}},{scope:["meta.separator"],settings:{foreground:"#383A42"}},{scope:["meta.tag"],settings:{foreground:"#383A42"}},{scope:["underline"],settings:{"text-decoration":"underline"}},{scope:["none"],settings:{foreground:"#383A42"}},{scope:["invalid.deprecated"],settings:{background:"#F2A60D",foreground:"#000000"}},{scope:["invalid.illegal"],settings:{background:"#FF1414",foreground:"white"}},{scope:["markup.bold"],settings:{fontStyle:"bold",foreground:"#986801"}},{scope:["markup.changed"],settings:{foreground:"#A626A4"}},{scope:["markup.deleted"],settings:{foreground:"#E45649"}},{scope:["markup.italic"],settings:{fontStyle:"italic",foreground:"#A626A4"}},{scope:["markup.heading"],settings:{foreground:"#E45649"}},{scope:["markup.heading punctuation.definition.heading"],settings:{foreground:"#4078F2"}},{scope:["markup.link"],settings:{foreground:"#0184BC"}},{scope:["markup.inserted"],settings:{foreground:"#50A14F"}},{scope:["markup.quote"],settings:{foreground:"#986801"}},{scope:["markup.raw"],settings:{foreground:"#50A14F"}},{scope:["source.c keyword.operator"],settings:{foreground:"#A626A4"}},{scope:["source.cpp keyword.operator"],settings:{foreground:"#A626A4"}},{scope:["source.cs keyword.operator"],settings:{foreground:"#A626A4"}},{scope:["source.css property-name","source.css property-value"],settings:{foreground:"#696C77"}},{scope:["source.css property-name.support","source.css property-value.support"],settings:{foreground:"#383A42"}},{scope:["source.elixir source.embedded.source"],settings:{foreground:"#383A42"}},{scope:["source.elixir constant.language","source.elixir constant.numeric","source.elixir constant.definition"],settings:{foreground:"#4078F2"}},{scope:["source.elixir variable.definition","source.elixir variable.anonymous"],settings:{foreground:"#A626A4"}},{scope:["source.elixir parameter.variable.function"],settings:{fontStyle:"italic",foreground:"#986801"}},{scope:["source.elixir quoted"],settings:{foreground:"#50A14F"}},{scope:["source.elixir keyword.special-method","source.elixir embedded.section","source.elixir embedded.source.empty"],settings:{foreground:"#E45649"}},{scope:["source.elixir readwrite.module punctuation"],settings:{foreground:"#E45649"}},{scope:["source.elixir regexp.section","source.elixir regexp.string"],settings:{foreground:"#CA1243"}},{scope:["source.elixir separator","source.elixir keyword.operator"],settings:{foreground:"#986801"}},{scope:["source.elixir variable.constant"],settings:{foreground:"#C18401"}},{scope:["source.elixir array","source.elixir scope","source.elixir section"],settings:{foreground:"#696C77"}},{scope:["source.gfm markup"],settings:{"-webkit-font-smoothing":"auto"}},{scope:["source.gfm link entity"],settings:{foreground:"#4078F2"}},{scope:["source.go storage.type.string"],settings:{foreground:"#A626A4"}},{scope:["source.ini keyword.other.definition.ini"],settings:{foreground:"#E45649"}},{scope:["source.java storage.modifier.import"],settings:{foreground:"#C18401"}},{scope:["source.java storage.type"],settings:{foreground:"#C18401"}},{scope:["source.java keyword.operator.instanceof"],settings:{foreground:"#A626A4"}},{scope:["source.java-properties meta.key-pair"],settings:{foreground:"#E45649"}},{scope:["source.java-properties meta.key-pair > punctuation"],settings:{foreground:"#383A42"}},{scope:["source.js keyword.operator"],settings:{foreground:"#0184BC"}},{scope:["source.js keyword.operator.delete","source.js keyword.operator.in","source.js keyword.operator.of","source.js keyword.operator.instanceof","source.js keyword.operator.new","source.js keyword.operator.typeof","source.js keyword.operator.void"],settings:{foreground:"#A626A4"}},{scope:["source.ts keyword.operator"],settings:{foreground:"#0184BC"}},{scope:["source.flow keyword.operator"],settings:{foreground:"#0184BC"}},{scope:["source.json meta.structure.dictionary.json > string.quoted.json"],settings:{foreground:"#E45649"}},{scope:["source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string"],settings:{foreground:"#E45649"}},{scope:["source.json meta.structure.dictionary.json > value.json > string.quoted.json","source.json meta.structure.array.json > value.json > string.quoted.json","source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation","source.json meta.structure.array.json > value.json > string.quoted.json > punctuation"],settings:{foreground:"#50A14F"}},{scope:["source.json meta.structure.dictionary.json > constant.language.json","source.json meta.structure.array.json > constant.language.json"],settings:{foreground:"#0184BC"}},{scope:["ng.interpolation"],settings:{foreground:"#E45649"}},{scope:["ng.interpolation.begin","ng.interpolation.end"],settings:{foreground:"#4078F2"}},{scope:["ng.interpolation function"],settings:{foreground:"#E45649"}},{scope:["ng.interpolation function.begin","ng.interpolation function.end"],settings:{foreground:"#4078F2"}},{scope:["ng.interpolation bool"],settings:{foreground:"#986801"}},{scope:["ng.interpolation bracket"],settings:{foreground:"#383A42"}},{scope:["ng.pipe","ng.operator"],settings:{foreground:"#383A42"}},{scope:["ng.tag"],settings:{foreground:"#0184BC"}},{scope:["ng.attribute-with-value attribute-name"],settings:{foreground:"#C18401"}},{scope:["ng.attribute-with-value string"],settings:{foreground:"#A626A4"}},{scope:["ng.attribute-with-value string.begin","ng.attribute-with-value string.end"],settings:{foreground:"#383A42"}},{scope:["source.ruby constant.other.symbol > punctuation"],settings:{foreground:"inherit"}},{scope:["source.php class.bracket"],settings:{foreground:"#383A42"}},{scope:["source.python keyword.operator.logical.python"],settings:{foreground:"#A626A4"}},{scope:["source.python variable.parameter"],settings:{foreground:"#986801"}},{scope:"customrule",settings:{foreground:"#383A42"}},{scope:"support.type.property-name",settings:{foreground:"#383A42"}},{scope:"string.quoted.double punctuation",settings:{foreground:"#50A14F"}},{scope:"support.constant",settings:{foreground:"#986801"}},{scope:"support.type.property-name.json",settings:{foreground:"#E45649"}},{scope:"support.type.property-name.json punctuation",settings:{foreground:"#E45649"}},{scope:["punctuation.separator.key-value.ts","punctuation.separator.key-value.js","punctuation.separator.key-value.tsx"],settings:{foreground:"#0184BC"}},{scope:["source.js.embedded.html keyword.operator","source.ts.embedded.html keyword.operator"],settings:{foreground:"#0184BC"}},{scope:["variable.other.readwrite.js","variable.other.readwrite.ts","variable.other.readwrite.tsx"],settings:{foreground:"#383A42"}},{scope:["support.variable.dom.js","support.variable.dom.ts"],settings:{foreground:"#E45649"}},{scope:["support.variable.property.dom.js","support.variable.property.dom.ts"],settings:{foreground:"#E45649"}},{scope:["meta.template.expression.js punctuation.definition","meta.template.expression.ts punctuation.definition"],settings:{foreground:"#CA1243"}},{scope:["source.ts punctuation.definition.typeparameters","source.js punctuation.definition.typeparameters","source.tsx punctuation.definition.typeparameters"],settings:{foreground:"#383A42"}},{scope:["source.ts punctuation.definition.block","source.js punctuation.definition.block","source.tsx punctuation.definition.block"],settings:{foreground:"#383A42"}},{scope:["source.ts punctuation.separator.comma","source.js punctuation.separator.comma","source.tsx punctuation.separator.comma"],settings:{foreground:"#383A42"}},{scope:["support.variable.property.js","support.variable.property.ts","support.variable.property.tsx"],settings:{foreground:"#E45649"}},{scope:["keyword.control.default.js","keyword.control.default.ts","keyword.control.default.tsx"],settings:{foreground:"#E45649"}},{scope:["keyword.operator.expression.instanceof.js","keyword.operator.expression.instanceof.ts","keyword.operator.expression.instanceof.tsx"],settings:{foreground:"#A626A4"}},{scope:["keyword.operator.expression.of.js","keyword.operator.expression.of.ts","keyword.operator.expression.of.tsx"],settings:{foreground:"#A626A4"}},{scope:["meta.brace.round.js","meta.array-binding-pattern-variable.js","meta.brace.square.js","meta.brace.round.ts","meta.array-binding-pattern-variable.ts","meta.brace.square.ts","meta.brace.round.tsx","meta.array-binding-pattern-variable.tsx","meta.brace.square.tsx"],settings:{foreground:"#383A42"}},{scope:["source.js punctuation.accessor","source.ts punctuation.accessor","source.tsx punctuation.accessor"],settings:{foreground:"#383A42"}},{scope:["punctuation.terminator.statement.js","punctuation.terminator.statement.ts","punctuation.terminator.statement.tsx"],settings:{foreground:"#383A42"}},{scope:["meta.array-binding-pattern-variable.js variable.other.readwrite.js","meta.array-binding-pattern-variable.ts variable.other.readwrite.ts","meta.array-binding-pattern-variable.tsx variable.other.readwrite.tsx"],settings:{foreground:"#986801"}},{scope:["source.js support.variable","source.ts support.variable","source.tsx support.variable"],settings:{foreground:"#E45649"}},{scope:["variable.other.constant.property.js","variable.other.constant.property.ts","variable.other.constant.property.tsx"],settings:{foreground:"#986801"}},{scope:["keyword.operator.new.ts","keyword.operator.new.j","keyword.operator.new.tsx"],settings:{foreground:"#A626A4"}},{scope:["source.ts keyword.operator","source.tsx keyword.operator"],settings:{foreground:"#0184BC"}},{scope:["punctuation.separator.parameter.js","punctuation.separator.parameter.ts","punctuation.separator.parameter.tsx "],settings:{foreground:"#383A42"}},{scope:["constant.language.import-export-all.js","constant.language.import-export-all.ts"],settings:{foreground:"#E45649"}},{scope:["constant.language.import-export-all.jsx","constant.language.import-export-all.tsx"],settings:{foreground:"#0184BC"}},{scope:["keyword.control.as.js","keyword.control.as.ts","keyword.control.as.jsx","keyword.control.as.tsx"],settings:{foreground:"#383A42"}},{scope:["variable.other.readwrite.alias.js","variable.other.readwrite.alias.ts","variable.other.readwrite.alias.jsx","variable.other.readwrite.alias.tsx"],settings:{foreground:"#E45649"}},{scope:["variable.other.constant.js","variable.other.constant.ts","variable.other.constant.jsx","variable.other.constant.tsx"],settings:{foreground:"#986801"}},{scope:["meta.export.default.js variable.other.readwrite.js","meta.export.default.ts variable.other.readwrite.ts"],settings:{foreground:"#E45649"}},{scope:["source.js meta.template.expression.js punctuation.accessor","source.ts meta.template.expression.ts punctuation.accessor","source.tsx meta.template.expression.tsx punctuation.accessor"],settings:{foreground:"#50A14F"}},{scope:["source.js meta.import-equals.external.js keyword.operator","source.jsx meta.import-equals.external.jsx keyword.operator","source.ts meta.import-equals.external.ts keyword.operator","source.tsx meta.import-equals.external.tsx keyword.operator"],settings:{foreground:"#383A42"}},{scope:"entity.name.type.module.js,entity.name.type.module.ts,entity.name.type.module.jsx,entity.name.type.module.tsx",settings:{foreground:"#50A14F"}},{scope:"meta.class.js,meta.class.ts,meta.class.jsx,meta.class.tsx",settings:{foreground:"#383A42"}},{scope:["meta.definition.property.js variable","meta.definition.property.ts variable","meta.definition.property.jsx variable","meta.definition.property.tsx variable"],settings:{foreground:"#383A42"}},{scope:["meta.type.parameters.js support.type","meta.type.parameters.jsx support.type","meta.type.parameters.ts support.type","meta.type.parameters.tsx support.type"],settings:{foreground:"#383A42"}},{scope:["source.js meta.tag.js keyword.operator","source.jsx meta.tag.jsx keyword.operator","source.ts meta.tag.ts keyword.operator","source.tsx meta.tag.tsx keyword.operator"],settings:{foreground:"#383A42"}},{scope:["meta.tag.js punctuation.section.embedded","meta.tag.jsx punctuation.section.embedded","meta.tag.ts punctuation.section.embedded","meta.tag.tsx punctuation.section.embedded"],settings:{foreground:"#383A42"}},{scope:["meta.array.literal.js variable","meta.array.literal.jsx variable","meta.array.literal.ts variable","meta.array.literal.tsx variable"],settings:{foreground:"#C18401"}},{scope:["support.type.object.module.js","support.type.object.module.jsx","support.type.object.module.ts","support.type.object.module.tsx"],settings:{foreground:"#E45649"}},{scope:["constant.language.json"],settings:{foreground:"#0184BC"}},{scope:["variable.other.constant.object.js","variable.other.constant.object.jsx","variable.other.constant.object.ts","variable.other.constant.object.tsx"],settings:{foreground:"#986801"}},{scope:["storage.type.property.js","storage.type.property.jsx","storage.type.property.ts","storage.type.property.tsx"],settings:{foreground:"#0184BC"}},{scope:["meta.template.expression.js string.quoted punctuation.definition","meta.template.expression.jsx string.quoted punctuation.definition","meta.template.expression.ts string.quoted punctuation.definition","meta.template.expression.tsx string.quoted punctuation.definition"],settings:{foreground:"#50A14F"}},{scope:["meta.template.expression.js string.template punctuation.definition.string.template","meta.template.expression.jsx string.template punctuation.definition.string.template","meta.template.expression.ts string.template punctuation.definition.string.template","meta.template.expression.tsx string.template punctuation.definition.string.template"],settings:{foreground:"#50A14F"}},{scope:["keyword.operator.expression.in.js","keyword.operator.expression.in.jsx","keyword.operator.expression.in.ts","keyword.operator.expression.in.tsx"],settings:{foreground:"#A626A4"}},{scope:["variable.other.object.js","variable.other.object.ts"],settings:{foreground:"#383A42"}},{scope:["meta.object-literal.key.js","meta.object-literal.key.ts"],settings:{foreground:"#E45649"}},{scope:"source.python constant.other",settings:{foreground:"#383A42"}},{scope:"source.python constant",settings:{foreground:"#986801"}},{scope:"constant.character.format.placeholder.other.python storage",settings:{foreground:"#986801"}},{scope:"support.variable.magic.python",settings:{foreground:"#E45649"}},{scope:"meta.function.parameters.python",settings:{foreground:"#986801"}},{scope:"punctuation.separator.annotation.python",settings:{foreground:"#383A42"}},{scope:"punctuation.separator.parameters.python",settings:{foreground:"#383A42"}},{scope:"entity.name.variable.field.cs",settings:{foreground:"#E45649"}},{scope:"source.cs keyword.operator",settings:{foreground:"#383A42"}},{scope:"variable.other.readwrite.cs",settings:{foreground:"#383A42"}},{scope:"variable.other.object.cs",settings:{foreground:"#383A42"}},{scope:"variable.other.object.property.cs",settings:{foreground:"#383A42"}},{scope:"entity.name.variable.property.cs",settings:{foreground:"#4078F2"}},{scope:"storage.type.cs",settings:{foreground:"#C18401"}},{scope:"keyword.other.unsafe.rust",settings:{foreground:"#A626A4"}},{scope:"entity.name.type.rust",settings:{foreground:"#0184BC"}},{scope:"storage.modifier.lifetime.rust",settings:{foreground:"#383A42"}},{scope:"entity.name.lifetime.rust",settings:{foreground:"#986801"}},{scope:"storage.type.core.rust",settings:{foreground:"#0184BC"}},{scope:"meta.attribute.rust",settings:{foreground:"#986801"}},{scope:"storage.class.std.rust",settings:{foreground:"#0184BC"}},{scope:"markup.raw.block.markdown",settings:{foreground:"#383A42"}},{scope:"punctuation.definition.variable.shell",settings:{foreground:"#E45649"}},{scope:"support.constant.property-value.css",settings:{foreground:"#383A42"}},{scope:"punctuation.definition.constant.css",settings:{foreground:"#986801"}},{scope:"punctuation.separator.key-value.scss",settings:{foreground:"#E45649"}},{scope:"punctuation.definition.constant.scss",settings:{foreground:"#986801"}},{scope:"meta.property-list.scss punctuation.separator.key-value.scss",settings:{foreground:"#383A42"}},{scope:"storage.type.primitive.array.java",settings:{foreground:"#C18401"}},{scope:"entity.name.section.markdown",settings:{foreground:"#E45649"}},{scope:"punctuation.definition.heading.markdown",settings:{foreground:"#E45649"}},{scope:"markup.heading.setext",settings:{foreground:"#383A42"}},{scope:"punctuation.definition.bold.markdown",settings:{foreground:"#986801"}},{scope:"markup.inline.raw.markdown",settings:{foreground:"#50A14F"}},{scope:"beginning.punctuation.definition.list.markdown",settings:{foreground:"#E45649"}},{scope:"markup.quote.markdown",settings:{fontStyle:"italic",foreground:"#A0A1A7"}},{scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","punctuation.definition.metadata.markdown"],settings:{foreground:"#383A42"}},{scope:"punctuation.definition.metadata.markdown",settings:{foreground:"#A626A4"}},{scope:["markup.underline.link.markdown","markup.underline.link.image.markdown"],settings:{foreground:"#A626A4"}},{scope:["string.other.link.title.markdown","string.other.link.description.markdown"],settings:{foreground:"#4078F2"}},{scope:"punctuation.separator.variable.ruby",settings:{foreground:"#E45649"}},{scope:"variable.other.constant.ruby",settings:{foreground:"#986801"}},{scope:"keyword.operator.other.ruby",settings:{foreground:"#50A14F"}},{scope:"punctuation.definition.variable.php",settings:{foreground:"#E45649"}},{scope:"meta.class.php",settings:{foreground:"#383A42"}}],type:"light"});export{e as default}; diff --git a/assets/chunks/pascal.B6ZnTe72.js b/assets/chunks/pascal.B6ZnTe72.js new file mode 100644 index 000000000..26e5b56d6 --- /dev/null +++ b/assets/chunks/pascal.B6ZnTe72.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Pascal",fileTypes:["pas","p","pp","dfm","fmx","dpr","dpk","lfm","lpr"],name:"pascal",patterns:[{match:"\\b(?i:(absolute|abstract|add|all|and_then|array|as|asc|asm|assembler|async|attribute|autoreleasepool|await|begin|bindable|block|by|case|cdecl|class|concat|const|constref|copy|cppdecl|contains|default|delegate|deprecated|desc|distinct|div|each|else|empty|end|ensure|enum|equals|event|except|export|exports|extension|external|far|file|finalization|finalizer|finally|flags|forward|from|future|generic|goto|group|has|helper|if|implements|implies|import|in|index|inherited|initialization|inline|interrupt|into|invariants|is|iterator|label|library|join|lazy|lifetimestrategy|locked|locking|loop|mapped|matching|method|mod|module|name|namespace|near|nested|new|nostackframe|not|notify|nullable|object|of|old|oldfpccall|on|only|operator|optional|or_else|order|otherwise|out|override|package|packed|parallel|params|partial|pascal|pinned|platform|pow|private|program|protected|public|published|interface|implementation|qualified|queryable|raises|read|readonly|record|reference|register|remove|resident|require|requires|resourcestring|restricted|result|reverse|safecall|sealed|segment|select|selector|sequence|set|shl|shr|skip|specialize|soft|static|stored|stdcall|step|strict|strong|take|then|threadvar|to|try|tuple|type|unconstrained|unit|unmanaged|unretained|unsafe|uses|using|var|view|virtual|volatile|weak|dynamic|overload|reintroduce|where|with|write|xor|yield))\\b",name:"keyword.pascal"},{captures:{1:{name:"storage.type.prototype.pascal"},2:{name:"entity.name.function.prototype.pascal"}},match:"\\b(?i:(function|procedure|constructor|destructor))\\b\\s+(\\w+(\\.\\w+)?)(\\(.*?\\))?;\\s*(?=(?i:attribute|forward|external))",name:"meta.function.prototype.pascal"},{captures:{1:{name:"storage.type.function.pascal"},2:{name:"entity.name.function.pascal"}},match:"\\b(?i:(function|procedure|constructor|destructor|property|read|write))\\b\\s+(\\w+(\\.\\w+)?)",name:"meta.function.pascal"},{match:"\\b(?i:(self|result))\\b",name:"token.variable"},{match:"\\b(?i:(and|or))\\b",name:"keyword.operator.pascal"},{match:"\\b(?i:(break|continue|exit|abort|while|do|downto|for|raise|repeat|until))\\b",name:"keyword.control.pascal"},{begin:"\\{\\$",captures:{0:{name:"string.regexp"}},end:"\\}",name:"string.regexp"},{match:"\\b(?i:(ansichar|ansistring|boolean|byte|cardinal|char|comp|currency|double|dword|extended|file|integer|int8|int16|int32|int64|longint|longword|nativeint|nativeuint|olevariant|pansichar|pchar|pwidechar|pointer|real|shortint|shortstring|single|smallint|string|uint8|uint16|uint32|uint64|variant|widechar|widestring|word|wordbool|uintptr|intptr))\\b",name:"storage.support.type.pascal"},{match:"\\b(\\d+)|(\\d*\\.\\d+([eE][\\-+]?\\d+)?)\\b",name:"constant.numeric.pascal"},{match:"\\$[0-9a-fA-F]{1,16}\\b",name:"constant.numeric.hex.pascal"},{match:"\\b(?i:(true|false|nil))\\b",name:"constant.language.pascal"},{match:"\\b(?i:(Assert))\\b",name:"keyword.control"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.pascal"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.pascal"}},end:"\\n",name:"comment.line.double-slash.pascal.two"}]},{begin:"\\(\\*",captures:{0:{name:"punctuation.definition.comment.pascal"}},end:"\\*\\)",name:"comment.block.pascal.one"},{begin:"\\{(?!\\$)",captures:{0:{name:"punctuation.definition.comment.pascal"}},end:"\\}",name:"comment.block.pascal.two"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.pascal"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.pascal"}},name:"string.quoted.single.pascal",patterns:[{match:"''",name:"constant.character.escape.apostrophe.pascal"}]},{match:"\\#\\d+",name:"string.other.pascal"}],scopeName:"source.pascal"});var a=[e];export{a as default}; diff --git a/assets/chunks/perl.Czv4QcIx.js b/assets/chunks/perl.Czv4QcIx.js new file mode 100644 index 000000000..3983524d9 --- /dev/null +++ b/assets/chunks/perl.Czv4QcIx.js @@ -0,0 +1 @@ +import e from"./html.CuK0VrWf.js";import n from"./xml.BzTcx3OS.js";import t from"./css.CbYhyuC0.js";import i from"./javascript.Dch3xQiY.js";import r from"./sql.DbK06e1c.js";import"./java.ClXEvkw9.js";const a=Object.freeze({displayName:"Perl",name:"perl",patterns:[{include:"#line_comment"},{begin:"^(?==[a-zA-Z]+)",end:"^(=cut\\b.*$)",endCaptures:{1:{patterns:[{include:"#pod"}]}},name:"comment.block.documentation.perl",patterns:[{include:"#pod"}]},{include:"#variable"},{applyEndPatternLast:1,begin:"\\b(?=qr\\s*[^\\s\\w])",comment:"string.regexp.compile.perl",end:"((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))",endCaptures:{1:{name:"string.regexp.compile.perl"},2:{name:"punctuation.definition.string.perl"},3:{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(qr)\\s*\\{",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\}",name:"string.regexp.compile.nested_braces.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},{begin:"(qr)\\s*\\[",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\]",name:"string.regexp.compile.nested_brackets.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},{begin:"(qr)\\s*<",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:">",name:"string.regexp.compile.nested_ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_ltgt_interpolated"}]},{begin:"(qr)\\s*\\(",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\)",name:"string.regexp.compile.nested_parens.perl",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\s\\w\\\\'\\{\\[\\(\\<])"},{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},{begin:"(qr)\\s*'",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"'",name:"string.regexp.compile.single-quote.perl",patterns:[{include:"#escaped_char"}]},{begin:"(qr)\\s*([^\\s\\w'\\{\\[\\(\\<])",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\2",name:"string.regexp.compile.simple-delimiter.perl",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\s\\w'\\{\\[\\(\\<])",name:"keyword.control.anchor.perl"},{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]}]},{applyEndPatternLast:1,begin:"(?<!\\{|\\+|\\-)\\b(?=m\\s*[^\\sa-zA-Z0-9])",comment:"string.regexp.find-m.perl",end:"((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))",endCaptures:{1:{name:"string.regexp.find-m.perl"},2:{name:"punctuation.definition.string.perl"},3:{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(m)\\s*\\{",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\}",name:"string.regexp.find-m.nested_braces.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},{begin:"(m)\\s*\\[",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\]",name:"string.regexp.find-m.nested_brackets.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},{begin:"(m)\\s*<",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:">",name:"string.regexp.find-m.nested_ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_ltgt_interpolated"}]},{begin:"(m)\\s*\\(",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\)",name:"string.regexp.find-m.nested_parens.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},{begin:"(m)\\s*'",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"'",name:"string.regexp.find-m.single-quote.perl",patterns:[{include:"#escaped_char"}]},{begin:"\\G(?<!\\{|\\+|\\-)(m)(?!_)\\s*([^\\sa-zA-Z0-9'\\{\\[\\(\\<])",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\2",name:"string.regexp.find-m.simple-delimiter.perl",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\sa-zA-Z0-9'\\{\\[\\(\\<])",name:"keyword.control.anchor.perl"},{include:"#escaped_char"},{include:"#variable"},{begin:"\\[",beginCaptures:{1:{name:"punctuation.definition.character-class.begin.perl"}},end:"\\]",endCaptures:{1:{name:"punctuation.definition.character-class.end.perl"}},name:"constant.other.character-class.set.perl",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\s\\w'\\{\\[\\(\\<])",name:"keyword.control.anchor.perl"},{include:"#escaped_char"}]},{include:"#nested_parens_interpolated"}]}]},{applyEndPatternLast:1,begin:"\\b(?=(?<!\\&)(s)(\\s+\\S|\\s*[;\\,\\{\\}\\(\\)\\[<]|$))",comment:"string.regexp.replace.perl",end:"((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\{\\}\\)\\]>]|\\s*$))",endCaptures:{1:{name:"string.regexp.replace.perl"},2:{name:"punctuation.definition.string.perl"},3:{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(s)\\s*\\{",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\}",name:"string.regexp.nested_braces.perl",patterns:[{include:"#escaped_char"},{include:"#nested_braces"}]},{begin:"(s)\\s*\\[",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\]",name:"string.regexp.nested_brackets.perl",patterns:[{include:"#escaped_char"},{include:"#nested_brackets"}]},{begin:"(s)\\s*<",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:">",name:"string.regexp.nested_ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#nested_ltgt"}]},{begin:"(s)\\s*\\(",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\)",name:"string.regexp.nested_parens.perl",patterns:[{include:"#escaped_char"},{include:"#nested_parens"}]},{begin:"\\{",captures:{0:{name:"punctuation.definition.string.perl"}},end:"\\}",name:"string.regexp.format.nested_braces.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},{begin:"\\[",captures:{0:{name:"punctuation.definition.string.perl"}},end:"\\]",name:"string.regexp.format.nested_brackets.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},{begin:"<",captures:{0:{name:"punctuation.definition.string.perl"}},end:">",name:"string.regexp.format.nested_ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_ltgt_interpolated"}]},{begin:"\\(",captures:{0:{name:"punctuation.definition.string.perl"}},end:"\\)",name:"string.regexp.format.nested_parens.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},{begin:"'",captures:{0:{name:"punctuation.definition.string.perl"}},end:"'",name:"string.regexp.format.single_quote.perl",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.perl"}]},{begin:"([^\\s\\w\\[({<;])",captures:{0:{name:"punctuation.definition.string.perl"}},end:"\\1",name:"string.regexp.format.simple_delimiter.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{match:"\\s+"}]},{begin:"\\b(?=s([^\\sa-zA-Z0-9\\[({<]).*\\1([egimosxradlupcn]*)([\\}\\)\\;\\,]|\\s+))",comment:"string.regexp.replaceXXX",end:"((([egimosxradlupcn]*)))(?=([\\}\\)\\;\\,]|\\s+|\\s*$))",endCaptures:{1:{name:"string.regexp.replace.perl"},2:{name:"punctuation.definition.string.perl"},3:{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(s\\s*)([^\\sa-zA-Z0-9\\[({<])",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"(?=\\2)",name:"string.regexp.replaceXXX.simple_delimiter.perl",patterns:[{include:"#escaped_char"}]},{begin:"'",captures:{0:{name:"punctuation.definition.string.perl"}},end:"'",name:"string.regexp.replaceXXX.format.single_quote.perl",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.perl.perl"}]},{begin:"([^\\sa-zA-Z0-9\\[({<])",captures:{0:{name:"punctuation.definition.string.perl"}},end:"\\1",name:"string.regexp.replaceXXX.format.simple_delimiter.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]}]},{begin:"\\b(?=(?<!\\\\)s\\s*([^\\s\\w\\[({<>]))",comment:"string.regexp.replace.extended",end:"((([egimosradlupc]*x[egimosradlupc]*)))\\b",endCaptures:{1:{name:"string.regexp.replace.perl"},2:{name:"punctuation.definition.string.perl"},3:{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(s)\\s*(.)",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"(?=\\2)",name:"string.regexp.replace.extended.simple_delimiter.perl",patterns:[{include:"#escaped_char"}]},{begin:"'",captures:{0:{name:"punctuation.definition.string.perl"}},end:"'(?=[egimosradlupc]*x[egimosradlupc]*)\\b",name:"string.regexp.replace.extended.simple_delimiter.perl",patterns:[{include:"#escaped_char"}]},{begin:"(.)",captures:{0:{name:"punctuation.definition.string.perl"}},end:"\\1(?=[egimosradlupc]*x[egimosradlupc]*)\\b",name:"string.regexp.replace.extended.simple_delimiter.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]}]},{begin:"(?<=\\(|\\{|~|&|\\||if|unless|^)\\s*((\\/))",beginCaptures:{1:{name:"string.regexp.find.perl"},2:{name:"punctuation.definition.string.perl"}},contentName:"string.regexp.find.perl",end:"((\\1([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))",endCaptures:{1:{name:"string.regexp.find.perl"},2:{name:"punctuation.definition.string.perl"},3:{name:"keyword.control.regexp-option.perl"}},patterns:[{comment:"This is to prevent thinks like /foo$/ to treat $/ as a variable",match:"\\$(?=\\/)",name:"keyword.control.anchor.perl"},{include:"#escaped_char"},{include:"#variable"}]},{captures:{1:{name:"constant.other.key.perl"}},match:"\\b(\\w+)\\s*(?==>)"},{match:"(?<={)\\s*\\w+\\s*(?=})",name:"constant.other.bareword.perl"},{captures:{1:{name:"keyword.control.perl"},2:{name:"entity.name.type.class.perl"}},match:"^\\s*(package)\\s+([^\\s;]+)",name:"meta.class.perl"},{captures:{1:{name:"storage.type.sub.perl"},2:{name:"entity.name.function.perl"},3:{name:"storage.type.method.perl"}},match:"\\b(sub)(?:\\s+([-a-zA-Z0-9_]+))?\\s*(?:\\([\\$\\@\\*;]*\\))?[^\\w\\{]",name:"meta.function.perl"},{captures:{1:{name:"entity.name.function.perl"},2:{name:"punctuation.definition.parameters.perl"},3:{name:"variable.parameter.function.perl"}},match:"^\\s*(BEGIN|UNITCHECK|CHECK|INIT|END|DESTROY)\\b",name:"meta.function.perl"},{begin:"^(?=(\\t| {4}))",end:"(?=[^\\t\\s])",name:"meta.leading-tabs",patterns:[{captures:{1:{name:"meta.odd-tab"},2:{name:"meta.even-tab"}},match:"(\\t| {4})(\\t| {4})?"}]},{captures:{1:{name:"support.function.perl"},2:{name:"punctuation.definition.string.perl"},5:{name:"punctuation.definition.string.perl"},8:{name:"punctuation.definition.string.perl"}},match:"\\b(tr|y)\\s*([^A-Za-z0-9\\s])(.*?)(?<!\\\\)(\\\\{2})*(\\2)(.*?)(?<!\\\\)(\\\\{2})*(\\2)",name:"string.regexp.replace.perl"},{match:"\\b(__FILE__|__LINE__|__PACKAGE__|__SUB__)\\b",name:"constant.language.perl"},{begin:"\\b(__DATA__|__END__)\\n?",beginCaptures:{1:{name:"constant.language.perl"}},contentName:"comment.block.documentation.perl",end:"\\z",patterns:[{include:"#pod"}]},{match:"(?<!->)\\b(continue|default|die|do|else|elsif|exit|for|foreach|given|goto|if|last|next|redo|return|select|unless|until|wait|when|while|switch|case|require|use|eval)\\b",name:"keyword.control.perl"},{match:"\\b(my|our|local)\\b",name:"storage.modifier.perl"},{match:"(?<!\\w)\\-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b",name:"keyword.operator.filetest.perl"},{match:"\\b(and|or|xor|as|not)\\b",name:"keyword.operator.logical.perl"},{match:"(<=>|=>|->)",name:"keyword.operator.comparison.perl"},{include:"#heredoc"},{begin:"\\bqq\\s*([^\\(\\{\\[\\<\\w\\s])",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\1",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"\\bqx\\s*([^'\\(\\{\\[\\<\\w\\s])",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\1",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"\\bqx\\s*'",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx.single-quote.perl",patterns:[{include:"#escaped_char"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.double.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"(?<!->)\\bqw?\\s*([^\\(\\{\\[\\<\\w\\s])",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\1",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q.perl"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.single.perl",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.perl"}]},{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"(?<!->)\\bqq\\s*\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq-paren.perl",patterns:[{include:"#escaped_char"},{include:"#nested_parens_interpolated"},{include:"#variable"}]},{begin:"\\bqq\\s*\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq-brace.perl",patterns:[{include:"#escaped_char"},{include:"#nested_braces_interpolated"},{include:"#variable"}]},{begin:"\\bqq\\s*\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq-bracket.perl",patterns:[{include:"#escaped_char"},{include:"#nested_brackets_interpolated"},{include:"#variable"}]},{begin:"\\bqq\\s*\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq-ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#nested_ltgt_interpolated"},{include:"#variable"}]},{begin:"(?<!->)\\bqx\\s*\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx-paren.perl",patterns:[{include:"#escaped_char"},{include:"#nested_parens_interpolated"},{include:"#variable"}]},{begin:"\\bqx\\s*\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx-brace.perl",patterns:[{include:"#escaped_char"},{include:"#nested_braces_interpolated"},{include:"#variable"}]},{begin:"\\bqx\\s*\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx-bracket.perl",patterns:[{include:"#escaped_char"},{include:"#nested_brackets_interpolated"},{include:"#variable"}]},{begin:"\\bqx\\s*\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx-ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#nested_ltgt_interpolated"},{include:"#variable"}]},{begin:"(?<!->)\\bqw?\\s*\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q-paren.perl",patterns:[{include:"#nested_parens"}]},{begin:"\\bqw?\\s*\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q-brace.perl",patterns:[{include:"#nested_braces"}]},{begin:"\\bqw?\\s*\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q-bracket.perl",patterns:[{include:"#nested_brackets"}]},{begin:"\\bqw?\\s*\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q-ltgt.perl",patterns:[{include:"#nested_ltgt"}]},{begin:"^__\\w+__",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"$",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.unquoted.program-block.perl"},{begin:"\\b(format)\\s+(\\w+)\\s*=",beginCaptures:{1:{name:"support.function.perl"},2:{name:"entity.name.function.format.perl"}},end:"^\\.\\s*$",name:"meta.format.perl",patterns:[{include:"#line_comment"},{include:"#variable"}]},{captures:{1:{name:"support.function.perl"},2:{name:"entity.name.function.perl"}},match:"\\b(x)\\s*(\\d+)\\b"},{match:"\\b(ARGV|DATA|ENV|SIG|STDERR|STDIN|STDOUT|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|cmp|connect|cos|crypt|dbmclose|dbmopen|defined|delete|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eq|eval|exec|exists|exp|fcntl|fileno|flock|fork|formline|ge|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|gt|hex|import|index|int|ioctl|join|keys|kill|lc|lcfirst|le|length|link|listen|local|localtime|log|lstat|lt|m|map|mkdir|msgctl|msgget|msgrcv|msgsnd|ne|no|oct|open|opendir|ord|pack|pipe|pop|pos|print|printf|push|quotemeta|rand|read|readdir|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|s|say|scalar|seek|seekdir|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|waitpid|wantarray|warn|write|y)\\b",name:"support.function.perl"},{captures:{1:{name:"punctuation.section.scope.begin.perl"},2:{name:"punctuation.section.scope.end.perl"}},comment:"Match empty brackets for ↩ snippet",match:"(\\{)(\\})"},{captures:{1:{name:"punctuation.section.scope.begin.perl"},2:{name:"punctuation.section.scope.end.perl"}},comment:"Match empty parenthesis for ↩ snippet",match:"(\\()(\\))"}],repository:{escaped_char:{patterns:[{match:"\\\\\\d+",name:"constant.character.escape.perl"},{match:"\\\\c[^\\s\\\\]",name:"constant.character.escape.perl"},{match:"\\\\g(?:\\{(?:\\w*|-\\d+)\\}|\\d+)",name:"constant.character.escape.perl"},{match:"\\\\k(?:\\{\\w*\\}|<\\w*>|'\\w*')",name:"constant.character.escape.perl"},{match:"\\\\N\\{[^\\}]*\\}",name:"constant.character.escape.perl"},{match:"\\\\o\\{\\d*\\}",name:"constant.character.escape.perl"},{match:"\\\\(?:p|P)(?:\\{\\w*\\}|P)",name:"constant.character.escape.perl"},{match:"\\\\x(?:[0-9a-zA-Z]{2}|\\{\\w*\\})?",name:"constant.character.escape.perl"},{match:"\\\\.",name:"constant.character.escape.perl"}]},heredoc:{patterns:[{begin:"((((<<(~)?) *')(HTML)(')))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.html",patterns:[{begin:"^",end:"\\n",name:"text.html.basic",patterns:[{include:"text.html.basic"}]}]},{begin:"((((<<(~)?) *')(XML)(')))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.xml",patterns:[{begin:"^",end:"\\n",name:"text.xml",patterns:[{include:"text.xml"}]}]},{begin:"((((<<(~)?) *')(CSS)(')))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.css",patterns:[{begin:"^",end:"\\n",name:"source.css",patterns:[{include:"source.css"}]}]},{begin:"((((<<(~)?) *')(JAVASCRIPT)(')))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.js",patterns:[{begin:"^",end:"\\n",name:"source.js",patterns:[{include:"source.js"}]}]},{begin:"((((<<(~)?) *')(SQL)(')))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.sql",patterns:[{begin:"^",end:"\\n",name:"source.sql",patterns:[{include:"source.sql"}]}]},{begin:"((((<<(~)?) *')(POSTSCRIPT)(')))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.postscript",patterns:[{begin:"^",end:"\\n",name:"source.postscript",patterns:[{include:"source.postscript"}]}]},{begin:"((((<<(~)?) *')([^']*)(')))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}}},{begin:"((((<<(~)?) *\\\\)((?![=\\d\\$\\( ])[^;,'\"`\\s\\)]*)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}}},{begin:'((((<<(~)?) *")(HTML)(")))(.*)\\n?',beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.html",patterns:[{begin:"^",end:"\\n",name:"text.html.basic",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"text.html.basic"}]}]},{begin:'((((<<(~)?) *")(XML)(")))(.*)\\n?',beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.xml",patterns:[{begin:"^",end:"\\n",name:"text.xml",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"text.xml"}]}]},{begin:'((((<<(~)?) *")(CSS)(")))(.*)\\n?',beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.css",patterns:[{begin:"^",end:"\\n",name:"source.css",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.css"}]}]},{begin:'((((<<(~)?) *")(JAVASCRIPT)(")))(.*)\\n?',beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.js",patterns:[{begin:"^",end:"\\n",name:"source.js",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.js"}]}]},{begin:'((((<<(~)?) *")(SQL)(")))(.*)\\n?',beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.sql",patterns:[{begin:"^",end:"\\n",name:"source.sql",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.sql"}]}]},{begin:'((((<<(~)?) *")(POSTSCRIPT)(")))(.*)\\n?',beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.postscript",patterns:[{begin:"^",end:"\\n",name:"source.postscript",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.postscript"}]}]},{begin:'((((<<(~)?) *")([^"]*)(")))(.*)\\n?',beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"((((<<(~)?) *)(HTML)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.html",patterns:[{begin:"^",end:"\\n",name:"text.html.basic",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"text.html.basic"}]}]},{begin:"((((<<(~)?) *)(XML)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.xml",patterns:[{begin:"^",end:"\\n",name:"text.xml",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"text.xml"}]}]},{begin:"((((<<(~)?) *)(CSS)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.css",patterns:[{begin:"^",end:"\\n",name:"source.css",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.css"}]}]},{begin:"((((<<(~)?) *)(JAVASCRIPT)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.js",patterns:[{begin:"^",end:"\\n",name:"source.js",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.js"}]}]},{begin:"((((<<(~)?) *)(SQL)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.sql",patterns:[{begin:"^",end:"\\n",name:"source.sql",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.sql"}]}]},{begin:"((((<<(~)?) *)(POSTSCRIPT)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.postscript",patterns:[{begin:"^",end:"\\n",name:"source.postscript",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.postscript"}]}]},{begin:"((((<<(~)?) *)((?![=\\d\\$\\( ])[^;,'\"`\\s\\)]*)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"((((<<(~)?) *`)([^`]*)(`)))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.shell.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},patterns:[{include:"#escaped_char"},{include:"#variable"}]}]},line_comment:{patterns:[{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.perl"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.perl"}},end:"\\n",name:"comment.line.number-sign.perl"}]}]},nested_braces:{begin:"\\{",captures:{1:{name:"punctuation.section.scope.perl"}},end:"\\}",patterns:[{include:"#escaped_char"},{include:"#nested_braces"}]},nested_braces_interpolated:{begin:"\\{",captures:{1:{name:"punctuation.section.scope.perl"}},end:"\\}",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},nested_brackets:{begin:"\\[",captures:{1:{name:"punctuation.section.scope.perl"}},end:"\\]",patterns:[{include:"#escaped_char"},{include:"#nested_brackets"}]},nested_brackets_interpolated:{begin:"\\[",captures:{1:{name:"punctuation.section.scope.perl"}},end:"\\]",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},nested_ltgt:{begin:"<",captures:{1:{name:"punctuation.section.scope.perl"}},end:">",patterns:[{include:"#nested_ltgt"}]},nested_ltgt_interpolated:{begin:"<",captures:{1:{name:"punctuation.section.scope.perl"}},end:">",patterns:[{include:"#variable"},{include:"#nested_ltgt_interpolated"}]},nested_parens:{begin:"\\(",captures:{1:{name:"punctuation.section.scope.perl"}},end:"\\)",patterns:[{include:"#escaped_char"},{include:"#nested_parens"}]},nested_parens_interpolated:{begin:"\\(",captures:{1:{name:"punctuation.section.scope.perl"}},end:"\\)",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\s\\w'\\{\\[\\(\\<])",name:"keyword.control.anchor.perl"},{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},pod:{patterns:[{match:"^=(pod|back|cut)\\b",name:"storage.type.class.pod.perl"},{begin:"^(=begin)\\s+(html)\\s*$",beginCaptures:{1:{name:"storage.type.class.pod.perl"},2:{name:"variable.other.pod.perl"}},contentName:"text.embedded.html.basic",end:"^(=end)\\s+(html)|^(?==cut)",endCaptures:{1:{name:"storage.type.class.pod.perl"},2:{name:"variable.other.pod.perl"}},name:"meta.embedded.pod.perl",patterns:[{include:"text.html.basic"}]},{captures:{1:{name:"storage.type.class.pod.perl"},2:{name:"variable.other.pod.perl",patterns:[{include:"#pod-formatting"}]}},match:"^(=(?:head[1-4]|item|over|encoding|begin|end|for))\\b\\s*(.*)"},{include:"#pod-formatting"}]},"pod-formatting":{patterns:[{captures:{1:{name:"markup.italic.pod.perl"},2:{name:"markup.italic.pod.perl"}},match:"I(?:<([^<>]+)>|<+(\\s+(?:(?<!\\s)>|[^>])+\\s+)>+)",name:"entity.name.type.instance.pod.perl"},{captures:{1:{name:"markup.bold.pod.perl"},2:{name:"markup.bold.pod.perl"}},match:"B(?:<([^<>]+)>|<+(\\s+(?:(?<!\\s)>|[^>])+\\s+)>+)",name:"entity.name.type.instance.pod.perl"},{captures:{1:{name:"markup.raw.pod.perl"},2:{name:"markup.raw.pod.perl"}},match:"C(?:<([^<>]+)>|<+(\\\\s+(?:(?<!\\\\s)>|[^>])+\\\\s+)>+)",name:"entity.name.type.instance.pod.perl"},{captures:{1:{name:"markup.underline.link.hyperlink.pod.perl"}},match:"L<([^>]+)>",name:"entity.name.type.instance.pod.perl"},{match:"[EFSXZ]<[^>]*>",name:"entity.name.type.instance.pod.perl"}]},variable:{patterns:[{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"(\\$)&(?![A-Za-z0-9_])",name:"variable.other.regexp.match.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"(\\$)`(?![A-Za-z0-9_])",name:"variable.other.regexp.pre-match.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"(\\$)'(?![A-Za-z0-9_])",name:"variable.other.regexp.post-match.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"(\\$)\\+(?![A-Za-z0-9_])",name:"variable.other.regexp.last-paren-match.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:'(\\$)"(?![A-Za-z0-9_])',name:"variable.other.readwrite.list-separator.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"(\\$)0(?![A-Za-z0-9_])",name:"variable.other.predefined.program-name.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"(\\$)[_ab\\*\\.\\/\\|,\\\\;#%=\\-~^:?!\\$<>\\(\\)\\[\\]@](?![A-Za-z0-9_])",name:"variable.other.predefined.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"(\\$)[0-9]+(?![A-Za-z0-9_])",name:"variable.other.subpattern.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"([\\$\\@\\%](#)?)([a-zA-Zx7f-xff\\$]|::)([a-zA-Z0-9_x7f-xff\\$]|::)*\\b",name:"variable.other.readwrite.global.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"},2:{name:"punctuation.definition.variable.perl"}},match:"(\\$\\{)(?:[a-zA-Zx7f-xff\\$]|::)(?:[a-zA-Z0-9_x7f-xff\\$]|::)*(\\})",name:"variable.other.readwrite.global.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"([\\$\\@\\%](#)?)[0-9_]\\b",name:"variable.other.readwrite.global.special.perl"}]}},scopeName:"source.perl",embeddedLangs:["html","xml","css","javascript","sql"]});var u=[...e,...n,...t,...i,...r,a];export{u as default}; diff --git a/assets/chunks/php.DEqKwr-6.js b/assets/chunks/php.DEqKwr-6.js new file mode 100644 index 000000000..7d8c9af34 --- /dev/null +++ b/assets/chunks/php.DEqKwr-6.js @@ -0,0 +1,771 @@ +import e from"./html.CuK0VrWf.js";import n from"./xml.BzTcx3OS.js";import t from"./sql.DbK06e1c.js";import a from"./javascript.Dch3xQiY.js";import r from"./json.CupVZNk8.js";import i from"./css.CbYhyuC0.js";import"./java.ClXEvkw9.js";const p=Object.freeze({displayName:"PHP",name:"php",patterns:[{include:"#attribute"},{include:"#comments"},{captures:{1:{name:"keyword.other.namespace.php"},2:{name:"entity.name.type.namespace.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]}},match:"(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+([a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)(?=\\s*;)",name:"meta.namespace.php"},{begin:"(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+",beginCaptures:{1:{name:"keyword.other.namespace.php"}},end:"(?<=})|(?=\\?>)",name:"meta.namespace.php",patterns:[{include:"#comments"},{captures:{0:{patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]}},match:"(?i)[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+",name:"entity.name.type.namespace.php"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.namespace.begin.bracket.curly.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.namespace.end.bracket.curly.php"}},patterns:[{include:"$self"}]},{match:"[^\\s]+",name:"invalid.illegal.identifier.php"}]},{match:"\\s+(?=use\\b)"},{begin:"(?i)\\buse\\b",beginCaptures:{0:{name:"keyword.other.use.php"}},end:"(?<=})|(?=;)|(?=\\?>)",name:"meta.use.php",patterns:[{match:"\\b(const|function)\\b",name:"storage.type.${1:/downcase}.php"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.use.begin.bracket.curly.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.use.end.bracket.curly.php"}},patterns:[{include:"#scope-resolution"},{captures:{1:{name:"keyword.other.use-as.php"},2:{name:"storage.modifier.php"},3:{name:"entity.other.alias.php"}},match:`(?xi) +\\b(as) +\\s+(final|abstract|public|private|protected|static) +\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)`},{captures:{1:{name:"keyword.other.use-as.php"},2:{patterns:[{match:"^(?:final|abstract|public|private|protected|static)$",name:"storage.modifier.php"},{match:".+",name:"entity.other.alias.php"}]}},match:`(?xi) +\\b(as) +\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)`},{captures:{1:{name:"keyword.other.use-insteadof.php"},2:{name:"support.class.php"}},match:"(?i)\\b(insteadof)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)"},{match:";",name:"punctuation.terminator.expression.php"},{include:"#use-inner"}]},{include:"#use-inner"}]},{begin:`(?ix) +\\b(trait)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)`,beginCaptures:{1:{name:"storage.type.trait.php"},2:{name:"entity.name.type.trait.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.trait.end.bracket.curly.php"}},name:"meta.trait.php",patterns:[{include:"#comments"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.trait.begin.bracket.curly.php"}},contentName:"meta.trait.body.php",end:"(?=}|\\?>)",patterns:[{include:"$self"}]}]},{begin:`(?ix) +\\b(interface)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)`,beginCaptures:{1:{name:"storage.type.interface.php"},2:{name:"entity.name.type.interface.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.interface.end.bracket.curly.php"}},name:"meta.interface.php",patterns:[{include:"#comments"},{include:"#interface-extends"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.interface.begin.bracket.curly.php"}},contentName:"meta.interface.body.php",end:"(?=}|\\?>)",patterns:[{include:"#class-constant"},{include:"$self"}]}]},{begin:`(?ix) +\\b(enum)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) +(?: \\s* (:) \\s* (int | string) \\b )?`,beginCaptures:{1:{name:"storage.type.enum.php"},2:{name:"entity.name.type.enum.php"},3:{name:"keyword.operator.return-value.php"},4:{name:"keyword.other.type.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.enum.end.bracket.curly.php"}},name:"meta.enum.php",patterns:[{include:"#comments"},{include:"#class-implements"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.enum.begin.bracket.curly.php"}},contentName:"meta.enum.body.php",end:"(?=}|\\?>)",patterns:[{captures:{1:{name:"storage.modifier.php"},2:{name:"constant.enum.php"}},match:"(?i)\\b(case)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)"},{include:"#class-constant"},{include:"$self"}]}]},{begin:`(?ix) +(?: +\\b((?:(?:final|abstract|readonly)\\s+)*)(class)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) +|\\b(new)\\b\\s*(\\#\\[.*\\])?\\s*(?:(readonly)\\s+)?\\b(class)\\b +)`,beginCaptures:{1:{patterns:[{match:"final|abstract",name:"storage.modifier.${0:/downcase}.php"},{match:"readonly",name:"storage.modifier.php"}]},2:{name:"storage.type.class.php"},3:{name:"entity.name.type.class.php"},4:{name:"keyword.other.new.php"},5:{patterns:[{include:"#attribute"}]},6:{name:"storage.modifier.php"},7:{name:"storage.type.class.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.class.end.bracket.curly.php"}},name:"meta.class.php",patterns:[{begin:"(?<=class)\\s*(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{include:"#comments"},{include:"#class-extends"},{include:"#class-implements"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.class.begin.bracket.curly.php"}},contentName:"meta.class.body.php",end:"(?=}|\\?>)",patterns:[{include:"#class-constant"},{include:"$self"}]}]},{include:"#match_statement"},{include:"#switch_statement"},{captures:{1:{name:"keyword.control.yield-from.php"}},match:"\\s*\\b(yield\\s+from)\\b"},{captures:{1:{name:"keyword.control.${1:/downcase}.php"}},match:`(?x) +\\b( +break|case|continue|declare|default|die|do| +else(if)?|end(declare|for(each)?|if|switch|while)|exit| +for(each)?|if|return|switch|use|while|yield +)\\b`},{begin:"(?i)\\b((?:require|include)(?:_once)?)(\\s+|(?=\\())",beginCaptures:{1:{name:"keyword.control.import.include.php"}},end:"(?=\\s|;|$|\\?>)",name:"meta.include.php",patterns:[{include:"$self"}]},{begin:"\\b(catch)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.exception.catch.php"},2:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},name:"meta.catch.php",patterns:[{captures:{1:{patterns:[{match:"\\|",name:"punctuation.separator.delimiter.php"},{begin:"(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])",end:`(?xi) +( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* ) +(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])`,endCaptures:{1:{name:"support.class.exception.php"}},patterns:[{include:"#namespace"}]}]},2:{name:"variable.other.php"},3:{name:"punctuation.definition.variable.php"}},match:`(?xi) +([a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ (?: \\s*\\|\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)*) +\\s* +((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?`}]},{match:"\\b(catch|try|throw|exception|finally)\\b",name:"keyword.control.exception.php"},{begin:"(?i)\\b(function)\\s*(?=&?\\s*\\()",beginCaptures:{1:{name:"storage.type.function.php"}},end:"(?=\\s*{)",name:"meta.function.closure.php",patterns:[{include:"#comments"},{begin:"(&)?\\s*(\\()",beginCaptures:{1:{name:"storage.modifier.reference.php"},2:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},patterns:[{include:"#function-parameters"}]},{begin:"(?i)(use)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.function.use.php"},2:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},name:"meta.function.closure.use.php",patterns:[{match:",",name:"punctuation.separator.delimiter.php"},{captures:{1:{name:"variable.other.php"},2:{name:"storage.modifier.reference.php"},3:{name:"punctuation.definition.variable.php"}},match:"(?i)((?:(&)\\s*)?(\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(?=,|\\))"}]},{captures:{1:{name:"keyword.operator.return-value.php"},2:{patterns:[{include:"#php-types"}]}},match:`(?xi) +(:)\\s* +( + +(?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | + +(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) ) +(?: \\s*[|&]\\s* +(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) ) +)+ +) +(?=\\s*(?:{|/[/*]|\\#|$))`}]},{begin:"(?i)\\b(fn)\\s*(?=&?\\s*\\()",beginCaptures:{1:{name:"storage.type.function.php"}},end:"=>",endCaptures:{0:{name:"punctuation.definition.arrow.php"}},name:"meta.function.closure.php",patterns:[{begin:"(?:(&)\\s*)?(\\()",beginCaptures:{1:{name:"storage.modifier.reference.php"},2:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},patterns:[{include:"#function-parameters"}]},{captures:{1:{name:"keyword.operator.return-value.php"},2:{patterns:[{include:"#php-types"}]}},match:`(?xi) +(:)\\s* +( + +(?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | + +(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) ) +(?: \\s*[|&]\\s* +(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) ) +)+ +) +(?=\\s*(?:=>|/[/*]|\\#|$))`}]},{begin:`(?x) +((?:(?:final|abstract|public|private|protected)\\s+)*) +(function)\\s+(__construct) +\\s*(\\()`,beginCaptures:{1:{patterns:[{match:"final|abstract|public|private|protected",name:"storage.modifier.php"}]},2:{name:"storage.type.function.php"},3:{name:"support.function.constructor.php"},4:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:`(?xi) +(\\)) \\s* ( : \\s* +(?:\\?\\s*)? (?!\\s) [a-z0-9_\\x{7f}-\\x{10ffff}\\\\\\s\\|&()]+ (?<!\\s) +)? +(?=\\s*(?:{|/[/*]|\\#|$|;))`,endCaptures:{1:{name:"punctuation.definition.parameters.end.bracket.round.php"},2:{name:"invalid.illegal.return-type.php"}},name:"meta.function.php",patterns:[{include:"#comments"},{match:",",name:"punctuation.separator.delimiter.php"},{begin:`(?xi) +((?:(?:public|private|protected|readonly)(?:\\s+|(?=\\?)))++) +(?: ( + +(?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | + +(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) ) +(?: \\s*[|&]\\s* +(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) ) +)+ +) \\s+ )? +((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)`,beginCaptures:{1:{patterns:[{match:"public|private|protected|readonly",name:"storage.modifier.php"}]},2:{patterns:[{include:"#php-types"}]},3:{name:"variable.other.php"},4:{name:"storage.modifier.reference.php"},5:{name:"punctuation.definition.variable.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",name:"meta.function.parameter.promoted-property.php",patterns:[{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",patterns:[{include:"#parameter-default-types"}]}]},{include:"#function-parameters"}]},{begin:`(?x) +((?:(?:final|abstract|public|private|protected|static)\\s+)*) +(function)\\s+ +(?i: +(__(?:call|construct|debugInfo|destruct|get|set|isset|unset|toString| +clone|set_state|sleep|wakeup|autoload|invoke|callStatic|serialize|unserialize)) +|(?:(&)?\\s*([a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*)) +) +\\s*(\\()`,beginCaptures:{1:{patterns:[{match:"final|abstract|public|private|protected|static",name:"storage.modifier.php"}]},2:{name:"storage.type.function.php"},3:{name:"support.function.magic.php"},4:{name:"storage.modifier.reference.php"},5:{name:"entity.name.function.php"},6:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:`(?xi) +(\\)) (?: \\s* (:) \\s* ( + +(?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | + +(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) ) +(?: \\s*[|&]\\s* +(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) ) +)+ +) )? +(?=\\s*(?:{|/[/*]|\\#|$|;))`,endCaptures:{1:{name:"punctuation.definition.parameters.end.bracket.round.php"},2:{name:"keyword.operator.return-value.php"},3:{patterns:[{match:"\\b(static)\\b",name:"storage.type.php"},{match:"\\b(never)\\b",name:"keyword.other.type.never.php"},{include:"#php-types"}]}},name:"meta.function.php",patterns:[{include:"#function-parameters"}]},{captures:{1:{patterns:[{match:"public|private|protected|static|readonly",name:"storage.modifier.php"}]},2:{patterns:[{include:"#php-types"}]},3:{name:"variable.other.php"},4:{name:"punctuation.definition.variable.php"}},match:`(?xi) +((?:(?:public|private|protected|static|readonly)(?:\\s+|(?=\\?)))++) +( + +(?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | + +(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) ) +(?: \\s*[|&]\\s* +(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) ) +)+ +)? +\\s+ ((\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)`},{include:"#invoke-call"},{include:"#scope-resolution"},{include:"#variables"},{include:"#strings"},{captures:{1:{name:"support.function.construct.php"},2:{name:"punctuation.definition.array.begin.bracket.round.php"},3:{name:"punctuation.definition.array.end.bracket.round.php"}},match:"(array)(\\()(\\))",name:"meta.array.empty.php"},{begin:"(array)\\s*(\\()",beginCaptures:{1:{name:"support.function.construct.php"},2:{name:"punctuation.definition.array.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.array.php",patterns:[{include:"$self"}]},{captures:{1:{name:"punctuation.definition.storage-type.begin.bracket.round.php"},2:{name:"storage.type.php"},3:{name:"punctuation.definition.storage-type.end.bracket.round.php"}},match:"(?i)(\\()\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\s*(\\))"},{match:"(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object|mixed)\\b",name:"storage.type.php"},{match:"(?i)\\b(global|abstract|const|final|private|protected|public|static)\\b",name:"storage.modifier.php"},{include:"#object"},{match:";",name:"punctuation.terminator.expression.php"},{match:":",name:"punctuation.terminator.statement.php"},{include:"#heredoc"},{include:"#numbers"},{match:"(?i)\\bclone\\b",name:"keyword.other.clone.php"},{match:"\\.\\.\\.",name:"keyword.operator.spread.php"},{match:"\\.=?",name:"keyword.operator.string.php"},{match:"=>",name:"keyword.operator.key.php"},{captures:{1:{name:"keyword.operator.assignment.php"},2:{name:"storage.modifier.reference.php"},3:{name:"storage.modifier.reference.php"}},match:"(?i)(\\=)(&)|(&)(?=[$a-z_])"},{match:"@",name:"keyword.operator.error-control.php"},{match:"===|==|!==|!=|<>",name:"keyword.operator.comparison.php"},{match:"=|\\+=|\\-=|\\*\\*?=|/=|%=|&=|\\|=|\\^=|<<=|>>=|\\?\\?=",name:"keyword.operator.assignment.php"},{match:"<=>|<=|>=|<|>",name:"keyword.operator.comparison.php"},{match:"\\-\\-|\\+\\+",name:"keyword.operator.increment-decrement.php"},{match:"\\-|\\+|\\*\\*?|/|%",name:"keyword.operator.arithmetic.php"},{match:"(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b",name:"keyword.operator.logical.php"},{include:"#function-call"},{match:"<<|>>|~|\\^|&|\\|",name:"keyword.operator.bitwise.php"},{begin:"(?i)\\b(instanceof)\\s+(?=[\\\\$a-z_])",beginCaptures:{1:{name:"keyword.operator.type.php"}},end:"(?i)(?=[^\\\\$a-z0-9_\\x{7f}-\\x{10ffff}])",patterns:[{include:"#class-name"},{include:"#variable-name"}]},{include:"#instantiation"},{captures:{1:{name:"keyword.control.goto.php"},2:{name:"support.other.php"}},match:"(?i)(goto)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)"},{captures:{1:{name:"entity.name.goto-label.php"}},match:"(?i)^\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*(?<!default))\\s*:(?!:)"},{include:"#string-backtick"},{include:"#ternary_shorthand"},{include:"#null_coalescing"},{include:"#ternary_expression"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.curly.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.end.bracket.curly.php"}},patterns:[{include:"$self"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.array.begin.php"}},end:"\\]|(?=\\?>)",endCaptures:{0:{name:"punctuation.section.array.end.php"}},patterns:[{include:"$self"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.php"}},patterns:[{include:"$self"}]},{include:"#constants"},{match:",",name:"punctuation.separator.delimiter.php"}],repository:{attribute:{begin:"\\#\\[",end:"\\]",name:"meta.attribute.php",patterns:[{match:",",name:"punctuation.separator.delimiter.php"},{begin:"([a-zA-Z0-9_\\x{7f}-\\x{10ffff}\\\\]+)\\s*(\\()",beginCaptures:{1:{patterns:[{include:"#attribute-name"}]},2:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},patterns:[{include:"#named-arguments"},{include:"$self"}]},{include:"#attribute-name"}]},"attribute-name":{patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",end:`(?xi) +( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )? +(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])`,endCaptures:{1:{name:"support.attribute.php"}},patterns:[{include:"#namespace"}]},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:`(?xi) +(\\\\)?\\b(Attribute|SensitiveParameter|AllowDynamicProperties|ReturnTypeWillChange)\\b`,name:"support.attribute.builtin.php"},{begin:"(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])",end:`(?xi) +( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )? +(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])`,endCaptures:{1:{name:"support.attribute.php"}},patterns:[{include:"#namespace"}]}]},"class-builtin":{patterns:[{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:`(?xi) +(\\\\)?\\b +(Attribute|(APC|Append)Iterator|Array(Access|Iterator|Object) +|Bad(Function|Method)CallException +|(Caching|CallbackFilter)Iterator|Collator|Collectable|Cond|Countable|CURLFile +|Date(Interval|Period|Time(Interface|Immutable|Zone)?)?|Directory(Iterator)?|DomainException +|DOM(Attr|CdataSection|CharacterData|Comment|Document(Fragment)?|Element|EntityReference +|Implementation|NamedNodeMap|Node(list)?|ProcessingInstruction|Text|XPath) +|(Error)?Exception|EmptyIterator +|finfo +|Ev(Check|Child|Embed|Fork|Idle|Io|Loop|Periodic|Prepare|Signal|Stat|Timer|Watcher)? +|Event(Base|Buffer(Event)?|SslContext|Http(Request|Connection)?|Config|DnsBase|Util|Listener)? +|FANNConnection|(Filter|Filesystem)Iterator +|Gender\\\\Gender|GlobIterator|Gmagick(Draw|Pixel)? +|Haru(Annotation|Destination|Doc|Encoder|Font|Image|Outline|Page) +|Http((Inflate|Deflate)?Stream|Message|Request(Pool)?|Response|QueryString) +|HRTime\\\\(PerformanceCounter|StopWatch) +|Intl(Calendar|((CodePoint|RuleBased)?Break|Parts)?Iterator|DateFormatter|TimeZone) +|Imagick(Draw|Pixel(Iterator)?)? +|InfiniteIterator|InvalidArgumentException|Iterator(Aggregate|Iterator)? +|JsonSerializable +|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|(AttachedPicture)?Frame)) +|Lapack|(Length|Locale|Logic)Exception|LimitIterator|Lua(Closure)? +|Mongo(BinData|Client|Code|Collection|CommandCursor|Cursor(Exception)?|Date|DB(Ref)?|DeleteBatch +|Grid(FS(Cursor|File)?)|Id|InsertBatch|Int(32|64)|Log|Pool|Regex|ResultException|Timestamp +|UpdateBatch|Write(Batch|ConcernException))? +|Memcache(d)?|MessageFormatter|MultipleIterator|Mutex +|mysqli(_(driver|stmt|warning|result))? +|MysqlndUh(Connection|PreparedStatement) +|NoRewindIterator|Normalizer|NumberFormatter +|OCI-(Collection|Lob)|OuterIterator|(OutOf(Bounds|Range)|Overflow)Exception +|ParentIterator|PDO(Statement)?|Phar(Data|FileInfo)?|php_user_filter|Pool +|QuickHash(Int(Set|StringHash)|StringIntHash) +|Recursive(Array|Caching|Directory|Fallback|Filter|Iterator|Regex|Tree)?Iterator +|Reflection(Class|Function(Abstract)?|Method|Object|Parameter|Property|(Zend)?Extension)? +|RangeException|Reflector|RegexIterator|ResourceBundle|RuntimeException|RRD(Creator|Graph|Updater) +|SAM(Connection|Message)|SCA(_(SoapProxy|LocalProxy))? +|SDO_(DAS_(ChangeSummary|Data(Factory|Object)|Relational|Setting|XML(_Document)?) +|Data(Factory|Object)|Exception|List|Model_(Property|ReflectionDataObject|Type)|Sequence) +|SeekableIterator|Serializable|SessionHandler(Interface)?|SimpleXML(Iterator|Element)|SNMP +|Soap(Client|Fault|Header|Param|Server|Var) +|SphinxClient|Spoofchecker +|Spl(DoublyLinkedList|Enum|File(Info|Object)|FixedArray|(Max|Min)?Heap|Observer|ObjectStorage +|(Priority)?Queue|Stack|Subject|Type|TempFileObject) +|SQLite(3(Result|Stmt)?|Database|Result|Unbuffered) +|stdClass|streamWrapper|SVM(Model)?|Swish(Result(s)?|Search)?|Sync(Event|Mutex|ReaderWriter|Semaphore) +|Thread(ed)?|tidy(Node)?|TokyoTyrant(Table|Iterator|Query)?|Transliterator|Traversable +|UConverter|(Underflow|UnexpectedValue)Exception +|V8Js(Exception)?|Varnish(Admin|Log|Stat) +|Worker|Weak(Map|Ref) +|XML(Diff\\\\(Base|DOM|File|Memory)|Reader|Writer)|XsltProcessor +|Yaf_(Route_(Interface|Map|Regex|Rewrite|Simple|Supervar) +|Action_Abstract|Application|Config_(Simple|Ini|Abstract)|Controller_Abstract +|Dispatcher|Exception|Loader|Plugin_Abstract|Registry|Request_(Abstract|Simple|Http) +|Response_Abstract|Router|Session|View_(Simple|Interface)) +|Yar_(Client(_Exception)?|Concurrent_Client|Server(_Exception)?) +|ZipArchive|ZMQ(Context|Device|Poll|Socket)?) +\\b`,name:"support.class.builtin.php"}]},"class-constant":{patterns:[{captures:{1:{name:"storage.modifier.php"},2:{name:"constant.other.php"}},match:"(?i)\\b(const)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)"}]},"class-extends":{patterns:[{begin:"(?i)(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.extends.php"}},end:"(?i)(?=[^A-Za-z0-9_\\x{7f}-\\x{10ffff}\\\\])",patterns:[{include:"#comments"},{include:"#inheritance-single"}]}]},"class-implements":{patterns:[{begin:"(?i)(implements)\\s+",beginCaptures:{1:{name:"storage.modifier.implements.php"}},end:"(?i)(?={)",patterns:[{include:"#comments"},{match:",",name:"punctuation.separator.classes.php"},{include:"#inheritance-single"}]}]},"class-name":{patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",end:`(?xi) +( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )? +(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])`,endCaptures:{1:{name:"support.class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{begin:"(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])",end:`(?xi) +( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )? +(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])`,endCaptures:{1:{name:"support.class.php"}},patterns:[{include:"#namespace"}]}]},comments:{patterns:[{begin:"/\\*\\*(?=\\s)",beginCaptures:{0:{name:"punctuation.definition.comment.php"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.php"}},name:"comment.block.documentation.phpdoc.php",patterns:[{include:"#php_doc"}]},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.php"}},end:"\\*/",name:"comment.block.php"},{begin:"(^\\s+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.php"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.php"}},end:"\\n|(?=\\?>)",name:"comment.line.double-slash.php"}]},{begin:"(^\\s+)?(?=#)(?!#\\[)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.php"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.php"}},end:"\\n|(?=\\?>)",name:"comment.line.number-sign.php"}]}]},constants:{patterns:[{match:"(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b",name:"constant.language.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:`(?x) +(\\\\)?\\b +(DEFAULT_INCLUDE_PATH +|EAR_(INSTALL|EXTENSION)_DIR +|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|DEPRECATED|ERROR|NOTICE +|PARSE|RECOVERABLE_ERROR|STRICT|USER_(DEPRECATED|ERROR|NOTICE|WARNING)|WARNING) +|PHP_(ROUND_HALF_(DOWN|EVEN|ODD|UP)|(MAJOR|MINOR|RELEASE)_VERSION|MAXPATHLEN +|BINDIR|SHLIB_SUFFIX|SYSCONFDIR|SAPI|CONFIG_FILE_(PATH|SCAN_DIR) +|INT_(MAX|SIZE)|ZTS|OS|OUTPUT_HANDLER_(START|CONT|END)|DEBUG|DATADIR +|URL_(SCHEME|HOST|USER|PORT|PASS|PATH|QUERY|FRAGMENT)|PREFIX +|EXTRA_VERSION|EXTENSION_DIR|EOL|VERSION(_ID)? +|WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION) +|VERSION_(MAJOR|MINOR)|BUILD|SUITEMASK|SP_(MAJOR|MINOR) +|PRODUCTTYPE|PLATFORM) +|LIBDIR|LOCALSTATEDIR) +|STD(ERR|IN|OUT)|ZEND_(DEBUG_BUILD|THREAD_SAFE)) +\\b`,name:"support.constant.core.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:`(?x) +(\\\\)?\\b +(__COMPILER_HALT_OFFSET__|AB(MON_(1|2|3|4|5|6|7|8|9|10|11|12)|DAY[1-7]) +|AM_STR|ASSERT_(ACTIVE|BAIL|CALLBACK_QUIET_EVAL|WARNING)|ALT_DIGITS +|CASE_(UPPER|LOWER)|CHAR_MAX|CONNECTION_(ABORTED|NORMAL|TIMEOUT)|CODESET|COUNT_(NORMAL|RECURSIVE) +|CREDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI) +|CRYPT_(BLOWFISH|EXT_DES|MD5|SHA(256|512)|SALT_LENGTH|STD_DES)|CURRENCY_SYMBOL +|D_(T_)?FMT|DATE_(ATOM|COOKIE|ISO8601|RFC(822|850|1036|1123|2822|3339)|RSS|W3C) +|DAY_[1-7]|DECIMAL_POINT|DIRECTORY_SEPARATOR +|ENT_(COMPAT|IGNORE|(NO)?QUOTES)|EXTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|REFS|SKIP) +|ERA(_(D_(T_)?FMT)|T_FMT|YEAR)?|FRAC_DIGITS|GROUPING|HASH_HMAC|HTML_(ENTITIES|SPECIALCHARS) +|INF|INFO_(ALL|CREDITS|CONFIGURATION|ENVIRONMENT|GENERAL|LICENSEMODULES|VARIABLES) +|INI_(ALL|CANNER_(NORMAL|RAW)|PERDIR|SYSTEM|USER)|INT_(CURR_SYMBOL|FRAC_DIGITS) +|LC_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|LOCK_(EX|NB|SH|UN) +|LOG_(ALERT|AUTH(PRIV)?|CRIT|CRON|CONS|DAEMON|DEBUG|EMERG|ERR|INFO|LOCAL[1-7]|LPR|KERN|MAIL +|NEWS|NODELAY|NOTICE|NOWAIT|ODELAY|PID|PERROR|WARNING|SYSLOG|UCP|USER) +|M_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRT)?PI|PI(_(2|4))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E) +|MON_(1|2|3|4|5|6|7|8|9|10|11|12|DECIMAL_POINT|GROUPING|THOUSANDS_SEP) +|N_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|NAN|NEGATIVE_SIGN|NO(EXPR|STR) +|P_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|PM_STR|POSITIVE_SIGN +|PATH(_SEPARATOR|INFO_(EXTENSION|(BASE|DIR|FILE)NAME))|RADIXCHAR +|SEEK_(CUR|END|SET)|SORT_(ASC|DESC|LOCALE_STRING|REGULAR|STRING)|STR_PAD_(BOTH|LEFT|RIGHT) +|T_FMT(_AMPM)?|THOUSEP|THOUSANDS_SEP +|UPLOAD_ERR_(CANT_WRITE|EXTENSION|(FORM|INI)_SIZE|NO_(FILE|TMP_DIR)|OK|PARTIAL) +|YES(EXPR|STR)) +\\b`,name:"support.constant.std.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:`(?x) +(\\\\)?\\b +(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS) +|XML_(SAX_IMPL|(DTD|DOCUMENT(_(FRAG|TYPE))?|HTML_DOCUMENT|NOTATION|NAMESPACE_DECL|PI|COMMENT|DATA_SECTION|TEXT)_NODE +|OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING) +|ERROR_((BAD_CHAR|(ATTRIBUTE_EXTERNAL|BINARY|PARAM|RECURSIVE)_ENTITY)_REF|MISPLACED_XML_PI|SYNTAX|NONE +|NO_(MEMORY|ELEMENTS)|TAG_MISMATCH|INCORRECT_ENCODING|INVALID_TOKEN|DUPLICATE_ATTRIBUTE +|UNCLOSED_(CDATA_SECTION|TOKEN)|UNDEFINED_ENTITY|UNKNOWN_ENCODING|JUNK_AFTER_DOC_ELEMENT +|PARTIAL_CHAR|EXTERNAL_ENTITY_HANDLING|ASYNC_ENTITY) +|ENTITY_(((REF|DECL)_)?NODE)|ELEMENT(_DECL)?_NODE|LOCAL_NAMESPACE|ATTRIBUTE_(NMTOKEN(S)?|NOTATION|NODE) +|CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION) +|MHASH_(RIPEMD(128|160|256|320)|GOST|MD(2|4|5)|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256) +|CRC23(B)?|TIGER(128|160)?|WHIRLPOOL|ADLER32) +|MYSQL_(BOTH|NUM|CLIENT_(SSL|COMPRESS|IGNORE_SPACE|INTERACTIVE|ASSOC)) +|MYSQLI_(REPORT_(STRICT|INDEX|OFF|ERROR|ALL)|REFRESH_(GRANT|MASTER|BACKUP_LOG|STATUS|SLAVE|HOSTS|THREADS|TABLES|LOG) +|READ_DEFAULT_(FILE|GROUP)|(GROUP|MULTIPLE_KEY|BINARY|BLOB)_FLAG|BOTH +|STMT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|STORE_RESULT +|SERVER_QUERY_(NO_((GOOD_)?INDEX_USED)|WAS_SLOW)|SET_(CHARSET_NAME|FLAG) +|NO_(DEFAULT_VALUE_FLAG|DATA)|NOT_NULL_FLAG|NUM(_FLAG)? +|CURSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE) +|CLIENT_(SSL|NO_SCHEMA|COMPRESS|IGNORE_SPACE|INTERACTIVE|FOUND_ROWS) +|TYPE_(GEOMETRY|((MEDIUM|LONG|TINY)_)?BLOB|BIT|SHORT|STRING|SET|YEAR|NULL|NEWDECIMAL|NEWDATE|CHAR +|TIME(STAMP)?|TINY|INT24|INTERVAL|DOUBLE|DECIMAL|DATE(TIME)?|ENUM|VAR_STRING|FLOAT|LONG(LONG)?) +|TIME_STAMP_FLAG|INIT_COMMAND|ZEROFILL_FLAG|ON_UPDATE_NOW_FLAG +|OPT_(NET_((CMD|READ)_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE) +|DEBUG_TRACE_ENABLED|DATA_TRUNCATED|USE_RESULT|(ENUM|(PART|PRI|UNIQUE)_KEY|UNSIGNED)_FLAG +|ASSOC|ASYNC|AUTO_INCREMENT_FLAG) +|MCRYPT_(RC(2|6)|RIJNDAEL_(128|192|256)|RAND|GOST|XTEA|MODE_(STREAM|NOFB|CBC|CFB|OFB|ECB)|MARS +|BLOWFISH(_COMPAT)?|SERPENT|SKIPJACK|SAFER(64|128|PLUS)|CRYPT|CAST_(128|256)|TRIPLEDES|THREEWAY +|TWOFISH|IDEA|(3)?DES|DECRYPT|DEV_(U)?RANDOM|PANAMA|ENCRYPT|ENIGNA|WAKE|LOKI97|ARCFOUR(_IV)?) +|STREAM_(REPORT_ERRORS|MUST_SEEK|MKDIR_RECURSIVE|BUFFER_(NONE|FULL|LINE)|SHUT_(RD)?WR +|SOCK_(RDM|RAW|STREAM|SEQPACKET|DGRAM)|SERVER_(BIND|LISTEN) +|NOTIFY_(REDIRECTED|RESOLVE|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|COMPLETED|CONNECT|PROGRESS +|FILE_SIZE_IS|FAILURE|AUTH_(REQUIRED|RESULT)) +|CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT) +|CAST_(AS_STREAM|FOR_SELECT)|(IGNORE|IS)_URL|IPPROTO_(RAW|TCP|ICMP|IP|UDP)|OOB +|OPTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER)|URL_STAT_(LINK|QUIET)|USE_PATH +|PEEK|PF_(INET(6)?|UNIX)|ENFORCE_SAFE_MODE|FILTER_(ALL|READ|WRITE)) +|SUNFUNCS_RET_(DOUBLE|STRING|TIMESTAMP) +|SQLITE_(READONLY|ROW|MISMATCH|MISUSE|BOTH|BUSY|SCHEMA|NOMEM|NOTFOUND|NOTADB|NOLFS|NUM|CORRUPT +|CONSTRAINT|CANTOPEN|TOOBIG|INTERRUPT|INTERNAL|IOERR|OK|DONE|PROTOCOL|PERM|ERROR|EMPTY +|FORMAT|FULL|LOCKED|ABORT|ASSOC|AUTH) +|SQLITE3_(BOTH|BLOB|NUM|NULL|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT_ASSOC) +|CURL(M_(BAD_((EASY)?HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|OUT_OF_MEMORY|OK) +|MSG_DONE|SSH_AUTH_(HOST|NONE|DEFAULT|PUBLICKEY|PASSWORD|KEYBOARD) +|CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC) +|INFO_(REDIRECT_(COUNT|TIME)|REQUEST_SIZE|SSL_VERIFYRESULT|STARTTRANSFER_TIME +|(SIZE|SPEED)_(DOWNLOAD|UPLOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME +|CONNECT_TIME|CONTENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD))|CERTINFO|TOTAL_TIME +|PRIVATE|PRETRANSFER_TIME|EFFECTIVE_URL|FILETIME) +|OPT_(RESUME_FROM|RETURNTRANSFER|REDIR_PROTOCOLS|REFERER|READ(DATA|FUNCTION)|RANGE|RANDOM_FILE +|MAX(CONNECTS|REDIRS)|BINARYTRANSFER|BUFFERSIZE +|SSH_(HOST_PUBLIC_KEY_MD5|(PRIVATE|PUBLIC)_KEYFILE)|AUTH_TYPES) +|SSL(CERT(TYPE|PASSWD)?|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?) +|SSL_(CIPHER_LIST|VERIFY(HOST|PEER)) +|STDERR|HTTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH) +|HEADER(FUNCTION)?|NO(BODY|SIGNAL|PROGRESS)|NETRC|CRLF|CONNECTTIMEOUT(_MS)? +|COOKIE(SESSION|JAR|FILE)?|CUSTOMREQUEST|CERTINFO|CLOSEPOLICY|CA(INFO|PATH)|TRANSFERTEXT +|TCP_NODELAY|TIME(CONDITION|OUT(_MS)?|VALUE)|INTERFACE|INFILE(SIZE)?|IPRESOLVE +|DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|URL|USER(AGENT|PWD)|UNRESTRICTED_AUTH|UPLOAD +|PRIVATE|PROGRESSFUNCTION|PROXY(TYPE|USERPWD|PORT|AUTH)?|PROTOCOLS|PORT +|POST(REDIR|QUOTE|FIELDS)?|PUT|EGDSOCKET|ENCODING|VERBOSE|KRB4LEVEL|KEYPASSWD|QUOTE|FRESH_CONNECT +|FTP(APPEND|LISTONLY|PORT|SSLAUTH) +|FTP_(SSL|SKIP_PASV_IP|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD) +|FILE(TIME)?|FORBID_REUSE|FOLLOWLOCATION|FAILONERROR|WRITE(FUNCTION|HEADER)|LOW_SPEED_(LIMIT|TIME) +|AUTOREFERER) +|PROXY_(HTTP|SOCKS(4|5))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL) +|E_((RECV|READ)_ERROR|GOT_NOTHING|MALFORMAT_USER +|BAD_(CONTENT_ENCODING|CALLING_ORDER|PASSWORD_ENTERED|FUNCTION_ARGUMENT) +|SSH|SSL_(CIPHER|CONNECT_ERROR|CERTPROBLEM|CACERT|PEER_CERTIFICATE|ENGINE_(NOTFOUND|SETFAILED)) +|SHARE_IN_USE|SEND_ERROR|HTTP_(RANGE_ERROR|NOT_FOUND|PORT_FAILED|POST_ERROR) +|COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|TOO_MANY_REDIRECTS|TELNET_OPTION_SYNTAX|OBSOLETE +|OUT_OF_MEMORY|OPERATION|TIMEOUTED|OK|URL_MALFORMAT(_USER)?|UNSUPPORTED_PROTOCOL +|UNKNOWN_TELNET_OPTION|PARTIAL_FILE +|FTP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|COULDNT_(RETR_FILE|GET_SIZE|STOR_FILE|SET_(BINARY|ASCII)|USE_REST) +|CANT_(GET_HOST|RECONNECT)|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|WRITE_ERROR +|WEIRD_((PASS|PASV|SERVER|USER)_REPLY|227_FORMAT)|ACCESS_DENIED) +|FILESIZE_EXCEEDED|FILE_COULDNT_READ_FILE|FUNCTION_NOT_FOUND|FAILED_INIT|WRITE_ERROR|LIBRARY_NOT_FOUND +|LDAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL)|ABORTED_BY_CALLBACK) +|VERSION_NOW +|FTP(METHOD_(MULTI|SINGLE|NO)CWD|SSL_(ALL|NONE|CONTROL|TRY)|AUTH_(DEFAULT|SSL|TLS)) +|AUTH_(ANY(SAFE)?|BASIC|DIGEST|GSSNEGOTIATE|NTLM)) +|CURL_(HTTP_VERSION_(1_(0|1)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD) +|IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ)) +|IMAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|ICO|IFF|UNKNOWN|JB2|JPX|JP2|JPC|JPEG(2000)?|PSD|PNG|WBMP) +|INPUT_(REQUEST|GET|SERVER|SESSION|COOKIE|POST|ENV)|ICONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION) +|DNS_(MX|SRV|SOA|HINFO|NS|NAPTR|CNAME|TXT|PTR|ANY|ALL|AAAA|A(6)?) +|DOM(STRING_SIZE_ERR) +|DOM_((SYNTAX|HIERARCHY_REQUEST|NO_(MODIFICATION_ALLOWED|DATA_ALLOWED)|NOT_(FOUND|SUPPORTED)|NAMESPACE +|INDEX_SIZE|USE_ATTRIBUTE|VALID_(MODIFICATION|STATE|CHARACTER|ACCESS)|PHP|VALIDATION|WRONG_DOCUMENT)_ERR) +|JSON_(HEX_(TAG|QUOT|AMP|APOS)|NUMERIC_CHECK|ERROR_(SYNTAX|STATE_MISMATCH|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT) +|PREG_((D_UTF8(_OFFSET)?|NO|INTERNAL|(BACKTRACK|RECURSION)_LIMIT)_ERROR|GREP_INVERT +|SPLIT_(NO_EMPTY|(DELIM|OFFSET)_CAPTURE)|SET_ORDER|OFFSET_CAPTURE|PATTERN_ORDER) +|PSFS_(PASS_ON|ERR_FATAL|FEED_ME|FLAG_(NORMAL|FLUSH_(CLOSE|INC))) +|PCRE_VERSION|POSIX_((F|R|W|X)_OK|S_IF(REG|BLK|SOCK|CHR|IFO)) +|FNM_(NOESCAPE|CASEFOLD|PERIOD|PATHNAME) +|FILTER_(REQUIRE_(SCALAR|ARRAY)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW +|SANITIZE_(MAGIC_QUOTES|STRING|STRIPPED|SPECIAL_CHARS|NUMBER_(INT|FLOAT)|URL +|EMAIL|ENCODED|FULL_SPCIAL_CHARS) +|VALIDATE_(REGEXP|BOOLEAN|INT|IP|URL|EMAIL|FLOAT) +|FORCE_ARRAY +|FLAG_(SCHEME_REQUIRED|STRIP_(BACKTICK|HIGH|LOW)|HOST_REQUIRED|NONE|NO_(RES|PRIV)_RANGE|ENCODE_QUOTES +|IPV(4|6)|PATH_REQUIRED|EMPTY_STRING_NULL|ENCODE_(HIGH|LOW|AMP)|QUERY_REQUIRED +|ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION))) +|FILE_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND) +|FILEINFO_(RAW|MIME(_(ENCODING|TYPE))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME) +|FORCE_(DEFLATE|GZIP) +|LIBXML_(XINCLUDE|NSCLEAN|NO(XMLDECL|BLANKS|NET|CDATA|ERROR|EMPTYTAG|ENT|WARNING) +|COMPACT|DTD(VALID|LOAD|ATTR)|((DOTTED|LOADED)_)?VERSION|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING))) +\\b`,name:"support.constant.ext.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:`(?x) +(\\\\)?\\b +(T_(RETURN|REQUIRE(_ONCE)?|GOTO|GLOBAL|(MINUS|MOD|MUL|XOR)_EQUAL|METHOD_C|ML_COMMENT|BREAK +|BOOL_CAST|BOOLEAN_(AND|OR)|BAD_CHARACTER|SR(_EQUAL)?|STRING(_CAST|VARNAME)?|START_HEREDOC|STATIC +|SWITCH|SL(_EQUAL)?|HALT_COMPILER|NS_(C|SEPARATOR)|NUM_STRING|NEW|NAMESPACE|CHARACTER|COMMENT +|CONSTANT(_ENCAPSED_STRING)?|CONCAT_EQUAL|CONTINUE|CURLY_OPEN|CLOSE_TAG|CLONE|CLASS(_C)? +|CASE|CATCH|TRY|THROW|IMPLEMENTS|ISSET|IS_((GREATER|SMALLER)_OR_EQUAL|(NOT_)?(IDENTICAL|EQUAL)) +|INSTANCEOF|INCLUDE(_ONCE)?|INC|INT_CAST|INTERFACE|INLINE_HTML|IF|OR_EQUAL|OBJECT_(CAST|OPERATOR) +|OPEN_TAG(_WITH_ECHO)?|OLD_FUNCTION|DNUMBER|DIR|DIV_EQUAL|DOC_COMMENT|DOUBLE_(ARROW|CAST|COLON) +|DOLLAR_OPEN_CURLY_BRACES|DO|DEC|DECLARE|DEFAULT|USE|UNSET(_CAST)?|PRINT|PRIVATE|PROTECTED|PUBLIC +|PLUS_EQUAL|PAAMAYIM_NEKUDOTAYIM|EXTENDS|EXIT|EMPTY|ENCAPSED_AND_WHITESPACE +|END(SWITCH|IF|DECLARE|FOR(EACH)?|WHILE)|END_HEREDOC|ECHO|EVAL|ELSE(IF)?|VAR(IABLE)?|FINAL|FILE +|FOR(EACH)?|FUNC_C|FUNCTION|WHITESPACE|WHILE|LNUMBER|LIST|LINE|LOGICAL_(AND|OR|XOR) +|ARRAY_(CAST)?|ABSTRACT|AS|AND_EQUAL)) +\\b`,name:"support.constant.parser-token.php"},{match:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"constant.other.php"}]},"function-call":{patterns:[{begin:`(?x) +( +\\\\?(?<![a-zA-Z0-9_\\x{7f}-\\x{10ffff}]) +[a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]* +(?:\\\\[a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*)+ +)\\s*(\\()`,beginCaptures:{1:{patterns:[{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"entity.name.function.php"}]},2:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{begin:"(\\\\)?(?<![a-zA-Z0-9_\\x{7f}-\\x{10ffff}])([a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()",beginCaptures:{1:{patterns:[{include:"#namespace"}]},2:{patterns:[{include:"#support"},{match:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"entity.name.function.php"}]},3:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{match:"(?i)\\b(print|echo)\\b",name:"support.function.construct.output.php"}]},"function-parameters":{patterns:[{include:"#attribute"},{include:"#comments"},{match:",",name:"punctuation.separator.delimiter.php"},{captures:{1:{patterns:[{include:"#php-types"}]},2:{name:"variable.other.php"},3:{name:"storage.modifier.reference.php"},4:{name:"keyword.operator.variadic.php"},5:{name:"punctuation.definition.variable.php"}},match:`(?xi) +(?: ( + +(?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | + +(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) ) +(?: \\s*[|&]\\s* +(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) ) +)+ +) \\s+ )? +((?:(&)\\s*)?(\\.\\.\\.)(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) +(?=\\s*(?:,|\\)|/[/*]|\\#|$))`,name:"meta.function.parameter.variadic.php"},{begin:`(?xi) +( + +(?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | + +(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) ) +(?: \\s*[|&]\\s* +(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) ) +)+ +) +\\s+ ((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)`,beginCaptures:{1:{patterns:[{include:"#php-types"}]},2:{name:"variable.other.php"},3:{name:"storage.modifier.reference.php"},4:{name:"punctuation.definition.variable.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",name:"meta.function.parameter.typehinted.php",patterns:[{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",patterns:[{include:"#parameter-default-types"}]}]},{captures:{1:{name:"variable.other.php"},2:{name:"storage.modifier.reference.php"},3:{name:"punctuation.definition.variable.php"}},match:`(?xi) +((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) +(?=\\s*(?:,|\\)|/[/*]|\\#|$))`,name:"meta.function.parameter.no-default.php"},{begin:`(?xi) +((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) +\\s*(=)\\s*`,beginCaptures:{1:{name:"variable.other.php"},2:{name:"storage.modifier.reference.php"},3:{name:"punctuation.definition.variable.php"},4:{name:"keyword.operator.assignment.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",name:"meta.function.parameter.default.php",patterns:[{include:"#parameter-default-types"}]}]},heredoc:{patterns:[{begin:'(?i)(?=<<<\\s*("?)([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(\\1)\\s*$)',end:"(?!\\G)",name:"string.unquoted.heredoc.php",patterns:[{include:"#heredoc_interior"}]},{begin:"(?=<<<\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\s*$)",end:"(?!\\G)",name:"string.unquoted.nowdoc.php",patterns:[{include:"#nowdoc_interior"}]}]},heredoc_interior:{patterns:[{begin:'(<<<)\\s*("?)(HTML)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.html",patterns:[{include:"#interpolation"},{include:"text.html.basic"}]},{begin:'(<<<)\\s*("?)(XML)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.xml",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.xml",patterns:[{include:"#interpolation"},{include:"text.xml"}]},{begin:'(<<<)\\s*("?)([DS]QL)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.sql",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.sql",patterns:[{include:"#interpolation"},{include:"source.sql"}]},{begin:'(<<<)\\s*("?)(JAVASCRIPT|JS)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.js",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.js",patterns:[{include:"#interpolation"},{include:"source.js"}]},{begin:'(<<<)\\s*("?)(JSON)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.json",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.json",patterns:[{include:"#interpolation"},{include:"source.json"}]},{begin:'(<<<)\\s*("?)(CSS)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.css",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.css",patterns:[{include:"#interpolation"},{include:"source.css"}]},{begin:'(<<<)\\s*("?)(REGEXP?)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"string.regexp.heredoc.php",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},patterns:[{include:"#interpolation"},{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{captures:{1:{name:"punctuation.definition.arbitrary-repitition.php"},3:{name:"punctuation.definition.arbitrary-repitition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repitition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{match:"\\\\[\\\\'\\[\\]]",name:"constant.character.escape.php"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"},{begin:"(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{10ffff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",beginCaptures:{1:{name:"punctuation.definition.comment.php"}},end:"$",endCaptures:{0:{name:"punctuation.definition.comment.php"}},name:"comment.line.number-sign.php"}]},{begin:'(<<<)\\s*("?)(BLADE)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html.php.blade",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.php.blade",patterns:[{include:"#interpolation"}]},{begin:'(?i)(<<<)\\s*("?)([a-z_\\x{7f}-\\x{10ffff}]+[a-z0-9_\\x{7f}-\\x{10ffff}]*)(\\2)(\\s*)',beginCaptures:{1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{1:{name:"keyword.operator.heredoc.php"}},patterns:[{include:"#interpolation"}]}]},"inheritance-single":{patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",end:"(?i)([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",endCaptures:{1:{name:"entity.other.inherited-class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"entity.other.inherited-class.php"}]},instantiation:{begin:"(?i)(new)\\s+(?!class\\b)",beginCaptures:{1:{name:"keyword.other.new.php"}},end:"(?i)(?=[^a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",patterns:[{match:"(?i)(parent|static|self)(?![a-z0-9_\\x{7f}-\\x{10ffff}])",name:"storage.type.php"},{include:"#class-name"},{include:"#variable-name"}]},"interface-extends":{patterns:[{begin:"(?i)(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.extends.php"}},end:"(?i)(?={)",patterns:[{include:"#comments"},{match:",",name:"punctuation.separator.classes.php"},{include:"#inheritance-single"}]}]},interpolation:{patterns:[{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.octal.php"},{match:"\\\\x[0-9A-Fa-f]{1,2}",name:"constant.character.escape.hex.php"},{match:"\\\\u{[0-9A-Fa-f]+}",name:"constant.character.escape.unicode.php"},{match:"\\\\[nrtvef$\\\\]",name:"constant.character.escape.php"},{begin:"{(?=\\$.*?})",beginCaptures:{0:{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.variable.php"}},patterns:[{include:"$self"}]},{include:"#variable-name"}]},interpolation_double_quoted:{patterns:[{match:'\\\\"',name:"constant.character.escape.php"},{include:"#interpolation"}]},"invoke-call":{captures:{1:{name:"variable.other.php"},2:{name:"punctuation.definition.variable.php"}},match:"(?i)((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(?=\\s*\\()",name:"meta.function-call.invoke.php"},match_statement:{patterns:[{match:"\\s+(?=match\\b)"},{begin:"\\bmatch\\b",beginCaptures:{0:{name:"keyword.control.match.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.section.match-block.end.bracket.curly.php"}},name:"meta.match-statement.php",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.match-expression.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.match-expression.end.bracket.round.php"}},patterns:[{include:"$self"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.section.match-block.begin.bracket.curly.php"}},end:"(?=}|\\?>)",patterns:[{match:"=>",name:"keyword.definition.arrow.php"},{include:"$self"}]}]}]},"named-arguments":{captures:{1:{name:"entity.name.variable.parameter.php"},2:{name:"punctuation.separator.colon.php"}},match:"(?i)(?<=^|\\(|,)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(:)(?!:)"},namespace:{begin:"(?i)(?:(namespace)|[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?(\\\\)",beginCaptures:{1:{name:"variable.language.namespace.php"},2:{name:"punctuation.separator.inheritance.php"}},end:"(?i)(?![a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",name:"support.other.namespace.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]},nowdoc_interior:{patterns:[{begin:"(<<<)\\s*'(HTML)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.html",patterns:[{include:"text.html.basic"}]},{begin:"(<<<)\\s*'(XML)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.xml",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.xml",patterns:[{include:"text.xml"}]},{begin:"(<<<)\\s*'([DS]QL)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.sql",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.sql",patterns:[{include:"source.sql"}]},{begin:"(<<<)\\s*'(JAVASCRIPT|JS)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.js",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.js",patterns:[{include:"source.js"}]},{begin:"(<<<)\\s*'(JSON)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.json",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.json",patterns:[{include:"source.json"}]},{begin:"(<<<)\\s*'(CSS)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.css",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.css",patterns:[{include:"source.css"}]},{begin:"(<<<)\\s*'(REGEXP?)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"string.regexp.nowdoc.php",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},patterns:[{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{captures:{1:{name:"punctuation.definition.arbitrary-repitition.php"},3:{name:"punctuation.definition.arbitrary-repitition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repitition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{match:"\\\\[\\\\'\\[\\]]",name:"constant.character.escape.php"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"},{begin:"(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{10ffff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",beginCaptures:{1:{name:"punctuation.definition.comment.php"}},end:"$",endCaptures:{0:{name:"punctuation.definition.comment.php"}},name:"comment.line.number-sign.php"}]},{begin:"(<<<)\\s*'(BLADE)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html.php.blade",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.php.blade"},{begin:"(?i)(<<<)\\s*'([a-z_\\x{7f}-\\x{10ffff}]+[a-z0-9_\\x{7f}-\\x{10ffff}]*)'(\\s*)",beginCaptures:{1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{1:{name:"keyword.operator.nowdoc.php"}}}]},null_coalescing:{match:"\\?\\?",name:"keyword.operator.null-coalescing.php"},numbers:{patterns:[{match:"0[xX][0-9a-fA-F]+(?:_[0-9a-fA-F]+)*",name:"constant.numeric.hex.php"},{match:"0[bB][01]+(?:_[01]+)*",name:"constant.numeric.binary.php"},{match:"0[oO][0-7]+(?:_[0-7]+)*",name:"constant.numeric.octal.php"},{match:"0(?:_?[0-7]+)+",name:"constant.numeric.octal.php"},{captures:{1:{name:"punctuation.separator.decimal.period.php"},2:{name:"punctuation.separator.decimal.period.php"}},match:`(?x) +(?: +(?:[0-9]+(?:_[0-9]+)*)?(\\.)[0-9]+(?:_[0-9]+)*(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| +[0-9]+(?:_[0-9]+)*(\\.)(?:[0-9]+(?:_[0-9]+)*)?(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| +[0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)* +)`,name:"constant.numeric.decimal.php"},{match:"0|[1-9](?:_?[0-9]+)*",name:"constant.numeric.decimal.php"}]},object:{patterns:[{begin:"(\\??->)\\s*(\\$?{)",beginCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.variable.php"}},patterns:[{include:"$self"}]},{begin:"(?i)(\\??->)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"entity.name.function.php"},3:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.method-call.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{captures:{1:{name:"keyword.operator.class.php"},2:{name:"variable.other.property.php"},3:{name:"punctuation.definition.variable.php"}},match:"(?i)(\\??->)\\s*((\\$+)?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?"}]},"parameter-default-types":{patterns:[{include:"#strings"},{include:"#numbers"},{include:"#string-backtick"},{include:"#variables"},{match:"=>",name:"keyword.operator.key.php"},{match:"=",name:"keyword.operator.assignment.php"},{match:"&(?=\\s*\\$)",name:"storage.modifier.reference.php"},{begin:"(array)\\s*(\\()",beginCaptures:{1:{name:"support.function.construct.php"},2:{name:"punctuation.definition.array.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.array.php",patterns:[{include:"#parameter-default-types"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.array.begin.php"}},end:"\\]|(?=\\?>)",endCaptures:{0:{name:"punctuation.section.array.end.php"}},patterns:[{include:"$self"}]},{include:"#instantiation"},{begin:`(?xi) +(?=[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ +(::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)? +)`,end:"(?i)(::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?",endCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"constant.other.class.php"}},patterns:[{include:"#class-name"}]},{include:"#constants"}]},"php-types":{patterns:[{match:"\\?",name:"keyword.operator.nullable-type.php"},{match:"[|&]",name:"punctuation.separator.delimiter.php"},{match:"(?i)\\b(null|int|float|bool|string|array|object|callable|iterable|true|false|mixed|void)\\b",name:"keyword.other.type.php"},{match:"(?i)\\b(parent|self)\\b",name:"storage.type.php"},{match:"\\(",name:"punctuation.definition.type.begin.bracket.round.php"},{match:"\\)",name:"punctuation.definition.type.end.bracket.round.php"},{include:"#class-name"}]},php_doc:{patterns:[{match:"^(?!\\s*\\*).*?(?:(?=\\*\\/)|$\\n?)",name:"invalid.illegal.missing-asterisk.phpdoc.php"},{captures:{1:{name:"keyword.other.phpdoc.php"},3:{name:"storage.modifier.php"},4:{name:"invalid.illegal.wrong-access-type.phpdoc.php"}},match:"^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$"},{captures:{1:{name:"keyword.other.phpdoc.php"},2:{name:"markup.underline.link.php"}},match:"(@xlink)\\s+(.+)\\s*$"},{begin:"(@(?:global|param|property(-(read|write))?|return|throws|var))\\s+(?=[?A-Za-z_\\x{7f}-\\x{10ffff}\\\\]|\\()",beginCaptures:{1:{name:"keyword.other.phpdoc.php"}},contentName:"meta.other.type.phpdoc.php",end:"(?=\\s|\\*/)",patterns:[{include:"#php_doc_types_array_multiple"},{include:"#php_doc_types_array_single"},{include:"#php_doc_types"}]},{match:`(?x) +@ +( +api|abstract|author|category|copyright|example|global|inherit[Dd]oc|internal| +license|link|method|property(-(read|write))?|package|param|return|see|since|source| +static|subpackage|throws|todo|var|version|uses|deprecated|final|ignore +)\\b`,name:"keyword.other.phpdoc.php"},{captures:{1:{name:"keyword.other.phpdoc.php"}},match:"{(@(link|inherit[Dd]oc)).+?}",name:"meta.tag.inline.phpdoc.php"}]},php_doc_types:{captures:{0:{patterns:[{match:"\\?",name:"keyword.operator.nullable-type.php"},{match:`(?x)\\b +(string|integer|int|boolean|bool|float|double|object|mixed +|array|resource|void|null|callback|false|true|self|static)\\b`,name:"keyword.other.type.php"},{include:"#class-name"},{match:"[|&]",name:"punctuation.separator.delimiter.php"},{match:"\\(",name:"punctuation.definition.type.begin.bracket.round.php"},{match:"\\)",name:"punctuation.definition.type.end.bracket.round.php"}]}},match:"(?i)\\??[a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*([|&]\\??[a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)*"},php_doc_types_array_multiple:{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.type.begin.bracket.round.phpdoc.php"}},end:"(\\))(\\[\\])|(?=\\*/)",endCaptures:{1:{name:"punctuation.definition.type.end.bracket.round.phpdoc.php"},2:{name:"keyword.other.array.phpdoc.php"}},patterns:[{include:"#php_doc_types_array_multiple"},{include:"#php_doc_types_array_single"},{include:"#php_doc_types"},{match:"[|&]",name:"punctuation.separator.delimiter.php"}]},php_doc_types_array_single:{captures:{1:{patterns:[{include:"#php_doc_types"}]},2:{name:"keyword.other.array.phpdoc.php"}},match:"(?i)([a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)(\\[\\])"},"regex-double-quoted":{begin:'"/(?=(\\\\.|[^"/])++/[imsxeADSUXu]*")',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:'(/)([imsxeADSUXu]*)(")',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.regexp.double-quoted.php",patterns:[{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{include:"#interpolation_double_quoted"},{captures:{1:{name:"punctuation.definition.arbitrary-repetition.php"},3:{name:"punctuation.definition.arbitrary-repetition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{include:"#interpolation_double_quoted"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"regex-single-quoted":{begin:"'/(?=(\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:"(/)([imsxeADSUXu]*)(')",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.regexp.single-quoted.php",patterns:[{include:"#single_quote_regex_escape"},{captures:{1:{name:"punctuation.definition.arbitrary-repetition.php"},3:{name:"punctuation.definition.arbitrary-repetition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php"},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"scope-resolution":{patterns:[{captures:{1:{patterns:[{match:"\\b(self|static|parent)\\b",name:"storage.type.php"},{include:"#class-name"},{include:"#variable-name"}]}},match:"([A-Za-z_\\x{7f}-\\x{10ffff}\\\\][A-Za-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)(?=\\s*::)"},{begin:"(?i)(::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"entity.name.function.php"},3:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.method-call.static.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{captures:{1:{name:"keyword.operator.class.php"},2:{name:"keyword.other.class.php"}},match:"(?i)(::)\\s*(class)\\b"},{captures:{1:{name:"keyword.operator.class.php"},2:{name:"variable.other.class.php"},3:{name:"punctuation.definition.variable.php"},4:{name:"constant.other.class.php"}},match:`(?xi) +(::)\\s* +(?: +((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) +| +([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) +)?`}]},single_quote_regex_escape:{match:"\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)",name:"constant.character.escape.php"},"sql-string-double-quoted":{begin:'"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND|WITH)\\b)',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.sql.php",patterns:[{captures:{1:{name:"punctuation.definition.comment.sql"}},match:'(#)(\\\\"|[^"])*(?="|$)',name:"comment.line.number-sign.sql"},{captures:{1:{name:"punctuation.definition.comment.sql"}},match:'(--)(\\\\"|[^"])*(?="|$)',name:"comment.line.double-dash.sql"},{match:"\\\\[\\\\\"`']",name:"constant.character.escape.php"},{match:`'(?=((\\\\')|[^'"])*("|$))`,name:"string.quoted.single.unclosed.sql"},{match:'`(?=((\\\\`)|[^`"])*("|$))',name:"string.quoted.other.backtick.unclosed.sql"},{begin:"'",end:"'",name:"string.quoted.single.sql",patterns:[{include:"#interpolation_double_quoted"}]},{begin:"`",end:"`",name:"string.quoted.other.backtick.sql",patterns:[{include:"#interpolation_double_quoted"}]},{include:"#interpolation_double_quoted"},{include:"source.sql"}]},"sql-string-single-quoted":{begin:"'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND|WITH)\\b)",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.sql.php",patterns:[{captures:{1:{name:"punctuation.definition.comment.sql"}},match:"(#)(\\\\'|[^'])*(?='|$)",name:"comment.line.number-sign.sql"},{captures:{1:{name:"punctuation.definition.comment.sql"}},match:"(--)(\\\\'|[^'])*(?='|$)",name:"comment.line.double-dash.sql"},{match:"\\\\[\\\\'`\"]",name:"constant.character.escape.php"},{match:"`(?=((\\\\`)|[^`'])*('|$))",name:"string.quoted.other.backtick.unclosed.sql"},{match:`"(?=((\\\\")|[^"'])*('|$))`,name:"string.quoted.double.unclosed.sql"},{include:"source.sql"}]},"string-backtick":{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.interpolated.php",patterns:[{match:"\\\\`",name:"constant.character.escape.php"},{include:"#interpolation"}]},"string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.php",patterns:[{include:"#interpolation_double_quoted"}]},"string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.php",patterns:[{match:"\\\\[\\\\']",name:"constant.character.escape.php"}]},strings:{patterns:[{include:"#regex-double-quoted"},{include:"#sql-string-double-quoted"},{include:"#string-double-quoted"},{include:"#regex-single-quoted"},{include:"#sql-string-single-quoted"},{include:"#string-single-quoted"}]},support:{patterns:[{match:`(?xi) +\\b +apc_( +store|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?| +exists|fetch|load_constants|add|bin_(dump|load)(file)? +)\\b`,name:"support.function.apc.php"},{match:`(?xi)\\b +( +shuffle|sizeof|sort|next|nat(case)?sort|count|compact|current|in_array|usort|uksort|uasort| +pos|prev|end|each|extract|ksort|key(_exists)?|krsort|list|asort|arsort|rsort|reset|range| +array(_(shift|sum|splice|search|slice|chunk|change_key_case|count_values|column|combine| +(diff|intersect)(_(u)?(key|assoc))?|u(diff|intersect)(_(u)?assoc)?|unshift|unique| +pop|push|pad|product|values|keys|key_exists|filter|fill(_keys)?|flip|walk(_recursive)?| +reduce|replace(_recursive)?|reverse|rand|multisort|merge(_recursive)?|map)?) +)\\b`,name:"support.function.array.php"},{match:`(?xi)\\b +( +show_source|sys_getloadavg|sleep|highlight_(file|string)|constant|connection_(aborted|status)| +time_(nanosleep|sleep_until)|ignore_user_abort|die|define(d)?|usleep|uniqid|unpack|__halt_compiler| +php_(check_syntax|strip_whitespace)|pack|eval|exit|get_browser +)\\b`,name:"support.function.basic_functions.php"},{match:"(?i)\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\b",name:"support.function.bcmath.php"},{match:"(?i)\\bblenc_encrypt\\b",name:"support.function.blenc.php"},{match:"(?i)\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\b",name:"support.function.bz2.php"},{match:`(?xi)\\b +( +(French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd| +jdto(unix|jewish)|easter_(date|days)|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek) +)\\b`,name:"support.function.calendar.php"},{match:`(?xi)\\b +( +class_alias|all_user_method(_array)?|is_(a|subclass_of)|__autoload|(class|interface|method|property|trait)_exists| +get_(class(_(vars|methods))?|(called|parent)_class|object_vars|declared_(classes|interfaces|traits)) +)\\b`,name:"support.function.classobj.php"},{match:`(?xi)\\b +( +com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)| +variant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp| +pow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul) +)\\b`,name:"support.function.com.php"},{match:"(?i)\\b(isset|unset|eval|empty|list)\\b",name:"support.function.construct.php"},{match:"(?i)\\b(print|echo)\\b",name:"support.function.construct.output.php"},{match:"(?i)\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\b",name:"support.function.ctype.php"},{match:`(?xi)\\b +curl_( +share_(close|init|setopt)|strerror|setopt(_array)?|copy_handle|close|init|unescape|pause|escape| +errno|error|exec|version|file_create|reset|getinfo| +multi_(strerror|setopt|select|close|init|info_read|(add|remove)_handle|getcontent|exec) +)\\b`,name:"support.function.curl.php"},{match:`(?xi)\\b +( +strtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate| +timezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)| +date(_(sun(rise|set)|sun_info|sub|create(_(immutable_)?from_format)?|timestamp_(get|set)|timezone_(get|set)|time_set| +isodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_(get|set)|date_set| +parse(_from_format)?|format|add|get_last_errors|modify))?| +localtime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime +)\\b`,name:"support.function.datetime.php"},{match:"(?i)\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\b",name:"support.function.dba.php"},{match:"(?i)\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\b",name:"support.function.dbx.php"},{match:"(?i)\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\b",name:"support.function.dir.php"},{match:`(?xi)\\b +eio_( +sync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)| +seek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll| +event_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath| +read(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy +)\\b`,name:"support.function.eio.php"},{match:`(?xi)\\b +enchant_( +dict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)| +broker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error) +)\\b`,name:"support.function.enchant.php"},{match:"(?i)\\b(split(i)?|sql_regcase|ereg(i)?(_replace)?)\\b",name:"support.function.ereg.php"},{match:"(?i)\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\b",name:"support.function.errorfunc.php"},{match:"(?i)\\b(shell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec)\\b",name:"support.function.exec.php"},{match:"(?i)\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\b",name:"support.function.exif.php"},{match:`(?xi)\\b +fann_( +(duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|(input|output)(_train_data)?)| +set_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)| +cascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)| +output_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)| +(max|min)_(cand|out)_epochs)| +callback|training_algorithm|train_(error|stop)_function|(input|output)_scaling_params|error_log| +quickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit| +activation_(function|steepness)(_(hidden|layer|output))?| +rprop_((decrease|increase)_factor|delta_(max|min|zero)))| +save(_train)?|num_(input|output)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)| +create_((sparse|shortcut|standard)(_array)?|train(_from_callback)?|from_file)| +test(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?| +print_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights| +get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)| +network_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?| +cascade_(num_(candidates|candidate_groups)|(candidate|output)_(change_fraction|limit|stagnation_epochs)| +weight_multiplier|activation_(functions|steepnesses)(_count)?|(max|min)_(cand|out)_epochs)| +total_(connections|neurons)|training_algorithm|train_(error|stop)_function|err(no|str)| +quickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)| +rprop_((decrease|increase)_factor|delta_(max|min|zero))) +)\\b`,name:"support.function.fann.php"},{match:`(?xi)\\b +( +symlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile| +is_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace| +dirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch| +fclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)| +f(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?| +rename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename +)\\b`,name:"support.function.file.php"},{match:"(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b",name:"support.function.fileinfo.php"},{match:"(?i)\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\b",name:"support.function.filter.php"},{match:"(?i)\\bfastcgi_finish_request\\b",name:"support.function.fpm.php"},{match:"(?i)\\b(call_user_(func|method)(_array)?|create_function|unregister_tick_function|forward_static_call(_array)?|function_exists|func_(num_args|get_arg(s)?)|register_(shutdown|tick)_function|get_defined_functions)\\b",name:"support.function.funchand.php"},{match:"(?i)\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\b",name:"support.function.gettext.php"},{match:`(?xi)\\b +gmp_( +scan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit| +intval|init|invert|import|or|div(exact)?|div_(q|qr|r)|jacobi|popcount|pow(m)?|perfect_square| +prob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range))?|gcd(ext)?|xor|mod|mul +)\\b`,name:"support.function.gmp.php"},{match:"(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\b",name:"support.function.hash.php"},{match:`(?xi)\\b +( +http_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head| +negotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle| +inflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)| +parse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?| +get(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))| +ob_(etag|deflate|inflate)handler +)\\b`,name:"support.function.http.php"},{match:"(?i)\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b",name:"support.function.iconv.php"},{match:"(?i)\\biis_((start|stop)_(service|server)|set_(script_map|server_rights|dir_security|app_settings)|(add|remove)_server|get_(script_map|service_state|server_(rights|by_(comment|path))|dir_security))\\b",name:"support.function.iisfunc.php"},{match:`(?xi)\\b +( +iptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?| +image(s[xy]|scale|(char|string)(up)?|set(style|thickness|tile|interpolation|pixel|brush)|savealpha| +convolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)| +color(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)| +crop(auto)?|create(truecolor|from(string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|xpm|xbm))?| +types|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg| +_type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon| +palette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder| +filled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect| +antialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd(2)?|gammacorrect| +grab(screen|window)|xbm) +)\\b`,name:"support.function.image.php"},{match:`(?xi)\\b +( +sys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_(get|set)_process_title| +ini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)| +php_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare| +assert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt| +get_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions| +magic_quotes_(gpc|runtime)|required_files|resources)| +get(env|lastmod|rusage|my(inode|[gup]id))| +memory_get_(peak_)?usage|main|magic_quotes_runtime +)\\b`,name:"support.function.info.php"},{match:`(?xi)\\b +ibase_( +set_event_handler|service_(attach|detach)|server_info|num_(fields|params)|name_result|connect| +commit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)| +execute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event| +add_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup| +blob_(cancel|close|create|import|info|open|echo|add|get) +)\\b`,name:"support.function.interbase.php"},{match:`(?xi)\\b +( +normalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)| +numfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?| +get_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))| +collator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort| +get_(strength|sort_key|error_(code|message)|locale|attribute))| +transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))| +intl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))| +datefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime| +get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))| +locale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http| +get_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))| +resourcebundle_(create|count|locales|get(_(error_(code|message)))?)| +grapheme_(str(i?str|r?i?pos|len)|substr|extract)| +msgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale)) +)\\b`,name:"support.function.intl.php"},{match:"(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b",name:"support.function.json.php"},{match:`(?xi)\\b +ldap_( +start|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)| +connect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61| +dn2ufn|delete|unbind|parse_(reference|result)|escape|errno|err2str|error|explode_dn|bind| +free_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?| +mod_(add|del|replace) +)\\b`,name:"support.function.ldap.php"},{match:"(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b",name:"support.function.libxml.php"},{match:"(?i)\\b(ezmlm_hash|mail)\\b",name:"support.function.mail.php"},{match:`(?xi)\\b +( +(a)?(cos|sin|tan)(h)?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad| +pi|pow|exp(m1)?|floor|fmod|lcg_value|log(1(p|0))?|atan2|abs|round|rand|rad2deg|getrandmax| +mt_(srand|rand|getrandmax)|max|min|bindec|base_convert +)\\b`,name:"support.function.math.php"},{match:`(?xi)\\b +mb_( +str(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos)| +substitute_character|substr(_count)?|split|send_mail|http_(input|output)|check_encoding| +convert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)| +detect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)| +ereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)| +list_encodings|language|regex_(set_options|encoding)|get_info +)\\b`,name:"support.function.mbstring.php"},{match:`(?xi)\\b +( +mcrypt_( +cfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?| +enc_(self_test|is_block_(algorithm|algorithm_mode|mode)| +get_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))| +get_(cipher_name|(block|iv|key)_size)| +module_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open| +get_(supported_key_sizes|algo_(block|key)_size)))| +mdecrypt_generic +)\\b`,name:"support.function.mcrypt.php"},{match:"(?i)\\bmemcache_debug\\b",name:"support.function.memcache.php"},{match:"(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b",name:"support.function.mhash.php"},{match:"(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b",name:"support.function.mongo.php"},{match:`(?xi)\\b +mysql_( +stat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string| +thread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping| +errno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)| +free_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string| +get_(client|host|proto|server)_info +)\\b`,name:"support.function.mysql.php"},{match:`(?xi)\\b +mysqli_( +ssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))| +stmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result| +attr_(get|set)|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))| +select_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit| +client_encoding|close|thread_safe|init|options|(enable|disable)_(reads_from_master|rpl_parse)| +dump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute| +embedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh| +fetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)| +release_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query| +get_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)| +master_query|bind_(param|result)|begin_transaction +)\\b`,name:"support.function.mysqli.php"},{match:"(?i)\\bmysqlnd_memcache_(set|get_config)\\b",name:"support.function.mysqlnd-memcache.php"},{match:"(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\b",name:"support.function.mysqlnd-ms.php"},{match:"(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|core_stats|cache_info|query_trace_log|available_handlers))\\b",name:"support.function.mysqlnd-qc.php"},{match:"(?i)\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\b",name:"support.function.mysqlnd-uh.php"},{match:`(?xi)\\b +( +syslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog| +headers_(list|sent)|header(_(register_callback|remove))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long| +openlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip| +get(servby(name|port)|host(name|by(name(l)?|addr))|protoby(name|number)|mxrr) +)\\b`,name:"support.function.network.php"},{match:"(?i)\\bnsapi_(virtual|response_headers|request_headers)\\b",name:"support.function.nsapi.php"},{match:`(?xi)\\b +( +oci(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon| +column(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit| +closelob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?| +free(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(on|off)|rowcount|rollback| +result|bindbyname)| +oci_(statement_type|set_(client_(info|identifier)|prefetch|edition|action|module_name)|server_version| +num_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel| +internal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name| +field_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?| +free_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset) +)\\b`,name:"support.function.oci8.php"},{match:"(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b",name:"support.function.opcache.php"},{match:`(?xi)\\b +openssl_( +sign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))| +cipher_iv_length|open|dh_compute_key|digest|decrypt|public_(decrypt|encrypt)|encrypt|error_string| +pkcs12_(export(_to_file)?|read)|pkcs7_(sign|decrypt|encrypt|verify)|verify|free_key|random_pseudo_bytes| +pkey_(new|export(_to_file)?|free|get_(details|public|private))|private_(decrypt|encrypt)|pbkdf2| +get_((cipher|md)_methods|cert_locations|(public|private)key)| +x509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read) +)\\b`,name:"support.function.openssl.php"},{match:`(?xi)\\b +( +output_(add_rewrite_var|reset_rewrite_vars)|flush| +ob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler| +get_(status|contents|clean|flush|length|level)) +)\\b`,name:"support.function.output.php"},{match:"(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b",name:"support.function.password.php"},{match:`(?xi)\\b +pcntl_( +strerror|signal(_dispatch)?|sig(timedwait|procmask|waitinfo)|setpriority|errno|exec|fork| +w(stopsig|termsig|if(stopped|signaled|exited))|wait(pid)?|alarm|getpriority|get_last_error +)\\b`,name:"support.function.pcntl.php"},{match:`(?xi)\\b +pg_( +socket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host| +num_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)| +client_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace| +unescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?| +escape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)| +field_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)| +fetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data| +lo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)| +)\\b`,name:"support.function.pgsql.php"},{match:"(?i)\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\b",name:"support.function.php_apache.php"},{match:"(?i)\\bdom_import_simplexml\\b",name:"support.function.php_dom.php"},{match:`(?xi)\\b +ftp_( +ssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close| +delete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir +)\\b`,name:"support.function.php_ftp.php"},{match:`(?xi)\\b +imap_( +(create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody| +num_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen| +8bit|unsubscribe|undelete|utf7_(decode|encode)|utf8|uid|ping|errors|expunge|qprint|gc| +fetch(structure|header|text|mime|body)|fetch_overview|lsub|list(scan|subscribed)|last_error| +rfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?| +msgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64 +)\\b`,name:"support.function.php_imap.php"},{match:`(?xi)\\b +mssql_( +select_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query| +field_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)| +rows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind +)\\b`,name:"support.function.php_mssql.php"},{match:`(?xi)\\b +odbc_( +statistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit| +cursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns| +prepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result| +fetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode +)\\b`,name:"support.function.php_odbc.php"},{match:"(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b",name:"support.function.php_pcre.php"},{match:"(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b",name:"support.function.php_spl.php"},{match:"(?i)\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\b",name:"support.function.php_zip.php"},{match:`(?xi)\\b +posix_( +strerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|access| +get(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)| +get_last_error|mknod|mkfifo +)\\b`,name:"support.function.posix.php"},{match:"(?i)\\bset(thread|proc)title\\b",name:"support.function.proctitle.php"},{match:`(?xi)\\b +pspell_( +store_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session| +config_(save_repl|create|ignore|(data|dict)_dir|personal|runtogether|repl|mode)|add_to_(session|personal) +)\\b`,name:"support.function.pspell.php"},{match:"(?i)\\breadline(_(completion_function|clear_history|callback_(handler_(install|remove)|read_char)|info|on_new_line|write_history|list_history|add_history|redisplay|read_history))?\\b",name:"support.function.readline.php"},{match:"(?i)\\brecode(_(string|file))?\\b",name:"support.function.recode.php"},{match:"(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\b",name:"support.function.rrd.php"},{match:`(?xi)\\b +( +shm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok| +msg_((get|remove|set|stat)_queue|send|queue_exists|receive) +)\\b`,name:"support.function.sem.php"},{match:`(?xi)\\b +session_( +status|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)| +is_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?| +regenerate_id|get_cookie_params|module_name +)\\b`,name:"support.function.session.php"},{match:"(?i)\\bshmop_(size|close|open|delete|write|read)\\b",name:"support.function.shmop.php"},{match:"(?i)\\bsimplexml_(import_dom|load_(string|file))\\b",name:"support.function.simplexml.php"},{match:`(?xi)\\b +( +snmp(walk(oid)?|realwalk|get(next)?|set)| +snmp_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib| +get_(valueretrieval|quick_print))| +snmp[23]_(set|walk|real_walk|get(next)?) +)\\b`,name:"support.function.snmp.php"},{match:"(?i)\\b(is_soap_fault|use_soap_error_handler)\\b",name:"support.function.soap.php"},{match:`(?xi)\\b +socket_( +shutdown|strerror|send(to|msg)?|set_((non)?block|option)|select|connect|close|clear_error|bind| +create(_(pair|listen))?|cmsg_space|import_stream|write|listen|last_error|accept|recv(from|msg)?| +read|get(peer|sock)name|get_option +)\\b`,name:"support.function.sockets.php"},{match:`(?xi)\\b +sqlite_( +single_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close| +create_(aggregate|function)|open|unbuffered_query|udf_(decode|encode)_binary|popen|prev| +escape_string|error_string|exec|valid|key|query|field_name|factory| +fetch_(string|single|column_types|object|all|array)|lib(encoding|version)| +last_(insert_rowid|error)|array_query|rewind|busy_timeout +)\\b`,name:"support.function.sqlite.php"},{match:`(?xi)\\b +sqlsrv_( +send_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit| +client_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?| +free_stmt|rows_affected|rollback|get_(config|field)|begin_transaction +)\\b`,name:"support.function.sqlsrv.php"},{match:`(?xi)\\b +stats_( +harmonic_mean|covariance|standard_deviation|skew| +cdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull| +logistic|laplace|gamma|binomial|beta)| +stat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)| +dens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f| +weibull|logistic|laplace|gamma|beta)| +den_uniform|variance|kurtosis|absolute_deviation| +rand_(setall|phrase_to_seeds|ranf|get_seeds| +gen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int| +i(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta)) +)\\b`,name:"support.function.stats.php"},{match:`(?xi)\\b +( +set_socket_blocking| +stream_(socket_(shutdown|sendto|server|client|pair|enable_crypto|accept|recvfrom|get_name)| +set_(chunk_size|timeout|(read|write)_buffer|blocking)|select|notification_callback|supports_lock| +context_(set_(option|default|params)|create|get_(options|default|params))|copy_to_stream|is_local| +encoding|filter_(append|prepend|register|remove)|wrapper_((un)?register|restore)| +resolve_include_path|register_wrapper|get_(contents|transports|filters|wrappers|line|meta_data)| +bucket_(new|prepend|append|make_writeable) +) +)\\b`,name:"support.function.streamsfuncs.php"},{match:`(?xi)\\b +( +money_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?| +str(str|c?spn|n(at)?(case)?cmp|chr|coll|(case)?cmp|to(upper|lower)|tok|tr|istr|pos|pbrk|len|rchr|ri?pos|rev)| +str_(getcsv|ireplace|pad|repeat|replace|rot13|shuffle|split|word_count)| +strip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale| +html(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo| +chop|chunk_split|chr|convert_(cyr_string|uu(decode|encode))|count_chars|crypt|crc32|trim|implode|ord| +uc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_(decode|encode)| +quotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table +)\\b`,name:"support.function.string.php"},{match:`(?xi)\\b +sybase_( +set_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek| +unbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result| +affected_rows|result|get_last_message|min_(client|error|message|server)_severity +)\\b`,name:"support.function.sybase.php"},{match:"(?i)\\b(taint|is_tainted|untaint)\\b",name:"support.function.taint.php"},{match:`(?xi)\\b +( +tidy_((get|set)opt|set_encoding|save_config|config_count|clean_repair|is_(xhtml|xml)|diagnose| +(access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)| +get_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))| +ob_tidyhandler +)\\b`,name:"support.function.tidy.php"},{match:"(?i)\\btoken_(name|get_all)\\b",name:"support.function.tokenizer.php"},{match:`(?xi)\\b +trader_( +stoch(f|r|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma| +ht_(sine|trend(line|mode)|dc(period|phase)|phasor)|natr|cci|cos(h)?|correl| +cdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines| +hikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall| +counterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer| +identical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river| +upsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)| +piercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji| +ladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite| +gravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu| +belthold|breakaway)| +ceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo| +plus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands| +linearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|ad|add|adx(r)?|apo|avgprice| +aroon(osc)?|rsi|roc|rocp|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]| +minmax(index)?|mid(point|price)|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)? +)\\b`,name:"support.function.trader.php"},{match:"(?i)\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\b",name:"support.function.uopz.php"},{match:"(?i)\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\b",name:"support.function.url.php"},{match:`(?xi)\\b +( +strval|settype|serialize|(bool|double|float)val|debug_zval_dump|intval|import_request_variables|isset| +is_(scalar|string|null|numeric|callable|int(eger)?|object|double|float|long|array|resource|real|bool)| +unset|unserialize|print_r|empty|var_(dump|export)|gettype|get_(defined_vars|resource_type) +)\\b`,name:"support.function.var.php"},{match:"(?i)\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\b",name:"support.function.wddx.php"},{match:"(?i)\\bxhprof_(sample_)?(disable|enable)\\b",name:"support.function.xhprof.php"},{match:`(?xi) +\\b +( +utf8_(decode|encode)| +xml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler| +(character_data|default|element|external_entity_ref|processing_instruction)_handler|object)| +parse(_into_struct)?|parser_((get|set)_option|create(_ns)?|free)|error_string| +get_(current_((column|line)_number|byte_index)|error_code)) +)\\b`,name:"support.function.xml.php"},{match:`(?xi)\\b +xmlrpc_( +server_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))| +is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|(get|set)_type +)\\b`,name:"support.function.xmlrpc.php"},{match:`(?xi)\\b +xmlwriter_( +(end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)| +(start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)| +full_end_element|flush| +)\\b`,name:"support.function.xmlwriter.php"},{match:`(?xi)\\b +( +zlib_(decode|encode|get_coding_type)|readgzfile| +gz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file| +write|rewind|read|getc|getss?) +)\\b`,name:"support.function.zlib.php"},{match:"(?i)\\bis_int(eger)?\\b",name:"support.function.alias.php"}]},switch_statement:{patterns:[{match:"\\s+(?=switch\\b)"},{begin:"\\bswitch\\b(?!\\s*\\(.*\\)\\s*:)",beginCaptures:{0:{name:"keyword.control.switch.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.section.switch-block.end.bracket.curly.php"}},name:"meta.switch-statement.php",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.switch-expression.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.switch-expression.end.bracket.round.php"}},patterns:[{include:"$self"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.section.switch-block.begin.bracket.curly.php"}},end:"(?=}|\\?>)",patterns:[{include:"$self"}]}]}]},ternary_expression:{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.php"}},end:"(?<!:):(?!:)",endCaptures:{0:{name:"keyword.operator.ternary.php"}},patterns:[{captures:{1:{patterns:[{include:"$self"}]}},match:"(?i)^\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(?=:(?!:))"},{include:"$self"}]},ternary_shorthand:{match:"\\?:",name:"keyword.operator.ternary.php"},"use-inner":{patterns:[{include:"#comments"},{begin:"(?i)\\b(as)\\s+",beginCaptures:{1:{name:"keyword.other.use-as.php"}},end:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",endCaptures:{0:{name:"entity.other.alias.php"}}},{include:"#class-name"},{match:",",name:"punctuation.separator.delimiter.php"}]},var_basic:{patterns:[{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(?i)(\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"variable.other.php"}]},var_global:{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b",name:"variable.other.global.php"},var_global_safer:{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))",name:"variable.other.global.safer.php"},var_language:{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(\\$)this\\b",name:"variable.language.this.php"},"variable-name":{patterns:[{include:"#var_global"},{include:"#var_global_safer"},{captures:{1:{name:"variable.other.php"},2:{name:"punctuation.definition.variable.php"},4:{name:"keyword.operator.class.php"},5:{name:"variable.other.property.php"},6:{name:"punctuation.section.array.begin.php"},7:{name:"constant.numeric.index.php"},8:{name:"variable.other.index.php"},9:{name:"punctuation.definition.variable.php"},10:{name:"string.unquoted.index.php"},11:{name:"punctuation.section.array.end.php"}},match:`(?xi) +((\\$)(?<name>[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*))\\s* +(?: +(\\??->)\\s*(\\g<name>) +| +(\\[)(?:(\\d+)|((\\$)\\g<name>)|([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*))(\\]) +)?`},{captures:{1:{name:"variable.other.php"},2:{name:"punctuation.definition.variable.php"},4:{name:"punctuation.definition.variable.php"}},match:"(?i)((\\${)(?<name>[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(}))"}]},variables:{patterns:[{include:"#var_language"},{include:"#var_global"},{include:"#var_global_safer"},{include:"#var_basic"},{begin:"\\${(?=.*?})",beginCaptures:{0:{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.variable.php"}},patterns:[{include:"$self"}]}]}},scopeName:"source.php",embeddedLangs:["html","xml","sql","javascript","json","css"]});var l=[...e,...n,...t,...a,...r,...i,p];export{l as default}; diff --git a/assets/chunks/plsql.BbJj1K1w.js b/assets/chunks/plsql.BbJj1K1w.js new file mode 100644 index 000000000..2e8a36f0b --- /dev/null +++ b/assets/chunks/plsql.BbJj1K1w.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"PL/SQL",fileTypes:["sql","ddl","dml","pkh","pks","pkb","pck","pls","plb"],foldingStartMarker:"(?i)^\\s*(begin|if|loop)\\b",foldingStopMarker:"(?i)^\\s*(end)\\b",name:"plsql",patterns:[{begin:"/\\*",end:"\\*/",name:"comment.block.oracle"},{match:"--.*$",name:"comment.line.double-dash.oracle"},{match:"(?i)(?:^\\s*)rem(?:\\s+.*$)",name:"comment.line.sqlplus.oracle"},{match:"(?i)(?:^\\s*)prompt(?:\\s+.*$)",name:"comment.line.sqlplus-prompt.oracle"},{captures:{1:{name:"keyword.other.oracle"},2:{name:"keyword.other.oracle"}},match:"(?i)^\\s*(create)(\\s+or\\s+replace)?\\s+",name:"meta.create.oracle"},{captures:{1:{name:"keyword.other.oracle"},2:{name:"keyword.other.oracle"},3:{name:"entity.name.type.oracle"}},match:"(?i)\\b(package)(\\s+body)?\\s+(\\S+)",name:"meta.package.oracle"},{captures:{1:{name:"keyword.other.oracle"},2:{name:"entity.name.type.oracle"}},match:'(?i)\\b(type)\\s+"([^"]+)"',name:"meta.type.oracle"},{captures:{1:{name:"keyword.other.oracle"},2:{name:"entity.name.function.oracle"}},match:'(?i)^\\s*(function|procedure)\\s+"?([-a-z0-9_]+)"?',name:"meta.procedure.oracle"},{match:"[!<>:]?=|<>|<|>|\\+|(?<!\\.)\\*|-|(?<!^)/|\\|\\|",name:"keyword.operator.oracle"},{match:"(?i)\\b(true|false|null|is\\s+(not\\s+)?null)\\b",name:"constant.language.oracle"},{match:"\\b\\d+(\\.\\d+)?\\b",name:"constant.numeric.oracle"},{match:"(?i)\\b(if|elsif|else|end\\s+if|loop|end\\s+loop|for|while|case|end\\s+case|continue|return|goto)\\b",name:"keyword.control.oracle"},{match:"(?i)\\b(or|and|not|like)\\b",name:"keyword.other.oracle"},{match:"(?i)\\b(%(isopen|found|notfound|rowcount)|commit|rollback|sqlerrm)\\b",name:"support.function.oracle"},{match:"(?i)\\b(sql|sqlcode)\\b",name:"variable.language.oracle"},{match:"(?i)\\b(ascii|asciistr|chr|compose|concat|convert|decompose|dump|initcap|instr|instrb|instrc|instr2|instr4|unistr|length|lengthb|lengthc|length2|length4|lower|lpad|ltrim|nchr|replace|rpad|rtrim|soundex|substr|translate|trim|upper|vsize)\\b",name:"support.function.builtin.char.oracle"},{match:"(?i)\\b(add_months|current_date|current_timestamp|dbtimezone|last_day|localtimestamp|months_between|new_time|next_day|round|sessiontimezone|sysdate|tz_offset|systimestamp)\\b",name:"support.function.builtin.date.oracle"},{match:"(?i)\\b(avg|count|sum|max|min|median|corr|corr_\\w+|covar_(pop|samp)|cume_dist|dense_rank|first|group_id|grouping|grouping_id|last|percentile_cont|percentile_disc|percent_rank|rank|regr_\\w+|row_number|stats_binomial_test|stats_crosstab|stats_f_test|stats_ks_test|stats_mode|stats_mw_test|stats_one_way_anova|stats_t_test_\\w+|stats_wsr_test|stddev|stddev_pop|stddev_samp|var_pop|var_samp|variance)\\b",name:"support.function.builtin.aggregate.oracle"},{match:"(?i)\\b(bfilename|cardinality|coalesce|decode|empty_(blob|clob)|lag|lead|listagg|lnnvl|nanvl|nullif|nvl|nvl2|sys_(context|guid|typeid|connect_by_path|extract_utc)|uid|(current\\s+)?user|userenv|cardinality|(bulk\\s+)?collect|powermultiset(_by_cardinality)?|ora_hash|standard_hash|execute\\s+immediate|alter\\s+session)\\b",name:"support.function.builtin.advanced.oracle"},{match:"(?i)\\b(bin_to_num|cast|chartorowid|from_tz|hextoraw|numtodsinterval|numtoyminterval|rawtohex|rawtonhex|to_char|to_clob|to_date|to_dsinterval|to_lob|to_multi_byte|to_nclob|to_number|to_single_byte|to_timestamp|to_timestamp_tz|to_yminterval|scn_to_timestamp|timestamp_to_scn|rowidtochar|rowidtonchar|to_binary_double|to_binary_float|to_blob|to_nchar|con_dbid_to_id|con_guid_to_id|con_name_to_id|con_uid_to_id)\\b",name:"support.function.builtin.convert.oracle"},{match:"(?i)\\b(abs|acos|asin|atan|atan2|bit_(and|or|xor)|ceil|cos|cosh|exp|extract|floor|greatest|least|ln|log|mod|power|remainder|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\b",name:"support.function.builtin.math.oracle"},{match:"(?i)\\b(\\.(count|delete|exists|extend|first|last|limit|next|prior|trim|reverse))\\b",name:"support.function.builtin.collection.oracle"},{match:"(?i)\\b(cluster_details|cluster_distance|cluster_id|cluster_probability|cluster_set|feature_details|feature_id|feature_set|feature_value|prediction|prediction_bounds|prediction_cost|prediction_details|prediction_probability|prediction_set)\\b",name:"support.function.builtin.data_mining.oracle"},{match:"(?i)\\b(appendchildxml|deletexml|depth|extract|existsnode|extractvalue|insertchildxml|insertxmlbefore|xmlcast|xmldiff|xmlelement|xmlexists|xmlisvalid|insertchildxmlafter|insertchildxmlbefore|path|sys_dburigen|sys_xmlagg|sys_xmlgen|updatexml|xmlagg|xmlcdata|xmlcolattval|xmlcomment|xmlconcat|xmlforest|xmlparse|xmlpi|xmlquery|xmlroot|xmlsequence|xmlserialize|xmltable|xmltransform)\\b",name:"support.function.builtin.xml.oracle"},{match:"(?i)\\b(pragma\\s+(autonomous_transaction|serially_reusable|restrict_references|exception_init|inline))\\b",name:"keyword.other.pragma.oracle"},{match:"(?i)\\b(p(i|o|io)_[-a-z0-9_]+)\\b",name:"variable.parameter.oracle"},{match:"(?i)\\b(l_[-a-z0-9_]+)\\b",name:"variable.other.oracle"},{match:"(?i):\\b(new|old)\\b",name:"variable.trigger.oracle"},{match:"(?i)\\b(connect\\s+by\\s+(nocycle\\s+)?(prior|level)|connect_by_(root|icycle)|level|start\\s+with)\\b",name:"keyword.hierarchical.sql.oracle"},{match:"(?i)\\b(language|name|java|c)\\b",name:"keyword.wrapper.oracle"},{match:"(?i)\\b(end|then|deterministic|exception|when|declare|begin|in|out|nocopy|is|as|exit|open|fetch|into|close|subtype|type|rowtype|default|exclusive|mode|lock|record|index\\s+by|result_cache|constant|comment|\\.(nextval|currval))\\b",name:"keyword.other.oracle"},{match:"(?i)\\b(grant|revoke|alter|drop|force|add|check|constraint|primary\\s+key|foreign\\s+key|references|unique(\\s+index)?|column|sequence|increment\\s+by|cache|(materialized\\s+)?view|trigger|storage|tablespace|pct(free|used)|(init|max)trans|logging)\\b",name:"keyword.other.ddl.oracle"},{match:"(?i)\\b(with|select|from|where|order\\s+(siblings\\s+)?by|group\\s+by|rollup|cube|((left|right|cross|natural)\\s+(outer\\s+)?)?join|on|asc|desc|update|set|insert|into|values|delete|distinct|union|minus|intersect|having|limit|table|between|like|of|row|(range|rows)\\s+between|nulls\\s+first|nulls\\s+last|before|after|all|any|exists|rownum|cursor|returning|over|partition\\s+by|merge|using|matched|pivot|unpivot)\\b",name:"keyword.other.sql.oracle"},{match:"(?i)\\b(define|whenever\\s+sqlerror|exec|timing\\s+start|timing\\s+stop)\\b",name:"keyword.other.sqlplus.oracle"},{match:"(?i)\\b(access_into_null|case_not_found|collection_is_null|cursor_already_open|dup_val_on_index|invalid_cursor|invalid_number|login_denied|no_data_found|not_logged_on|program_error|rowtype_mismatch|self_is_null|storage_error|subscript_beyond_count|subscript_outside_limit|sys_invalid_rowid|timeout_on_resource|too_many_rows|value_error|zero_divide|others)\\b",name:"support.type.exception.oracle"},{captures:{3:{name:"support.class.oracle"}},match:"(?i)\\b((dbms|utl|owa|apex)_\\w+\\.(\\w+))\\b",name:"support.function.oracle"},{captures:{3:{name:"support.class.oracle"}},match:"(?i)\\b((htf|htp)\\.(\\w+))\\b",name:"support.function.oracle"},{captures:{3:{name:"support.class.user-defined.oracle"}},match:"(?i)\\b((\\w+_pkg|pkg_\\w+)\\.(\\w+))\\b",name:"support.function.user-defined.oracle"},{match:"(?i)\\b(raise|raise_application_error)\\b",name:"support.function.oracle"},{begin:"'",end:"'",name:"string.quoted.single.oracle"},{begin:'"',end:'"',name:"string.quoted.double.oracle"},{match:"(?i)\\b(char|varchar|varchar2|nchar|nvarchar2|boolean|date|timestamp(\\s+with(\\s+local)?\\s+time\\s+zone)?|interval\\s*day(\\(\\d*\\))?\\s*to\\s*month|interval\\s*year(\\(\\d*\\))?\\s*to\\s*second(\\(\\d*\\))?|xmltype|blob|clob|nclob|bfile|long|long\\s+raw|raw|number|integer|decimal|smallint|float|binary_(float|double|integer)|pls_(float|double|integer)|rowid|urowid|vararray|natural|naturaln|positive|positiven|signtype|simple_(float|double|integer))\\b",name:"storage.type.oracle"}],scopeName:"source.plsql.oracle"});var t=[e];export{t as default}; diff --git a/assets/chunks/po.HrnDn_2Q.js b/assets/chunks/po.HrnDn_2Q.js new file mode 100644 index 000000000..9f173f30b --- /dev/null +++ b/assets/chunks/po.HrnDn_2Q.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Gettext PO",fileTypes:["po","pot","potx"],name:"po",patterns:[{begin:'^(?=(msgid(_plural)?|msgctxt)\\s*"[^"])|^\\s*$',comment:"Start of body of document, after header",end:"\\z",patterns:[{include:"#body"}]},{include:"#comments"},{match:'^msg(id|str)\\s+""\\s*$\\n?',name:"comment.line.number-sign.po"},{captures:{1:{name:"constant.language.po"},2:{name:"punctuation.separator.key-value.po"},3:{name:"string.other.po"}},match:'^"(?:([^\\s:]+)(:)\\s+)?([^"]*)"\\s*$\\n?',name:"meta.header.po"}],repository:{body:{patterns:[{begin:"^(msgid(_plural)?)\\s+",beginCaptures:{1:{name:"keyword.control.msgid.po"}},end:'^(?!")',name:"meta.scope.msgid.po",patterns:[{begin:'(\\G|^)"',end:'"',name:"string.quoted.double.po",patterns:[{match:'\\\\[\\\\"]',name:"constant.character.escape.po"}]}]},{begin:"^(msgstr)(?:(\\[)(\\d+)(\\]))?\\s+",beginCaptures:{1:{name:"keyword.control.msgstr.po"},2:{name:"keyword.control.msgstr.po"},3:{name:"constant.numeric.po"},4:{name:"keyword.control.msgstr.po"}},end:'^(?!")',name:"meta.scope.msgstr.po",patterns:[{begin:'(\\G|^)"',end:'"',name:"string.quoted.double.po",patterns:[{match:'\\\\[\\\\"]',name:"constant.character.escape.po"}]}]},{begin:"^(msgctxt)(?:(\\[)(\\d+)(\\]))?\\s+",beginCaptures:{1:{name:"keyword.control.msgctxt.po"},2:{name:"keyword.control.msgctxt.po"},3:{name:"constant.numeric.po"},4:{name:"keyword.control.msgctxt.po"}},end:'^(?!")',name:"meta.scope.msgctxt.po",patterns:[{begin:'(\\G|^)"',end:'"',name:"string.quoted.double.po",patterns:[{match:'\\\\[\\\\"]',name:"constant.character.escape.po"}]}]},{captures:{1:{name:"punctuation.definition.comment.po"}},match:"^(#~).*$\\n?",name:"comment.line.number-sign.obsolete.po"},{include:"#comments"},{comment:'a line that does not begin with # or ". Could improve this regexp',match:'^(?!\\s*$)[^#"].*$\\n?',name:"invalid.illegal.po"}]},comments:{patterns:[{begin:"^(?=#)",end:"(?!\\G)",patterns:[{begin:"(#,)\\s+",beginCaptures:{1:{name:"punctuation.definition.comment.po"}},end:"\\n",name:"comment.line.number-sign.flag.po",patterns:[{captures:{1:{name:"entity.name.type.flag.po"}},match:"(?:\\G|,\\s*)((?:fuzzy)|(?:no-)?(?:c|objc|sh|lisp|elisp|librep|scheme|smalltalk|java|csharp|awk|object-pascal|ycp|tcl|perl|perl-brace|php|gcc-internal|qt|boost)-format)"}]},{begin:"#\\.",beginCaptures:{0:{name:"punctuation.definition.comment.po"}},end:"\\n",name:"comment.line.number-sign.extracted.po"},{begin:"(#:)[ \\t]*",beginCaptures:{1:{name:"punctuation.definition.comment.po"}},end:"\\n",name:"comment.line.number-sign.reference.po",patterns:[{match:"(\\S+:)([\\d;]*)",name:"storage.type.class.po"}]},{begin:"#\\|",beginCaptures:{0:{name:"punctuation.definition.comment.po"}},end:"\\n",name:"comment.line.number-sign.previous.po"},{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.po"}},end:"\\n",name:"comment.line.number-sign.po"}]}]}},scopeName:"source.po",aliases:["pot","potx"]});var n=[e];export{n as default}; diff --git a/assets/chunks/poimandres.Cda-MJFk.js b/assets/chunks/poimandres.Cda-MJFk.js new file mode 100644 index 000000000..a001b0367 --- /dev/null +++ b/assets/chunks/poimandres.Cda-MJFk.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#a6accd","activityBar.background":"#1b1e28","activityBar.dropBorder":"#a6accd","activityBar.foreground":"#a6accd","activityBar.inactiveForeground":"#a6accd66","activityBarBadge.background":"#303340","activityBarBadge.foreground":"#e4f0fb","badge.background":"#303340","badge.foreground":"#e4f0fb","breadcrumb.activeSelectionForeground":"#e4f0fb","breadcrumb.background":"#00000000","breadcrumb.focusForeground":"#e4f0fb","breadcrumb.foreground":"#767c9dcc","breadcrumbPicker.background":"#1b1e28","button.background":"#303340","button.foreground":"#ffffff","button.hoverBackground":"#50647750","button.secondaryBackground":"#a6accd","button.secondaryForeground":"#ffffff","button.secondaryHoverBackground":"#a6accd","charts.blue":"#ADD7FF","charts.foreground":"#a6accd","charts.green":"#5DE4c7","charts.lines":"#a6accd80","charts.orange":"#89ddff","charts.purple":"#f087bd","charts.red":"#d0679d","charts.yellow":"#fffac2","checkbox.background":"#1b1e28","checkbox.border":"#ffffff10","checkbox.foreground":"#e4f0fb","debugConsole.errorForeground":"#d0679d","debugConsole.infoForeground":"#ADD7FF","debugConsole.sourceForeground":"#a6accd","debugConsole.warningForeground":"#fffac2","debugConsoleInputIcon.foreground":"#a6accd","debugExceptionWidget.background":"#d0679d","debugExceptionWidget.border":"#d0679d","debugIcon.breakpointCurrentStackframeForeground":"#fffac2","debugIcon.breakpointDisabledForeground":"#7390AA","debugIcon.breakpointForeground":"#d0679d","debugIcon.breakpointStackframeForeground":"#5fb3a1","debugIcon.breakpointUnverifiedForeground":"#7390AA","debugIcon.continueForeground":"#ADD7FF","debugIcon.disconnectForeground":"#d0679d","debugIcon.pauseForeground":"#ADD7FF","debugIcon.restartForeground":"#5fb3a1","debugIcon.startForeground":"#5fb3a1","debugIcon.stepBackForeground":"#ADD7FF","debugIcon.stepIntoForeground":"#ADD7FF","debugIcon.stepOutForeground":"#ADD7FF","debugIcon.stepOverForeground":"#ADD7FF","debugIcon.stopForeground":"#d0679d","debugTokenExpression.boolean":"#89ddff","debugTokenExpression.error":"#d0679d","debugTokenExpression.name":"#e4f0fb","debugTokenExpression.number":"#5fb3a1","debugTokenExpression.string":"#89ddff","debugTokenExpression.value":"#a6accd99","debugToolBar.background":"#303340","debugView.exceptionLabelBackground":"#d0679d","debugView.exceptionLabelForeground":"#e4f0fb","debugView.stateLabelBackground":"#303340","debugView.stateLabelForeground":"#a6accd","debugView.valueChangedHighlight":"#89ddff",descriptionForeground:"#a6accdb3","diffEditor.diagonalFill":"#a6accd33","diffEditor.insertedTextBackground":"#50647715","diffEditor.removedTextBackground":"#d0679d20","dropdown.background":"#1b1e28","dropdown.border":"#ffffff10","dropdown.foreground":"#e4f0fb","editor.background":"#1b1e28","editor.findMatchBackground":"#ADD7FF40","editor.findMatchBorder":"#ADD7FF","editor.findMatchHighlightBackground":"#ADD7FF40","editor.findRangeHighlightBackground":"#ADD7FF40","editor.focusedStackFrameHighlightBackground":"#7abd7a4d","editor.foldBackground":"#717cb40b","editor.foreground":"#a6accd","editor.hoverHighlightBackground":"#264f7840","editor.inactiveSelectionBackground":"#717cb425","editor.lineHighlightBackground":"#717cb425","editor.lineHighlightBorder":"#00000000","editor.linkedEditingBackground":"#d0679d4d","editor.rangeHighlightBackground":"#ffffff0b","editor.selectionBackground":"#717cb425","editor.selectionHighlightBackground":"#00000000","editor.selectionHighlightBorder":"#ADD7FF80","editor.snippetFinalTabstopHighlightBorder":"#525252","editor.snippetTabstopHighlightBackground":"#7c7c7c4d","editor.stackFrameHighlightBackground":"#ffff0033","editor.symbolHighlightBackground":"#89ddff60","editor.wordHighlightBackground":"#ADD7FF20","editor.wordHighlightStrongBackground":"#ADD7FF40","editorBracketMatch.background":"#00000000","editorBracketMatch.border":"#e4f0fb40","editorCodeLens.foreground":"#a6accd","editorCursor.foreground":"#a6accd","editorError.foreground":"#d0679d","editorGroup.border":"#00000030","editorGroup.dropBackground":"#7390AA80","editorGroupHeader.noTabsBackground":"#1b1e28","editorGroupHeader.tabsBackground":"#1b1e28","editorGutter.addedBackground":"#5fb3a140","editorGutter.background":"#1b1e28","editorGutter.commentRangeForeground":"#a6accd","editorGutter.deletedBackground":"#d0679d40","editorGutter.foldingControlForeground":"#a6accd","editorGutter.modifiedBackground":"#ADD7FF20","editorHint.foreground":"#7390AAb3","editorHoverWidget.background":"#1b1e28","editorHoverWidget.border":"#ffffff10","editorHoverWidget.foreground":"#a6accd","editorHoverWidget.statusBarBackground":"#202430","editorIndentGuide.activeBackground":"#e3e4e229","editorIndentGuide.background":"#303340","editorInfo.foreground":"#ADD7FF","editorInlineHint.background":"#a6accd","editorInlineHint.foreground":"#1b1e28","editorLightBulb.foreground":"#fffac2","editorLightBulbAutoFix.foreground":"#ADD7FF","editorLineNumber.activeForeground":"#a6accd","editorLineNumber.foreground":"#767c9d50","editorLink.activeForeground":"#ADD7FF","editorMarkerNavigation.background":"#2d2d30","editorMarkerNavigationError.background":"#d0679d","editorMarkerNavigationInfo.background":"#ADD7FF","editorMarkerNavigationWarning.background":"#fffac2","editorOverviewRuler.addedForeground":"#5fb3a199","editorOverviewRuler.border":"#00000000","editorOverviewRuler.bracketMatchForeground":"#a0a0a0","editorOverviewRuler.commonContentForeground":"#a6accd66","editorOverviewRuler.currentContentForeground":"#5fb3a180","editorOverviewRuler.deletedForeground":"#d0679d99","editorOverviewRuler.errorForeground":"#d0679db3","editorOverviewRuler.findMatchForeground":"#e4f0fb20","editorOverviewRuler.incomingContentForeground":"#89ddff80","editorOverviewRuler.infoForeground":"#ADD7FF","editorOverviewRuler.modifiedForeground":"#89ddff99","editorOverviewRuler.rangeHighlightForeground":"#89ddff99","editorOverviewRuler.selectionHighlightForeground":"#a0a0a0cc","editorOverviewRuler.warningForeground":"#fffac2","editorOverviewRuler.wordHighlightForeground":"#a0a0a0cc","editorOverviewRuler.wordHighlightStrongForeground":"#89ddffcc","editorPane.background":"#1b1e28","editorRuler.foreground":"#e4f0fb10","editorSuggestWidget.background":"#1b1e28","editorSuggestWidget.border":"#ffffff10","editorSuggestWidget.foreground":"#a6accd","editorSuggestWidget.highlightForeground":"#5DE4c7","editorSuggestWidget.selectedBackground":"#00000050","editorUnnecessaryCode.opacity":"#000000aa","editorWarning.foreground":"#fffac2","editorWhitespace.foreground":"#303340","editorWidget.background":"#1b1e28","editorWidget.border":"#a6accd","editorWidget.foreground":"#a6accd",errorForeground:"#d0679d","extensionBadge.remoteBackground":"#303340","extensionBadge.remoteForeground":"#e4f0fb","extensionButton.prominentBackground":"#30334090","extensionButton.prominentForeground":"#ffffff","extensionButton.prominentHoverBackground":"#303340","extensionIcon.starForeground":"#fffac2",focusBorder:"#00000000",foreground:"#a6accd","gitDecoration.addedResourceForeground":"#5fb3a1","gitDecoration.conflictingResourceForeground":"#d0679d","gitDecoration.deletedResourceForeground":"#d0679d","gitDecoration.ignoredResourceForeground":"#767c9d70","gitDecoration.modifiedResourceForeground":"#ADD7FF","gitDecoration.renamedResourceForeground":"#5DE4c7","gitDecoration.stageDeletedResourceForeground":"#d0679d","gitDecoration.stageModifiedResourceForeground":"#ADD7FF","gitDecoration.submoduleResourceForeground":"#89ddff","gitDecoration.untrackedResourceForeground":"#5DE4c7","icon.foreground":"#a6accd","imagePreview.border":"#303340","input.background":"#ffffff05","input.border":"#ffffff10","input.foreground":"#e4f0fb","input.placeholderForeground":"#a6accd60","inputOption.activeBackground":"#00000000","inputOption.activeBorder":"#00000000","inputOption.activeForeground":"#ffffff","inputValidation.errorBackground":"#1b1e28","inputValidation.errorBorder":"#d0679d","inputValidation.errorForeground":"#d0679d","inputValidation.infoBackground":"#506477","inputValidation.infoBorder":"#89ddff","inputValidation.warningBackground":"#506477","inputValidation.warningBorder":"#fffac2","list.activeSelectionBackground":"#30334080","list.activeSelectionForeground":"#e4f0fb","list.deemphasizedForeground":"#767c9d","list.dropBackground":"#506477","list.errorForeground":"#d0679d","list.filterMatchBackground":"#89ddff60","list.focusBackground":"#30334080","list.focusForeground":"#a6accd","list.focusOutline":"#00000000","list.highlightForeground":"#5fb3a1","list.hoverBackground":"#30334080","list.hoverForeground":"#e4f0fb","list.inactiveSelectionBackground":"#30334080","list.inactiveSelectionForeground":"#e4f0fb","list.invalidItemForeground":"#fffac2","list.warningForeground":"#fffac2","listFilterWidget.background":"#303340","listFilterWidget.noMatchesOutline":"#d0679d","listFilterWidget.outline":"#00000000","menu.background":"#1b1e28","menu.foreground":"#e4f0fb","menu.selectionBackground":"#303340","menu.selectionForeground":"#7390AA","menu.separatorBackground":"#767c9d","menubar.selectionBackground":"#717cb425","menubar.selectionForeground":"#a6accd","merge.commonContentBackground":"#a6accd29","merge.commonHeaderBackground":"#a6accd66","merge.currentContentBackground":"#5fb3a133","merge.currentHeaderBackground":"#5fb3a180","merge.incomingContentBackground":"#89ddff33","merge.incomingHeaderBackground":"#89ddff80","minimap.errorHighlight":"#d0679d","minimap.findMatchHighlight":"#ADD7FF","minimap.selectionHighlight":"#e4f0fb40","minimap.warningHighlight":"#fffac2","minimapGutter.addedBackground":"#5fb3a180","minimapGutter.deletedBackground":"#d0679d80","minimapGutter.modifiedBackground":"#ADD7FF80","minimapSlider.activeBackground":"#a6accd30","minimapSlider.background":"#a6accd20","minimapSlider.hoverBackground":"#a6accd30","notebook.cellBorderColor":"#1b1e28","notebook.cellInsertionIndicator":"#00000000","notebook.cellStatusBarItemHoverBackground":"#ffffff26","notebook.cellToolbarSeparator":"#303340","notebook.focusedCellBorder":"#00000000","notebook.focusedEditorBorder":"#00000000","notebook.focusedRowBorder":"#00000000","notebook.inactiveFocusedCellBorder":"#00000000","notebook.outputContainerBackgroundColor":"#1b1e28","notebook.rowHoverBackground":"#30334000","notebook.selectedCellBackground":"#303340","notebook.selectedCellBorder":"#1b1e28","notebook.symbolHighlightBackground":"#ffffff0b","notebookScrollbarSlider.activeBackground":"#a6accd25","notebookScrollbarSlider.background":"#00000050","notebookScrollbarSlider.hoverBackground":"#a6accd25","notebookStatusErrorIcon.foreground":"#d0679d","notebookStatusRunningIcon.foreground":"#a6accd","notebookStatusSuccessIcon.foreground":"#5fb3a1","notificationCenterHeader.background":"#303340","notificationLink.foreground":"#ADD7FF","notifications.background":"#1b1e28","notifications.border":"#303340","notifications.foreground":"#e4f0fb","notificationsErrorIcon.foreground":"#d0679d","notificationsInfoIcon.foreground":"#ADD7FF","notificationsWarningIcon.foreground":"#fffac2","panel.background":"#1b1e28","panel.border":"#00000030","panel.dropBorder":"#a6accd","panelSection.border":"#1b1e28","panelSection.dropBackground":"#7390AA80","panelSectionHeader.background":"#303340","panelTitle.activeBorder":"#a6accd","panelTitle.activeForeground":"#a6accd","panelTitle.inactiveForeground":"#a6accd99","peekView.border":"#00000030","peekViewEditor.background":"#a6accd05","peekViewEditor.matchHighlightBackground":"#303340","peekViewEditorGutter.background":"#a6accd05","peekViewResult.background":"#a6accd05","peekViewResult.fileForeground":"#ffffff","peekViewResult.lineForeground":"#a6accd","peekViewResult.matchHighlightBackground":"#303340","peekViewResult.selectionBackground":"#717cb425","peekViewResult.selectionForeground":"#ffffff","peekViewTitle.background":"#a6accd05","peekViewTitleDescription.foreground":"#a6accd60","peekViewTitleLabel.foreground":"#ffffff","pickerGroup.border":"#a6accd","pickerGroup.foreground":"#89ddff","problemsErrorIcon.foreground":"#d0679d","problemsInfoIcon.foreground":"#ADD7FF","problemsWarningIcon.foreground":"#fffac2","progressBar.background":"#89ddff","quickInput.background":"#1b1e28","quickInput.foreground":"#a6accd","quickInputList.focusBackground":"#a6accd10","quickInputTitle.background":"#ffffff1b","sash.hoverBorder":"#00000000","scm.providerBorder":"#e4f0fb10","scrollbar.shadow":"#00000000","scrollbarSlider.activeBackground":"#a6accd25","scrollbarSlider.background":"#00000080","scrollbarSlider.hoverBackground":"#a6accd25","searchEditor.findMatchBackground":"#ADD7FF50","searchEditor.textInputBorder":"#ffffff10","selection.background":"#a6accd","settings.checkboxBackground":"#1b1e28","settings.checkboxBorder":"#ffffff10","settings.checkboxForeground":"#e4f0fb","settings.dropdownBackground":"#1b1e28","settings.dropdownBorder":"#ffffff10","settings.dropdownForeground":"#e4f0fb","settings.dropdownListBorder":"#e4f0fb10","settings.focusedRowBackground":"#00000000","settings.headerForeground":"#e4f0fb","settings.modifiedItemIndicator":"#ADD7FF","settings.numberInputBackground":"#ffffff05","settings.numberInputBorder":"#ffffff10","settings.numberInputForeground":"#e4f0fb","settings.textInputBackground":"#ffffff05","settings.textInputBorder":"#ffffff10","settings.textInputForeground":"#e4f0fb","sideBar.background":"#1b1e28","sideBar.dropBackground":"#7390AA80","sideBar.foreground":"#767c9d","sideBarSectionHeader.background":"#1b1e28","sideBarSectionHeader.foreground":"#a6accd","sideBarTitle.foreground":"#a6accd","statusBar.background":"#1b1e28","statusBar.debuggingBackground":"#303340","statusBar.debuggingForeground":"#ffffff","statusBar.foreground":"#a6accd","statusBar.noFolderBackground":"#1b1e28","statusBar.noFolderForeground":"#a6accd","statusBarItem.activeBackground":"#ffffff2e","statusBarItem.errorBackground":"#d0679d","statusBarItem.errorForeground":"#ffffff","statusBarItem.hoverBackground":"#ffffff1f","statusBarItem.prominentBackground":"#00000080","statusBarItem.prominentForeground":"#a6accd","statusBarItem.prominentHoverBackground":"#0000004d","statusBarItem.remoteBackground":"#303340","statusBarItem.remoteForeground":"#e4f0fb","symbolIcon.arrayForeground":"#a6accd","symbolIcon.booleanForeground":"#a6accd","symbolIcon.classForeground":"#fffac2","symbolIcon.colorForeground":"#a6accd","symbolIcon.constantForeground":"#a6accd","symbolIcon.constructorForeground":"#f087bd","symbolIcon.enumeratorForeground":"#fffac2","symbolIcon.enumeratorMemberForeground":"#ADD7FF","symbolIcon.eventForeground":"#fffac2","symbolIcon.fieldForeground":"#ADD7FF","symbolIcon.fileForeground":"#a6accd","symbolIcon.folderForeground":"#a6accd","symbolIcon.functionForeground":"#f087bd","symbolIcon.interfaceForeground":"#ADD7FF","symbolIcon.keyForeground":"#a6accd","symbolIcon.keywordForeground":"#a6accd","symbolIcon.methodForeground":"#f087bd","symbolIcon.moduleForeground":"#a6accd","symbolIcon.namespaceForeground":"#a6accd","symbolIcon.nullForeground":"#a6accd","symbolIcon.numberForeground":"#a6accd","symbolIcon.objectForeground":"#a6accd","symbolIcon.operatorForeground":"#a6accd","symbolIcon.packageForeground":"#a6accd","symbolIcon.propertyForeground":"#a6accd","symbolIcon.referenceForeground":"#a6accd","symbolIcon.snippetForeground":"#a6accd","symbolIcon.stringForeground":"#a6accd","symbolIcon.structForeground":"#a6accd","symbolIcon.textForeground":"#a6accd","symbolIcon.typeParameterForeground":"#a6accd","symbolIcon.unitForeground":"#a6accd","symbolIcon.variableForeground":"#ADD7FF","tab.activeBackground":"#30334080","tab.activeForeground":"#e4f0fb","tab.activeModifiedBorder":"#ADD7FF","tab.border":"#00000000","tab.inactiveBackground":"#1b1e28","tab.inactiveForeground":"#767c9d","tab.inactiveModifiedBorder":"#ADD7FF80","tab.lastPinnedBorder":"#00000000","tab.unfocusedActiveBackground":"#1b1e28","tab.unfocusedActiveForeground":"#a6accd","tab.unfocusedActiveModifiedBorder":"#ADD7FF40","tab.unfocusedInactiveBackground":"#1b1e28","tab.unfocusedInactiveForeground":"#a6accd80","tab.unfocusedInactiveModifiedBorder":"#ADD7FF40","terminal.ansiBlack":"#1b1e28","terminal.ansiBlue":"#89ddff","terminal.ansiBrightBlack":"#a6accd","terminal.ansiBrightBlue":"#ADD7FF","terminal.ansiBrightCyan":"#ADD7FF","terminal.ansiBrightGreen":"#5DE4c7","terminal.ansiBrightMagenta":"#f087bd","terminal.ansiBrightRed":"#d0679d","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#fffac2","terminal.ansiCyan":"#89ddff","terminal.ansiGreen":"#5DE4c7","terminal.ansiMagenta":"#f087bd","terminal.ansiRed":"#d0679d","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#fffac2","terminal.border":"#00000000","terminal.foreground":"#a6accd","terminal.selectionBackground":"#717cb425","terminalCommandDecoration.defaultBackground":"#767c9d","terminalCommandDecoration.errorBackground":"#d0679d","terminalCommandDecoration.successBackground":"#5DE4c7","testing.iconErrored":"#d0679d","testing.iconFailed":"#d0679d","testing.iconPassed":"#5DE4c7","testing.iconQueued":"#fffac2","testing.iconSkipped":"#7390AA","testing.iconUnset":"#7390AA","testing.message.error.decorationForeground":"#d0679d","testing.message.error.lineBackground":"#d0679d33","testing.message.hint.decorationForeground":"#7390AAb3","testing.message.info.decorationForeground":"#ADD7FF","testing.message.info.lineBackground":"#89ddff33","testing.message.warning.decorationForeground":"#fffac2","testing.message.warning.lineBackground":"#fffac233","testing.peekBorder":"#d0679d","testing.runAction":"#5DE4c7","textBlockQuote.background":"#7390AA1a","textBlockQuote.border":"#89ddff80","textCodeBlock.background":"#00000050","textLink.activeForeground":"#ADD7FF","textLink.foreground":"#ADD7FF","textPreformat.foreground":"#e4f0fb","textSeparator.foreground":"#ffffff2e","titleBar.activeBackground":"#1b1e28","titleBar.activeForeground":"#a6accd","titleBar.inactiveBackground":"#1b1e28","titleBar.inactiveForeground":"#767c9d","tree.indentGuidesStroke":"#303340","tree.tableColumnsBorder":"#a6accd20","welcomePage.progress.background":"#ffffff05","welcomePage.progress.foreground":"#5fb3a1","welcomePage.tileBackground":"#1b1e28","welcomePage.tileHoverBackground":"#303340","widget.shadow":"#00000030"},displayName:"Poimandres",name:"poimandres",tokenColors:[{scope:["comment","punctuation.definition.comment"],settings:{fontStyle:"italic",foreground:"#767c9dB0"}},{scope:"meta.parameters comment.block",settings:{fontStyle:"italic",foreground:"#a6accd"}},{scope:["variable.other.constant.object","variable.other.readwrite.alias","meta.import variable.other.readwrite"],settings:{foreground:"#ADD7FF"}},{scope:["variable.other","support.type.object"],settings:{foreground:"#e4f0fb"}},{scope:["variable.other.object.property","variable.other.property","support.variable.property"],settings:{foreground:"#e4f0fb"}},{scope:["entity.name.function.method","string.unquoted","meta.object.member"],settings:{foreground:"#ADD7FF"}},{scope:["variable - meta.import","constant.other.placeholder","meta.object-literal.key-meta.object.member"],settings:{foreground:"#e4f0fb"}},{scope:["keyword.control.flow"],settings:{foreground:"#5DE4c7c0"}},{scope:["keyword.operator.new","keyword.control.new"],settings:{foreground:"#5DE4c7"}},{scope:["variable.language.this","storage.modifier.async","storage.modifier","variable.language.super"],settings:{foreground:"#5DE4c7"}},{scope:["support.class.error","keyword.control.trycatch","keyword.operator.expression.delete","keyword.operator.expression.void","keyword.operator.void","keyword.operator.delete","constant.language.null","constant.language.boolean.false","constant.language.undefined"],settings:{foreground:"#d0679d"}},{scope:["variable.parameter","variable.other.readwrite.js","meta.definition.variable variable.other.constant","meta.definition.variable variable.other.readwrite"],settings:{foreground:"#e4f0fb"}},{scope:["constant.other.color"],settings:{foreground:"#ffffff"}},{scope:["invalid","invalid.illegal"],settings:{foreground:"#d0679d"}},{scope:["invalid.deprecated"],settings:{foreground:"#d0679d"}},{scope:["keyword.control","keyword"],settings:{foreground:"#a6accd"}},{scope:["keyword.operator","storage.type"],settings:{foreground:"#91B4D5"}},{scope:["keyword.control.module","keyword.control.import","keyword.control.export","keyword.control.default","meta.import","meta.export"],settings:{foreground:"#5DE4c7"}},{scope:["Keyword","Storage"],settings:{fontStyle:"italic"}},{scope:["keyword-meta.export"],settings:{foreground:"#ADD7FF"}},{scope:["meta.brace","punctuation","keyword.operator.existential"],settings:{foreground:"#a6accd"}},{scope:["constant.other.color","meta.tag","punctuation.definition.tag","punctuation.separator.inheritance.php","punctuation.definition.tag.html","punctuation.definition.tag.begin.html","punctuation.definition.tag.end.html","punctuation.section.embedded","keyword.other.template","keyword.other.substitution","meta.objectliteral"],settings:{foreground:"#e4f0fb"}},{scope:["support.class.component"],settings:{foreground:"#5DE4c7"}},{scope:["entity.name.tag","entity.name.tag","meta.tag.sgml","markup.deleted.git_gutter"],settings:{foreground:"#5DE4c7"}},{scope:"variable.function, source meta.function-call entity.name.function, source meta.function-call entity.name.function, source meta.method-call entity.name.function, meta.class meta.group.braces.curly meta.function-call variable.function, meta.class meta.field.declaration meta.function-call entity.name.function, variable.function.constructor, meta.block meta.var.expr meta.function-call entity.name.function, support.function.console, meta.function-call support.function, meta.property.class variable.other.class, punctuation.definition.entity.css",settings:{foreground:"#e4f0fbd0"}},{scope:"entity.name.function, meta.class entity.name.class, meta.class entity.name.type.class, meta.class meta.function-call variable.function, keyword.other.important",settings:{foreground:"#ADD7FF"}},{scope:["source.cpp meta.block variable.other"],settings:{foreground:"#ADD7FF"}},{scope:["support.other.variable","string.other.link"],settings:{foreground:"#5DE4c7"}},{scope:["constant.numeric","support.constant","constant.character","constant.escape","keyword.other.unit","keyword.other","string","constant.language","constant.other.symbol","constant.other.key","markup.heading","markup.inserted.git_gutter","meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js","text.html.derivative"],settings:{foreground:"#5DE4c7"}},{scope:["entity.other.inherited-class"],settings:{foreground:"#ADD7FF"}},{scope:["meta.type.declaration"],settings:{foreground:"#ADD7FF"}},{scope:["entity.name.type.alias"],settings:{foreground:"#a6accd"}},{scope:["keyword.control.as","entity.name.type","support.type"],settings:{foreground:"#a6accdC0"}},{scope:["entity.name","support.orther.namespace.use.php","meta.use.php","support.other.namespace.php","markup.changed.git_gutter","support.type.sys-types"],settings:{foreground:"#91B4D5"}},{scope:["support.class","support.constant","variable.other.constant.object"],settings:{foreground:"#ADD7FF"}},{scope:["source.css support.type.property-name","source.sass support.type.property-name","source.scss support.type.property-name","source.less support.type.property-name","source.stylus support.type.property-name","source.postcss support.type.property-name"],settings:{foreground:"#ADD7FF"}},{scope:["entity.name.module.js","variable.import.parameter.js","variable.other.class.js"],settings:{foreground:"#e4f0fb"}},{scope:["variable.language"],settings:{fontStyle:"italic",foreground:"#ADD7FF"}},{scope:["entity.name.method.js"],settings:{fontStyle:"italic",foreground:"#91B4D5"}},{scope:["meta.class-method.js entity.name.function.js","variable.function.constructor"],settings:{foreground:"#91B4D5"}},{scope:["entity.other.attribute-name"],settings:{fontStyle:"italic",foreground:"#91B4D5"}},{scope:["text.html.basic entity.other.attribute-name.html","text.html.basic entity.other.attribute-name"],settings:{fontStyle:"italic",foreground:"#5fb3a1"}},{scope:["entity.other.attribute-name.class"],settings:{foreground:"#5fb3a1"}},{scope:["source.sass keyword.control"],settings:{foreground:"#42675A"}},{scope:["markup.inserted"],settings:{foreground:"#ADD7FF"}},{scope:["markup.deleted"],settings:{foreground:"#506477"}},{scope:["markup.changed"],settings:{foreground:"#91B4D5"}},{scope:["string.regexp"],settings:{foreground:"#5fb3a1"}},{scope:["constant.character.escape"],settings:{foreground:"#5fb3a1"}},{scope:["*url*","*link*","*uri*"],settings:{fontStyle:"underline",foreground:"#ADD7FF"}},{scope:["tag.decorator.js entity.name.tag.js","tag.decorator.js punctuation.definition.tag.js"],settings:{fontStyle:"italic",foreground:"#42675A"}},{scope:["source.js constant.other.object.key.js string.unquoted.label.js"],settings:{fontStyle:"italic",foreground:"#5fb3a1"}},{scope:["source.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#e4f0fb"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ADD7FF"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#91B4D5"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#7390AA"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#e4f0fb"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ADD7FF"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#91B4D5"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#7390AA"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#e4f0fb"}},{scope:["text.html.markdown","punctuation.definition.list_item.markdown"],settings:{foreground:"#e4f0fb"}},{scope:["text.html.markdown markup.inline.raw.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown"],settings:{foreground:"#91B4D5"}},{scope:["markdown.heading","markup.heading | markup.heading entity.name","markup.heading.markdown punctuation.definition.heading.markdown"],settings:{foreground:"#e4f0fb"}},{scope:["markup.italic"],settings:{fontStyle:"italic",foreground:"#7390AA"}},{scope:["markup.bold","markup.bold string"],settings:{fontStyle:"bold",foreground:"#7390AA"}},{scope:["markup.bold markup.italic","markup.italic markup.bold","markup.quote markup.bold","markup.bold markup.italic string","markup.italic markup.bold string","markup.quote markup.bold string"],settings:{fontStyle:"bold",foreground:"#7390AA"}},{scope:["markup.underline"],settings:{fontStyle:"underline",foreground:"#7390AA"}},{scope:["markup.strike"],settings:{fontStyle:"italic"}},{scope:["markup.quote punctuation.definition.blockquote.markdown"],settings:{foreground:"#5DE4c7"}},{scope:["markup.quote"],settings:{fontStyle:"italic"}},{scope:["string.other.link.title.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["string.other.link.description.title.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["constant.other.reference.link.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["markup.raw.block"],settings:{foreground:"#ADD7FF"}},{scope:["markup.raw.block.fenced.markdown"],settings:{foreground:"#50647750"}},{scope:["punctuation.definition.fenced.markdown"],settings:{foreground:"#50647750"}},{scope:["markup.raw.block.fenced.markdown","variable.language.fenced.markdown","punctuation.section.class.end"],settings:{foreground:"#91B4D5"}},{scope:["variable.language.fenced.markdown"],settings:{foreground:"#91B4D5"}},{scope:["meta.separator"],settings:{fontStyle:"bold",foreground:"#7390AA"}},{scope:["markup.table"],settings:{foreground:"#ADD7FF"}},{scope:"token.info-token",settings:{foreground:"#89ddff"}},{scope:"token.warn-token",settings:{foreground:"#fffac2"}},{scope:"token.error-token",settings:{foreground:"#d0679d"}},{scope:"token.debug-token",settings:{foreground:"#e4f0fb"}},{scope:["entity.name.section.markdown","markup.heading.setext.1.markdown","markup.heading.setext.2.markdown"],settings:{fontStyle:"bold",foreground:"#e4f0fb"}},{scope:"meta.paragraph.markdown",settings:{foreground:"#e4f0fbd0"}},{scope:["punctuation.definition.from-file.diff","meta.diff.header.from-file"],settings:{foreground:"#506477"}},{scope:"markup.inline.raw.string.markdown",settings:{foreground:"#7390AA"}},{scope:"meta.separator.markdown",settings:{foreground:"#767c9d"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:["beginning.punctuation.definition.list.markdown","punctuation.definition.list.begin.markdown","markup.list.unnumbered.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["string.other.link.description.title.markdown punctuation.definition.string.markdown","meta.link.inline.markdown string.other.link.description.title.markdown","string.other.link.description.title.markdown punctuation.definition.string.begin.markdown","string.other.link.description.title.markdown punctuation.definition.string.end.markdown","meta.image.inline.markdown string.other.link.description.title.markdown"],settings:{fontStyle:"",foreground:"#ADD7FF"}},{scope:["meta.link.inline.markdown string.other.link.title.markdown","meta.link.reference.markdown string.other.link.title.markdown","meta.link.reference.def.markdown markup.underline.link.markdown"],settings:{fontStyle:"underline",foreground:"#ADD7FF"}},{scope:["markup.underline.link.markdown","string.other.link.description.title.markdown"],settings:{foreground:"#5DE4c7"}},{scope:["fenced_code.block.language","markup.inline.raw.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["punctuation.definition.markdown","punctuation.definition.raw.markdown","punctuation.definition.heading.markdown","punctuation.definition.bold.markdown","punctuation.definition.italic.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["source.ignore","log.error","log.exception"],settings:{foreground:"#d0679d"}},{scope:["log.verbose"],settings:{foreground:"#a6accd"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/postcss.DXT9h7v2.js b/assets/chunks/postcss.DXT9h7v2.js new file mode 100644 index 000000000..084285614 --- /dev/null +++ b/assets/chunks/postcss.DXT9h7v2.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"PostCSS",fileTypes:["pcss","postcss"],foldingStartMarker:"/\\*|^#|^\\*|^\\b|^\\.",foldingStopMarker:"\\*/|^\\s*$",name:"postcss",patterns:[{begin:"/\\*",end:"\\*/",name:"comment.block.postcss",patterns:[{include:"#comment-tag"}]},{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#placeholder-selector"},{include:"#variable"},{include:"#variable-root-css"},{include:"#numeric"},{include:"#unit"},{include:"#flag"},{include:"#dotdotdot"},{begin:"@include",captures:{0:{name:"keyword.control.at-rule.css.postcss"}},end:"(?=\\n|\\(|{|;)",name:"support.function.name.postcss.library"},{begin:"@mixin|@function",captures:{0:{name:"keyword.control.at-rule.css.postcss"}},end:"$\\n?|(?=\\(|{)",name:"support.function.name.postcss.no-completions",patterns:[{match:"[\\w-]+",name:"entity.name.function"}]},{match:"(?<=@import)\\s[\\w/.*-]+",name:"string.quoted.double.css.postcss"},{begin:"@",end:"$\\n?|\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\s|,))|(?=;)",name:"keyword.control.at-rule.css.postcss"},{begin:"#",end:"$\\n?|(?=\\s|,|;|\\(|\\)|\\.|\\[|{|>)",name:"entity.other.attribute-name.id.css.postcss",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{begin:"\\.|(?<=&)(-|_)",end:"$\\n?|(?=\\s|,|;|\\(|\\)|\\[|{|>)",name:"entity.other.attribute-name.class.css.postcss",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{begin:"\\[",end:"\\]",name:"entity.other.attribute-selector.postcss",patterns:[{include:"#double-quoted"},{include:"#single-quoted"},{match:"\\^|\\$|\\*|~",name:"keyword.other.regex.postcss"}]},{match:"(?<=\\]|\\)|not\\(|\\*|>|>\\s):[a-z:-]+|(::|:-)[a-z:-]+",name:"entity.other.attribute-name.pseudo-class.css.postcss"},{begin:":",end:"$\\n?|(?=;|\\s\\(|and\\(|{|}|\\),)",name:"meta.property-list.css.postcss",patterns:[{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#variable"},{include:"#rgb-value"},{include:"#numeric"},{include:"#unit"},{include:"#flag"},{include:"#function"},{include:"#function-content"},{include:"#function-content-var"},{include:"#operator"},{include:"#parent-selector"},{include:"#property-value"}]},{include:"#rgb-value"},{include:"#function"},{include:"#function-content"},{begin:"(?<!\\-|\\()\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video|main|svg|rect|ruby|center|circle|ellipse|line|polyline|polygon|path|text|u|x)\\b(?!-|\\)|:\\s)|&",end:"(?=\\s|,|;|\\(|\\)|\\.|\\[|{|>|-|_)",name:"entity.name.tag.css.postcss.symbol",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{include:"#operator"},{match:"[a-z-]+((?=:|#{))",name:"support.type.property-name.css.postcss"},{include:"#reserved-words"},{include:"#property-value"}],repository:{"comment-tag":{begin:"{{",end:"}}",name:"comment.tags.postcss",patterns:[{match:"[\\w-]+",name:"comment.tag.postcss"}]},dotdotdot:{match:"\\.{3}",name:"variable.other"},"double-quoted":{begin:'"',end:'"',name:"string.quoted.double.css.postcss",patterns:[{include:"#quoted-interpolation"}]},"double-slash":{begin:"//",end:"$",name:"comment.line.postcss",patterns:[{include:"#comment-tag"}]},flag:{match:"!(important|default|optional|global)",name:"keyword.other.important.css.postcss"},function:{match:"(?<=[\\s|\\(|,|:])(?!url|format|attr)[\\w-][\\w-]*(?=\\()",name:"support.function.name.postcss"},"function-content":{match:"(?<=url\\(|format\\(|attr\\().+?(?=\\))",name:"string.quoted.double.css.postcss"},"function-content-var":{match:"(?<=var\\()[\\w-]+(?=\\))",name:"variable.parameter.postcss"},interpolation:{begin:"#{",end:"}",name:"support.function.interpolation.postcss",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#operator"},{include:"#unit"},{include:"#double-quoted"},{include:"#single-quoted"}]},numeric:{match:"(-|\\.)?[0-9]+(\\.[0-9]+)?",name:"constant.numeric.css.postcss"},operator:{match:"\\+|\\s-\\s|\\s-(?=\\$)|(?<=\\()-(?=\\$)|\\s-(?=\\()|\\*|/|%|=|!|<|>|~",name:"keyword.operator.postcss"},"parent-selector":{match:"&",name:"entity.name.tag.css.postcss"},"placeholder-selector":{begin:"(?<!\\d)%(?!\\d)",end:"$\\n?|\\s|(?=;|{)",name:"entity.other.attribute-name.placeholder-selector.postcss"},"property-value":{match:"[\\w-]+",name:"meta.property-value.css.postcss, support.constant.property-value.css.postcss"},"pseudo-class":{match:":[a-z:-]+",name:"entity.other.attribute-name.pseudo-class.css.postcss"},"quoted-interpolation":{begin:"#{",end:"}",name:"support.function.interpolation.postcss",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#operator"},{include:"#unit"}]},"reserved-words":{match:"\\b(false|from|in|not|null|through|to|true)\\b",name:"support.type.property-name.css.postcss"},"rgb-value":{match:"(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b",name:"constant.other.color.rgb-value.css.postcss"},"single-quoted":{begin:"'",end:"'",name:"string.quoted.single.css.postcss",patterns:[{include:"#quoted-interpolation"}]},unit:{match:"(?<=[\\d]|})(ch|cm|deg|dpcm|dpi|dppx|em|ex|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vw|%)",name:"keyword.other.unit.css.postcss"},variable:{match:"\\$[\\w-]+",name:"variable.parameter.postcss"},"variable-root-css":{match:"(?<!&)--[\\w-]+",name:"variable.parameter.postcss"}},scopeName:"source.css.postcss"});var t=[e];export{t as default}; diff --git a/assets/chunks/powerquery.CApMHEaB.js b/assets/chunks/powerquery.CApMHEaB.js new file mode 100644 index 000000000..997e941db --- /dev/null +++ b/assets/chunks/powerquery.CApMHEaB.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"PowerQuery",fileTypes:["pq","pqm"],name:"powerquery",patterns:[{include:"#Noise"},{include:"#LiteralExpression"},{include:"#Keywords"},{include:"#ImplicitVariable"},{include:"#IntrinsicVariable"},{include:"#Operators"},{include:"#DotOperators"},{include:"#TypeName"},{include:"#RecordExpression"},{include:"#Punctuation"},{include:"#QuotedIdentifier"},{include:"#Identifier"}],repository:{BlockComment:{begin:"/\\*",end:"\\*/",name:"comment.block.powerquery"},DecimalNumber:{match:"(?<![\\d\\w])(\\d*\\.\\d+)\\b",name:"constant.numeric.decimal.powerquery"},DotOperators:{captures:{1:{name:"keyword.operator.ellipsis.powerquery"},2:{name:"keyword.operator.list.powerquery"}},match:"(?<!\\.)(?:(\\.\\.\\.)|(\\.\\.))(?!\\.)"},EscapeSequence:{begin:"#\\(",beginCaptures:{0:{name:"punctuation.definition.escapesequence.begin.powerquery"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.escapesequence.end.powerquery"}},name:"constant.character.escapesequence.powerquery",patterns:[{match:"(#|\\h{4}|\\h{8}|cr|lf|tab)(?:,(#|\\h{4}|\\h{8}|cr|lf|tab))*"},{match:"[^\\)]",name:"invalid.illegal.escapesequence.powerquery"}]},FloatNumber:{match:"(\\d*\\.)?\\d+(e|E)(\\+|-)?\\d+",name:"constant.numeric.float.powerquery"},HexNumber:{match:"0(x|X)\\h+",name:"constant.numeric.integer.hexadecimal.powerquery"},Identifier:{captures:{1:{name:"keyword.operator.inclusiveidentifier.powerquery"},2:{name:"entity.name.powerquery"}},match:"(?x:(?<![\\._\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}])(@?)([_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}][_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}]*(?:\\.[_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}][_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}])*)\\b)"},ImplicitVariable:{match:"\\b_\\b",name:"keyword.operator.implicitvariable.powerquery"},InclusiveIdentifier:{captures:{0:{name:"inclusiveidentifier.powerquery"}},match:"@"},IntNumber:{captures:{1:{name:"constant.numeric.integer.powerquery"}},match:"\\b(\\d+)\\b"},IntrinsicVariable:{captures:{1:{name:"constant.language.intrinsicvariable.powerquery"}},match:"(?<![\\d\\w])(#sections|#shared)\\b"},Keywords:{captures:{1:{name:"keyword.operator.word.logical.powerquery"},2:{name:"keyword.control.conditional.powerquery"},3:{name:"keyword.control.exception.powerquery"},4:{name:"keyword.other.powerquery"},5:{name:"keyword.powerquery"}},match:"\\b(?:(and|or|not)|(if|then|else)|(try|otherwise)|(as|each|in|is|let|meta|type|error)|(section|shared))\\b"},LineComment:{match:"//.*",name:"comment.line.double-slash.powerquery"},LiteralExpression:{patterns:[{include:"#String"},{include:"#NumericConstant"},{include:"#LogicalConstant"},{include:"#NullConstant"},{include:"#FloatNumber"},{include:"#DecimalNumber"},{include:"#HexNumber"},{include:"#IntNumber"}]},LogicalConstant:{match:"\\b(true|false)\\b",name:"constant.language.logical.powerquery"},Noise:{patterns:[{include:"#BlockComment"},{include:"#LineComment"},{include:"#Whitespace"}]},NullConstant:{match:"\\b(null)\\b",name:"constant.language.null.powerquery"},NumericConstant:{captures:{1:{name:"constant.language.numeric.float.powerquery"}},match:"(?<![\\d\\w])(#infinity|#nan)\\b"},Operators:{captures:{1:{name:"keyword.operator.function.powerquery"},2:{name:"keyword.operator.assignment-or-comparison.powerquery"},3:{name:"keyword.operator.comparison.powerquery"},4:{name:"keyword.operator.combination.powerquery"},5:{name:"keyword.operator.arithmetic.powerquery"},6:{name:"keyword.operator.sectionaccess.powerquery"},7:{name:"keyword.operator.optional.powerquery"}},match:"(=>)|(=)|(<>|<|>|<=|>=)|(&)|(\\+|-|\\*|\\/)|(!)|(\\?)"},Punctuation:{captures:{1:{name:"punctuation.separator.powerquery"},2:{name:"punctuation.section.parens.begin.powerquery"},3:{name:"punctuation.section.parens.end.powerquery"},4:{name:"punctuation.section.braces.begin.powerquery"},5:{name:"punctuation.section.braces.end.powerquery"}},match:"(,)|(\\()|(\\))|({)|(})"},QuotedIdentifier:{begin:'#"',beginCaptures:{0:{name:"punctuation.definition.quotedidentifier.begin.powerquery"}},end:'"(?!")',endCaptures:{0:{name:"punctuation.definition.quotedidentifier.end.powerquery"}},name:"entity.name.powerquery",patterns:[{match:'""',name:"constant.character.escape.quote.powerquery"},{include:"#EscapeSequence"}]},RecordExpression:{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.brackets.begin.powerquery"}},contentName:"meta.recordexpression.powerquery",end:"\\]",endCaptures:{0:{name:"punctuation.section.brackets.end.powerquery"}},patterns:[{include:"$self"}]},String:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.powerquery"}},end:'"(?!")',endCaptures:{0:{name:"punctuation.definition.string.end.powerquery"}},name:"string.quoted.double.powerquery",patterns:[{match:'""',name:"constant.character.escape.quote.powerquery"},{include:"#EscapeSequence"}]},TypeName:{captures:{1:{name:"storage.modifier.powerquery"},2:{name:"storage.type.powerquery"}},match:"\\b(?:(optional|nullable)|(action|any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|null|number|record|table|text|type))\\b"},Whitespace:{match:"\\s+"}},scopeName:"source.powerquery"});var n=[e];export{n as default}; diff --git a/assets/chunks/powershell.9ZOzOPqN.js b/assets/chunks/powershell.9ZOzOPqN.js new file mode 100644 index 000000000..c233a5a4e --- /dev/null +++ b/assets/chunks/powershell.9ZOzOPqN.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"PowerShell",name:"powershell",patterns:[{begin:"<#",beginCaptures:{0:{name:"punctuation.definition.comment.block.begin.powershell"}},end:"#>",endCaptures:{0:{name:"punctuation.definition.comment.block.end.powershell"}},name:"comment.block.powershell",patterns:[{include:"#commentEmbeddedDocs"}]},{match:"[2-6]>&1|>>|>|<<|<|>|>\\||[1-6]>|[1-6]>>",name:"keyword.operator.redirection.powershell"},{include:"#commands"},{include:"#commentLine"},{include:"#variable"},{include:"#subexpression"},{include:"#function"},{include:"#attribute"},{include:"#UsingDirective"},{include:"#type"},{include:"#hashtable"},{include:"#doubleQuotedString"},{include:"#scriptblock"},{comment:"Needed to parse stuff correctly in 'argument mode'. (See about_parsing.)",include:"#doubleQuotedStringEscapes"},{applyEndPatternLast:!0,begin:"['\\x{2018}-\\x{201B}]",beginCaptures:{0:{name:"punctuation.definition.string.begin.powershell"}},end:"['\\x{2018}-\\x{201B}]",endCaptures:{0:{name:"punctuation.definition.string.end.powershell"}},name:"string.quoted.single.powershell",patterns:[{match:"['\\x{2018}-\\x{201B}]{2}",name:"constant.character.escape.powershell"}]},{begin:'(@["\\x{201C}-\\x{201E}])\\s*$',beginCaptures:{1:{name:"punctuation.definition.string.begin.powershell"}},end:'^["\\x{201C}-\\x{201E}]@',endCaptures:{0:{name:"punctuation.definition.string.end.powershell"}},name:"string.quoted.double.heredoc.powershell",patterns:[{include:"#variableNoProperty"},{include:"#doubleQuotedStringEscapes"},{include:"#interpolation"}]},{begin:"(@['\\x{2018}-\\x{201B}])\\s*$",beginCaptures:{1:{name:"punctuation.definition.string.begin.powershell"}},end:"^['\\x{2018}-\\x{201B}]@",endCaptures:{0:{name:"punctuation.definition.string.end.powershell"}},name:"string.quoted.single.heredoc.powershell"},{include:"#numericConstant"},{begin:"(@)(\\()",beginCaptures:{1:{name:"keyword.other.array.begin.powershell"},2:{name:"punctuation.section.group.begin.powershell"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.group.end.powershell"}},name:"meta.group.array-expression.powershell",patterns:[{include:"$self"}]},{begin:"((\\$))(\\()",beginCaptures:{1:{name:"keyword.other.substatement.powershell"},2:{name:"punctuation.definition.subexpression.powershell"},3:{name:"punctuation.section.group.begin.powershell"}},comment:"TODO: move to repo; make recursive.",end:"\\)",endCaptures:{0:{name:"punctuation.section.group.end.powershell"}},name:"meta.group.complex.subexpression.powershell",patterns:[{include:"$self"}]},{match:"(\\b(([A-Za-z0-9\\-_\\.]+)\\.(?i:exe|com|cmd|bat))\\b)",name:"support.function.powershell"},{match:"(?<!\\w|-|\\.)((?i:begin|break|catch|clean|continue|data|default|define|do|dynamicparam|else|elseif|end|exit|finally|for|from|if|in|inlinescript|parallel|param|process|return|sequence|switch|throw|trap|try|until|var|while)|%|\\?)(?!\\w)",name:"keyword.control.powershell"},{match:"(?<!\\w|-|[^\\)]\\.)((?i:(foreach|where)(?!-object))|%|\\?)(?!\\w)",name:"keyword.control.powershell"},{begin:"(?<!\\w)(--%)(?!\\w)",beginCaptures:{1:{name:"keyword.control.powershell"}},comment:"This should be moved to the repository at some point.",end:"$",patterns:[{match:".+",name:"string.unquoted.powershell"}]},{comment:"This should only be relevant inside a class but will require a rework of how classes are matched. This is a temp fix.",match:"(?<!\\w)((?i:hidden|static))(?!\\w)",name:"storage.modifier.powershell"},{captures:{1:{name:"storage.type.powershell"},2:{name:"entity.name.function"}},comment:"capture should be entity.name.type, but it doesn't provide a good color in the default schema.",match:"(?<!\\w|-)((?i:class)|%|\\?)(?:\\s)+((?:\\p{L}|\\d|_|-|)+)\\b"},{match:"(?<!\\w)-(?i:is(?:not)?|as)\\b",name:"keyword.operator.comparison.powershell"},{match:"(?<!\\w)-(?i:[ic]?(?:eq|ne|[gl][te]|(?:not)?(?:like|match|contains|in)|replace))(?!\\p{L})",name:"keyword.operator.comparison.powershell"},{match:"(?<!\\w)-(?i:join|split)(?!\\p{L})|!",name:"keyword.operator.unary.powershell"},{match:"(?<!\\w)-(?i:and|or|not|xor)(?!\\p{L})|!",name:"keyword.operator.logical.powershell"},{match:"(?<!\\w)-(?i:band|bor|bnot|bxor|shl|shr)(?!\\p{L})",name:"keyword.operator.bitwise.powershell"},{match:"(?<!\\w)-(?i:f)(?!\\p{L})",name:"keyword.operator.string-format.powershell"},{match:"[+%*/-]?=|[+/*%-]",name:"keyword.operator.assignment.powershell"},{match:"\\|{2}|&{2}|;",name:"punctuation.terminator.statement.powershell"},{match:"&|(?<!\\w)\\.(?= )|`|,|\\|",name:"keyword.operator.other.powershell"},{comment:"This is very imprecise, is there a syntax for 'must come after...' ",match:"(?<!\\s|^)\\.\\.(?=\\-?\\d|\\(|\\$)",name:"keyword.operator.range.powershell"}],repository:{RequiresDirective:{begin:"(?<=#)(?i:(requires))\\s",beginCaptures:{0:{name:"keyword.control.requires.powershell"}},end:"$",name:"meta.requires.powershell",patterns:[{match:"\\-(?i:Modules|PSSnapin|RunAsAdministrator|ShellId|Version|Assembly|PSEdition)",name:"keyword.other.powershell"},{match:"(?<!-)\\b\\p{L}+|\\d+(?:\\.\\d+)*",name:"variable.parameter.powershell"},{include:"#hashtable"}]},UsingDirective:{captures:{1:{name:"keyword.control.using.powershell"},2:{name:"keyword.other.powershell"},3:{name:"variable.parameter.powershell"}},match:"(?<!\\w)(?i:(using))\\s+(?i:(namespace|module))\\s+(?i:((?:\\w+(?:\\.)?)+))"},attribute:{begin:"(\\[)\\s*\\b(?i)(cmdletbinding|alias|outputtype|parameter|validatenotnull|validatenotnullorempty|validatecount|validateset|allownull|allowemptycollection|allowemptystring|validatescript|validaterange|validatepattern|validatelength|supportswildcards)\\b",beginCaptures:{1:{name:"punctuation.section.bracket.begin.powershell"},2:{name:"support.function.attribute.powershell"}},end:"(\\])",endCaptures:{1:{name:"punctuation.section.bracket.end.powershell"}},name:"meta.attribute.powershell",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.group.begin.powershell"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.group.end.powershell"}},patterns:[{include:"$self"},{captures:{1:{name:"variable.parameter.attribute.powershell"},2:{name:"keyword.operator.assignment.powershell"}},match:"(?i)\\b(mandatory|valuefrompipeline|valuefrompipelinebypropertyname|valuefromremainingarguments|position|parametersetname|defaultparametersetname|supportsshouldprocess|supportspaging|positionalbinding|helpuri|confirmimpact|helpmessage)\\b(?:\\s+)?(=)?"}]}]},commands:{patterns:[{comment:"Verb-Noun pattern:",match:"(?:(\\p{L}|\\d|_|-|\\\\|\\:)*\\\\)?\\b(?i:Add|Approve|Assert|Backup|Block|Build|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Deploy|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Mount|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Write)\\-.+?(?:\\.(?i:exe|cmd|bat|ps1))?\\b",name:"support.function.powershell"},{comment:"Builtin cmdlets with reserved verbs",match:"(?<!\\w)(?i:foreach-object)(?!\\w)",name:"support.function.powershell"},{comment:"Builtin cmdlets with reserved verbs",match:"(?<!\\w)(?i:where-object)(?!\\w)",name:"support.function.powershell"},{comment:"Builtin cmdlets with reserved verbs",match:"(?<!\\w)(?i:sort-object)(?!\\w)",name:"support.function.powershell"},{comment:"Builtin cmdlets with reserved verbs",match:"(?<!\\w)(?i:tee-object)(?!\\w)",name:"support.function.powershell"}]},commentEmbeddedDocs:{patterns:[{captures:{1:{name:"constant.string.documentation.powershell"},2:{name:"keyword.operator.documentation.powershell"}},comment:"these embedded doc keywords do not support arguments, must be the only thing on the line",match:"(?:^|\\G)(?i:\\s*(\\.)(COMPONENT|DESCRIPTION|EXAMPLE|FUNCTIONALITY|INPUTS|LINK|NOTES|OUTPUTS|ROLE|SYNOPSIS))\\s*$",name:"comment.documentation.embedded.powershell"},{captures:{1:{name:"constant.string.documentation.powershell"},2:{name:"keyword.operator.documentation.powershell"},3:{name:"keyword.operator.documentation.powershell"}},comment:"these embedded doc keywords require arguments though the type required may be inconsistent, they may not all be able to use the same argument match",match:"(?:^|\\G)(?i:\\s*(\\.)(EXTERNALHELP|FORWARDHELP(?:CATEGORY|TARGETNAME)|PARAMETER|REMOTEHELPRUNSPACE))\\s+(.+?)\\s*$",name:"comment.documentation.embedded.powershell"}]},commentLine:{begin:"(?<![`\\\\-])(#)#*",captures:{1:{name:"punctuation.definition.comment.powershell"}},end:"$\\n?",name:"comment.line.powershell",patterns:[{include:"#commentEmbeddedDocs"},{include:"#RequiresDirective"}]},doubleQuotedString:{applyEndPatternLast:!0,begin:'["\\x{201C}-\\x{201E}]',beginCaptures:{0:{name:"punctuation.definition.string.begin.powershell"}},end:'["\\x{201C}-\\x{201E}]',endCaptures:{0:{name:"punctuation.definition.string.end.powershell"}},name:"string.quoted.double.powershell",patterns:[{match:"(?i)\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,64}\\b"},{include:"#variableNoProperty"},{include:"#doubleQuotedStringEscapes"},{match:'["\\x{201C}-\\x{201E}]{2}',name:"constant.character.escape.powershell"},{include:"#interpolation"},{match:"`\\s*$",name:"keyword.other.powershell"}]},doubleQuotedStringEscapes:{patterns:[{match:"`[`0abefnrtv'\"\\x{2018}-\\x{201E}$]",name:"constant.character.escape.powershell"},{include:"#unicodeEscape"}]},function:{begin:"^(?:\\s*+)(?i)(function|filter|configuration|workflow)\\s+(?:(global|local|script|private):)?((?:\\p{L}|\\d|_|-|\\.)+)",beginCaptures:{0:{name:"meta.function.powershell"},1:{name:"storage.type.powershell"},2:{name:"storage.modifier.scope.powershell"},3:{name:"entity.name.function.powershell"}},end:"(?=\\{|\\()",patterns:[{include:"#commentLine"}]},hashtable:{begin:"(@)(\\{)",beginCaptures:{1:{name:"keyword.other.hashtable.begin.powershell"},2:{name:"punctuation.section.braces.begin.powershell"}},end:"(\\})",endCaptures:{1:{name:"punctuation.section.braces.end.powershell"}},name:"meta.hashtable.powershell",patterns:[{captures:{1:{name:"punctuation.definition.string.begin.powershell"},2:{name:"variable.other.readwrite.powershell"},3:{name:"punctuation.definition.string.end.powershell"},4:{name:"keyword.operator.assignment.powershell"}},match:`\\b((?:\\'|\\")?)(\\w+)((?:\\'|\\")?)(?:\\s+)?(=)(?:\\s+)?`,name:"meta.hashtable.assignment.powershell"},{include:"#scriptblock"},{include:"$self"}]},interpolation:{begin:"(((\\$)))((\\())",beginCaptures:{1:{name:"keyword.other.substatement.powershell"},2:{name:"punctuation.definition.substatement.powershell"},3:{name:"punctuation.section.embedded.substatement.begin.powershell"},4:{name:"punctuation.section.group.begin.powershell"},5:{name:"punctuation.section.embedded.substatement.begin.powershell"}},contentName:"interpolated.complex.source.powershell",end:"(\\))",endCaptures:{0:{name:"punctuation.section.group.end.powershell"},1:{name:"punctuation.section.embedded.substatement.end.powershell"}},name:"meta.embedded.substatement.powershell",patterns:[{include:"$self"}]},numericConstant:{patterns:[{captures:{1:{name:"constant.numeric.hex.powershell"},2:{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?0(?:x|X)[0-9a-fA-F_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b"},{captures:{1:{name:"constant.numeric.integer.powershell"},2:{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?(?:[0-9_]+)?\\.[0-9_]+(?:(?:e|E)[0-9]+)?(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b"},{captures:{1:{name:"constant.numeric.octal.powershell"},2:{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?0(?:b|B)[01_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b"},{captures:{1:{name:"constant.numeric.integer.powershell"},2:{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?[0-9_]+(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b"},{captures:{1:{name:"constant.numeric.integer.powershell"},2:{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?[0-9_]+\\.(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b"},{captures:{1:{name:"constant.numeric.integer.powershell"},2:{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?[0-9_]+[\\.]?(?:F|f|D|d|M|m))((?i:[kmgtp]b)?)\\b"},{captures:{1:{name:"constant.numeric.integer.powershell"},2:{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?[0-9_]+[\\.]?(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b"}]},scriptblock:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.braces.begin.powershell"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.braces.end.powershell"}},name:"meta.scriptblock.powershell",patterns:[{include:"$self"}]},subexpression:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.group.begin.powershell"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.group.end.powershell"}},name:"meta.group.simple.subexpression.powershell",patterns:[{include:"$self"}]},type:{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.bracket.begin.powershell"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.bracket.end.powershell"}},patterns:[{match:"(?!\\d+|\\.)(?:\\p{L}|\\p{N}|\\.)+",name:"storage.type.powershell"},{include:"$self"}]},unicodeEscape:{comment:"`u{xxxx} added in PowerShell 6.0",patterns:[{match:"`u\\{(?:(?:10)?([0-9a-fA-F]){1,4}|0?\\g<1>{1,5})}",name:"constant.character.escape.powershell"},{match:"`u(?:\\{[0-9a-fA-F]{,6}.)?",name:"invalid.character.escape.powershell"}]},variable:{patterns:[{captures:{0:{name:"constant.language.powershell"},1:{name:"punctuation.definition.variable.powershell"}},comment:"These are special constants.",match:"(\\$)(?i:(False|Null|True))\\b"},{captures:{0:{name:"support.constant.variable.powershell"},1:{name:"punctuation.definition.variable.powershell"},3:{name:"variable.other.member.powershell"}},comment:"These are the other built-in constants.",match:"(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b"},{captures:{0:{name:"support.variable.automatic.powershell"},1:{name:"punctuation.definition.variable.powershell"},3:{name:"variable.other.member.powershell"}},comment:"Automatic variables are not constants, but they are read-only. In monokai (default) color schema support.variable doesn't have color, so we use constant.",match:"(\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\b)((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"},{captures:{0:{name:"variable.language.powershell"},1:{name:"punctuation.definition.variable.powershell"},3:{name:"variable.other.member.powershell"}},comment:"Style preference variables as language variables so that they stand out.",match:"(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"storage.modifier.scope.powershell"},4:{name:"variable.other.member.powershell"}},match:"(?i:(\\$|@)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"punctuation.section.braces.begin.powershell"},3:{name:"storage.modifier.scope.powershell"},5:{name:"punctuation.section.braces.end.powershell"},6:{name:"variable.other.member.powershell"}},match:"(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"support.variable.drive.powershell"},4:{name:"variable.other.member.powershell"}},match:"(?i:(\\$|@)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"punctuation.section.braces.begin.powershell"},3:{name:"support.variable.drive.powershell"},5:{name:"punctuation.section.braces.end.powershell"},6:{name:"variable.other.member.powershell"}},match:"(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"}]},variableNoProperty:{patterns:[{captures:{0:{name:"constant.language.powershell"},1:{name:"punctuation.definition.variable.powershell"}},comment:"These are special constants.",match:"(\\$)(?i:(False|Null|True))\\b"},{captures:{0:{name:"support.constant.variable.powershell"},1:{name:"punctuation.definition.variable.powershell"},3:{name:"variable.other.member.powershell"}},comment:"These are the other built-in constants.",match:"(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))\\b"},{captures:{0:{name:"support.variable.automatic.powershell"},1:{name:"punctuation.definition.variable.powershell"},3:{name:"variable.other.member.powershell"}},comment:"Automatic variables are not constants, but they are read-only...",match:"(\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\b)"},{captures:{0:{name:"variable.language.powershell"},1:{name:"punctuation.definition.variable.powershell"},3:{name:"variable.other.member.powershell"}},comment:"Style preference variables as language variables so that they stand out.",match:"(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))\\b"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"storage.modifier.scope.powershell"},4:{name:"variable.other.member.powershell"}},match:"(?i:(\\$)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"storage.modifier.scope.powershell"},4:{name:"keyword.other.powershell"},5:{name:"variable.other.member.powershell"}},match:"(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"support.variable.drive.powershell"},4:{name:"variable.other.member.powershell"}},match:"(?i:(\\$)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"punctuation.section.braces.begin"},3:{name:"support.variable.drive.powershell"},5:{name:"punctuation.section.braces.end"}},match:"(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))"}]}},scopeName:"source.powershell",aliases:["ps","ps1"]});var t=[e];export{t as default}; diff --git a/assets/chunks/prisma.BBJYjQ0k.js b/assets/chunks/prisma.BBJYjQ0k.js new file mode 100644 index 000000000..62961f253 --- /dev/null +++ b/assets/chunks/prisma.BBJYjQ0k.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Prisma",fileTypes:["prisma"],name:"prisma",patterns:[{include:"#triple_comment"},{include:"#double_comment"},{include:"#model_block_definition"},{include:"#config_block_definition"},{include:"#enum_block_definition"},{include:"#type_definition"}],repository:{array:{begin:"\\[",beginCaptures:{1:{name:"punctuation.definition.tag.prisma"}},end:"\\]",endCaptures:{1:{name:"punctuation.definition.tag.prisma"}},name:"source.prisma.array",patterns:[{include:"#value"}]},assignment:{patterns:[{begin:"^\\s*(\\w+)\\s*(=)\\s*",beginCaptures:{1:{name:"variable.other.assignment.prisma"},2:{name:"keyword.operator.terraform"}},end:"\\n",patterns:[{include:"#value"},{include:"#double_comment_inline"}]}]},attribute:{captures:{1:{name:"entity.name.function.attribute.prisma"}},match:"(@@?[\\w\\.]+)",name:"source.prisma.attribute"},attribute_with_arguments:{begin:"(@@?[\\w\\.]+)(\\()",beginCaptures:{1:{name:"entity.name.function.attribute.prisma"},2:{name:"punctuation.definition.tag.prisma"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.tag.prisma"}},name:"source.prisma.attribute.with_arguments",patterns:[{include:"#named_argument"},{include:"#value"}]},boolean:{match:"\\b(true|false)\\b",name:"constant.language.boolean.prisma"},config_block_definition:{begin:"^\\s*(generator|datasource)\\s+([A-Za-z][\\w]*)\\s+({)",beginCaptures:{1:{name:"storage.type.config.prisma"},2:{name:"entity.name.type.config.prisma"},3:{name:"punctuation.definition.tag.prisma"}},end:"\\s*\\}",endCaptures:{1:{name:"punctuation.definition.tag.prisma"}},name:"source.prisma.embedded.source",patterns:[{include:"#triple_comment"},{include:"#double_comment"},{include:"#assignment"}]},double_comment:{begin:"//",end:"$\\n?",name:"comment.prisma"},double_comment_inline:{match:"//[^\\n]*",name:"comment.prisma"},double_quoted_string:{begin:'"',beginCaptures:{0:{name:"string.quoted.double.start.prisma"}},end:'"',endCaptures:{0:{name:"string.quoted.double.end.prisma"}},name:"unnamed",patterns:[{include:"#string_interpolation"},{match:"([\\w\\-\\/\\._\\\\%@:\\?=]+)",name:"string.quoted.double.prisma"}]},enum_block_definition:{begin:"^\\s*(enum)\\s+([A-Za-z][\\w]*)\\s+({)",beginCaptures:{1:{name:"storage.type.enum.prisma"},2:{name:"entity.name.type.enum.prisma"},3:{name:"punctuation.definition.tag.prisma"}},end:"\\s*\\}",endCaptures:{0:{name:"punctuation.definition.tag.prisma"}},name:"source.prisma.embedded.source",patterns:[{include:"#triple_comment"},{include:"#double_comment"},{include:"#enum_value_definition"}]},enum_value_definition:{patterns:[{captures:{1:{name:"variable.other.assignment.prisma"}},match:"^\\s*(\\w+)\\s*"},{include:"#attribute_with_arguments"},{include:"#attribute"}]},field_definition:{name:"scalar.field",patterns:[{captures:{1:{name:"variable.other.assignment.prisma"},2:{name:"invalid.illegal.colon.prisma"},3:{name:"variable.language.relations.prisma"},4:{name:"support.type.primitive.prisma"},5:{name:"keyword.operator.list_type.prisma"},6:{name:"keyword.operator.optional_type.prisma"},7:{name:"invalid.illegal.required_type.prisma"}},match:"^\\s*(\\w+)(\\s*:)?\\s+((?!(?:Int|BigInt|String|DateTime|Bytes|Decimal|Float|Json|Boolean)\\b)\\b\\w+)?(Int|BigInt|String|DateTime|Bytes|Decimal|Float|Json|Boolean)?(\\[\\])?(\\?)?(\\!)?"},{include:"#attribute_with_arguments"},{include:"#attribute"}]},functional:{begin:"(\\w+)(\\()",beginCaptures:{1:{name:"support.function.functional.prisma"},2:{name:"punctuation.definition.tag.prisma"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.tag.prisma"}},name:"source.prisma.functional",patterns:[{include:"#value"}]},identifier:{patterns:[{match:"\\b(\\w)+\\b",name:"support.constant.constant.prisma"}]},literal:{name:"source.prisma.literal",patterns:[{include:"#boolean"},{include:"#number"},{include:"#double_quoted_string"},{include:"#identifier"}]},map_key:{name:"source.prisma.key",patterns:[{captures:{1:{name:"variable.parameter.key.prisma"},2:{name:"punctuation.definition.separator.key-value.prisma"}},match:"(\\w+)\\s*(:)\\s*"}]},model_block_definition:{begin:"^\\s*(model|type|view)\\s+([A-Za-z][\\w]*)\\s*({)",beginCaptures:{1:{name:"storage.type.model.prisma"},2:{name:"entity.name.type.model.prisma"},3:{name:"punctuation.definition.tag.prisma"}},end:"\\s*\\}",endCaptures:{0:{name:"punctuation.definition.tag.prisma"}},name:"source.prisma.embedded.source",patterns:[{include:"#triple_comment"},{include:"#double_comment"},{include:"#field_definition"}]},named_argument:{name:"source.prisma.named_argument",patterns:[{include:"#map_key"},{include:"#value"}]},number:{match:"((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b",name:"constant.numeric.prisma"},string_interpolation:{patterns:[{begin:"\\$\\{",beginCaptures:{0:{name:"keyword.control.interpolation.start.prisma"}},end:"\\s*\\}",endCaptures:{0:{name:"keyword.control.interpolation.end.prisma"}},name:"source.tag.embedded.source.prisma",patterns:[{include:"#value"}]}]},triple_comment:{begin:"///",end:"$\\n?",name:"comment.prisma"},type_definition:{patterns:[{captures:{1:{name:"storage.type.type.prisma"},2:{name:"entity.name.type.type.prisma"},3:{name:"support.type.primitive.prisma"}},match:"^\\s*(type)\\s+(\\w+)\\s*=\\s*(\\w+)"},{include:"#attribute_with_arguments"},{include:"#attribute"}]},value:{name:"source.prisma.value",patterns:[{include:"#array"},{include:"#functional"},{include:"#literal"}]}},scopeName:"source.prisma"});var n=[e];export{n as default}; diff --git a/assets/chunks/prolog.BH_RS3WO.js b/assets/chunks/prolog.BH_RS3WO.js new file mode 100644 index 000000000..7f0f484ae --- /dev/null +++ b/assets/chunks/prolog.BH_RS3WO.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Prolog",fileTypes:["pl","pro"],name:"prolog",patterns:[{include:"#comments"},{begin:"(?<=:-)\\s*",end:"(\\.)",endCaptures:{1:{name:"keyword.control.clause.bodyend.prolog"}},name:"meta.clause.body.prolog",patterns:[{include:"#comments"},{include:"#builtin"},{include:"#controlandkeywords"},{include:"#atom"},{include:"#variable"},{include:"#constants"},{match:".",name:"meta.clause.body.prolog"}]},{begin:"^\\s*([a-z][a-zA-Z0-9_]*)(\\(?)(?=.*:-.*)",beginCaptures:{1:{name:"entity.name.function.clause.prolog"},2:{name:"punctuation.definition.parameters.begin"}},end:"((\\)?))\\s*(:-)",endCaptures:{1:{name:"punctuation.definition.parameters.end"},3:{name:"keyword.control.clause.bodybegin.prolog"}},name:"meta.clause.head.prolog",patterns:[{include:"#atom"},{include:"#variable"},{include:"#constants"}]},{begin:"^\\s*([a-z][a-zA-Z0-9_]*)(\\(?)(?=.*-->.*)",beginCaptures:{1:{name:"entity.name.function.dcg.prolog"},2:{name:"punctuation.definition.parameters.begin"}},end:"((\\)?))\\s*(-->)",endCaptures:{1:{name:"punctuation.definition.parameters.end"},3:{name:"keyword.control.dcg.bodybegin.prolog"}},name:"meta.dcg.head.prolog",patterns:[{include:"#atom"},{include:"#variable"},{include:"#constants"}]},{begin:"(?<=-->)\\s*",end:"(\\.)",endCaptures:{1:{name:"keyword.control.dcg.bodyend.prolog"}},name:"meta.dcg.body.prolog",patterns:[{include:"#comments"},{include:"#controlandkeywords"},{include:"#atom"},{include:"#variable"},{include:"#constants"},{match:".",name:"meta.dcg.body.prolog"}]},{begin:"^\\s*([a-zA-Z][a-zA-Z0-9_]*)(\\(?)(?!.*(:-|-->).*)",beginCaptures:{1:{name:"entity.name.function.fact.prolog"},2:{name:"punctuation.definition.parameters.begin"}},end:"((\\)?))\\s*(\\.)(?!\\d+)",endCaptures:{1:{name:"punctuation.definition.parameters.end"},3:{name:"keyword.control.fact.end.prolog"}},name:"meta.fact.prolog",patterns:[{include:"#comments"},{include:"#atom"},{include:"#variable"},{include:"#constants"}]}],repository:{atom:{patterns:[{match:"(?<![a-zA-Z0-9_])[a-z][a-zA-Z0-9_]*(?!\\s*\\(|[a-zA-Z0-9_])",name:"constant.other.atom.simple.prolog"},{match:"'.*?'",name:"constant.other.atom.quoted.prolog"},{match:"\\[\\]",name:"constant.other.atom.emptylist.prolog"}]},builtin:{patterns:[{match:"\\b(op|nl|fail|dynamic|discontiguous|initialization|meta_predicate|module_transparent|multifile|public|thread_local|thread_initialization|volatile)\\b",name:"keyword.other"},{match:"\\b(abolish|abort|abs|absolute_file_name|access_file|acos|acosh|acyclic_term|add_import_module|append|apropos|arg|asin|asinh|assert|asserta|assertz|at_end_of_stream|at_halt|atan|atanh|atom|atom_chars|atom_codes|atom_concat|atom_length|atom_number|atom_prefix|atom_string|atom_to_stem_list|atom_to_term|atomic|atomic_concat|atomic_list_concat|atomics_to_string|attach_packs|attr_portray_hook|attr_unify_hook|attribute_goals|attvar|autoload|autoload_path|b_getval|b_set_dict|b_setval|bagof|begin_tests|between|blob|break|byte_count|call_dcg|call_residue_vars|callable|cancel_halt|catch|ceil|ceiling|char_code|char_conversion|char_type|character_count|chdir|chr_leash|chr_notrace|chr_show_store|chr_trace|clause|clause_property|close|close_dde_conversation|close_table|code_type|collation_key|compare|compare_strings|compile_aux_clauses|compile_predicates|compiling|compound|compound_name_arguments|compound_name_arity|consult|context_module|copy_predicate_clauses|copy_stream_data|copy_term|copy_term_nat|copysign|cos|cosh|cputime|create_prolog_flag|current_arithmetic_function|current_atom|current_blob|current_char_conversion|current_engine|current_flag|current_format_predicate|current_functor|current_input|current_key|current_locale|current_module|current_op|current_output|current_predicate|current_prolog_flag|current_signal|current_stream|current_trie|cyclic_term|date_time_stamp|date_time_value|day_of_the_week|dcg_translate_rule|dde_current_connection|dde_current_service|dde_execute|dde_poke|dde_register_service|dde_request|dde_unregister_service|debug|debugging|default_module|del_attr|del_attrs|del_dict|delete_directory|delete_file|delete_import_module|deterministic|dict_create|dict_pairs|dif|directory_files|divmod|doc_browser|doc_collect|doc_load_library|doc_server|double_metaphone|downcase_atom|dtd|dtd_property|duplicate_term|dwim_match|dwim_predicate|e|edit|encoding|engine_create|engine_fetch|engine_next|engine_next_reified|engine_post|engine_self|engine_yield|ensure_loaded|epsilon|erase|erf|erfc|eval|exception|exists_directory|exists_file|exists_source|exp|expand_answer|expand_file_name|expand_file_search_path|expand_goal|expand_query|expand_term|explain|fast_read|fast_term_serialized|fast_write|file_base_name|file_directory_name|file_name_extension|file_search_path|fill_buffer|find_chr_constraint|findall|findnsols|flag|float|float_fractional_part|float_integer_part|floor|flush_output|forall|format|format_predicate|format_time|free_dtd|free_sgml_parser|free_table|freeze|frozen|functor|garbage_collect|garbage_collect_atoms|garbage_collect_clauses|gdebug|get|get_attr|get_attrs|get_byte|get_char|get_code|get_dict|get_flag|get_sgml_parser|get_single_char|get_string_code|get_table_attribute|get_time|getbit|getenv|goal_expansion|ground|gspy|gtrace|guitracer|gxref|gzopen|halt|help|import_module|in_pce_thread|in_pce_thread_sync|in_table|include|inf|instance|integer|iri_xml_namespace|is_absolute_file_name|is_dict|is_engine|is_list|is_stream|is_thread|keysort|known_licenses|leash|length|lgamma|library_directory|license|line_count|line_position|list_strings|listing|load_dtd|load_files|load_html|load_rdf|load_sgml|load_structure|load_test_files|load_xml|locale_create|locale_destroy|locale_property|locale_sort|log|lsb|make|make_directory|make_library_index|max|memberchk|message_hook|message_property|message_queue_create|message_queue_destroy|message_queue_property|message_to_string|min|module|module_property|msb|msort|mutex_create|mutex_destroy|mutex_lock|mutex_property|mutex_statistics|mutex_trylock|mutex_unlock|name|nan|nb_current|nb_delete|nb_getval|nb_link_dict|nb_linkarg|nb_linkval|nb_set_dict|nb_setarg|nb_setval|new_dtd|new_order_table|new_sgml_parser|new_table|nl|nodebug|noguitracer|nonvar|noprotocol|normalize_space|nospy|nospyall|notrace|nth_clause|nth_integer_root_and_remainder|number|number_chars|number_codes|number_string|numbervars|odbc_close_statement|odbc_connect|odbc_current_connection|odbc_current_table|odbc_data_source|odbc_debug|odbc_disconnect|odbc_driver_connect|odbc_end_transaction|odbc_execute|odbc_fetch|odbc_free_statement|odbc_get_connection|odbc_prepare|odbc_query|odbc_set_connection|odbc_statistics|odbc_table_column|odbc_table_foreign_key|odbc_table_primary_key|odbc_type|on_signal|op|open|open_dde_conversation|open_dtd|open_null_stream|open_resource|open_string|open_table|order_table_mapping|parse_time|passed|pce_dispatch|pdt_install_console|peek_byte|peek_char|peek_code|peek_string|phrase|plus|popcount|porter_stem|portray|portray_clause|powm|predicate_property|predsort|prefix_string|print|print_message|print_message_lines|process_rdf|profile|profiler|project_attributes|prolog|prolog_choice_attribute|prolog_current_choice|prolog_current_frame|prolog_cut_to|prolog_debug|prolog_exception_hook|prolog_file_type|prolog_frame_attribute|prolog_ide|prolog_list_goal|prolog_load_context|prolog_load_file|prolog_nodebug|prolog_skip_frame|prolog_skip_level|prolog_stack_property|prolog_to_os_filename|prolog_trace_interception|prompt|protocol|protocola|protocolling|put|put_attr|put_attrs|put_byte|put_char|put_code|put_dict|qcompile|qsave_program|random|random_float|random_property|rational|rationalize|rdf_write_xml|read|read_clause|read_history|read_link|read_pending_chars|read_pending_codes|read_string|read_table_fields|read_table_record|read_table_record_data|read_term|read_term_from_atom|recorda|recorded|recordz|redefine_system_predicate|reexport|reload_library_index|rename_file|require|reset|reset_profiler|resource|retract|retractall|round|run_tests|running_tests|same_file|same_term|see|seeing|seek|seen|select_dict|set_end_of_stream|set_flag|set_input|set_locale|set_module|set_output|set_prolog_IO|set_prolog_flag|set_prolog_stack|set_random|set_sgml_parser|set_stream|set_stream_position|set_test_options|setarg|setenv|setlocale|setof|sgml_parse|shell|shift|show_coverage|show_profile|sign|sin|sinh|size_file|skip|sleep|sort|source_exports|source_file|source_file_property|source_location|split_string|spy|sqrt|stamp_date_time|statistics|stream_pair|stream_position_data|stream_property|string|string_chars|string_code|string_codes|string_concat|string_length|string_lower|string_upper|strip_module|style_check|sub_atom|sub_atom_icasechk|sub_string|subsumes_term|succ|suite|swritef|tab|table_previous_record|table_start_of_record|table_version|table_window|tan|tanh|tell|telling|term_attvars|term_expansion|term_hash|term_string|term_subsumer|term_to_atom|term_variables|test|test_report|text_to_string|thread_at_exit|thread_create|thread_detach|thread_exit|thread_get_message|thread_join|thread_message_hook|thread_peek_message|thread_property|thread_self|thread_send_message|thread_setconcurrency|thread_signal|thread_statistics|throw|time|time_file|tmp_file|tmp_file_stream|tokenize_atom|told|trace|tracing|trie_destroy|trie_gen|trie_insert|trie_insert_new|trie_lookup|trie_new|trie_property|trie_term|trim_stacks|truncate|tty_get_capability|tty_goto|tty_put|tty_size|ttyflush|unaccent_atom|unifiable|unify_with_occurs_check|unix|unknown|unload_file|unsetenv|upcase_atom|use_module|var|var_number|var_property|variant_hash|version|visible|wait_for_input|when|wildcard_match|win_add_dll_directory|win_exec|win_folder|win_has_menu|win_insert_menu|win_insert_menu_item|win_registry_get_value|win_remove_dll_directory|win_shell|win_window_pos|window_title|with_mutex|with_output_to|working_directory|write|write_canonical|write_length|write_term|writef|writeln|writeq|xml_is_dom|xml_to_rdf|zopen)\\b",name:"support.function.builtin.prolog"}]},comments:{patterns:[{match:"%.*",name:"comment.line.percent-sign.prolog"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.prolog"}},end:"\\*/",name:"comment.block.prolog"}]},constants:{patterns:[{match:"(?<![a-zA-Z]|/)(\\d+|(\\d+\\.\\d+))",name:"constant.numeric.integer.prolog"},{match:'".*?"',name:"string.quoted.double.prolog"}]},controlandkeywords:{patterns:[{begin:"(->)",beginCaptures:{1:{name:"keyword.control.if.prolog"}},end:"(;)",endCaptures:{1:{name:"keyword.control.else.prolog"}},name:"meta.if.prolog",patterns:[{include:"$self"},{include:"#builtin"},{include:"#comments"},{include:"#atom"},{include:"#variable"},{match:".",name:"meta.if.body.prolog"}]},{match:"!",name:"keyword.control.cut.prolog"},{match:"(\\s(is)\\s)|=:=|=\\.\\.|=?\\\\?=|\\\\\\+|@?>|@?=?<|\\+|\\*|\\-",name:"keyword.operator.prolog"}]},variable:{patterns:[{match:"(?<![a-zA-Z0-9_])[A-Z][a-zA-Z0-9_]*",name:"variable.parameter.uppercase.prolog"},{match:"(?<!\\w)_",name:"variable.language.anonymous.prolog"}]}},scopeName:"source.prolog"});var t=[e];export{t as default}; diff --git a/assets/chunks/proto.DOtRmeXT.js b/assets/chunks/proto.DOtRmeXT.js new file mode 100644 index 000000000..e81e35650 --- /dev/null +++ b/assets/chunks/proto.DOtRmeXT.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Protocol Buffer 3",fileTypes:["proto"],name:"proto",patterns:[{include:"#comments"},{include:"#syntax"},{include:"#package"},{include:"#import"},{include:"#optionStmt"},{include:"#message"},{include:"#enum"},{include:"#service"}],repository:{comments:{patterns:[{begin:"/\\*",end:"\\*/",name:"comment.block.proto"},{begin:"//",end:"$\\n?",name:"comment.line.double-slash.proto"}]},constants:{match:"\\b(true|false|max|[A-Z_]+)\\b",name:"constant.language.proto"},enum:{begin:"(enum)(\\s+)([A-Za-z][A-Za-z0-9_]*)(\\s*)(\\{)?",beginCaptures:{1:{name:"keyword.other.proto"},3:{name:"entity.name.class.proto"}},end:"\\}",patterns:[{include:"#reserved"},{include:"#optionStmt"},{include:"#comments"},{begin:"([A-Za-z][A-Za-z0-9_]*)\\s*(=)\\s*(0[xX][0-9a-fA-F]+|[0-9]+)",beginCaptures:{1:{name:"variable.other.proto"},2:{name:"keyword.operator.assignment.proto"},3:{name:"constant.numeric.proto"}},end:"(;)",endCaptures:{1:{name:"punctuation.terminator.proto"}},patterns:[{include:"#fieldOptions"}]}]},field:{begin:"\\s*(optional|repeated|required)?\\s*\\b([\\w.]+)\\s+(\\w+)\\s*(=)\\s*(0[xX][0-9a-fA-F]+|[0-9]+)",beginCaptures:{1:{name:"storage.modifier.proto"},2:{name:"storage.type.proto"},3:{name:"variable.other.proto"},4:{name:"keyword.operator.assignment.proto"},5:{name:"constant.numeric.proto"}},end:"(;)",endCaptures:{1:{name:"punctuation.terminator.proto"}},patterns:[{include:"#fieldOptions"}]},fieldOptions:{begin:"\\[",end:"\\]",patterns:[{include:"#constants"},{include:"#number"},{include:"#string"},{include:"#subMsgOption"},{include:"#optionName"}]},ident:{match:"[A-Za-z][A-Za-z0-9_]*",name:"entity.name.class.proto"},import:{captures:{1:{name:"keyword.other.proto"},2:{name:"keyword.other.proto"},3:{name:"string.quoted.double.proto.import"},4:{name:"punctuation.terminator.proto"}},match:'\\s*(import)\\s+(weak|public)?\\s*("[^"]+")\\s*(;)'},kv:{begin:"(\\w+)\\s*(:)",beginCaptures:{1:{name:"keyword.other.proto"},2:{name:"punctuation.separator.key-value.proto"}},end:"(;)|,|(?=[}/_a-zA-Z])",endCaptures:{1:{name:"punctuation.terminator.proto"}},patterns:[{include:"#constants"},{include:"#number"},{include:"#string"},{include:"#subMsgOption"}]},mapfield:{begin:"\\s*(map)\\s*(<)\\s*([\\w.]+)\\s*,\\s*([\\w.]+)\\s*(>)\\s+(\\w+)\\s*(=)\\s*(\\d+)",beginCaptures:{1:{name:"storage.type.proto"},2:{name:"punctuation.definition.typeparameters.begin.proto"},3:{name:"storage.type.proto"},4:{name:"storage.type.proto"},5:{name:"punctuation.definition.typeparameters.end.proto"},6:{name:"variable.other.proto"},7:{name:"keyword.operator.assignment.proto"},8:{name:"constant.numeric.proto"}},end:"(;)",endCaptures:{1:{name:"punctuation.terminator.proto"}},patterns:[{include:"#fieldOptions"}]},message:{begin:"(message|extend)(\\s+)([A-Za-z_][A-Za-z0-9_.]*)(\\s*)(\\{)?",beginCaptures:{1:{name:"keyword.other.proto"},3:{name:"entity.name.class.message.proto"}},end:"\\}",patterns:[{include:"#reserved"},{include:"$self"},{include:"#enum"},{include:"#optionStmt"},{include:"#comments"},{include:"#oneof"},{include:"#field"},{include:"#mapfield"}]},method:{begin:"(rpc)\\s+([A-Za-z][A-Za-z0-9_]*)",beginCaptures:{1:{name:"keyword.other.proto"},2:{name:"entity.name.function"}},end:"\\}|(;)",endCaptures:{1:{name:"punctuation.terminator.proto"}},patterns:[{include:"#comments"},{include:"#optionStmt"},{include:"#rpcKeywords"},{include:"#ident"}]},number:{match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b",name:"constant.numeric.proto"},oneof:{begin:"(oneof)\\s+([A-Za-z][A-Za-z0-9_]*)\\s*\\{?",beginCaptures:{1:{name:"keyword.other.proto"},2:{name:"variable.other.proto"}},end:"\\}",patterns:[{include:"#optionStmt"},{include:"#comments"},{include:"#field"}]},optionName:{captures:{1:{name:"support.other.proto"},2:{name:"support.other.proto"},3:{name:"support.other.proto"}},match:"(\\w+|\\(\\w+(\\.\\w+)*\\))(\\.\\w+)*"},optionStmt:{begin:"(option)\\s+(\\w+|\\(\\w+(\\.\\w+)*\\))(\\.\\w+)*\\s*(=)",beginCaptures:{1:{name:"keyword.other.proto"},2:{name:"support.other.proto"},3:{name:"support.other.proto"},4:{name:"support.other.proto"},5:{name:"keyword.operator.assignment.proto"}},end:"(;)",endCaptures:{1:{name:"punctuation.terminator.proto"}},patterns:[{include:"#constants"},{include:"#number"},{include:"#string"},{include:"#subMsgOption"}]},package:{captures:{1:{name:"keyword.other.proto"},2:{name:"string.unquoted.proto.package"},3:{name:"punctuation.terminator.proto"}},match:"\\s*(package)\\s+([\\w.]+)\\s*(;)"},reserved:{begin:"(reserved)\\s+",beginCaptures:{1:{name:"keyword.other.proto"}},end:"(;)",endCaptures:{1:{name:"punctuation.terminator.proto"}},patterns:[{captures:{1:{name:"constant.numeric.proto"},3:{name:"keyword.other.proto"},4:{name:"constant.numeric.proto"}},match:"(\\d+)(\\s+(to)\\s+(\\d+))?"},{include:"#string"}]},rpcKeywords:{match:"\\b(stream|returns)\\b",name:"keyword.other.proto"},service:{begin:"(service)\\s+([A-Za-z][A-Za-z0-9_.]*)\\s*\\{?",beginCaptures:{1:{name:"keyword.other.proto"},2:{name:"entity.name.class.message.proto"}},end:"\\}",patterns:[{include:"#comments"},{include:"#optionStmt"},{include:"#method"}]},storagetypes:{match:"\\b(double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\\b",name:"storage.type.proto"},string:{match:`('([^']|\\')*')|("([^"]|\\")*")`,name:"string.quoted.double.proto"},subMsgOption:{begin:"\\{",end:"\\}",patterns:[{include:"#kv"},{include:"#comments"}]},syntax:{captures:{1:{name:"keyword.other.proto"},2:{name:"keyword.operator.assignment.proto"},3:{name:"string.quoted.double.proto.syntax"},4:{name:"punctuation.terminator.proto"}},match:'\\s*(syntax)\\s*(=)\\s*("proto[23]")\\s*(;)'}},scopeName:"source.proto"});var t=[e];export{t as default}; diff --git a/assets/chunks/pug.BWq4yR4F.js b/assets/chunks/pug.BWq4yR4F.js new file mode 100644 index 000000000..7b76ade9e --- /dev/null +++ b/assets/chunks/pug.BWq4yR4F.js @@ -0,0 +1 @@ +import e from"./javascript.Dch3xQiY.js";import n from"./css.CbYhyuC0.js";import t from"./sass.CMDmr8et.js";import a from"./scss.Dr-_CcBd.js";import i from"./stylus.DSrLtGYv.js";import s from"./coffee.t_LrLW_f.js";import l from"./html.CuK0VrWf.js";const c=Object.freeze({displayName:"Pug",name:"pug",patterns:[{comment:"Doctype declaration.",match:"^(!!!|doctype)(\\s*[a-zA-Z0-9-_]+)?",name:"meta.tag.sgml.doctype.html"},{begin:"^(\\s*)//-",comment:"Unbuffered (pug-only) comments.",end:"^(?!(\\1\\s)|\\s*$)",name:"comment.unbuffered.block.pug"},{begin:"^(\\s*)//",comment:"Buffered (html) comments.",end:"^(?!(\\1\\s)|\\s*$)",name:"string.comment.buffered.block.pug",patterns:[{captures:{1:{name:"invalid.illegal.comment.comment.block.pug"}},comment:"Buffered comments inside buffered comments will generate invalid html.",match:"^\\s*(//)(?!-)",name:"string.comment.buffered.block.pug"}]},{begin:"<!--",end:"--\\s*>",name:"comment.unbuffered.block.pug",patterns:[{match:"--",name:"invalid.illegal.comment.comment.block.pug"}]},{begin:"^(\\s*)-$",comment:"Unbuffered code block.",end:"^(?!(\\1\\s)|\\s*$)",name:"source.js",patterns:[{include:"source.js"}]},{begin:"^(\\s*)(script)((\\.$)|(?=[^\\n]*((text|application)/javascript|module).*\\.$))",beginCaptures:{2:{name:"entity.name.tag.pug"}},comment:"Script tag with JavaScript code.",end:"^(?!(\\1\\s)|\\s*$)",name:"meta.tag.other",patterns:[{begin:"\\G(?=\\()",end:"$",patterns:[{include:"#tag_attributes"}]},{begin:"\\G(?=[.#])",end:"$",patterns:[{include:"#complete_tag"}]},{include:"source.js"}]},{begin:"^(\\s*)(style)((\\.$)|(?=[.#(].*\\.$))",beginCaptures:{2:{name:"entity.name.tag.pug"}},comment:"Style tag with CSS code.",end:"^(?!(\\1\\s)|\\s*$)",name:"meta.tag.other",patterns:[{begin:"\\G(?=\\()",end:"$",patterns:[{include:"#tag_attributes"}]},{begin:"\\G(?=[.#])",end:"$",patterns:[{include:"#complete_tag"}]},{include:"source.css"}]},{begin:"^(\\s*):(sass)(?=\\(|$)",beginCaptures:{2:{name:"constant.language.name.sass.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.sass.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.sass"}]},{begin:"^(\\s*):(scss)(?=\\(|$)",beginCaptures:{2:{name:"constant.language.name.scss.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.css.scss.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.css.scss"}]},{begin:"^(\\s*):(less)(?=\\(|$)",beginCaptures:{2:{name:"constant.language.name.less.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.less.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.less"}]},{begin:"^(\\s*):(stylus)(?=\\(|$)",beginCaptures:{2:{name:"constant.language.name.stylus.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",patterns:[{include:"#tag_attributes"},{include:"source.stylus"}]},{begin:"^(\\s*):(coffee(-?script)?)(?=\\(|$)",beginCaptures:{2:{name:"constant.language.name.coffeescript.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.coffeescript.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.coffee"}]},{begin:"^(\\s*):(uglify-js)(?=\\(|$)",beginCaptures:{2:{name:"constant.language.name.js.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.js.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.js"}]},{begin:"^(\\s*)((:(?=.))|(:$))",beginCaptures:{4:{name:"invalid.illegal.empty.generic.filter.pug"}},comment:"Generic Pug filter.",end:"^(?!(\\1\\s)|\\s*$)",patterns:[{begin:"\\G(?<=:)(?=.)",end:"$",name:"name.generic.filter.pug",patterns:[{match:"\\G\\(",name:"invalid.illegal.name.generic.filter.pug"},{match:"[\\w-]",name:"constant.language.name.generic.filter.pug"},{include:"#tag_attributes"},{match:"\\W",name:"invalid.illegal.name.generic.filter.pug"}]}]},{begin:`^(\\s*)(?:(?=\\.$)|(?:(?=[\\w.#].*?\\.$)(?=(?:(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\"]*(?:(?:\\'(?:[^\\']|(?:(?<!\\\\)\\\\\\'))*\\')|(?:\\"(?:[^\\"]|(?:(?<!\\\\)\\\\\\"))*\\")))*[^()]*\\))*)*)(?:(?:(?::\\s+)|(?<=\\)))(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\"]*(?:(?:\\'(?:[^\\']|(?:(?<!\\\\)\\\\\\'))*\\')|(?:\\"(?:[^\\"]|(?:(?<!\\\\)\\\\\\"))*\\")))*[^()]*\\))*)*))*)\\.$)(?:(?:(#[\\w-]+)|(\\.[\\w-]+))|((?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))))`,beginCaptures:{2:{name:"meta.selector.css entity.other.attribute-name.id.css.pug"},3:{name:"meta.selector.css entity.other.attribute-name.class.css.pug"},4:{name:"meta.tag.other entity.name.tag.pug"}},comment:"Generated from dot_block_tag.py",end:"^(?!(\\1\\s)|\\s*$)",patterns:[{match:"\\.$",name:"storage.type.function.pug.dot-block-dot"},{include:"#tag_attributes"},{include:"#complete_tag"},{begin:"^(?=.)",end:"$",name:"text.block.pug",patterns:[{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]}]},{begin:"^\\s*",comment:"All constructs that generally span a single line starting with any number of white-spaces.",end:"$",patterns:[{include:"#inline_pug"},{include:"#blocks_and_includes"},{include:"#unbuffered_code"},{include:"#mixin_definition"},{include:"#mixin_call"},{include:"#flow_control"},{include:"#flow_control_each"},{include:"#case_conds"},{begin:"\\|",comment:"Tag pipe text line.",end:"$",name:"text.block.pipe.pug",patterns:[{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},{include:"#printed_expression"},{begin:"\\G(?=(#[^\\{\\w-])|[^\\w.#])",comment:"Line starting with characters incompatible with tag name/id/class is standalone text.",end:"$",patterns:[{begin:"</?(?=[!#])",end:">|$",patterns:[{include:"#inline_pug"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},{include:"#complete_tag"}]}],repository:{babel_parens:{begin:"\\(",end:"\\)|(({\\s*)?$)",patterns:[{include:"#babel_parens"},{include:"source.js"}]},blocks_and_includes:{captures:{1:{name:"storage.type.import.include.pug"},4:{name:"variable.control.import.include.pug"}},comment:"Template blocks and includes.",match:"(extends|include|yield|append|prepend|block( (append|prepend))?)\\s+(.*)$",name:"meta.first-class.pug"},case_conds:{begin:"(default|when)((\\s+|(?=:))|$)",captures:{1:{name:"storage.type.function.pug"}},comment:"Pug case conditionals.",end:"$",name:"meta.control.flow.pug",patterns:[{begin:"\\G(?!:)",end:"(?=:\\s+)|$",name:"js.embedded.control.flow.pug",patterns:[{include:"#case_when_paren"},{include:"source.js"}]},{begin:":\\s+",end:"$",name:"tag.case.control.flow.pug",patterns:[{include:"#complete_tag"}]}]},case_when_paren:{begin:"\\(",end:"\\)",name:"js.when.control.flow.pug",patterns:[{include:"#case_when_paren"},{match:":",name:"invalid.illegal.name.tag.pug"},{include:"source.js"}]},complete_tag:{begin:"(?=[\\w.#])|(:\\s*)",end:"(\\.?$)|(?=:.)",endCaptures:{1:{name:"storage.type.function.pug.dot-block-dot"}},patterns:[{include:"#blocks_and_includes"},{include:"#unbuffered_code"},{include:"#mixin_call"},{include:"#flow_control"},{include:"#flow_control_each"},{match:"(?<=:)\\w.*$",name:"invalid.illegal.name.tag.pug"},{include:"#tag_name"},{include:"#tag_id"},{include:"#tag_classes"},{include:"#tag_attributes"},{include:"#tag_mixin_attributes"},{captures:{2:{name:"invalid.illegal.end.tag.pug"},4:{name:"invalid.illegal.end.tag.pug"}},match:"((\\.)\\s+$)|((:)\\s*$)"},{include:"#printed_expression"},{include:"#tag_text"}]},embedded_html:{begin:"(?=<[^>]*>)",end:"$|(?=>)",name:"html",patterns:[{include:"text.html.basic"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},flow_control:{begin:"(for|if|else if|else|until|while|unless|case)(\\s+|$)",captures:{1:{name:"storage.type.function.pug"}},comment:"Pug control flow.",end:"$",name:"meta.control.flow.pug",patterns:[{begin:"",end:"$",name:"js.embedded.control.flow.pug",patterns:[{include:"source.js"}]}]},flow_control_each:{begin:"(each)(\\s+|$)",captures:{1:{name:"storage.type.function.pug"}},end:"$",name:"meta.control.flow.pug.each",patterns:[{match:"([\\w$_]+)(?:\\s*,\\s*([\\w$_]+))?",name:"variable.other.pug.each-var"},{begin:"",end:"$",name:"js.embedded.control.flow.pug",patterns:[{include:"source.js"}]}]},html_entity:{patterns:[{match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.html.text.pug"},{match:"[<>&]",name:"invalid.illegal.html_entity.text.pug"}]},inline_pug:{begin:"(?<!\\\\)(#\\[)",captures:{1:{name:"entity.name.function.pug"},2:{name:"entity.name.function.pug"}},end:"(\\])",name:"inline.pug",patterns:[{include:"#inline_pug"},{include:"#mixin_call"},{begin:"(?<!\\])(?=[\\w.#])|(:\\s*)",end:"(?=\\]|(:.)|=|\\s)",name:"tag.inline.pug",patterns:[{include:"#tag_name"},{include:"#tag_id"},{include:"#tag_classes"},{include:"#tag_attributes"},{include:"#tag_mixin_attributes"},{include:"#inline_pug"},{match:"\\[",name:"invalid.illegal.tag.pug"}]},{include:"#unbuffered_code"},{include:"#printed_expression"},{match:"\\[",name:"invalid.illegal.tag.pug"},{include:"#inline_pug_text"}]},inline_pug_text:{begin:"",end:"(?=\\])",patterns:[{begin:"\\[",end:"\\]",patterns:[{include:"#inline_pug_text"}]},{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},interpolated_error:{match:"(?<!\\\\)[#!]\\{(?=[^}]*$)",name:"invalid.illegal.tag.pug"},interpolated_value:{begin:"(?<!\\\\)[#!]\\{(?=.*?\\})",end:"\\}",name:"string.interpolated.pug",patterns:[{match:"{",name:"invalid.illegal.tag.pug"},{include:"source.js"}]},js_braces:{begin:"\\{",end:"\\}",patterns:[{include:"#js_braces"},{include:"source.js"}]},js_brackets:{begin:"\\[",end:"\\]",patterns:[{include:"#js_brackets"},{include:"source.js"}]},js_parens:{begin:"\\(",end:"\\)",patterns:[{include:"#js_parens"},{include:"source.js"}]},mixin_call:{begin:"((?:mixin\\s+)|\\+)([\\w-]+)",beginCaptures:{1:{name:"storage.type.function.pug"},2:{name:"meta.tag.other entity.name.function.pug"}},end:"(?!\\()|$",patterns:[{begin:"(?<!\\))\\(",end:"\\)",name:"args.mixin.pug",patterns:[{include:"#js_parens"},{captures:{1:{name:"meta.tag.other entity.other.attribute-name.tag.pug"}},match:"([^\\s(),=/]+)\\s*=\\s*"},{include:"source.js"}]},{include:"#tag_attributes"}]},mixin_definition:{captures:{1:{name:"storage.type.function.pug"},2:{name:"meta.tag.other entity.name.function.pug"},3:{name:"punctuation.definition.parameters.begin.js"},4:{name:"variable.parameter.function.js"},5:{name:"punctuation.definition.parameters.begin.js"}},match:"(mixin\\s+)([\\w-]+)(?:(\\()\\s*((?:[a-zA-Z_]\\w*\\s*)(?:,\\s*[a-zA-Z_]\\w*\\s*)*)(\\)))?$"},printed_expression:{begin:"(!?\\=)\\s*",captures:{1:{name:"constant"}},end:"(?=\\])|$",name:"source.js",patterns:[{include:"#js_brackets"},{include:"source.js"}]},tag_attribute_name:{captures:{1:{name:"entity.other.attribute-name.tag.pug"}},match:"([^\\s(),=/!]+)\\s*"},tag_attribute_name_paren:{begin:"\\(\\s*",end:"\\)",name:"entity.other.attribute-name.tag.pug",patterns:[{include:"#tag_attribute_name_paren"},{include:"#tag_attribute_name"}]},tag_attributes:{begin:"(\\(\\s*)",captures:{1:{name:"constant.name.attribute.tag.pug"}},end:"(\\))",name:"meta.tag.other",patterns:[{include:"#tag_attribute_name_paren"},{include:"#tag_attribute_name"},{match:"!(?!=)",name:"invalid.illegal.tag.pug"},{begin:"=\\s*",end:"$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))",name:"attribute_value",patterns:[{include:"#js_parens"},{include:"#js_brackets"},{include:"#js_braces"},{include:"source.js"}]},{begin:"(?<=[%&*\\-+~|<>:?/])\\s+",end:"$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))",name:"attribute_value2",patterns:[{include:"#js_parens"},{include:"#js_brackets"},{include:"#js_braces"},{include:"source.js"}]}]},tag_classes:{captures:{1:{name:"invalid.illegal.tag.pug"}},match:"\\.([^\\w-])?[\\w-]*",name:"meta.selector.css entity.other.attribute-name.class.css.pug"},tag_id:{match:"#[\\w-]+",name:"meta.selector.css entity.other.attribute-name.id.css.pug"},tag_mixin_attributes:{begin:"(&attributes\\()",captures:{1:{name:"entity.name.function.pug"}},end:"(\\))",name:"meta.tag.other",patterns:[{match:"attributes(?=\\))",name:"storage.type.keyword.pug"},{include:"source.js"}]},tag_name:{begin:"([#!]\\{(?=.*?\\}))|(\\w(([\\w:-]+[\\w-])|([\\w-]*)))",end:"(\\G(?<!\\5[^\\w-]))|\\}|$",name:"meta.tag.other entity.name.tag.pug",patterns:[{begin:"\\G(?<=\\{)",end:"(?=\\})",name:"meta.tag.other entity.name.tag.pug",patterns:[{match:"{",name:"invalid.illegal.tag.pug"},{include:"source.js"}]}]},tag_text:{begin:"(?=.)",end:"$",patterns:[{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},unbuffered_code:{begin:"(-|(([a-zA-Z0-9_]+)\\s+=))",beginCaptures:{3:{name:"variable.parameter.javascript.embedded.pug"}},comment:"name = function() {}",end:"(?=\\])|(({\\s*)?$)",name:"source.js",patterns:[{include:"#js_brackets"},{include:"#babel_parens"},{include:"source.js"}]}},scopeName:"text.pug",embeddedLangs:["javascript","css","sass","scss","stylus","coffee","html"],aliases:["jade"]});var b=[...e,...n,...t,...a,...i,...s,...l,c];export{b as default}; diff --git a/assets/chunks/puppet.37ic6j3l.js b/assets/chunks/puppet.37ic6j3l.js new file mode 100644 index 000000000..fd08c7995 --- /dev/null +++ b/assets/chunks/puppet.37ic6j3l.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Puppet",fileTypes:["pp"],foldingStartMarker:"(^\\s*/\\*|(\\{|\\[|\\()\\s*$)",foldingStopMarker:"(\\*/|^\\s*(\\}|\\]|\\)))",name:"puppet",patterns:[{include:"#line_comment"},{include:"#constants"},{begin:"^\\s*/\\*",end:"\\*/",name:"comment.block.puppet"},{begin:"\\b(node)\\b",captures:{1:{name:"storage.type.puppet"},2:{name:"entity.name.type.class.puppet"}},end:"(?={)",name:"meta.definition.class.puppet",patterns:[{match:"\\bdefault\\b",name:"keyword.puppet"},{include:"#strings"},{include:"#regex-literal"}]},{begin:"\\b(class)\\s+((?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|(?#Bareword Resource Name)[a-z][a-z0-9_]*)\\s*",captures:{1:{name:"storage.type.puppet"},2:{name:"entity.name.type.class.puppet"}},end:"(?={)",name:"meta.definition.class.puppet",patterns:[{begin:"\\b(inherits)\\b\\s+",captures:{1:{name:"storage.modifier.puppet"}},end:"(?=\\(|{)",name:"meta.definition.class.inherits.puppet",patterns:[{match:'\\b((?:[-_A-Za-z0-9".]+::)*[-_A-Za-z0-9".]+)\\b',name:"support.type.puppet"}]},{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{begin:"^\\s*(plan)\\s+((?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|(?#Bareword Resource Name)[a-z][a-z0-9_]*)\\s*",captures:{1:{name:"storage.type.puppet"},2:{name:"entity.name.type.plan.puppet"}},end:"(?={)",name:"meta.definition.plan.puppet",patterns:[{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{begin:"^\\s*(define|function)\\s+((?#Bareword Resource Name)[a-z][a-z0-9_]*|(?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\\s*(\\()",captures:{1:{name:"storage.type.function.puppet"},2:{name:"entity.name.function.puppet"}},end:"(?={)",name:"meta.function.puppet",patterns:[{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{captures:{1:{name:"keyword.control.puppet"}},match:"\\b(case|else|elsif|if|unless)(?!::)\\b"},{include:"#keywords"},{include:"#resource-definition"},{include:"#heredoc"},{include:"#strings"},{include:"#puppet-datatypes"},{include:"#array"},{match:'((\\$?)"?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*"?):(?=\\s+|$)',name:"entity.name.section.puppet"},{include:"#numbers"},{include:"#variable"},{begin:"\\b(import|include|contain|require)\\s+(?!.*=>)",beginCaptures:{1:{name:"keyword.control.import.include.puppet"}},contentName:"variable.parameter.include.puppet",end:"(?=\\s|$)",name:"meta.include.puppet"},{match:"\\b\\w+\\s*(?==>)\\s*",name:"constant.other.key.puppet"},{match:"(?<={)\\s*\\w+\\s*(?=})",name:"constant.other.bareword.puppet"},{match:"\\b(alert|crit|debug|defined|emerg|err|escape|fail|failed|file|generate|gsub|info|notice|package|realize|search|tag|tagged|template|warning)\\b(?!.*{)",name:"support.function.puppet"},{match:"=>",name:"punctuation.separator.key-value.puppet"},{match:"->",name:"keyword.control.orderarrow.puppet"},{match:"~>",name:"keyword.control.notifyarrow.puppet"},{include:"#regex-literal"}],repository:{array:{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.array.begin.puppet"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.puppet"}},name:"meta.array.puppet",patterns:[{match:"\\s*,\\s*"},{include:"#parameter-default-types"},{include:"#line_comment"}]},constants:{patterns:[{match:"\\b(absent|directory|false|file|present|running|stopped|true)\\b(?!.*{)",name:"constant.language.puppet"}]},"double-quoted-string":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.puppet"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.puppet"}},name:"string.quoted.double.interpolated.puppet",patterns:[{include:"#escaped_char"},{include:"#interpolated_puppet"}]},escaped_char:{match:"\\\\.",name:"constant.character.escape.puppet"},function_call:{begin:"([a-zA-Z_][a-zA-Z0-9_]*)(\\()",end:"\\)",name:"meta.function-call.puppet",patterns:[{include:"#parameter-default-types"},{match:",",name:"punctuation.separator.parameters.puppet"}]},hash:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.hash.begin.puppet"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.hash.end.puppet"}},name:"meta.hash.puppet",patterns:[{match:"\\b\\w+\\s*(?==>)\\s*",name:"constant.other.key.puppet"},{include:"#parameter-default-types"},{include:"#line_comment"}]},heredoc:{patterns:[{begin:'@\\([[:blank:]]*"([^:\\/) \\t]+)"[[:blank:]]*(:[[:blank:]]*[a-z][a-zA-Z0-9_+]*[[:blank:]]*)?(\\/[[:blank:]]*[tsrnL$]*)?[[:blank:]]*\\)',beginCaptures:{0:{name:"punctuation.definition.string.begin.puppet"}},end:"^[[:blank:]]*(\\|[[:blank:]]*-|\\||-)?[[:blank:]]*\\1",endCaptures:{0:{name:"punctuation.definition.string.end.puppet"}},name:"string.interpolated.heredoc.puppet",patterns:[{include:"#escaped_char"},{include:"#interpolated_puppet"}]},{begin:"@\\([[:blank:]]*([^:\\/) \\t]+)[[:blank:]]*(:[[:blank:]]*[a-z][a-zA-Z0-9_+]*[[:blank:]]*)?(\\/[[:blank:]]*[tsrnL$]*)?[[:blank:]]*\\)",beginCaptures:{0:{name:"punctuation.definition.string.begin.puppet"}},end:"^[[:blank:]]*(\\|[[:blank:]]*-|\\||-)?[[:blank:]]*\\1",endCaptures:{0:{name:"punctuation.definition.string.end.puppet"}},name:"string.unquoted.heredoc.puppet"}]},interpolated_puppet:{patterns:[{begin:"(\\${)(\\d+)",beginCaptures:{1:{name:"punctuation.section.embedded.begin.puppet"},2:{name:"source.puppet variable.other.readwrite.global.pre-defined.puppet"}},contentName:"source.puppet",end:"}",endCaptures:{0:{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:"(\\${)(_[a-zA-Z0-9_]*)",beginCaptures:{1:{name:"punctuation.section.embedded.begin.puppet"},2:{name:"source.puppet variable.other.readwrite.global.puppet"}},contentName:"source.puppet",end:"}",endCaptures:{0:{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:"(\\${)(([a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)*)",beginCaptures:{1:{name:"punctuation.section.embedded.begin.puppet"},2:{name:"source.puppet variable.other.readwrite.global.puppet"}},contentName:"source.puppet",end:"}",endCaptures:{0:{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:"\\${",beginCaptures:{0:{name:"punctuation.section.embedded.begin.puppet"}},contentName:"source.puppet",end:"}",endCaptures:{0:{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]}]},keywords:{captures:{1:{name:"keyword.puppet"}},match:"\\b(undef)\\b"},line_comment:{patterns:[{captures:{1:{name:"comment.line.number-sign.puppet"},2:{name:"punctuation.definition.comment.puppet"}},match:"^((#).*$\\n?)",name:"meta.comment.full-line.puppet"},{captures:{1:{name:"punctuation.definition.comment.puppet"}},match:"(#).*$\\n?",name:"comment.line.number-sign.puppet"}]},nested_braces:{begin:"\\{",captures:{1:{name:"punctuation.section.scope.puppet"}},end:"\\}",patterns:[{include:"#escaped_char"},{include:"#nested_braces"}]},nested_braces_interpolated:{begin:"\\{",captures:{1:{name:"punctuation.section.scope.puppet"}},end:"\\}",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},nested_brackets:{begin:"\\[",captures:{1:{name:"punctuation.section.scope.puppet"}},end:"\\]",patterns:[{include:"#escaped_char"},{include:"#nested_brackets"}]},nested_brackets_interpolated:{begin:"\\[",captures:{1:{name:"punctuation.section.scope.puppet"}},end:"\\]",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},nested_parens:{begin:"\\(",captures:{1:{name:"punctuation.section.scope.puppet"}},end:"\\)",patterns:[{include:"#escaped_char"},{include:"#nested_parens"}]},nested_parens_interpolated:{begin:"\\(",captures:{1:{name:"punctuation.section.scope.puppet"}},end:"\\)",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},numbers:{patterns:[{comment:"HEX 0x 0-f",match:"(?<!\\w|\\d)([-+]?)(?i:0x)(?i:[0-9a-f])+(?!\\w|\\d)",name:"constant.numeric.hexadecimal.puppet"},{comment:"INTEGERS [(+|-)] digits [e [(+|-)] digits]",match:"(?<!\\w|\\.)([-+]?)(?<!\\d)\\d+(?i:e(\\+|-){0,1}\\d+){0,1}(?!\\w|\\d|\\.)",name:"constant.numeric.integer.puppet"},{comment:"FLOAT [(+|-)] digits . digits [e [(+|-)] digits]",match:"(?<!\\w)([-+]?)\\d+\\.\\d+(?i:e(\\+|-){0,1}\\d+){0,1}(?!\\w|\\d)",name:"constant.numeric.integer.puppet"}]},"parameter-default-types":{patterns:[{include:"#strings"},{include:"#numbers"},{include:"#variable"},{include:"#hash"},{include:"#array"},{include:"#function_call"},{include:"#constants"},{include:"#puppet-datatypes"}]},"puppet-datatypes":{patterns:[{comment:"Puppet Data type",match:"(?<![a-zA-Z\\$])([A-Z][a-zA-Z0-9_]*)(?![a-zA-Z0-9_])",name:"storage.type.puppet"}]},"regex-literal":{comment:"Puppet Regular expression literal without interpolation",match:"(\\/)(.+?)(?:[^\\\\]\\/)",name:"string.regexp.literal.puppet"},"resource-definition":{begin:"(?:^|\\b)((?#Toplevel Bareword)::[a-z][a-z0-9_]*|(?#Bareword Resource Name)[a-z][a-z0-9_]*|(?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\\s*({)\\s*",beginCaptures:{1:{name:"meta.definition.resource.puppet storage.type.puppet"}},contentName:"entity.name.section.puppet",end:":",patterns:[{include:"#strings"},{include:"#variable"},{include:"#array"}]},"resource-parameters":{patterns:[{captures:{1:{name:"variable.other.puppet"},2:{name:"punctuation.definition.variable.puppet"}},match:"((\\$+)[a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=,|\\))",name:"meta.function.argument.puppet"},{begin:"((\\$+)[a-zA-Z_][a-zA-Z0-9_]*)(?:\\s*(=)\\s*)\\s*",captures:{1:{name:"variable.other.puppet"},2:{name:"punctuation.definition.variable.puppet"},3:{name:"keyword.operator.assignment.puppet"}},end:"(?=,|\\))",name:"meta.function.argument.puppet",patterns:[{include:"#parameter-default-types"}]}]},"single-quoted-string":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.puppet"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.puppet"}},name:"string.quoted.single.puppet",patterns:[{include:"#escaped_char"}]},strings:{patterns:[{include:"#double-quoted-string"},{include:"#single-quoted-string"}]},variable:{patterns:[{captures:{1:{name:"punctuation.definition.variable.puppet"}},match:"(\\$)(\\d+)",name:"variable.other.readwrite.global.pre-defined.puppet"},{captures:{1:{name:"punctuation.definition.variable.puppet"}},match:"(\\$)_[a-zA-Z0-9_]*",name:"variable.other.readwrite.global.puppet"},{captures:{1:{name:"punctuation.definition.variable.puppet"}},match:"(\\$)(([a-z][a-zA-Z0-9_]*)?(?:::[a-z][a-zA-Z0-9_]*)*)",name:"variable.other.readwrite.global.puppet"}]}},scopeName:"source.puppet"});var n=[e];export{n as default}; diff --git a/assets/chunks/purescript.CfPQhs6g.js b/assets/chunks/purescript.CfPQhs6g.js new file mode 100644 index 000000000..48eda62ca --- /dev/null +++ b/assets/chunks/purescript.CfPQhs6g.js @@ -0,0 +1,7 @@ +const e=Object.freeze({displayName:"PureScript",fileTypes:["purs"],name:"purescript",patterns:[{captures:{1:{name:"punctuation.definition.entity.purescript"},2:{name:"punctuation.definition.entity.purescript"}},match:"(`)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(`)",name:"keyword.operator.function.infix.purescript"},{begin:"^\\s*\\b(module)(?!')\\b",beginCaptures:{1:{name:"keyword.other.purescript"}},end:"(where)",endCaptures:{1:{name:"keyword.other.purescript"}},name:"meta.declaration.module.purescript",patterns:[{include:"#comments"},{include:"#module_name"},{include:"#module_exports"},{match:"[a-z]+",name:"invalid.purescript"}]},{begin:"^\\s*\\b(class)(?!')\\b",beginCaptures:{1:{name:"storage.type.class.purescript"}},end:"\\b(where)\\b|$",endCaptures:{1:{name:"keyword.other.purescript"}},name:"meta.declaration.typeclass.purescript",patterns:[{include:"#type_signature"}]},{begin:"^\\s*\\b(else\\s+)?(derive\\s+)?(newtype\\s+)?(instance)(?!')\\b",beginCaptures:{1:{name:"keyword.other.purescript"},2:{name:"keyword.other.purescript"},3:{name:"keyword.other.purescript"},4:{name:"keyword.other.purescript"}},contentName:"meta.type-signature.purescript",end:"\\b(where)\\b|$",endCaptures:{1:{name:"keyword.other.purescript"}},name:"meta.declaration.instance.purescript",patterns:[{include:"#type_signature"}]},{begin:"^(\\s*)(foreign)\\s+(import)\\s+(data)\\s+([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)",beginCaptures:{2:{name:"keyword.other.purescript"},3:{name:"keyword.other.purescript"},4:{name:"keyword.other.purescript"},5:{name:"entity.name.type.purescript"},6:{name:"keyword.other.double-colon.purescript"}},contentName:"meta.kind-signature.purescript",end:"^(?!\\1[ \\t]|[ \\t]*$)",name:"meta.foreign.data.purescript",patterns:[{include:"#double_colon"},{include:"#kind_signature"}]},{begin:"^(\\s*)(foreign)\\s+(import)\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)",beginCaptures:{2:{name:"keyword.other.purescript"},3:{name:"keyword.other.purescript"},4:{name:"entity.name.function.purescript"}},contentName:"meta.type-signature.purescript",end:"^(?!\\1[ \\t]|[ \\t]*$)",name:"meta.foreign.purescript",patterns:[{include:"#double_colon"},{include:"#type_signature"}]},{begin:"^\\s*\\b(import)(?!')\\b",beginCaptures:{1:{name:"keyword.other.purescript"}},end:"($|(?=--))",name:"meta.import.purescript",patterns:[{include:"#module_name"},{include:"#module_exports"},{captures:{1:{name:"keyword.other.purescript"}},match:"\\b(as|hiding)\\b"}]},{begin:"^(\\s)*(data|newtype)\\s+(.+?)\\s*(?=\\=|$)",beginCaptures:{2:{name:"storage.type.data.purescript"},3:{name:"meta.type-signature.purescript",patterns:[{include:"#type_signature"}]}},end:"^(?!\\1[ \\t]|[ \\t]*$)",name:"meta.declaration.type.data.purescript",patterns:[{include:"#comments"},{captures:{0:{name:"keyword.operator.assignment.purescript"}},match:"="},{captures:{1:{patterns:[{include:"#data_ctor"}]},2:{name:"meta.type-signature.purescript",patterns:[{include:"#type_signature"}]}},match:"(?:(?:\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<ctorArgs>(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+))(?:\\s*(?:\\s+)\\s*\\g<ctorArgs>)?)?))"},{captures:{0:{name:"punctuation.separator.pipe.purescript"}},match:"\\|"},{include:"#record_types"}]},{begin:"^(\\s)*(type)\\s+(.+?)\\s*(?=\\=|$)",beginCaptures:{2:{name:"storage.type.data.purescript"},3:{name:"meta.type-signature.purescript",patterns:[{include:"#type_signature"}]}},contentName:"meta.type-signature.purescript",end:"^(?!\\1[ \\t]|[ \\t]*$)",name:"meta.declaration.type.type.purescript",patterns:[{captures:{0:{name:"keyword.operator.assignment.purescript"}},match:"="},{include:"#type_signature"},{include:"#record_types"},{include:"#comments"}]},{match:"^\\s*\\b(derive|where|data|type|newtype|infix[lr]?|foreign(\\s+import)?(\\s+data)?)(?!')\\b",name:"keyword.other.purescript"},{match:"\\?(?:[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)",name:"entity.name.function.typed-hole.purescript"},{match:"^\\s*\\b(data|type|newtype)(?!')\\b",name:"storage.type.purescript"},{match:"\\b(do|ado|if|then|else|case|of|let|in)(?!('|\\s*(:|=)))\\b",name:"keyword.control.purescript"},{match:"\\b(?<!\\$)0(x|X)[0-9a-fA-F]+\\b(?!\\$)",name:"constant.numeric.hex.purescript"},{captures:{0:{name:"constant.numeric.decimal.purescript"},1:{name:"meta.delimiter.decimal.period.purescript"},2:{name:"meta.delimiter.decimal.period.purescript"},3:{name:"meta.delimiter.decimal.period.purescript"},4:{name:"meta.delimiter.decimal.period.purescript"},5:{name:"meta.delimiter.decimal.period.purescript"},6:{name:"meta.delimiter.decimal.period.purescript"}},match:`(?x) +(?<!\\$)(?: +(?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| +(?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| +(?:\\b[0-9]+(\\.)[0-9]+\\b)| +(?:\\b[0-9]+\\b(?!\\.)) +)(?!\\$)`,name:"constant.numeric.decimal.purescript"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.purescript"},{match:"\\b(([0-9]+_?)*[0-9]+|0([xX][0-9a-fA-F]+|[oO][0-7]+))\\b",name:"constant.numeric.purescript"},{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.purescript"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.purescript"}},name:"string.quoted.triple.purescript"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.purescript"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.purescript"}},name:"string.quoted.double.purescript",patterns:[{include:"#characters"},{begin:"\\\\\\s",beginCaptures:{0:{name:"markup.other.escape.newline.begin.purescript"}},end:"\\\\",endCaptures:{0:{name:"markup.other.escape.newline.end.purescript"}},patterns:[{match:"\\S+",name:"invalid.illegal.character-not-allowed-here.purescript"}]}]},{match:"\\\\$",name:"markup.other.escape.newline.purescript"},{captures:{1:{name:"punctuation.definition.string.begin.purescript"},2:{patterns:[{include:"#characters"}]},7:{name:"punctuation.definition.string.end.purescript"}},match:`(')((?:[ -\\[\\]-~]|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\"'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_])))(')`,name:"string.quoted.single.purescript"},{include:"#function_type_declaration"},{captures:{1:{patterns:[{include:"$self"}]},2:{name:"keyword.other.double-colon.purescript"},3:{name:"meta.type-signature.purescript",patterns:[{include:"#type_signature"}]}},match:"\\((?<paren>(?:[^()]|\\(\\g<paren>\\))*)(::|∷)(?<paren2>(?:[^()]|\\(\\g<paren2>\\))*)\\)"},{begin:"^(\\s*)(?:(::|∷))",beginCaptures:{2:{name:"keyword.other.double-colon.purescript"}},end:"^(?!\\1[ \\t]*|[ \\t]*$)",patterns:[{include:"#type_signature"}]},{include:"#data_ctor"},{include:"#comments"},{include:"#infix_op"},{match:"\\<-|-\\>",name:"keyword.other.arrow.purescript"},{match:"[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+",name:"keyword.operator.purescript"},{match:",",name:"punctuation.separator.comma.purescript"}],repository:{block_comment:{patterns:[{applyEndPatternLast:1,begin:"\\{-\\s*\\|",beginCaptures:{0:{name:"punctuation.definition.comment.documentation.purescript"}},end:"-\\}",endCaptures:{0:{name:"punctuation.definition.comment.documentation.purescript"}},name:"comment.block.documentation.purescript",patterns:[{include:"#block_comment"}]},{applyEndPatternLast:1,begin:"\\{-",beginCaptures:{0:{name:"punctuation.definition.comment.purescript"}},end:"-\\}",name:"comment.block.purescript",patterns:[{include:"#block_comment"}]}]},characters:{patterns:[{captures:{1:{name:"constant.character.escape.purescript"},2:{name:"constant.character.escape.octal.purescript"},3:{name:"constant.character.escape.hexadecimal.purescript"},4:{name:"constant.character.escape.control.purescript"}},match:`(?:[ -\\[\\]-~]|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\"'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_]))`}]},class_constraint:{patterns:[{captures:{1:{patterns:[{match:"\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*",name:"entity.name.type.purescript"}]},2:{patterns:[{include:"#type_name"},{include:"#generic_type"}]}},match:"(?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?)))",name:"meta.class-constraint.purescript"}]},comments:{patterns:[{begin:"(^[ \\t]+)?(?=--+\\s+\\|)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.purescript"}},end:"(?!\\G)",patterns:[{begin:"(--+)\\s+(\\|)",beginCaptures:{1:{name:"punctuation.definition.comment.purescript"},2:{name:"punctuation.definition.comment.documentation.purescript"}},end:"\\n",name:"comment.line.double-dash.documentation.purescript"}]},{begin:"(^[ \\t]+)?(?=--+(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]))",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.purescript"}},end:"(?!\\G)",patterns:[{begin:"--",beginCaptures:{0:{name:"punctuation.definition.comment.purescript"}},end:"\\n",name:"comment.line.double-dash.purescript"}]},{include:"#block_comment"}]},data_ctor:{patterns:[{match:"\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*",name:"entity.name.tag.purescript"}]},double_colon:{patterns:[{match:"(?:::|∷)",name:"keyword.other.double-colon.purescript"}]},function_type_declaration:{patterns:[{begin:"^(\\s*)([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(?:(::|∷)(?!.*<-))",beginCaptures:{2:{name:"entity.name.function.purescript"},3:{name:"keyword.other.double-colon.purescript"}},contentName:"meta.type-signature.purescript",end:"^(?!\\1[ \\t]|[ \\t]*$)",name:"meta.function.type-declaration.purescript",patterns:[{include:"#double_colon"},{include:"#type_signature"}]}]},generic_type:{patterns:[{match:"\\b(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*",name:"variable.other.generic-type.purescript"}]},infix_op:{patterns:[{match:"(?:\\((?!--+\\))[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+\\))",name:"entity.name.function.infix.purescript"}]},kind_signature:{patterns:[{match:"\\*",name:"keyword.other.star.purescript"},{match:"!",name:"keyword.other.exclaimation-point.purescript"},{match:"#",name:"keyword.other.pound-sign.purescript"},{match:"->|→",name:"keyword.other.arrow.purescript"}]},module_exports:{patterns:[{begin:"\\(",end:"\\)",name:"meta.declaration.exports.purescript",patterns:[{include:"#comments"},{match:"\\b(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*",name:"entity.name.function.purescript"},{include:"#type_name"},{match:",",name:"punctuation.separator.comma.purescript"},{include:"#infix_op"},{match:"\\(.*?\\)",name:"meta.other.constructor-list.purescript"}]}]},module_name:{patterns:[{match:"(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)*[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.?",name:"support.other.module.purescript"}]},record_field_declaration:{patterns:[{begin:"([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)",beginCaptures:{1:{patterns:[{match:"(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*",name:"entity.other.attribute-name.purescript"}]},2:{name:"keyword.other.double-colon.purescript"}},contentName:"meta.type-signature.purescript",end:"(?=([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)|})",name:"meta.record-field.type-declaration.purescript",patterns:[{include:"#type_signature"},{include:"#record_types"}]}]},record_types:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"keyword.operator.type.record.begin.purescript"}},end:"\\}",endCaptures:{0:{name:"keyword.operator.type.record.end.purescript"}},name:"meta.type.record.purescript",patterns:[{match:",",name:"punctuation.separator.comma.purescript"},{include:"#record_field_declaration"},{include:"#comments"}]}]},type_name:{patterns:[{match:"\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*",name:"entity.name.type.purescript"}]},type_signature:{patterns:[{captures:{1:{patterns:[{include:"#class_constraint"}]},4:{name:"keyword.other.big-arrow.purescript"}},match:"(?:(?:\\()(?:(?<classConstraints>(?:(?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?))))(?:\\s*(?:,)\\s*\\g<classConstraints>)?))(?:\\))(?:\\s*(=>|<=|⇐|⇒)))",name:"meta.class-constraints.purescript"},{captures:{1:{patterns:[{include:"#class_constraint"}]},4:{name:"keyword.other.big-arrow.purescript"}},match:"((?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?))))\\s*(=>|<=|⇐|⇒)",name:"meta.class-constraints.purescript"},{match:"->|→",name:"keyword.other.arrow.purescript"},{match:"=>|⇒",name:"keyword.other.big-arrow.purescript"},{match:"<=|⇐",name:"keyword.other.big-arrow-left.purescript"},{match:"forall|∀",name:"keyword.other.forall.purescript"},{include:"#generic_type"},{include:"#type_name"},{include:"#comments"}]}},scopeName:"source.purescript"});var t=[e];export{t as default}; diff --git a/assets/chunks/python.DwuVtWc2.js b/assets/chunks/python.DwuVtWc2.js new file mode 100644 index 000000000..5948a2b8f --- /dev/null +++ b/assets/chunks/python.DwuVtWc2.js @@ -0,0 +1,518 @@ +const e=Object.freeze({displayName:"Python",name:"python",patterns:[{include:"#statement"},{include:"#expression"}],repository:{"annotated-parameter":{begin:`(?x) +\\b +([[:alpha:]_]\\w*) \\s* (:) +`,beginCaptures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.annotation.python"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"},{match:"=(?!=)",name:"keyword.operator.assignment.python"}]},"assignment-operator":{match:`(?x) +<<= | >>= | //= | \\*\\*= +| \\+= | -= | /= | @= +| \\*= | %= | ~= | \\^= | &= | \\|= +| =(?!=) +`,name:"keyword.operator.assignment.python"},backticks:{begin:"\\`",end:"(?:\\`|(?<!\\\\)(\\n))",name:"invalid.deprecated.backtick.python",patterns:[{include:"#expression"}]},"builtin-callables":{patterns:[{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#builtin-exceptions"},{include:"#builtin-functions"},{include:"#builtin-types"}]},"builtin-exceptions":{match:`(?x) (?<!\\.) \\b( +( +Arithmetic | Assertion | Attribute | Buffer | BlockingIO +| BrokenPipe | ChildProcess +| (Connection (Aborted | Refused | Reset)?) +| EOF | Environment | FileExists | FileNotFound +| FloatingPoint | IO | Import | Indentation | Index | Interrupted +| IsADirectory | NotADirectory | Permission | ProcessLookup +| Timeout +| Key | Lookup | Memory | Name | NotImplemented | OS | Overflow +| Reference | Runtime | Recursion | Syntax | System +| Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)? +| Value | Windows | ZeroDivision | ModuleNotFound +) Error +| +((Pending)?Deprecation | Runtime | Syntax | User | Future | Import +| Unicode | Bytes | Resource +)? Warning +| +SystemExit | Stop(Async)?Iteration +| KeyboardInterrupt +| GeneratorExit | (Base)?Exception +)\\b +`,name:"support.type.exception.python"},"builtin-functions":{patterns:[{match:`(?x) +(?<!\\.) \\b( +__import__ | abs | aiter | all | any | anext | ascii | bin +| breakpoint | callable | chr | compile | copyright | credits +| delattr | dir | divmod | enumerate | eval | exec | exit +| filter | format | getattr | globals | hasattr | hash | help +| hex | id | input | isinstance | issubclass | iter | len +| license | locals | map | max | memoryview | min | next +| oct | open | ord | pow | print | quit | range | reload | repr +| reversed | round | setattr | sorted | sum | vars | zip +)\\b +`,name:"support.function.builtin.python"},{match:`(?x) +(?<!\\.) \\b( +file | reduce | intern | raw_input | unicode | cmp | basestring +| execfile | long | xrange +)\\b +`,name:"variable.legacy.builtin.python"}]},"builtin-possible-callables":{patterns:[{include:"#builtin-callables"},{include:"#magic-names"}]},"builtin-types":{match:`(?x) +(?<!\\.) \\b( +bool | bytearray | bytes | classmethod | complex | dict +| float | frozenset | int | list | object | property +| set | slice | staticmethod | str | tuple | type + +(?# Although 'super' is not a type, it's related to types, +and is special enough to be highlighted differently from +other built-ins) +| super +)\\b +`,name:"support.type.python"},"call-wrapper-inheritance":{begin:`(?x) +\\b(?= +([[:alpha:]_]\\w*) \\s* (\\() +) +`,comment:"same as a function call, but in inheritance context",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#inheritance-name"},{include:"#function-arguments"}]},"class-declaration":{patterns:[{begin:`(?x) +\\s*(class)\\s+ +(?= +[[:alpha:]_]\\w* \\s* (:|\\() +) +`,beginCaptures:{1:{name:"storage.type.class.python"}},end:"(:)",endCaptures:{1:{name:"punctuation.section.class.begin.python"}},name:"meta.class.python",patterns:[{include:"#class-name"},{include:"#class-inheritance"}]}]},"class-inheritance":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.inheritance.begin.python"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.inheritance.end.python"}},name:"meta.class.inheritance.python",patterns:[{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.arguments.python"},{match:",",name:"punctuation.separator.inheritance.python"},{match:"=(?!=)",name:"keyword.operator.assignment.python"},{match:"\\bmetaclass\\b",name:"support.type.metaclass.python"},{include:"#illegal-names"},{include:"#class-kwarg"},{include:"#call-wrapper-inheritance"},{include:"#expression-base"},{include:"#member-access-class"},{include:"#inheritance-identifier"}]},"class-kwarg":{captures:{1:{name:"entity.other.inherited-class.python variable.parameter.class.python"},2:{name:"keyword.operator.assignment.python"}},match:`(?x) +\\b ([[:alpha:]_]\\w*) \\s*(=)(?!=) +`},"class-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"entity.name.type.class.python"}]},codetags:{captures:{1:{name:"keyword.codetag.notation.python"}},match:"(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)"},comments:{patterns:[{begin:`(?x) +(?: +\\# \\s* (type:) +\\s*+ (?# we want \`\\s*+\` which is possessive quantifier since +we do not actually want to backtrack when matching +whitespace here) +(?! $ | \\#) +) +`,beginCaptures:{0:{name:"meta.typehint.comment.python"},1:{name:"comment.typehint.directive.notation.python"}},contentName:"meta.typehint.comment.python",end:"(?:$|(?=\\#))",name:"comment.line.number-sign.python",patterns:[{match:`(?x) +\\G ignore +(?= \\s* (?: $ | \\#)) +`,name:"comment.typehint.ignore.notation.python"},{match:`(?x) +(?<!\\.)\\b( +bool | bytes | float | int | object | str +| List | Dict | Iterable | Sequence | Set +| FrozenSet | Callable | Union | Tuple +| Any | None +)\\b +`,name:"comment.typehint.type.notation.python"},{match:"([\\[\\]\\(\\),\\.\\=\\*]|(->))",name:"comment.typehint.punctuation.notation.python"},{match:"([[:alpha:]_]\\w*)",name:"comment.typehint.variable.notation.python"}]},{include:"#comments-base"}]},"comments-base":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:"($)",name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-double-three":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:'($|(?="""))',name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-single-three":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:"($|(?='''))",name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"curly-braces":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dict.begin.python"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dict.end.python"}},patterns:[{match:":",name:"punctuation.separator.dict.python"},{include:"#expression"}]},decorator:{begin:`(?x) +^\\s* +((@)) \\s* (?=[[:alpha:]_]\\w*) +`,beginCaptures:{1:{name:"entity.name.function.decorator.python"},2:{name:"punctuation.definition.decorator.python"}},end:`(?x) +( \\) ) + +(?: (.*?) (?=\\s*(?:\\#|$)) ) +| (?=\\n|\\#) +`,endCaptures:{1:{name:"punctuation.definition.arguments.end.python"},2:{name:"invalid.illegal.decorator.python"}},name:"meta.function.decorator.python",patterns:[{include:"#decorator-name"},{include:"#function-arguments"}]},"decorator-name":{patterns:[{include:"#builtin-callables"},{include:"#illegal-object-name"},{captures:{2:{name:"punctuation.separator.period.python"}},match:`(?x) +([[:alpha:]_]\\w*) | (\\.) +`,name:"entity.name.function.decorator.python"},{include:"#line-continuation"},{captures:{1:{name:"invalid.illegal.decorator.python"}},match:`(?x) +\\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$) +`,name:"invalid.illegal.decorator.python"}]},docstring:{patterns:[{begin:`(\\'\\'\\'|\\"\\"\\")`,beginCaptures:{1:{name:"punctuation.definition.string.begin.python"}},end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.string.end.python"}},name:"string.quoted.docstring.multi.python",patterns:[{include:"#docstring-prompt"},{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{begin:`([rR])(\\'\\'\\'|\\"\\"\\")`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"}},name:"string.quoted.docstring.raw.multi.python",patterns:[{include:"#string-consume-escape"},{include:"#docstring-prompt"},{include:"#codetags"}]},{begin:`(\\'|\\")`,beginCaptures:{1:{name:"punctuation.definition.string.begin.python"}},end:"(\\1)|(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.docstring.single.python",patterns:[{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{begin:`([rR])(\\'|\\")`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.docstring.raw.single.python",patterns:[{include:"#string-consume-escape"},{include:"#codetags"}]}]},"docstring-guts-unicode":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"docstring-prompt":{captures:{1:{name:"keyword.control.flow.python"}},match:`(?x) +(?: +(?:^|\\G) \\s* (?# '\\G' is necessary for ST) +((?:>>>|\\.\\.\\.) \\s) (?=\\s*\\S) +) +`},"docstring-statement":{begin:`^(?=\\s*[rR]?(\\'\\'\\'|\\"\\"\\"|\\'|\\"))`,comment:"the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring",end:`((?<=\\1)|^)(?!\\s*[rR]?(\\'\\'\\'|\\"\\"\\"|\\'|\\"))`,patterns:[{include:"#docstring"}]},"double-one-regexp-character-set":{patterns:[{match:`(?x) +\\[ \\^? \\] (?! .*?\\]) +`},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:'(\\]|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"double-one-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-one-regexp-character-set"},{include:"#double-one-regexp-comments"},{include:"#regexp-flags"},{include:"#double-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-one-regexp-lookahead"},{include:"#double-one-regexp-lookahead-negative"},{include:"#double-one-regexp-lookbehind"},{include:"#double-one-regexp-lookbehind-negative"},{include:"#double-one-regexp-conditional"},{include:"#double-one-regexp-parentheses-non-capturing"},{include:"#double-one-regexp-parentheses"}]},"double-one-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-three-regexp-character-set":{patterns:[{match:`(?x) +\\[ \\^? \\] (?! .*?\\]) +`},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:'(\\]|(?="""))',endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"double-three-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-three-regexp-character-set"},{include:"#double-three-regexp-comments"},{include:"#regexp-flags"},{include:"#double-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-three-regexp-lookahead"},{include:"#double-three-regexp-lookahead-negative"},{include:"#double-three-regexp-lookbehind"},{include:"#double-three-regexp-lookbehind-negative"},{include:"#double-three-regexp-conditional"},{include:"#double-three-regexp-parentheses-non-capturing"},{include:"#double-three-regexp-parentheses"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},ellipsis:{match:"\\.\\.\\.",name:"constant.other.ellipsis.python"},"escape-sequence":{match:`(?x) +\\\\ ( +x[0-9A-Fa-f]{2} +| [0-7]{1,3} +| [\\\\"'abfnrtv] +) +`,name:"constant.character.escape.python"},"escape-sequence-unicode":{patterns:[{match:`(?x) +\\\\ ( +u[0-9A-Fa-f]{4} +| U[0-9A-Fa-f]{8} +| N\\{[\\w\\s]+?\\} +) +`,name:"constant.character.escape.python"}]},expression:{comment:"All valid Python expressions",patterns:[{include:"#expression-base"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"expression-bare":{comment:"valid Python expressions w/o comments and line continuation",patterns:[{include:"#backticks"},{include:"#illegal-anno"},{include:"#literal"},{include:"#regexp"},{include:"#string"},{include:"#lambda"},{include:"#generator"},{include:"#illegal-operator"},{include:"#operator"},{include:"#curly-braces"},{include:"#item-access"},{include:"#list"},{include:"#odd-function-call"},{include:"#round-braces"},{include:"#function-call"},{include:"#builtin-functions"},{include:"#builtin-types"},{include:"#builtin-exceptions"},{include:"#magic-names"},{include:"#special-names"},{include:"#illegal-names"},{include:"#special-variables"},{include:"#ellipsis"},{include:"#punctuation"},{include:"#line-continuation"}]},"expression-base":{comment:"valid Python expressions with comments and line continuation",patterns:[{include:"#comments"},{include:"#expression-bare"},{include:"#line-continuation"}]},"f-expression":{comment:"All valid Python expressions, except comments and line continuation",patterns:[{include:"#expression-bare"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"fregexp-base-expression":{patterns:[{include:"#fregexp-quantifier"},{include:"#fstring-formatting-braces"},{match:"\\{.*?\\}"},{include:"#regexp-base-common"}]},"fregexp-quantifier":{match:`(?x) +\\{\\{( +\\d+ | \\d+,(\\d+)? | ,\\d+ +)\\}\\} +`,name:"keyword.operator.quantifier.regexp"},"fstring-fnorm-quoted-multi-line":{begin:`(\\b[fF])([bBuU])?('''|""")`,beginCaptures:{1:{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},2:{name:"invalid.illegal.prefix.python"},3:{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-fnorm-quoted-single-line":{begin:`(\\b[fF])([bBuU])?((['"]))`,beginCaptures:{1:{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},2:{name:"invalid.illegal.prefix.python"},3:{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-formatting":{patterns:[{include:"#fstring-formatting-braces"},{include:"#fstring-formatting-singe-brace"}]},"fstring-formatting-braces":{patterns:[{captures:{1:{name:"constant.character.format.placeholder.other.python"},2:{name:"invalid.illegal.brace.python"},3:{name:"constant.character.format.placeholder.other.python"}},comment:"empty braces are illegal",match:"({)(\\s*?)(})"},{match:"({{|}})",name:"constant.character.escape.python"}]},"fstring-formatting-singe-brace":{match:"(}(?!}))",name:"invalid.illegal.brace.python"},"fstring-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#fstring-formatting"}]},"fstring-illegal-multi-brace":{patterns:[{include:"#impossible"}]},"fstring-illegal-single-brace":{begin:"(\\{)(?=[^\\n}]*$\\n?)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"it is illegal to have a multiline brace inside a single-line string",end:"(\\})|(?=\\n)",endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-multi-brace":{begin:"(\\{)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"value interpolation using { ... }",end:`(?x) +(\\}) +`,endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-multi"},{include:"#f-expression"}]},"fstring-multi-core":{match:`(?x) +(.+?) +( +(?# .* and .*? in multi-line match need special handling of +newlines otherwise SublimeText and Atom will match slightly +differently. + +The guard for newlines has to be separate from the +lookahead because of special $ matching rule.) +($\\n?) +| +(?=[\\\\\\}\\{]|'''|""") +) +(?# due to how multiline regexps are matched we need a special case +for matching a newline character) +| \\n +`,name:"string.interpolated.python string.quoted.multi.python"},"fstring-normf-quoted-multi-line":{begin:`(\\b[bBuU])([fF])('''|""")`,beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python string.quoted.multi.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-normf-quoted-single-line":{begin:`(\\b[bBuU])([fF])((['"]))`,beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python string.quoted.single.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#fstring-formatting"}]},"fstring-raw-multi-core":{match:`(?x) +(.+?) +( +(?# .* and .*? in multi-line match need special handling of +newlines otherwise SublimeText and Atom will match slightly +differently. + +The guard for newlines has to be separate from the +lookahead because of special $ matching rule.) +($\\n?) +| +(?=[\\\\\\}\\{]|'''|""") +) +(?# due to how multiline regexps are matched we need a special case +for matching a newline character) +| \\n +`,name:"string.interpolated.python string.quoted.raw.multi.python"},"fstring-raw-quoted-multi-line":{begin:`(\\b(?:[rR][fF]|[fF][rR]))('''|""")`,beginCaptures:{1:{name:"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python string.quoted.raw.multi.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-raw-multi-core"}]},"fstring-raw-quoted-single-line":{begin:`(\\b(?:[rR][fF]|[fF][rR]))((['"]))`,beginCaptures:{1:{name:"string.interpolated.python string.quoted.raw.single.python storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python string.quoted.raw.single.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-raw-single-core"}]},"fstring-raw-single-core":{match:`(?x) +(.+?) +( +(?# .* and .*? in multi-line match need special handling of +newlines otherwise SublimeText and Atom will match slightly +differently. + +The guard for newlines has to be separate from the +lookahead because of special $ matching rule.) +($\\n?) +| +(?=[\\\\\\}\\{]|(['"])|((?<!\\\\)\\n)) +) +(?# due to how multiline regexps are matched we need a special case +for matching a newline character) +| \\n +`,name:"string.interpolated.python string.quoted.raw.single.python"},"fstring-single-brace":{begin:"(\\{)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"value interpolation using { ... }",end:`(?x) +(\\})|(?=\\n) +`,endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-single-core":{match:`(?x) +(.+?) +( +(?# .* and .*? in multi-line match need special handling of +newlines otherwise SublimeText and Atom will match slightly +differently. + +The guard for newlines has to be separate from the +lookahead because of special $ matching rule.) +($\\n?) +| +(?=[\\\\\\}\\{]|(['"])|((?<!\\\\)\\n)) +) +(?# due to how multiline regexps are matched we need a special case +for matching a newline character) +| \\n +`,name:"string.interpolated.python string.quoted.single.python"},"fstring-terminator-multi":{patterns:[{match:"(=(![rsa])?)(?=})",name:"storage.type.format.python"},{match:"(=?![rsa])(?=})",name:"storage.type.format.python"},{captures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},match:`(?x) +( (?: =?) (?: ![rsa])? ) +( : \\w? [<>=^]? [-+ ]? \\#? +\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=}) +`},{include:"#fstring-terminator-multi-tail"}]},"fstring-terminator-multi-tail":{begin:"((?:=?)(?:![rsa])?)(:)(?=.*?{)",beginCaptures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},end:"(?=})",patterns:[{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{match:"([bcdeEfFgGnosxX%])(?=})",name:"storage.type.format.python"},{match:"(\\.\\d+)",name:"storage.type.format.python"},{match:"(,)",name:"storage.type.format.python"},{match:"(\\d+)",name:"storage.type.format.python"},{match:"(\\#)",name:"storage.type.format.python"},{match:"([-+ ])",name:"storage.type.format.python"},{match:"([<>=^])",name:"storage.type.format.python"},{match:"(\\w)",name:"storage.type.format.python"}]},"fstring-terminator-single":{patterns:[{match:"(=(![rsa])?)(?=})",name:"storage.type.format.python"},{match:"(=?![rsa])(?=})",name:"storage.type.format.python"},{captures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},match:`(?x) +( (?: =?) (?: ![rsa])? ) +( : \\w? [<>=^]? [-+ ]? \\#? +\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=}) +`},{include:"#fstring-terminator-single-tail"}]},"fstring-terminator-single-tail":{begin:"((?:=?)(?:![rsa])?)(:)(?=.*?{)",beginCaptures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},end:"(?=})|(?=\\n)",patterns:[{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{match:"([bcdeEfFgGnosxX%])(?=})",name:"storage.type.format.python"},{match:"(\\.\\d+)",name:"storage.type.format.python"},{match:"(,)",name:"storage.type.format.python"},{match:"(\\d+)",name:"storage.type.format.python"},{match:"(\\#)",name:"storage.type.format.python"},{match:"([-+ ])",name:"storage.type.format.python"},{match:"([<>=^])",name:"storage.type.format.python"},{match:"(\\w)",name:"storage.type.format.python"}]},"function-arguments":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.function-call.arguments.python",end:"(?=\\))(?!\\)\\s*\\()",patterns:[{match:"(,)",name:"punctuation.separator.arguments.python"},{captures:{1:{name:"keyword.operator.unpacking.arguments.python"}},match:`(?x) +(?:(?<=[,(])|^) \\s* (\\*{1,2}) +`},{include:"#lambda-incomplete"},{include:"#illegal-names"},{captures:{1:{name:"variable.parameter.function-call.python"},2:{name:"keyword.operator.assignment.python"}},match:"\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)"},{match:"=(?!=)",name:"keyword.operator.assignment.python"},{include:"#expression"},{captures:{1:{name:"punctuation.definition.arguments.end.python"},2:{name:"punctuation.definition.arguments.begin.python"}},match:"\\s*(\\))\\s*(\\()"}]},"function-call":{begin:`(?x) +\\b(?= +([[:alpha:]_]\\w*) \\s* (\\() +) +`,comment:'Regular function call of the type "name(args)"',end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#special-variables"},{include:"#function-name"},{include:"#function-arguments"}]},"function-declaration":{begin:`(?x) +\\s* +(?:\\b(async) \\s+)? \\b(def)\\s+ +(?= +[[:alpha:]_][[:word:]]* \\s* \\( +) +`,beginCaptures:{1:{name:"storage.type.function.async.python"},2:{name:"storage.type.function.python"}},end:`(:|(?=[#'"\\n]))`,endCaptures:{1:{name:"punctuation.section.function.begin.python"}},name:"meta.function.python",patterns:[{include:"#function-def-name"},{include:"#parameters"},{include:"#line-continuation"},{include:"#return-annotation"}]},"function-def-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"entity.name.function.python"}]},"function-name":{patterns:[{include:"#builtin-possible-callables"},{comment:"Some color schemas support meta.function-call.generic scope",match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"meta.function-call.generic.python"}]},generator:{begin:"\\bfor\\b",beginCaptures:{0:{name:"keyword.control.flow.python"}},comment:`Match "for ... in" construct used in generators and for loops to +correctly identify the "in" as a control flow keyword. +`,end:"\\bin\\b",endCaptures:{0:{name:"keyword.control.flow.python"}},patterns:[{include:"#expression"}]},"illegal-anno":{match:"->",name:"invalid.illegal.annotation.python"},"illegal-names":{captures:{1:{name:"keyword.control.flow.python"},2:{name:"keyword.control.import.python"}},match:`(?x) +\\b(?: +( +and | assert | async | await | break | class | continue | def +| del | elif | else | except | finally | for | from | global +| if | in | is | (?<=\\.)lambda | lambda(?=\\s*[\\.=]) +| nonlocal | not | or | pass | raise | return | try | while | with +| yield +) | ( +as | import +) +)\\b +`},"illegal-object-name":{comment:`It's illegal to name class or function "True"`,match:"\\b(True|False|None)\\b",name:"keyword.illegal.name.python"},"illegal-operator":{patterns:[{match:"&&|\\|\\||--|\\+\\+",name:"invalid.illegal.operator.python"},{match:"[?$]",name:"invalid.illegal.operator.python"},{comment:"We don't want `!` to flash when we're typing `!=`",match:"!\\b",name:"invalid.illegal.operator.python"}]},import:{comment:"Import statements used to correctly mark `from`, `import`, and `as`\n",patterns:[{begin:"\\b(?<!\\.)(from)\\b(?=.+import)",beginCaptures:{1:{name:"keyword.control.import.python"}},end:"$|(?=import)",patterns:[{match:"\\.+",name:"punctuation.separator.period.python"},{include:"#expression"}]},{begin:"\\b(?<!\\.)(import)\\b",beginCaptures:{1:{name:"keyword.control.import.python"}},end:"$",patterns:[{match:"\\b(?<!\\.)as\\b",name:"keyword.control.import.python"},{include:"#expression"}]}]},impossible:{comment:"This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.",match:"$.^"},"inheritance-identifier":{captures:{1:{name:"entity.other.inherited-class.python"}},match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`},"inheritance-name":{patterns:[{include:"#lambda-incomplete"},{include:"#builtin-possible-callables"},{include:"#inheritance-identifier"}]},"item-access":{patterns:[{begin:`(?x) +\\b(?= +[[:alpha:]_]\\w* \\s* \\[ +) +`,end:"(\\])",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.item-access.python",patterns:[{include:"#item-name"},{include:"#item-index"},{include:"#expression"}]}]},"item-index":{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.item-access.arguments.python",end:"(?=\\])",patterns:[{match:":",name:"punctuation.separator.slice.python"},{include:"#expression"}]},"item-name":{patterns:[{include:"#special-variables"},{include:"#builtin-functions"},{include:"#special-names"},{match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"meta.indexed-name.python"}]},lambda:{patterns:[{captures:{1:{name:"keyword.control.flow.python"}},match:"((?<=\\.)lambda|lambda(?=\\s*[\\.=]))"},{captures:{1:{name:"storage.type.function.lambda.python"}},match:"\\b(lambda)\\s*?(?=[,\\n]|$)"},{begin:`(?x) +\\b (lambda) \\b +`,beginCaptures:{1:{name:"storage.type.function.lambda.python"}},contentName:"meta.function.lambda.parameters.python",end:"(:)|(\\n)",endCaptures:{1:{name:"punctuation.section.function.lambda.begin.python"}},name:"meta.lambda-function.python",patterns:[{match:"/",name:"keyword.operator.positional.parameter.python"},{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-nested-incomplete"},{include:"#illegal-names"},{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.parameters.python"}},match:"([[:alpha:]_]\\w*)\\s*(?:(,)|(?=:|$))"},{include:"#comments"},{include:"#backticks"},{include:"#illegal-anno"},{include:"#lambda-parameter-with-default"},{include:"#line-continuation"},{include:"#illegal-operator"}]}]},"lambda-incomplete":{match:"\\blambda(?=\\s*[,)])",name:"storage.type.function.lambda.python"},"lambda-nested-incomplete":{match:"\\blambda(?=\\s*[:,)])",name:"storage.type.function.lambda.python"},"lambda-parameter-with-default":{begin:`(?x) +\\b +([[:alpha:]_]\\w*) \\s* (=) +`,beginCaptures:{1:{name:"variable.parameter.function.language.python"},2:{name:"keyword.operator.python"}},end:"(,)|(?=:|$)",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"line-continuation":{patterns:[{captures:{1:{name:"punctuation.separator.continuation.line.python"},2:{name:"invalid.illegal.line.continuation.python"}},match:"(\\\\)\\s*(\\S.*$\\n?)"},{begin:"(\\\\)\\s*$\\n?",beginCaptures:{1:{name:"punctuation.separator.continuation.line.python"}},end:`(?x) +(?=^\\s*$) +| +(?! (\\s* [rR]? (\\'\\'\\'|\\"\\"\\"|\\'|\\")) +| +(\\G $) (?# '\\G' is necessary for ST) +) +`,patterns:[{include:"#regexp"},{include:"#string"}]}]},list:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.list.begin.python"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.list.end.python"}},patterns:[{include:"#expression"}]},literal:{patterns:[{match:"\\b(True|False|None|NotImplemented|Ellipsis)\\b",name:"constant.language.python"},{include:"#number"}]},"loose-default":{begin:"(=)",beginCaptures:{1:{name:"keyword.operator.python"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"magic-function-names":{captures:{1:{name:"support.function.magic.python"}},comment:`these methods have magic interpretation by python and are generally called +indirectly through syntactic constructs +`,match:`(?x) +\\b( +__(?: +abs | add | aenter | aexit | aiter | and | anext +| await | bool | call | ceil | class_getitem +| cmp | coerce | complex | contains | copy +| deepcopy | del | delattr | delete | delitem +| delslice | dir | div | divmod | enter | eq +| exit | float | floor | floordiv | format | ge +| get | getattr | getattribute | getinitargs +| getitem | getnewargs | getslice | getstate | gt +| hash | hex | iadd | iand | idiv | ifloordiv | +| ilshift | imod | imul | index | init +| instancecheck | int | invert | ior | ipow +| irshift | isub | iter | itruediv | ixor | le +| len | long | lshift | lt | missing | mod | mul +| ne | neg | new | next | nonzero | oct | or | pos +| pow | radd | rand | rdiv | rdivmod | reduce +| reduce_ex | repr | reversed | rfloordiv | +| rlshift | rmod | rmul | ror | round | rpow +| rrshift | rshift | rsub | rtruediv | rxor | set +| setattr | setitem | set_name | setslice +| setstate | sizeof | str | sub | subclasscheck +| truediv | trunc | unicode | xor | matmul +| rmatmul | imatmul | init_subclass | set_name +| fspath | bytes | prepare | length_hint +)__ +)\\b +`},"magic-names":{patterns:[{include:"#magic-function-names"},{include:"#magic-variable-names"}]},"magic-variable-names":{captures:{1:{name:"support.variable.magic.python"}},comment:"magic variables which a class/module may have.",match:`(?x) +\\b( +__(?: +all | annotations | bases | builtins | class +| closure | code | debug | defaults | dict | doc | file | func +| globals | kwdefaults | match_args | members | metaclass | methods +| module | mro | mro_entries | name | qualname | post_init | self +| signature | slots | subclasses | version | weakref | wrapped +| classcell | spec | path | package | future | traceback +)__ +)\\b +`},"member-access":{begin:"(\\.)\\s*(?!\\.)",beginCaptures:{1:{name:"punctuation.separator.period.python"}},end:`(?x) + + +(?<=\\S)(?=\\W) | + + +(^|(?<=\\s))(?=[^\\\\\\w\\s]) | +$ +`,name:"meta.member.access.python",patterns:[{include:"#function-call"},{include:"#member-access-base"},{include:"#member-access-attribute"}]},"member-access-attribute":{comment:"Highlight attribute access in otherwise non-specialized cases.",match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"meta.attribute.python"},"member-access-base":{patterns:[{include:"#magic-names"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#special-names"},{include:"#line-continuation"},{include:"#item-access"}]},"member-access-class":{begin:"(\\.)\\s*(?!\\.)",beginCaptures:{1:{name:"punctuation.separator.period.python"}},end:"(?<=\\S)(?=\\W)|$",name:"meta.member.access.python",patterns:[{include:"#call-wrapper-inheritance"},{include:"#member-access-base"},{include:"#inheritance-identifier"}]},number:{name:"constant.numeric.python",patterns:[{include:"#number-float"},{include:"#number-dec"},{include:"#number-hex"},{include:"#number-oct"},{include:"#number-bin"},{include:"#number-long"},{match:"\\b[0-9]+\\w+",name:"invalid.illegal.name.python"}]},"number-bin":{captures:{1:{name:"storage.type.number.python"}},match:`(?x) +(?<![\\w\\.]) +(0[bB]) (_?[01])+ +\\b +`,name:"constant.numeric.bin.python"},"number-dec":{captures:{1:{name:"storage.type.imaginary.number.python"},2:{name:"invalid.illegal.dec.python"}},match:`(?x) +(?<![\\w\\.])(?: +[1-9](?: _?[0-9] )* +| +0+ +| +[0-9](?: _?[0-9] )* ([jJ]) +| +0 ([0-9]+)(?![eE\\.]) +)\\b +`,name:"constant.numeric.dec.python"},"number-float":{captures:{1:{name:"storage.type.imaginary.number.python"}},match:`(?x) +(?<! \\w)(?: +(?: +\\.[0-9](?: _?[0-9] )* +| +[0-9](?: _?[0-9] )* \\. [0-9](?: _?[0-9] )* +| +[0-9](?: _?[0-9] )* \\. +) (?: [eE][+-]?[0-9](?: _?[0-9] )* )? +| +[0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* ) +)([jJ])?\\b +`,name:"constant.numeric.float.python"},"number-hex":{captures:{1:{name:"storage.type.number.python"}},match:`(?x) +(?<![\\w\\.]) +(0[xX]) (_?[0-9a-fA-F])+ +\\b +`,name:"constant.numeric.hex.python"},"number-long":{captures:{2:{name:"storage.type.number.python"}},comment:"this is to support python2 syntax for long ints",match:`(?x) +(?<![\\w\\.]) +([1-9][0-9]* | 0) ([lL]) +\\b +`,name:"constant.numeric.bin.python"},"number-oct":{captures:{1:{name:"storage.type.number.python"}},match:`(?x) +(?<![\\w\\.]) +(0[oO]) (_?[0-7])+ +\\b +`,name:"constant.numeric.oct.python"},"odd-function-call":{begin:`(?x) +(?<= \\] | \\) ) \\s* +(?=\\() +`,comment:`A bit obscured function call where there may have been an +arbitrary number of other operations to get the function. +E.g. "arr[idx](args)" +`,end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#function-arguments"}]},operator:{captures:{1:{name:"keyword.operator.logical.python"},2:{name:"keyword.control.flow.python"},3:{name:"keyword.operator.bitwise.python"},4:{name:"keyword.operator.arithmetic.python"},5:{name:"keyword.operator.comparison.python"},6:{name:"keyword.operator.assignment.python"}},match:`(?x) +\\b(?<!\\.) +(?: +(and | or | not | in | is) (?# 1) +| +(for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2) +) +(?!\\s*:)\\b + +| (<< | >> | & | \\| | \\^ | ~) (?# 3) + +| (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4) + +| (!= | == | >= | <= | < | >) (?# 5) + +| (:=) (?# 6) +`},"parameter-special":{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"variable.parameter.function.language.special.self.python"},3:{name:"variable.parameter.function.language.special.cls.python"},4:{name:"punctuation.separator.parameters.python"}},match:`(?x) +\\b ((self)|(cls)) \\b \\s*(?:(,)|(?=\\))) +`},parameters:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.python"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.python"}},name:"meta.function.parameters.python",patterns:[{match:"/",name:"keyword.operator.positional.parameter.python"},{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-incomplete"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#parameter-special"},{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.parameters.python"}},match:`(?x) +([[:alpha:]_]\\w*) +\\s* (?: (,) | (?=[)#\\n=])) +`},{include:"#comments"},{include:"#loose-default"},{include:"#annotated-parameter"}]},punctuation:{patterns:[{match:":",name:"punctuation.separator.colon.python"},{match:",",name:"punctuation.separator.element.python"}]},regexp:{patterns:[{include:"#regexp-single-three-line"},{include:"#regexp-double-three-line"},{include:"#regexp-single-one-line"},{include:"#regexp-double-one-line"}]},"regexp-backreference":{captures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},2:{name:"entity.name.tag.named.backreference.regexp"},3:{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}},match:`(?x) +(\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\)) +`,name:"meta.backreference.named.regexp"},"regexp-backreference-number":{captures:{1:{name:"entity.name.tag.backreference.regexp"}},match:"(\\\\[1-9]\\d?)",name:"meta.backreference.regexp"},"regexp-base-common":{patterns:[{match:"\\.",name:"support.other.match.any.regexp"},{match:"\\^",name:"support.other.match.begin.regexp"},{match:"\\$",name:"support.other.match.end.regexp"},{match:"[+*?]\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.disjunction.regexp"},{include:"#regexp-escape-sequence"}]},"regexp-base-expression":{patterns:[{include:"#regexp-quantifier"},{include:"#regexp-base-common"}]},"regexp-charecter-set-escapes":{patterns:[{match:"\\\\[abfnrtv\\\\]",name:"constant.character.escape.regexp"},{include:"#regexp-escape-special"},{match:"\\\\([0-7]{1,3})",name:"constant.character.escape.regexp"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-escape-catchall"}]},"regexp-double-one-line":{begin:'\\b(([uU]r)|([bB]r)|(r[bB]?))(")',beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:'(")|(?<!\\\\)(\\n)',endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#double-one-regexp-expression"}]},"regexp-double-three-line":{begin:'\\b(([uU]r)|([bB]r)|(r[bB]?))(""")',beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:'(""")',endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#double-three-regexp-expression"}]},"regexp-escape-catchall":{match:"\\\\(.|\\n)",name:"constant.character.escape.regexp"},"regexp-escape-character":{match:`(?x) +\\\\ ( +x[0-9A-Fa-f]{2} +| 0[0-7]{1,2} +| [0-7]{3} +) +`,name:"constant.character.escape.regexp"},"regexp-escape-sequence":{patterns:[{include:"#regexp-escape-special"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-backreference-number"},{include:"#regexp-escape-catchall"}]},"regexp-escape-special":{match:"\\\\([AbBdDsSwWZ])",name:"support.other.escape.special.regexp"},"regexp-escape-unicode":{match:`(?x) +\\\\ ( +u[0-9A-Fa-f]{4} +| U[0-9A-Fa-f]{8} +) +`,name:"constant.character.unicode.regexp"},"regexp-flags":{match:"\\(\\?[aiLmsux]+\\)",name:"storage.modifier.flag.regexp"},"regexp-quantifier":{match:`(?x) +\\{( +\\d+ | \\d+,(\\d+)? | ,\\d+ +)\\} +`,name:"keyword.operator.quantifier.regexp"},"regexp-single-one-line":{begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:"(\\')|(?<!\\\\)(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#single-one-regexp-expression"}]},"regexp-single-three-line":{begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:"(\\'\\'\\')",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#single-three-regexp-expression"}]},"return-annotation":{begin:"(->)",beginCaptures:{1:{name:"punctuation.separator.annotation.result.python"}},end:"(?=:)",patterns:[{include:"#expression"}]},"round-braces":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.begin.python"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.end.python"}},patterns:[{include:"#expression"}]},semicolon:{patterns:[{match:"\\;$",name:"invalid.deprecated.semicolon.python"}]},"single-one-regexp-character-set":{patterns:[{match:`(?x) +\\[ \\^? \\] (?! .*?\\]) +`},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:"(\\]|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"single-one-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-one-regexp-character-set"},{include:"#single-one-regexp-comments"},{include:"#regexp-flags"},{include:"#single-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-one-regexp-lookahead"},{include:"#single-one-regexp-lookahead-negative"},{include:"#single-one-regexp-lookbehind"},{include:"#single-one-regexp-lookbehind-negative"},{include:"#single-one-regexp-conditional"},{include:"#single-one-regexp-parentheses-non-capturing"},{include:"#single-one-regexp-parentheses"}]},"single-one-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-three-regexp-character-set":{patterns:[{match:`(?x) +\\[ \\^? \\] (?! .*?\\]) +`},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:"(\\]|(?=\\'\\'\\'))",endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"single-three-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-three-regexp-character-set"},{include:"#single-three-regexp-comments"},{include:"#regexp-flags"},{include:"#single-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-three-regexp-lookahead"},{include:"#single-three-regexp-lookahead-negative"},{include:"#single-three-regexp-lookbehind"},{include:"#single-three-regexp-lookbehind-negative"},{include:"#single-three-regexp-conditional"},{include:"#single-three-regexp-parentheses-non-capturing"},{include:"#single-three-regexp-parentheses"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"special-names":{match:`(?x) +\\b + + + + + +( +_* [[:upper:]] [_\\d]* [[:upper:]] +) +[[:upper:]\\d]* (_\\w*)? +\\b +`,name:"constant.other.caps.python"},"special-variables":{captures:{1:{name:"variable.language.special.self.python"},2:{name:"variable.language.special.cls.python"}},match:`(?x) +\\b (?<!\\.) (?: +(self) | (cls) +)\\b +`},statement:{patterns:[{include:"#import"},{include:"#class-declaration"},{include:"#function-declaration"},{include:"#generator"},{include:"#statement-keyword"},{include:"#assignment-operator"},{include:"#decorator"},{include:"#docstring-statement"},{include:"#semicolon"}]},"statement-keyword":{patterns:[{match:"\\b((async\\s+)?\\s*def)\\b",name:"storage.type.function.python"},{comment:`if \`as\` is eventually followed by \`:\` or line continuation +it's probably control flow like: + with foo as bar, \\ + Foo as Bar: + try: + do_stuff() + except Exception as e: + pass +`,match:"\\b(?<!\\.)as\\b(?=.*[:\\\\])",name:"keyword.control.flow.python"},{comment:"other legal use of `as` is in an import",match:"\\b(?<!\\.)as\\b",name:"keyword.control.import.python"},{match:`(?x) +\\b(?<!\\.)( +async | continue | del | assert | break | finally | for +| from | elif | else | if | except | pass | raise +| return | try | while | with +)\\b +`,name:"keyword.control.flow.python"},{match:`(?x) +\\b(?<!\\.)( +global | nonlocal +)\\b +`,name:"storage.modifier.declaration.python"},{match:"\\b(?<!\\.)(class)\\b",name:"storage.type.class.python"},{captures:{1:{name:"keyword.control.flow.python"}},match:`(?x) +^\\s*( +case | match +)(?=\\s*([-+\\w\\d(\\[{'":#]|$))\\b +`}]},string:{patterns:[{include:"#string-quoted-multi-line"},{include:"#string-quoted-single-line"},{include:"#string-bin-quoted-multi-line"},{include:"#string-bin-quoted-single-line"},{include:"#string-raw-quoted-multi-line"},{include:"#string-raw-quoted-single-line"},{include:"#string-raw-bin-quoted-multi-line"},{include:"#string-raw-bin-quoted-single-line"},{include:"#fstring-fnorm-quoted-multi-line"},{include:"#fstring-fnorm-quoted-single-line"},{include:"#fstring-normf-quoted-multi-line"},{include:"#fstring-normf-quoted-single-line"},{include:"#fstring-raw-quoted-multi-line"},{include:"#fstring-raw-quoted-single-line"}]},"string-bin-quoted-multi-line":{begin:`(\\b[bB])('''|""")`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.multi.python",patterns:[{include:"#string-entity"}]},"string-bin-quoted-single-line":{begin:`(\\b[bB])((['"]))`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.single.python",patterns:[{include:"#string-entity"}]},"string-brace-formatting":{patterns:[{captures:{1:{name:"constant.character.format.placeholder.other.python"},3:{name:"storage.type.format.python"},4:{name:"storage.type.format.python"}},match:`(?x) +( +{{ | }} +| (?: +{ +\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'"]+\\])* +(![rsa])? +( : \\w? [<>=^]? [-+ ]? \\#? +\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )? +}) +) +`,name:"meta.format.brace.python"},{captures:{1:{name:"constant.character.format.placeholder.other.python"},3:{name:"storage.type.format.python"},4:{name:"storage.type.format.python"}},match:`(?x) +( +{ +\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'"]+\\])* +(![rsa])? +(:) +[^'"{}\\n]* (?: +\\{ [^'"}\\n]*? \\} [^'"{}\\n]* +)* +} +) +`,name:"meta.format.brace.python"}]},"string-consume-escape":{match:`\\\\['"\\n\\\\]`},"string-entity":{patterns:[{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#string-formatting"}]},"string-formatting":{captures:{1:{name:"constant.character.format.placeholder.other.python"}},match:`(?x) +( +% (\\([\\w\\s]*\\))? +[-+#0 ]* +(\\d+|\\*)? (\\.(\\d+|\\*))? +([hlL])? +[diouxXeEfFgGcrsab%] +) +`,name:"meta.format.percent.python"},"string-line-continuation":{match:"\\\\$",name:"constant.language.python"},"string-multi-bad-brace1-formatting-raw":{begin:`(?x) +(?= \\{% +( .*? (?!'''|""") ) +%\\} +) +`,comment:"template using {% ... %}",end:`(?='''|""")`,patterns:[{include:"#string-consume-escape"}]},"string-multi-bad-brace1-formatting-unicode":{begin:`(?x) +(?= \\{% +( .*? (?!'''|""") ) +%\\} +) +`,comment:"template using {% ... %}",end:`(?='''|""")`,patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-multi-bad-brace2-formatting-raw":{begin:`(?x) +(?!\\{\\{) +(?= \\{ ( +\\w*? (?!'''|""") [^!:\\.\\[}\\w] +) +.*?(?!'''|""") +\\} +) +`,comment:"odd format or format-like syntax",end:`(?='''|""")`,patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-multi-bad-brace2-formatting-unicode":{begin:`(?x) +(?!\\{\\{) +(?= \\{ ( +\\w*? (?!'''|""") [^!:\\.\\[}\\w] +) +.*?(?!'''|""") +\\} +) +`,comment:"odd format or format-like syntax",end:`(?='''|""")`,patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-quoted-multi-line":{begin:`(?:\\b([rR])(?=[uU]))?([uU])?('''|""")`,beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-unicode"},{include:"#string-multi-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-quoted-single-line":{begin:`(?:\\b([rR])(?=[uU]))?([uU])?((['"]))`,beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-unicode"},{include:"#string-single-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-raw-bin-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-raw-bin-quoted-multi-line":{begin:`(\\b(?:R[bB]|[bB]R))('''|""")`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.multi.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-bin-quoted-single-line":{begin:`(\\b(?:R[bB]|[bB]R))((['"]))`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.single.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"},{include:"#string-brace-formatting"}]},"string-raw-quoted-multi-line":{begin:`\\b(([uU]R)|(R))('''|""")`,beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"punctuation.definition.string.begin.python"}},end:"(\\4)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-raw"},{include:"#string-multi-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-raw-quoted-single-line":{begin:`\\b(([uU]R)|(R))((['"]))`,beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"punctuation.definition.string.begin.python"}},end:"(\\4)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-raw"},{include:"#string-single-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-single-bad-brace1-formatting-raw":{begin:`(?x) +(?= \\{% +( .*? (?!(['"])|((?<!\\\\)\\n)) ) +%\\} +) +`,comment:"template using {% ... %}",end:`(?=(['"])|((?<!\\\\)\\n))`,patterns:[{include:"#string-consume-escape"}]},"string-single-bad-brace1-formatting-unicode":{begin:`(?x) +(?= \\{% +( .*? (?!(['"])|((?<!\\\\)\\n)) ) +%\\} +) +`,comment:"template using {% ... %}",end:`(?=(['"])|((?<!\\\\)\\n))`,patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-single-bad-brace2-formatting-raw":{begin:`(?x) +(?!\\{\\{) +(?= \\{ ( +\\w*? (?!(['"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w] +) +.*?(?!(['"])|((?<!\\\\)\\n)) +\\} +) +`,comment:"odd format or format-like syntax",end:`(?=(['"])|((?<!\\\\)\\n))`,patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-single-bad-brace2-formatting-unicode":{begin:`(?x) +(?!\\{\\{) +(?= \\{ ( +\\w*? (?!(['"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w] +) +.*?(?!(['"])|((?<!\\\\)\\n)) +\\} +) +`,comment:"odd format or format-like syntax",end:`(?=(['"])|((?<!\\\\)\\n))`,patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-unicode-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"},{include:"#string-brace-formatting"}]}},scopeName:"source.python",aliases:["py"]});var n=[e];export{n as default}; diff --git a/assets/chunks/r.BXfENWL6.js b/assets/chunks/r.BXfENWL6.js new file mode 100644 index 000000000..89e188dfd --- /dev/null +++ b/assets/chunks/r.BXfENWL6.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"R",name:"r",patterns:[{include:"#roxygen"},{include:"#comments"},{include:"#constants"},{include:"#keywords"},{include:"#storage-type"},{include:"#strings"},{include:"#brackets"},{include:"#function-declarations"},{include:"#lambda-functions"},{include:"#builtin-functions"},{include:"#function-calls"},{include:"#general-variables"}],repository:{brackets:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.r"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.r"}},patterns:[{include:"source.r"}]},{begin:"\\[(?!\\[)",beginCaptures:{0:{name:"punctuation.section.brackets.single.begin.r"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.brackets.single.end.r"}},patterns:[{include:"source.r"}]},{begin:"\\[\\[",beginCaptures:{0:{name:"punctuation.section.brackets.double.begin.r"}},contentName:"meta.item-access.arguments.r",end:"\\]\\]",endCaptures:{0:{name:"punctuation.section.brackets.double.end.r"}},patterns:[{include:"source.r"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.braces.begin.r"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.braces.end.r"}},patterns:[{include:"source.r"}]}]},"builtin-functions":{patterns:[{captures:{1:{name:"support.function.r"}},match:"\\b(abbreviate|abs|acos|acosh|activeBindingFunction|addNA|addTaskCallback|agrep|agrepl|alist|all|all\\.equal|all\\.equal\\.character|all\\.equal\\.default|all\\.equal\\.environment|all\\.equal\\.envRefClass|all\\.equal\\.factor|all\\.equal\\.formula|all\\.equal\\.function|all\\.equal\\.language|all\\.equal\\.list|all\\.equal\\.numeric|all\\.equal\\.POSIXt|all\\.equal\\.raw|all\\.names|allowInterrupts|all\\.vars|any|anyDuplicated|anyDuplicated\\.array|anyDuplicated\\.data\\.frame|anyDuplicated\\.default|anyDuplicated\\.matrix|anyNA|anyNA\\.data\\.frame|anyNA\\.numeric_version|anyNA\\.POSIXlt|aperm|aperm\\.default|aperm\\.table|append|apply|Arg|args|array|arrayInd|as\\.array|as\\.array\\.default|as\\.call|as\\.character|as\\.character\\.condition|as\\.character\\.Date|as\\.character\\.default|as\\.character\\.error|as\\.character\\.factor|as\\.character\\.hexmode|as\\.character\\.numeric_version|as\\.character\\.octmode|as\\.character\\.POSIXt|as\\.character\\.srcref|as\\.complex|as\\.data\\.frame|as\\.data\\.frame\\.array|as\\.data\\.frame\\.AsIs|as\\.data\\.frame\\.character|as\\.data\\.frame\\.complex|as\\.data\\.frame\\.data\\.frame|as\\.data\\.frame\\.Date|as\\.data\\.frame\\.default|as\\.data\\.frame\\.difftime|as\\.data\\.frame\\.factor|as\\.data\\.frame\\.integer|as\\.data\\.frame\\.list|as\\.data\\.frame\\.logical|as\\.data\\.frame\\.matrix|as\\.data\\.frame\\.model\\.matrix|as\\.data\\.frame\\.noquote|as\\.data\\.frame\\.numeric|as\\.data\\.frame\\.numeric_version|as\\.data\\.frame\\.ordered|as\\.data\\.frame\\.POSIXct|as\\.data\\.frame\\.POSIXlt|as\\.data\\.frame\\.raw|as\\.data\\.frame\\.table|as\\.data\\.frame\\.ts|as\\.data\\.frame\\.vector|as\\.Date|as\\.Date\\.character|as\\.Date\\.default|as\\.Date\\.factor|as\\.Date\\.numeric|as\\.Date\\.POSIXct|as\\.Date\\.POSIXlt|as\\.difftime|as\\.double|as\\.double\\.difftime|as\\.double\\.POSIXlt|as\\.environment|as\\.expression|as\\.expression\\.default|as\\.factor|as\\.function|as\\.function\\.default|as\\.hexmode|asin|asinh|as\\.integer|as\\.list|as\\.list\\.data\\.frame|as\\.list\\.Date|as\\.list\\.default|as\\.list\\.difftime|as\\.list\\.environment|as\\.list\\.factor|as\\.list\\.function|as\\.list\\.numeric_version|as\\.list\\.POSIXct|as\\.list\\.POSIXlt|as\\.logical|as\\.logical\\.factor|as\\.matrix|as\\.matrix\\.data\\.frame|as\\.matrix\\.default|as\\.matrix\\.noquote|as\\.matrix\\.POSIXlt|as\\.name|asNamespace|as\\.null|as\\.null\\.default|as\\.numeric|as\\.numeric_version|as\\.octmode|as\\.ordered|as\\.package_version|as\\.pairlist|asplit|as\\.POSIXct|as\\.POSIXct\\.Date|as\\.POSIXct\\.default|as\\.POSIXct\\.numeric|as\\.POSIXct\\.POSIXlt|as\\.POSIXlt|as\\.POSIXlt\\.character|as\\.POSIXlt\\.Date|as\\.POSIXlt\\.default|as\\.POSIXlt\\.factor|as\\.POSIXlt\\.numeric|as\\.POSIXlt\\.POSIXct|as\\.qr|as\\.raw|asS3|asS4|assign|as\\.single|as\\.single\\.default|as\\.symbol|as\\.table|as\\.table\\.default|as\\.vector|as\\.vector\\.factor|atan|atan2|atanh|attach|attachNamespace|attr|attr\\.all\\.equal|attributes|autoload|autoloader|backsolve|baseenv|basename|besselI|besselJ|besselK|besselY|beta|bindingIsActive|bindingIsLocked|bindtextdomain|bitwAnd|bitwNot|bitwOr|bitwShiftL|bitwShiftR|bitwXor|body|bquote|break|browser|browserCondition|browserSetDebug|browserText|builtins|by|by\\.data\\.frame|by\\.default|bzfile|c|call|callCC|capabilities|casefold|cat|cbind|cbind\\.data\\.frame|c\\.Date|c\\.difftime|ceiling|c\\.factor|character|char\\.expand|charmatch|charToRaw|chartr|check_tzones|chkDots|chol|chol2inv|chol\\.default|choose|class|clearPushBack|close|closeAllConnections|close\\.connection|close\\.srcfile|close\\.srcfilealias|c\\.noquote|c\\.numeric_version|col|colMeans|colnames|colSums|commandArgs|comment|complex|computeRestarts|conditionCall|conditionCall\\.condition|conditionMessage|conditionMessage\\.condition|conflictRules|conflicts|Conj|contributors|cos|cosh|cospi|c\\.POSIXct|c\\.POSIXlt|crossprod|Cstack_info|cummax|cummin|cumprod|cumsum|curlGetHeaders|cut|cut\\.Date|cut\\.default|cut\\.POSIXt|c\\.warnings|data\\.class|data\\.frame|data\\.matrix|date|debug|debuggingState|debugonce|default\\.stringsAsFactors|delayedAssign|deparse|deparse1|det|detach|determinant|determinant\\.matrix|dget|diag|diff|diff\\.Date|diff\\.default|diff\\.difftime|diff\\.POSIXt|difftime|digamma|dim|dim\\.data\\.frame|dimnames|dimnames\\.data\\.frame|dir|dir\\.create|dir\\.exists|dirname|do\\.call|dontCheck|double|dput|dQuote|drop|droplevels|droplevels\\.data\\.frame|droplevels\\.factor|dump|duplicated|duplicated\\.array|duplicated\\.data\\.frame|duplicated\\.default|duplicated\\.matrix|duplicated\\.numeric_version|duplicated\\.POSIXlt|duplicated\\.warnings|dynGet|dyn\\.load|dyn\\.unload|eapply|eigen|emptyenv|enc2native|enc2utf8|encodeString|Encoding|endsWith|enquote|environment|environmentIsLocked|environmentName|env\\.profile|errorCondition|eval|eval\\.parent|evalq|exists|exp|expand\\.grid|expm1|expression|extSoftVersion|factor|factorial|fifo|file|file\\.access|file\\.append|file\\.choose|file\\.copy|file\\.create|file\\.exists|file\\.info|file\\.link|file\\.mode|file\\.mtime|file\\.path|file\\.remove|file\\.rename|file\\.show|file\\.size|file\\.symlink|Filter|Find|findInterval|find\\.package|findPackageEnv|findRestart|floor|flush|flush\\.connection|for|force|forceAndCall|formals|format|format\\.AsIs|formatC|format\\.data\\.frame|format\\.Date|format\\.default|format\\.difftime|formatDL|format\\.factor|format\\.hexmode|format\\.info|format\\.libraryIQR|format\\.numeric_version|format\\.octmode|format\\.packageInfo|format\\.POSIXct|format\\.POSIXlt|format\\.pval|format\\.summaryDefault|forwardsolve|function|gamma|gc|gcinfo|gc\\.time|gctorture|gctorture2|get|get0|getAllConnections|getCallingDLL|getCallingDLLe|getConnection|getDLLRegisteredRoutines|getDLLRegisteredRoutines\\.character|getDLLRegisteredRoutines\\.DLLInfo|getElement|geterrmessage|getExportedValue|getHook|getLoadedDLLs|getNamespace|getNamespaceExports|getNamespaceImports|getNamespaceInfo|getNamespaceName|getNamespaceUsers|getNamespaceVersion|getNativeSymbolInfo|getOption|getRversion|getSrcLines|getTaskCallbackNames|gettext|gettextf|getwd|gl|globalCallingHandlers|globalenv|gregexec|gregexpr|grep|grepl|grepRaw|grouping|gsub|gzcon|gzfile|I|iconv|iconvlist|icuGetCollate|icuSetCollate|identical|identity|if|ifelse|Im|importIntoEnv|infoRDS|inherits|integer|interaction|interactive|intersect|intToBits|intToUtf8|inverse\\.rle|invisible|invokeRestart|invokeRestartInteractively|isa|is\\.array|is\\.atomic|isatty|isBaseNamespace|is\\.call|is\\.character|is\\.complex|is\\.data\\.frame|isdebugged|is\\.double|is\\.element|is\\.environment|is\\.expression|is\\.factor|isFALSE|is\\.finite|is\\.function|isIncomplete|is\\.infinite|is\\.integer|is\\.language|is\\.list|is\\.loaded|is\\.logical|is\\.matrix|is\\.na|is\\.na\\.data\\.frame|is\\.name|isNamespace|isNamespaceLoaded|is\\.nan|is\\.na\\.numeric_version|is\\.na\\.POSIXlt|is\\.null|is\\.numeric|is\\.numeric\\.Date|is\\.numeric\\.difftime|is\\.numeric\\.POSIXt|is\\.numeric_version|is\\.object|ISOdate|ISOdatetime|isOpen|is\\.ordered|is\\.package_version|is\\.pairlist|is\\.primitive|is\\.qr|is\\.R|is\\.raw|is\\.recursive|isRestart|isS4|isSeekable|is\\.single|is\\.symbol|isSymmetric|isSymmetric\\.matrix|is\\.table|isTRUE|is\\.unsorted|is\\.vector|jitter|julian|julian\\.Date|julian\\.POSIXt|kappa|kappa\\.default|kappa\\.lm|kappa\\.qr|kronecker|l10n_info|labels|labels\\.default|La_library|lapply|La\\.svd|La_version|lazyLoad|lazyLoadDBexec|lazyLoadDBfetch|lbeta|lchoose|length|length\\.POSIXlt|lengths|levels|levels\\.default|lfactorial|lgamma|libcurlVersion|library|library\\.dynam|library\\.dynam\\.unload|licence|license|list|list2DF|list2env|list\\.dirs|list\\.files|load|loadedNamespaces|loadingNamespaceInfo|loadNamespace|local|lockBinding|lockEnvironment|log|log10|log1p|log2|logb|logical|lower\\.tri|ls|makeActiveBinding|make\\.names|make\\.unique|Map|mapply|marginSums|margin\\.table|match|match\\.arg|match\\.call|match\\.fun|Math\\.data\\.frame|Math\\.Date|Math\\.difftime|Math\\.factor|Math\\.POSIXt|mat\\.or\\.vec|matrix|max|max\\.col|mean|mean\\.Date|mean\\.default|mean\\.difftime|mean\\.POSIXct|mean\\.POSIXlt|memCompress|memDecompress|mem\\.maxNSize|mem\\.maxVSize|memory\\.profile|merge|merge\\.data\\.frame|merge\\.default|message|mget|min|missing|Mod|mode|months|months\\.Date|months\\.POSIXt|names|namespaceExport|namespaceImport|namespaceImportClasses|namespaceImportFrom|namespaceImportMethods|names\\.POSIXlt|nargs|nchar|ncol|NCOL|Negate|new\\.env|next|NextMethod|ngettext|nlevels|noquote|norm|normalizePath|nrow|NROW|nullfile|numeric|numeric_version|numToBits|numToInts|nzchar|objects|oldClass|OlsonNames|on\\.exit|open|open\\.connection|open\\.srcfile|open\\.srcfilealias|open\\.srcfilecopy|Ops\\.data\\.frame|Ops\\.Date|Ops\\.difftime|Ops\\.factor|Ops\\.numeric_version|Ops\\.ordered|Ops\\.POSIXt|options|order|ordered|outer|packageEvent|packageHasNamespace|packageNotFoundError|packageStartupMessage|package_version|packBits|pairlist|parent\\.env|parent\\.frame|parse|parseNamespaceFile|paste|paste0|path\\.expand|path\\.package|pcre_config|pi|pipe|plot|pmatch|pmax|pmax\\.int|pmin|pmin\\.int|polyroot|Position|pos\\.to\\.env|pretty|pretty\\.default|prettyNum|print|print\\.AsIs|print\\.by|print\\.condition|print\\.connection|print\\.data\\.frame|print\\.Date|print\\.default|print\\.difftime|print\\.Dlist|print\\.DLLInfo|print\\.DLLInfoList|print\\.DLLRegisteredRoutines|print\\.eigen|print\\.factor|print\\.function|print\\.hexmode|print\\.libraryIQR|print\\.listof|print\\.NativeRoutineList|print\\.noquote|print\\.numeric_version|print\\.octmode|print\\.packageInfo|print\\.POSIXct|print\\.POSIXlt|print\\.proc_time|print\\.restart|print\\.rle|print\\.simple\\.list|print\\.srcfile|print\\.srcref|print\\.summaryDefault|print\\.summary\\.table|print\\.summary\\.warnings|print\\.table|print\\.warnings|prmatrix|proc\\.time|prod|proportions|prop\\.table|provideDimnames|psigamma|pushBack|pushBackLength|q|qr|qr\\.coef|qr\\.default|qr\\.fitted|qr\\.Q|qr\\.qty|qr\\.qy|qr\\.R|qr\\.resid|qr\\.solve|qr\\.X|quarters|quarters\\.Date|quarters\\.POSIXt|quit|quote|range|range\\.default|rank|rapply|raw|rawConnection|rawConnectionValue|rawShift|rawToBits|rawToChar|rbind|rbind\\.data\\.frame|rcond|Re|readBin|readChar|read\\.dcf|readline|readLines|readRDS|readRenviron|Recall|Reduce|regexec|regexpr|reg\\.finalizer|registerS3method|registerS3methods|regmatches|remove|removeTaskCallback|rep|rep\\.Date|rep\\.difftime|repeat|rep\\.factor|rep\\.int|replace|rep_len|replicate|rep\\.numeric_version|rep\\.POSIXct|rep\\.POSIXlt|require|requireNamespace|restartDescription|restartFormals|retracemem|return|returnValue|rev|rev\\.default|R\\.home|rle|rm|RNGkind|RNGversion|round|round\\.Date|round\\.POSIXt|row|rowMeans|rownames|row\\.names|row\\.names\\.data\\.frame|row\\.names\\.default|rowsum|rowsum\\.data\\.frame|rowsum\\.default|rowSums|R_system_version|R\\.version|R\\.Version|R\\.version\\.string|sample|sample\\.int|sapply|save|save\\.image|saveRDS|scale|scale\\.default|scan|search|searchpaths|seek|seek\\.connection|seq|seq_along|seq\\.Date|seq\\.default|seq\\.int|seq_len|seq\\.POSIXt|sequence|sequence\\.default|serialize|serverSocket|setdiff|setequal|setHook|setNamespaceInfo|set\\.seed|setSessionTimeLimit|setTimeLimit|setwd|showConnections|shQuote|sign|signalCondition|signif|simpleCondition|simpleError|simpleMessage|simpleWarning|simplify2array|sin|single|sinh|sink|sink\\.number|sinpi|slice\\.index|socketAccept|socketConnection|socketSelect|socketTimeout|solve|solve\\.default|solve\\.qr|sort|sort\\.default|sort\\.int|sort\\.list|sort\\.POSIXlt|source|split|split\\.data\\.frame|split\\.Date|split\\.default|split\\.POSIXct|sprintf|sqrt|sQuote|srcfile|srcfilealias|srcfilecopy|srcref|standardGeneric|startsWith|stderr|stdin|stdout|stop|stopifnot|storage\\.mode|str2expression|str2lang|strftime|strptime|strrep|strsplit|strtoi|strtrim|structure|strwrap|sub|subset|subset\\.data\\.frame|subset\\.default|subset\\.matrix|substitute|substr|substring|sum|summary|summary\\.connection|summary\\.data\\.frame|Summary\\.data\\.frame|summary\\.Date|Summary\\.Date|summary\\.default|Summary\\.difftime|summary\\.factor|Summary\\.factor|summary\\.matrix|Summary\\.numeric_version|Summary\\.ordered|summary\\.POSIXct|Summary\\.POSIXct|summary\\.POSIXlt|Summary\\.POSIXlt|summary\\.proc_time|summary\\.srcfile|summary\\.srcref|summary\\.table|summary\\.warnings|suppressMessages|suppressPackageStartupMessages|suppressWarnings|suspendInterrupts|svd|sweep|switch|sys\\.call|sys\\.calls|Sys\\.chmod|Sys\\.Date|sys\\.frame|sys\\.frames|sys\\.function|Sys\\.getenv|Sys\\.getlocale|Sys\\.getpid|Sys\\.glob|Sys\\.info|sys\\.load\\.image|Sys\\.localeconv|sys\\.nframe|sys\\.on\\.exit|sys\\.parent|sys\\.parents|Sys\\.readlink|sys\\.save\\.image|Sys\\.setenv|Sys\\.setFileTime|Sys\\.setlocale|Sys\\.sleep|sys\\.source|sys\\.status|system|system2|system\\.file|system\\.time|Sys\\.time|Sys\\.timezone|Sys\\.umask|Sys\\.unsetenv|Sys\\.which|t|table|tabulate|tan|tanh|tanpi|tapply|taskCallbackManager|tcrossprod|t\\.data\\.frame|t\\.default|tempdir|tempfile|textConnection|textConnectionValue|tolower|topenv|toString|toString\\.default|toupper|trace|traceback|tracemem|tracingState|transform|transform\\.data\\.frame|transform\\.default|trigamma|trimws|trunc|truncate|truncate\\.connection|trunc\\.Date|trunc\\.POSIXt|try|tryCatch|tryInvokeRestart|typeof|unclass|undebug|union|unique|unique\\.array|unique\\.data\\.frame|unique\\.default|unique\\.matrix|unique\\.numeric_version|unique\\.POSIXlt|unique\\.warnings|units|units\\.difftime|unix\\.time|unlink|unlist|unloadNamespace|unlockBinding|unname|unserialize|unsplit|untrace|untracemem|unz|upper\\.tri|url|UseMethod|utf8ToInt|validEnc|validUTF8|vapply|vector|Vectorize|version|warning|warningCondition|warnings|weekdays|weekdays\\.Date|weekdays\\.POSIXt|which|which\\.max|which\\.min|while|with|withAutoprint|withCallingHandlers|with\\.default|within|within\\.data\\.frame|within\\.list|withRestarts|withVisible|write|writeBin|writeChar|write\\.dcf|writeLines|xor|xpdrows\\.data\\.frame|xtfrm|xtfrm\\.AsIs|xtfrm\\.data\\.frame|xtfrm\\.Date|xtfrm\\.default|xtfrm\\.difftime|xtfrm\\.factor|xtfrm\\.numeric_version|xtfrm\\.POSIXct|xtfrm\\.POSIXlt|xzfile|zapsmall)\\s*(\\()"},{captures:{1:{name:"support.function.r"}},match:"\\b(abline|arrows|assocplot|axis|Axis|axis\\.Date|axis\\.POSIXct|axTicks|barplot|barplot\\.default|box|boxplot|boxplot\\.default|boxplot\\.matrix|bxp|cdplot|clip|close\\.screen|co\\.intervals|contour|contour\\.default|coplot|curve|dotchart|erase\\.screen|filled\\.contour|fourfoldplot|frame|grconvertX|grconvertY|grid|hist|hist\\.default|identify|image|image\\.default|layout|layout\\.show|lcm|legend|lines|lines\\.default|locator|matlines|matplot|matpoints|mosaicplot|mtext|pairs|pairs\\.default|panel\\.smooth|par|persp|pie|plot|plot\\.default|plot\\.design|plot\\.function|plot\\.new|plot\\.window|plot\\.xy|points|points\\.default|polygon|polypath|rasterImage|rect|rug|screen|segments|smoothScatter|spineplot|split\\.screen|stars|stem|strheight|stripchart|strwidth|sunflowerplot|symbols|text|text\\.default|title|xinch|xspline|xyinch|yinch)\\s*(\\()"},{captures:{1:{name:"support.function.r"}},match:"\\b(adjustcolor|as\\.graphicsAnnot|as\\.raster|axisTicks|bitmap|blues9|bmp|boxplot\\.stats|cairo_pdf|cairo_ps|cairoSymbolFont|check\\.options|chull|CIDFont|cm|cm\\.colors|col2rgb|colorConverter|colorRamp|colorRampPalette|colors|colorspaces|colours|contourLines|convertColor|densCols|dev2bitmap|devAskNewPage|dev\\.capabilities|dev\\.capture|dev\\.control|dev\\.copy|dev\\.copy2eps|dev\\.copy2pdf|dev\\.cur|dev\\.flush|dev\\.hold|deviceIsInteractive|dev\\.interactive|dev\\.list|dev\\.new|dev\\.next|dev\\.off|dev\\.prev|dev\\.print|dev\\.set|dev\\.size|embedFonts|extendrange|getGraphicsEvent|getGraphicsEventEnv|graphics\\.off|gray|gray\\.colors|grey|grey\\.colors|grSoftVersion|hcl|hcl\\.colors|hcl\\.pals|heat\\.colors|Hershey|hsv|is\\.raster|jpeg|make\\.rgb|n2mfrow|nclass\\.FD|nclass\\.scott|nclass\\.Sturges|palette|palette\\.colors|palette\\.pals|pdf|pdfFonts|pdf\\.options|pictex|png|postscript|postscriptFonts|ps\\.options|quartz|quartzFont|quartzFonts|quartz\\.options|quartz\\.save|rainbow|recordGraphics|recordPlot|replayPlot|rgb|rgb2hsv|savePlot|setEPS|setGraphicsEventEnv|setGraphicsEventHandlers|setPS|svg|terrain\\.colors|tiff|topo\\.colors|trans3d|Type1Font|x11|X11|X11Font|X11Fonts|X11\\.options|xfig|xy\\.coords|xyTable|xyz\\.coords)\\s*(\\()"},{captures:{1:{name:"support.function.r"}},match:"\\b(addNextMethod|allNames|Arith|as|asMethodDefinition|assignClassDef|assignMethodsMetaData|balanceMethodsList|cacheGenericsMetaData|cacheMetaData|cacheMethod|callGeneric|callNextMethod|canCoerce|cbind2|checkAtAssignment|checkSlotAssignment|classesToAM|classLabel|classMetaName|className|coerce|Compare|completeClassDefinition|completeExtends|completeSubclasses|Complex|conformMethod|defaultDumpName|defaultPrototype|doPrimitiveMethod|dumpMethod|dumpMethods|el|elNamed|empty\\.dump|emptyMethodsList|evalOnLoad|evalqOnLoad|evalSource|existsFunction|existsMethod|extends|externalRefMethod|finalDefaultMethod|findClass|findFunction|findMethod|findMethods|findMethodSignatures|findUnique|fixPre1\\.8|formalArgs|functionBody|generic\\.skeleton|getAllSuperClasses|getClass|getClassDef|getClasses|getDataPart|getFunction|getGeneric|getGenerics|getGroup|getGroupMembers|getLoadActions|getMethod|getMethods|getMethodsForDispatch|getMethodsMetaData|getPackageName|getRefClass|getSlots|getValidity|hasArg|hasLoadAction|hasMethod|hasMethods|implicitGeneric|inheritedSlotNames|initFieldArgs|initialize|initRefFields|insertClassMethods|insertMethod|insertSource|is|isClass|isClassDef|isClassUnion|isGeneric|isGrammarSymbol|isGroup|isRematched|isSealedClass|isSealedMethod|isVirtualClass|isXS3Class|kronecker|languageEl|linearizeMlist|listFromMethods|listFromMlist|loadMethod|Logic|makeClassRepresentation|makeExtends|makeGeneric|makeMethodsList|makePrototypeFromClassDef|makeStandardGeneric|matchSignature|Math|Math2|mergeMethods|metaNameUndo|MethodAddCoerce|methodSignatureMatrix|method\\.skeleton|MethodsList|MethodsListSelect|methodsPackageMetaName|missingArg|multipleClasses|new|newBasic|newClassRepresentation|newEmptyObject|Ops|packageSlot|possibleExtends|prohibitGeneric|promptClass|promptMethods|prototype|Quote|rbind2|reconcilePropertiesAndPrototype|registerImplicitGenerics|rematchDefinition|removeClass|removeGeneric|removeMethod|removeMethods|representation|requireMethods|resetClass|resetGeneric|S3Class|S3Part|sealClass|selectMethod|selectSuperClasses|setAs|setClass|setClassUnion|setDataPart|setGeneric|setGenericImplicit|setGroupGeneric|setIs|setLoadAction|setLoadActions|setMethod|setOldClass|setPackageName|setPrimitiveMethods|setRefClass|setReplaceMethod|setValidity|show|showClass|showDefault|showExtends|showMethods|showMlist|signature|SignatureMethod|sigToEnv|slot|slotNames|slotsFromS3|substituteDirect|substituteFunctionArgs|Summary|superClassDepth|testInheritedMethods|testVirtual|tryNew|unRematchDefinition|validObject|validSlotNames)\\s*(\\()"},{captures:{1:{name:"support.function.r"}},match:"\\b(acf|acf2AR|add1|addmargins|add\\.scope|aggregate|aggregate\\.data\\.frame|aggregate\\.ts|AIC|alias|anova|ansari\\.test|aov|approx|approxfun|ar|ar\\.burg|arima|arima0|arima0\\.diag|arima\\.sim|ARMAacf|ARMAtoMA|ar\\.mle|ar\\.ols|ar\\.yw|as\\.dendrogram|as\\.dist|as\\.formula|as\\.hclust|asOneSidedFormula|as\\.stepfun|as\\.ts|ave|bandwidth\\.kernel|bartlett\\.test|BIC|binomial|binom\\.test|biplot|Box\\.test|bw\\.bcv|bw\\.nrd|bw\\.nrd0|bw\\.SJ|bw\\.ucv|C|cancor|case\\.names|ccf|chisq\\.test|cmdscale|coef|coefficients|complete\\.cases|confint|confint\\.default|confint\\.lm|constrOptim|contrasts|contr\\.helmert|contr\\.poly|contr\\.SAS|contr\\.sum|contr\\.treatment|convolve|cooks\\.distance|cophenetic|cor|cor\\.test|cov|cov2cor|covratio|cov\\.wt|cpgram|cutree|cycle|D|dbeta|dbinom|dcauchy|dchisq|decompose|delete\\.response|deltat|dendrapply|density|density\\.default|deriv|deriv3|deviance|dexp|df|DF2formula|dfbeta|dfbetas|dffits|df\\.kernel|df\\.residual|dgamma|dgeom|dhyper|diffinv|dist|dlnorm|dlogis|dmultinom|dnbinom|dnorm|dpois|drop1|drop\\.scope|drop\\.terms|dsignrank|dt|dummy\\.coef|dummy\\.coef\\.lm|dunif|dweibull|dwilcox|ecdf|eff\\.aovlist|effects|embed|end|estVar|expand\\.model\\.frame|extractAIC|factanal|factor\\.scope|family|fft|filter|fisher\\.test|fitted|fitted\\.values|fivenum|fligner\\.test|formula|frequency|friedman\\.test|ftable|Gamma|gaussian|get_all_vars|getCall|getInitial|glm|glm\\.control|glm\\.fit|hasTsp|hat|hatvalues|hclust|heatmap|HoltWinters|influence|influence\\.measures|integrate|interaction\\.plot|inverse\\.gaussian|IQR|is\\.empty\\.model|is\\.leaf|is\\.mts|isoreg|is\\.stepfun|is\\.ts|is\\.tskernel|KalmanForecast|KalmanLike|KalmanRun|KalmanSmooth|kernapply|kernel|kmeans|knots|kruskal\\.test|ksmooth|ks\\.test|lag|lag\\.plot|line|lm|lm\\.fit|lm\\.influence|lm\\.wfit|loadings|loess|loess\\.control|loess\\.smooth|logLik|loglin|lowess|ls\\.diag|lsfit|ls\\.print|mad|mahalanobis|makeARIMA|make\\.link|makepredictcall|manova|mantelhaen\\.test|mauchly\\.test|mcnemar\\.test|median|median\\.default|medpolish|model\\.extract|model\\.frame|model\\.frame\\.default|model\\.matrix|model\\.matrix\\.default|model\\.matrix\\.lm|model\\.offset|model\\.response|model\\.tables|model\\.weights|monthplot|mood\\.test|mvfft|na\\.action|na\\.contiguous|na\\.exclude|na\\.fail|na\\.omit|na\\.pass|napredict|naprint|naresid|nextn|nlm|nlminb|nls|nls\\.control|NLSstAsymptotic|NLSstClosestX|NLSstLfAsymptote|NLSstRtAsymptote|nobs|numericDeriv|offset|oneway\\.test|optim|optimHess|optimise|optimize|order\\.dendrogram|pacf|p\\.adjust|p\\.adjust\\.methods|Pair|pairwise\\.prop\\.test|pairwise\\.table|pairwise\\.t\\.test|pairwise\\.wilcox\\.test|pbeta|pbinom|pbirthday|pcauchy|pchisq|pexp|pf|pgamma|pgeom|phyper|plclust|plnorm|plogis|plot\\.ecdf|plot\\.spec\\.coherency|plot\\.spec\\.phase|plot\\.stepfun|plot\\.ts|pnbinom|pnorm|poisson|poisson\\.test|poly|polym|power|power\\.anova\\.test|power\\.prop\\.test|power\\.t\\.test|ppoints|ppois|ppr|PP\\.test|prcomp|predict|predict\\.glm|predict\\.lm|preplot|princomp|printCoefmat|profile|proj|promax|prop\\.test|prop\\.trend\\.test|psignrank|pt|ptukey|punif|pweibull|pwilcox|qbeta|qbinom|qbirthday|qcauchy|qchisq|qexp|qf|qgamma|qgeom|qhyper|qlnorm|qlogis|qnbinom|qnorm|qpois|qqline|qqnorm|qqplot|qsignrank|qt|qtukey|quade\\.test|quantile|quasi|quasibinomial|quasipoisson|qunif|qweibull|qwilcox|r2dtable|rbeta|rbinom|rcauchy|rchisq|read\\.ftable|rect\\.hclust|reformulate|relevel|reorder|replications|reshape|resid|residuals|residuals\\.glm|residuals\\.lm|rexp|rf|rgamma|rgeom|rhyper|rlnorm|rlogis|rmultinom|rnbinom|rnorm|rpois|rsignrank|rstandard|rstudent|rt|runif|runmed|rweibull|rwilcox|rWishart|scatter\\.smooth|screeplot|sd|se\\.contrast|selfStart|setNames|shapiro\\.test|sigma|simulate|smooth|smoothEnds|smooth\\.spline|sortedXyData|spec\\.ar|spec\\.pgram|spec\\.taper|spectrum|spline|splinefun|splinefunH|SSasymp|SSasympOff|SSasympOrig|SSbiexp|SSD|SSfol|SSfpl|SSgompertz|SSlogis|SSmicmen|SSweibull|start|stat\\.anova|step|stepfun|stl|StructTS|summary\\.aov|summary\\.glm|summary\\.lm|summary\\.manova|summary\\.stepfun|supsmu|symnum|termplot|terms|terms\\.formula|time|toeplitz|ts|tsdiag|ts\\.intersect|tsp|ts\\.plot|tsSmooth|ts\\.union|t\\.test|TukeyHSD|uniroot|update|update\\.default|update\\.formula|var|variable\\.names|varimax|var\\.test|vcov|weighted\\.mean|weighted\\.residuals|weights|wilcox\\.test|window|write\\.ftable|xtabs)\\s*(\\()"},{captures:{1:{name:"support.function.r"}},match:"\\b(adist|alarm|apropos|aregexec|argsAnywhere|asDateBuilt|askYesNo|aspell|aspell_package_C_files|aspell_package_Rd_files|aspell_package_R_files|aspell_package_vignettes|aspell_write_personal_dictionary_file|as\\.person|as\\.personList|as\\.relistable|as\\.roman|assignInMyNamespace|assignInNamespace|available\\.packages|bibentry|browseEnv|browseURL|browseVignettes|bug\\.report|capture\\.output|changedFiles|charClass|checkCRAN|chooseBioCmirror|chooseCRANmirror|citation|cite|citeNatbib|citEntry|citFooter|citHeader|close\\.socket|combn|compareVersion|contrib\\.url|count\\.fields|create\\.post|data|dataentry|data\\.entry|de|debugcall|debugger|demo|de\\.ncols|de\\.restore|de\\.setup|download\\.file|download\\.packages|dump\\.frames|edit|emacs|example|file\\.edit|fileSnapshot|file_test|find|findLineNum|fix|fixInNamespace|flush\\.console|formatOL|formatUL|getAnywhere|getCRANmirrors|getFromNamespace|getParseData|getParseText|getS3method|getSrcDirectory|getSrcFilename|getSrcLocation|getSrcref|getTxtProgressBar|glob2rx|globalVariables|hasName|head|head\\.matrix|help|help\\.request|help\\.search|help\\.start|history|hsearch_db|hsearch_db_concepts|hsearch_db_keywords|installed\\.packages|install\\.packages|is\\.relistable|isS3method|isS3stdGeneric|limitedLabels|loadhistory|localeToCharset|lsf\\.str|ls\\.str|maintainer|make\\.packages\\.html|makeRweaveLatexCodeRunner|make\\.socket|memory\\.limit|memory\\.size|menu|methods|mirror2html|modifyList|new\\.packages|news|nsl|object\\.size|old\\.packages|osVersion|packageDate|packageDescription|packageName|package\\.skeleton|packageStatus|packageVersion|page|person|personList|pico|process\\.events|prompt|promptData|promptImport|promptPackage|rc\\.getOption|rc\\.options|rc\\.settings|rc\\.status|readCitationFile|read\\.csv|read\\.csv2|read\\.delim|read\\.delim2|read\\.DIF|read\\.fortran|read\\.fwf|read\\.socket|read\\.table|recover|relist|remove\\.packages|removeSource|Rprof|Rprofmem|RShowDoc|RSiteSearch|rtags|Rtangle|RtangleFinish|RtangleRuncode|RtangleSetup|RtangleWritedoc|RweaveChunkPrefix|RweaveEvalWithOpt|RweaveLatex|RweaveLatexFinish|RweaveLatexOptions|RweaveLatexSetup|RweaveLatexWritedoc|RweaveTryStop|savehistory|select\\.list|sessionInfo|setBreakpoint|setRepositories|setTxtProgressBar|stack|Stangle|str|strcapture|strOptions|summaryRprof|suppressForeignCheck|Sweave|SweaveHooks|SweaveSyntaxLatex|SweaveSyntaxNoweb|SweaveSyntConv|tail|tail\\.matrix|tar|timestamp|toBibtex|toLatex|txtProgressBar|type\\.convert|undebugcall|unstack|untar|unzip|update\\.packages|upgrade|URLdecode|URLencode|url\\.show|vi|View|vignette|warnErrList|write\\.csv|write\\.csv2|write\\.socket|write\\.table|xedit|xemacs|zip)\\s*(\\()"}]},comments:{patterns:[{captures:{1:{name:"comment.line.pragma.r"},2:{name:"entity.name.pragma.name.r"}},match:"^(#pragma[ \\t]+mark)[ \\t](.*)",name:"comment.line.pragma-mark.r"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.r"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.r"}},end:"\\n",name:"comment.line.number-sign.r"}]}]},constants:{patterns:[{match:"\\b(pi|letters|LETTERS|month\\.abb|month\\.name)\\b",name:"support.constant.misc.r"},{match:"\\b(TRUE|FALSE|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_|Inf|NaN)\\b",name:"constant.language.r"},{match:"\\b0(x|X)[0-9a-fA-F]+i\\b",name:"constant.numeric.imaginary.hexadecimal.r"},{match:"\\b[0-9]+\\.?[0-9]*(?:(e|E)(\\+|-)?[0-9]+)?i\\b",name:"constant.numeric.imaginary.decimal.r"},{match:"\\.[0-9]+(?:(e|E)(\\+|-)?[0-9]+)?i\\b",name:"constant.numeric.imaginary.decimal.r"},{match:"\\b0(x|X)[0-9a-fA-F]+L\\b",name:"constant.numeric.integer.hexadecimal.r"},{match:"\\b(?:[0-9]+\\.?[0-9]*)(?:(e|E)(\\+|-)?[0-9]+)?L\\b",name:"constant.numeric.integer.decimal.r"},{match:"\\b0(x|X)[0-9a-fA-F]+\\b",name:"constant.numeric.float.hexadecimal.r"},{match:"\\b[0-9]+\\.?[0-9]*(?:(e|E)(\\+|-)?[0-9]+)?\\b",name:"constant.numeric.float.decimal.r"},{match:"\\.[0-9]+(?:(e|E)(\\+|-)?[0-9]+)?\\b",name:"constant.numeric.float.decimal.r"}]},"function-calls":{begin:"(?:\\b|(?=\\.))((?:[a-zA-Z._][\\w.]*|`[^`]+`))\\s*(\\()",beginCaptures:{1:{name:"variable.function.r"},2:{name:"punctuation.section.parens.begin.r"}},contentName:"meta.function-call.arguments.r",end:"(\\))",endCaptures:{1:{name:"punctuation.section.parens.end.r"}},name:"meta.function-call.r",patterns:[{include:"#function-parameters"}]},"function-declarations":{patterns:[{captures:{1:{name:"entity.name.function.r"},2:{name:"keyword.operator.assignment.r"},3:{name:"keyword.control.r"}},match:"((?:`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)|(?:[[:alpha:].][[:alnum:]._]*))\\s*(<?<-|=(?!=))\\s*(function|\\\\)(?!\\w)",name:"meta.function.r",patterns:[{include:"#lambda-functions"}]}]},"function-parameters":{patterns:[{contentName:"meta.function-call.parameters.r",name:"meta.function-call.r"},{match:"(?:[a-zA-Z._][\\w.]*|`[^`]+`)(?=\\s[^=])",name:"variable.other.r"},{begin:"(?==)",end:"(?=[,)])",patterns:[{include:"source.r"}]},{match:",",name:"punctuation.separator.parameters.r"},{include:"source.r"}]},"general-variables":{patterns:[{captures:{1:{name:"variable.parameter.r"},2:{name:"keyword.operator.assignment.r"}},match:"([[:alpha:].][[:alnum:]._]*)\\s*(=)(?=[^=])"},{captures:{1:{name:"variable.parameter.r"},2:{name:"keyword.operator.assignment.r"}},match:"(`[^`]+`)\\s*(=)(?=[^=])"},{match:"\\b([\\d_][[:alnum:]._]+)\\b",name:"invalid.illegal.variable.other.r"},{match:"\\b([[:alnum:]_]+)(?=::)",name:"entity.namespace.r"},{match:"\\b([[:alnum:]._]+)\\b",name:"variable.other.r"},{match:"(`[^`]+`)",name:"variable.other.r"}]},keywords:{patterns:[{match:"\\b(break|next|repeat|else|in)\\b",name:"keyword.control.r"},{match:"\\b(ifelse|if|for|return|switch|while|invisible)\\b(?=\\s*\\()",name:"keyword.control.r"},{match:"(\\-|\\+|\\*|\\/|%\\/%|%%|%\\*%|%o%|%x%|\\^)",name:"keyword.operator.arithmetic.r"},{match:"(:=|<-|<<-|->|->>)",name:"keyword.operator.assignment.r"},{match:"(==|<=|>=|!=|<>|<|>|%in%)",name:"keyword.operator.comparison.r"},{match:"(!|&{1,2}|[|]{1,2})",name:"keyword.operator.logical.r"},{match:"(\\|>)",name:"keyword.operator.pipe.r"},{match:"(%between%|%chin%|%like%|%\\+%|%\\+replace%|%:%|%do%|%dopar%|%>%|%<>%|%T>%|%\\$%)",name:"keyword.operator.other.r"},{match:"(\\.\\.\\.|\\$|:|\\~|@)",name:"keyword.other.r"}]},"lambda-functions":{patterns:[{begin:"\\b(function)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.r"},2:{name:"punctuation.section.parens.begin.r"}},contentName:"meta.function.parameters.r",end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.r"}},name:"meta.function.r",patterns:[{include:"#comments"},{match:"(?:[a-zA-Z._][\\w.]*|`[^`]+`)",name:"variable.other.r"},{begin:"(?==)",end:"(?=[,)])",patterns:[{include:"source.r"}]},{match:",",name:"punctuation.separator.parameters.r"}]}]},roxygen:{patterns:[{begin:"^\\s*(#')\\s*",beginCaptures:{1:{name:"punctuation.definition.comment.r"}},end:"$\\n?",name:"comment.line.roxygen.r",patterns:[{captures:{1:{name:"keyword.other.r"},2:{name:"variable.parameter.r"}},match:"(@param)\\s*((?:[a-zA-Z._][\\w.]*|`[^`]+`))"},{match:"@[a-zA-Z0-9]+",name:"keyword.other.r"}]}]},"storage-type":{patterns:[{match:"\\b(character|complex|double|expression|integer|list|logical|numeric|single|raw)\\b(?=\\s*\\()",name:"storage.type.r"}]},strings:{patterns:[{begin:'[rR]"(-*)\\[',beginCaptures:{0:{name:"punctuation.definition.string.raw.begin.r"}},end:'\\]\\1"',endCaptures:{0:{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.double.raw.r"},{begin:"[rR]'(-*)\\[",beginCaptures:{0:{name:"punctuation.definition.string.raw.begin.r"}},end:"\\]\\1'",endCaptures:{0:{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.single.raw.r"},{begin:'[rR]"(-*)\\{',beginCaptures:{0:{name:"punctuation.definition.string.raw.begin.r"}},end:'\\}\\1"',endCaptures:{0:{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.double.raw.r"},{begin:"[rR]'(-*)\\{",beginCaptures:{0:{name:"punctuation.definition.string.raw.begin.r"}},end:"\\}\\1'",endCaptures:{0:{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.single.raw.r"},{begin:'[rR]"(-*)\\(',beginCaptures:{0:{name:"punctuation.definition.string.raw.begin.r"}},end:'\\)\\1"',endCaptures:{0:{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.double.raw.r"},{begin:"[rR]'(-*)\\(",beginCaptures:{0:{name:"punctuation.definition.string.raw.begin.r"}},end:"\\)\\1'",endCaptures:{0:{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.single.raw.r"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.r"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.r"}},name:"string.quoted.double.r",patterns:[{match:"\\\\.",name:"constant.character.escape.r"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.r"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.r"}},name:"string.quoted.single.r",patterns:[{match:"\\\\.",name:"constant.character.escape.r"}]}]}},scopeName:"source.r"});var a=[e];export{a as default}; diff --git a/assets/chunks/racket.B5NHDIr7.js b/assets/chunks/racket.B5NHDIr7.js new file mode 100644 index 000000000..bf028a774 --- /dev/null +++ b/assets/chunks/racket.B5NHDIr7.js @@ -0,0 +1,353 @@ +const e=Object.freeze({displayName:"Racket",name:"racket",patterns:[{include:"#comment"},{include:"#not-atom"},{include:"#atom"},{include:"#quote"},{match:"^#lang",name:"keyword.other.racket"}],repository:{args:{patterns:[{include:"#keyword"},{include:"#comment"},{include:"#default-args"},{match:"[^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*",name:"variable.parameter.racket"}]},argument:{patterns:[{begin:"(?x) (?<=[(\\[{]) \\s* (\\|)",beginCaptures:{1:{name:"punctuation.verbatim.begin.racket"}},contentName:"variable.parameter.racket",end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"}},{begin:`(?x) (?<=[(\\[{]) \\s* +(\\#% | \\\\\\ | [^\\#()\\[\\]{}",'\`;\\s]) +`,beginCaptures:{1:{name:"variable.parameter.racket"}},contentName:"variable.parameter.racket",end:"(?=[()\\[\\]{}\",'`;\\s])",patterns:[{match:"\\\\ "},{begin:"\\|",beginCaptures:{0:"punctuation.verbatim.begin.racket"},end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"}}]}]},"argument-struct":{patterns:[{begin:"(?x) (?<=[(\\[{]) \\s* (\\|)",beginCaptures:{1:{name:"punctuation.verbatim.begin.racket"}},contentName:"variable.other.member.racket",end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"}},{begin:`(?x) (?<=[(\\[{]) \\s* +(\\#% | \\\\\\ | [^\\#()\\[\\]{}",'\`;\\s]) +`,beginCaptures:{1:{name:"variable.other.member.racket"}},contentName:"variable.other.member.racket",end:"(?=[()\\[\\]{}\",'`;\\s])",patterns:[{match:"\\\\ "},{begin:"\\|",beginCaptures:{0:"punctuation.verbatim.begin.racket"},end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"}}]}]},atom:{patterns:[{include:"#bool"},{include:"#number"},{include:"#string"},{include:"#keyword"},{include:"#character"},{include:"#symbol"},{include:"#variable"}]},"base-string":{patterns:[{begin:'"',beginCaptures:{0:[{name:"punctuation.definition.string.begin.racket"}]},end:'"',endCaptures:{0:[{name:"punctuation.definition.string.end.racket"}]},name:"string.quoted.double.racket",patterns:[{include:"#escape-char"}]}]},binding:{patterns:[{begin:"(?x) (?<=[(\\[{]) \\s* (\\|)",beginCaptures:{1:{name:"punctuation.verbatim.begin.racket"}},contentName:"entity.name.constant",end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"}},{begin:`(?x) (?<=[(\\[{]) \\s* +(\\#% | \\\\\\ | [^\\#()\\[\\]{}",'\`;\\s]) +`,beginCaptures:{1:{name:"entity.name.constant"}},contentName:"entity.name.constant",end:"(?=[()\\[\\]{}\",'`;\\s])",patterns:[{match:"\\\\ "},{begin:"\\|",beginCaptures:{0:"punctuation.verbatim.begin.racket"},end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"}}]}]},bool:{patterns:[{match:`(?x) +(?<=^|[()\\[\\]{}",'\`;\\s]) \\# +(?: [tT](?: rue)?|[fF](?: alse)?) +(?=[()\\[\\]{}",'\`;\\s]) +`,name:"constant.language.racket"}]},"builtin-functions":{patterns:[{include:"#format"},{include:"#define"},{include:"#lambda"},{include:"#struct"},{captures:{1:{name:"support.function.racket"}},match:`(?x) (?<=$|[()\\[\\]{}",'\`;\\s]) +( +\\.\\.\\. | _ | syntax-id-rules | syntax-rules | \\#%app | \\#%datum | \\#%declare | \\#%expression | \\#%module-begin | \\#%plain-app | \\#%plain-lambda | \\#%plain-module-begin | \\#%printing-module-begin | \\#%provide | \\#%require | \\#%stratified-body | \\#%top | \\#%top-interaction | \\#%variable-reference | \\.\\.\\. | :do-in | => | _ | all-defined-out | all-from-out | and | apply | arity-at-least | begin | begin-for-syntax | begin0 | call-with-input-file | call-with-input-file\\* | call-with-output-file | call-with-output-file\\* | case | case-lambda | combine-in | combine-out | cond | date | date\\* | define | define-for-syntax | define-logger | define-namespace-anchor | define-sequence-syntax | define-struct | define-struct\\/derived | define-syntax | define-syntax-rule | define-syntaxes | define-values | define-values-for-syntax | do | else | except-in | except-out | exn | exn:break | exn:break:hang-up | exn:break:terminate | exn:fail | exn:fail:contract | exn:fail:contract:arity | exn:fail:contract:continuation | exn:fail:contract:divide-by-zero | exn:fail:contract:non-fixnum-result | exn:fail:contract:variable | exn:fail:filesystem | exn:fail:filesystem:errno | exn:fail:filesystem:exists | exn:fail:filesystem:missing-module | exn:fail:filesystem:version | exn:fail:network | exn:fail:network:errno | exn:fail:out-of-memory | exn:fail:read | exn:fail:read:eof | exn:fail:read:non-char | exn:fail:syntax | exn:fail:syntax:missing-module | exn:fail:syntax:unbound | exn:fail:unsupported | exn:fail:user | file | for | for\\* | for\\*\\/and | for\\*\\/first | for\\*\\/fold | for\\*\\/fold\\/derived | for\\*\\/hash | for\\*\\/hasheq | for\\*\\/hasheqv | for\\*\\/last | for\\*\\/list | for\\*\\/lists | for\\*\\/or | for\\*\\/product | for\\*\\/sum | for\\*\\/vector | for-label | for-meta | for-syntax | for-template | for\\/and | for\\/first | for\\/fold | for\\/fold\\/derived | for\\/hash | for\\/hasheq | for\\/hasheqv | for\\/last | for\\/list | for\\/lists | for\\/or | for\\/product | for\\/sum | for\\/vector | gen:custom-write | gen:equal\\+hash | if | in-bytes | in-bytes-lines | in-directory | in-hash | in-hash-keys | in-hash-pairs | in-hash-values | in-immutable-hash | in-immutable-hash-keys | in-immutable-hash-pairs | in-immutable-hash-values | in-indexed | in-input-port-bytes | in-input-port-chars | in-lines | in-list | in-mlist | in-mutable-hash | in-mutable-hash-keys | in-mutable-hash-pairs | in-mutable-hash-values | in-naturals | in-port | in-producer | in-range | in-string | in-value | in-vector | in-weak-hash | in-weak-hash-keys | in-weak-hash-pairs | in-weak-hash-values | lambda | let | let\\* | let\\*-values | let-syntax | let-syntaxes | let-values | let\\/cc | let\\/ec | letrec | letrec-syntax | letrec-syntaxes | letrec-syntaxes\\+values | letrec-values | lib | local-require | log-debug | log-error | log-fatal | log-info | log-warning | module | module\\* | module\\+ | only-in | only-meta-in | open-input-file | open-input-output-file | open-output-file | or | parameterize | parameterize\\* | parameterize-break | planet | prefix-in | prefix-out | protect-out | provide | quasiquote | quasisyntax | quasisyntax\\/loc | quote | quote-syntax | quote-syntax\\/prune | regexp-match\\* | regexp-match-peek-positions\\* | regexp-match-positions\\* | relative-in | rename-in | rename-out | require | set! | set!-values | sort | srcloc | struct | struct-copy | struct-field-index | struct-out | submod | syntax | syntax-case | syntax-case\\* | syntax-id-rules | syntax-rules | syntax\\/loc | time | unless | unquote | unquote-splicing | unsyntax | unsyntax-splicing | when | with-continuation-mark | with-handlers | with-handlers\\* | with-input-from-file | with-output-to-file | with-syntax | λ | \\#%app | \\#%datum | \\#%declare | \\#%expression | \\#%module-begin | \\#%plain-app | \\#%plain-lambda | \\#%plain-module-begin | \\#%printing-module-begin | \\#%provide | \\#%require | \\#%stratified-body | \\#%top | \\#%top-interaction | \\#%variable-reference | -> | ->\\* | ->\\*m | ->d | ->dm | ->i | ->m | \\.\\.\\. | :do-in | <=\\/c | =\\/c | == | => | >=\\/c | _ | absent | abstract | add-between | all-defined-out | all-from-out | and | and\\/c | any | any\\/c | apply | arity-at-least | arrow-contract-info | augment | augment\\* | augment-final | augment-final\\* | augride | augride\\* | bad-number-of-results | begin | begin-for-syntax | begin0 | between\\/c | blame-add-context | box-immutable\\/c | box\\/c | call-with-atomic-output-file | call-with-file-lock\\/timeout | call-with-input-file | call-with-input-file\\* | call-with-output-file | call-with-output-file\\* | case | case-> | case->m | case-lambda | channel\\/c | char-in\\/c | check-duplicates | class | class\\* | class-field-accessor | class-field-mutator | class\\/c | class\\/derived | combine-in | combine-out | command-line | compound-unit | compound-unit\\/infer | cond | cons\\/c | cons\\/dc | continuation-mark-key\\/c | contract | contract-exercise | contract-out | contract-struct | contracted | copy-directory\\/files | current-contract-region | date | date\\* | define | define-compound-unit | define-compound-unit\\/infer | define-contract-struct | define-custom-hash-types | define-custom-set-types | define-for-syntax | define-local-member-name | define-logger | define-match-expander | define-member-name | define-module-boundary-contract | define-namespace-anchor | define-opt\\/c | define-sequence-syntax | define-serializable-class | define-serializable-class\\* | define-signature | define-signature-form | define-struct | define-struct\\/contract | define-struct\\/derived | define-syntax | define-syntax-rule | define-syntaxes | define-unit | define-unit-binding | define-unit-from-context | define-unit\\/contract | define-unit\\/new-import-export | define-unit\\/s | define-values | define-values-for-export | define-values-for-syntax | define-values\\/invoke-unit | define-values\\/invoke-unit\\/infer | define\\/augment | define\\/augment-final | define\\/augride | define\\/contract | define\\/final-prop | define\\/match | define\\/overment | define\\/override | define\\/override-final | define\\/private | define\\/public | define\\/public-final | define\\/pubment | define\\/subexpression-pos-prop | define\\/subexpression-pos-prop\\/name | delay | delay\\/idle | delay\\/name | delay\\/strict | delay\\/sync | delay\\/thread | delete-directory\\/files | dict->list | dict-can-functional-set\\? | dict-can-remove-keys\\? | dict-clear | dict-clear! | dict-copy | dict-count | dict-empty\\? | dict-for-each | dict-has-key\\? | dict-implements\\/c | dict-implements\\? | dict-iterate-first | dict-iterate-key | dict-iterate-next | dict-iterate-value | dict-keys | dict-map | dict-mutable\\? | dict-ref | dict-ref! | dict-remove | dict-remove! | dict-set | dict-set! | dict-set\\* | dict-set\\*! | dict-update | dict-update! | dict-values | dict\\? | display-lines | display-lines-to-file | display-to-file | do | dynamic->\\* | dynamic-place | dynamic-place\\* | else | eof-evt | except | except-in | except-out | exn | exn:break | exn:break:hang-up | exn:break:terminate | exn:fail | exn:fail:contract | exn:fail:contract:arity | exn:fail:contract:blame | exn:fail:contract:continuation | exn:fail:contract:divide-by-zero | exn:fail:contract:non-fixnum-result | exn:fail:contract:variable | exn:fail:filesystem | exn:fail:filesystem:errno | exn:fail:filesystem:exists | exn:fail:filesystem:missing-module | exn:fail:filesystem:version | exn:fail:network | exn:fail:network:errno | exn:fail:object | exn:fail:out-of-memory | exn:fail:read | exn:fail:read:eof | exn:fail:read:non-char | exn:fail:syntax | exn:fail:syntax:missing-module | exn:fail:syntax:unbound | exn:fail:unsupported | exn:fail:user | export | extends | failure-cont | field | field-bound\\? | file | file->bytes | file->bytes-lines | file->lines | file->list | file->string | file->value | find-files | find-relative-path | first-or\\/c | flat-contract-with-explanation | flat-murec-contract | flat-rec-contract | for | for\\* | for\\*\\/and | for\\*\\/async | for\\*\\/first | for\\*\\/fold | for\\*\\/fold\\/derived | for\\*\\/hash | for\\*\\/hasheq | for\\*\\/hasheqv | for\\*\\/last | for\\*\\/list | for\\*\\/lists | for\\*\\/mutable-set | for\\*\\/mutable-seteq | for\\*\\/mutable-seteqv | for\\*\\/or | for\\*\\/product | for\\*\\/set | for\\*\\/seteq | for\\*\\/seteqv | for\\*\\/stream | for\\*\\/sum | for\\*\\/vector | for\\*\\/weak-set | for\\*\\/weak-seteq | for\\*\\/weak-seteqv | for-label | for-meta | for-syntax | for-template | for\\/and | for\\/async | for\\/first | for\\/fold | for\\/fold\\/derived | for\\/hash | for\\/hasheq | for\\/hasheqv | for\\/last | for\\/list | for\\/lists | for\\/mutable-set | for\\/mutable-seteq | for\\/mutable-seteqv | for\\/or | for\\/product | for\\/set | for\\/seteq | for\\/seteqv | for\\/stream | for\\/sum | for\\/vector | for\\/weak-set | for\\/weak-seteq | for\\/weak-seteqv | gen:custom-write | gen:dict | gen:equal\\+hash | gen:set | gen:stream | generic | get-field | get-preference | hash\\/c | hash\\/dc | if | implies | import | in-bytes | in-bytes-lines | in-dict | in-dict-keys | in-dict-values | in-directory | in-hash | in-hash-keys | in-hash-pairs | in-hash-values | in-immutable-hash | in-immutable-hash-keys | in-immutable-hash-pairs | in-immutable-hash-values | in-immutable-set | in-indexed | in-input-port-bytes | in-input-port-chars | in-lines | in-list | in-mlist | in-mutable-hash | in-mutable-hash-keys | in-mutable-hash-pairs | in-mutable-hash-values | in-mutable-set | in-naturals | in-port | in-producer | in-range | in-set | in-slice | in-stream | in-string | in-syntax | in-value | in-vector | in-weak-hash | in-weak-hash-keys | in-weak-hash-pairs | in-weak-hash-values | in-weak-set | include | include-at\\/relative-to | include-at\\/relative-to\\/reader | include\\/reader | inherit | inherit-field | inherit\\/inner | inherit\\/super | init | init-depend | init-field | init-rest | inner | inspect | instantiate | integer-in | interface | interface\\* | invariant-assertion | invoke-unit | invoke-unit\\/infer | lambda | lazy | let | let\\* | let\\*-values | let-syntax | let-syntaxes | let-values | let\\/cc | let\\/ec | letrec | letrec-syntax | letrec-syntaxes | letrec-syntaxes\\+values | letrec-values | lib | link | list\\*of | list\\/c | listof | local | local-require | log-debug | log-error | log-fatal | log-info | log-warning | make-custom-hash | make-custom-hash-types | make-custom-set | make-custom-set-types | make-handle-get-preference-locked | make-immutable-custom-hash | make-mutable-custom-set | make-object | make-temporary-file | make-weak-custom-hash | make-weak-custom-set | match | match\\* | match\\*\\/derived | match-define | match-define-values | match-lambda | match-lambda\\* | match-lambda\\*\\* | match-let | match-let\\* | match-let\\*-values | match-let-values | match-letrec | match-letrec-values | match\\/derived | match\\/values | member-name-key | mixin | module | module\\* | module\\+ | nand | new | new-∀\\/c | new-∃\\/c | non-empty-listof | none\\/c | nor | not\\/c | object-contract | object\\/c | one-of\\/c | only | only-in | only-meta-in | open | open-input-file | open-input-output-file | open-output-file | opt\\/c | or | or\\/c | overment | overment\\* | override | override\\* | override-final | override-final\\* | parameter\\/c | parameterize | parameterize\\* | parameterize-break | parametric->\\/c | pathlist-closure | peek-bytes!-evt | peek-bytes-avail!-evt | peek-bytes-evt | peek-string!-evt | peek-string-evt | peeking-input-port | place | place\\* | place\\/context | planet | port->bytes | port->bytes-lines | port->lines | port->string | prefix | prefix-in | prefix-out | pretty-format | private | private\\* | procedure-arity-includes\\/c | process | process\\* | process\\*\\/ports | process\\/ports | promise\\/c | prompt-tag\\/c | prop:dict\\/contract | protect-out | provide | provide-signature-elements | provide\\/contract | public | public\\* | public-final | public-final\\* | pubment | pubment\\* | quasiquote | quasisyntax | quasisyntax\\/loc | quote | quote-syntax | quote-syntax\\/prune | raise-blame-error | raise-not-cons-blame-error | range | read-bytes!-evt | read-bytes-avail!-evt | read-bytes-evt | read-bytes-line-evt | read-line-evt | read-string!-evt | read-string-evt | real-in | recontract-out | recursive-contract | regexp-match\\* | regexp-match-evt | regexp-match-peek-positions\\* | regexp-match-positions\\* | relative-in | relocate-input-port | relocate-output-port | remove-duplicates | rename | rename-in | rename-inner | rename-out | rename-super | require | send | send\\* | send\\+ | send-generic | send\\/apply | send\\/keyword-apply | sequence\\/c | set! | set!-values | set-field! | set\\/c | shared | sort | srcloc | stream | stream\\* | stream-cons | string-join | string-len\\/c | string-normalize-spaces | string-replace | string-split | string-trim | struct | struct\\* | struct-copy | struct-field-index | struct-out | struct\\/c | struct\\/ctc | struct\\/dc | submod | super | super-instantiate | super-make-object | super-new | symbols | syntax | syntax-case | syntax-case\\* | syntax-id-rules | syntax-rules | syntax\\/c | syntax\\/loc | system | system\\* | system\\*\\/exit-code | system\\/exit-code | tag | this | this% | thunk | thunk\\* | time | transplant-input-port | transplant-output-port | unconstrained-domain-> | unit | unit-from-context | unit\\/c | unit\\/new-import-export | unit\\/s | unless | unquote | unquote-splicing | unsyntax | unsyntax-splicing | values\\/drop | vector-immutable\\/c | vector-immutableof | vector-sort | vector-sort! | vector\\/c | vectorof | when | with-continuation-mark | with-contract | with-contract-continuation-mark | with-handlers | with-handlers\\* | with-input-from-file | with-method | with-output-to-file | with-syntax | wrapped-extra-arg-arrow | write-to-file | ~\\.a | ~\\.s | ~\\.v | ~a | ~e | ~r | ~s | ~v | λ | expand-for-clause | for-clause-syntax-protect | syntax-pattern-variable\\? | \\* | \\+ | - | \\/ | < | <= | = | > | >= | abort-current-continuation | abs | absolute-path\\? | acos | add1 | alarm-evt | always-evt | andmap | angle | append | arithmetic-shift | arity-at-least-value | arity-at-least\\? | asin | assf | assoc | assq | assv | atan | banner | bitwise-and | bitwise-bit-field | bitwise-bit-set\\? | bitwise-ior | bitwise-not | bitwise-xor | boolean\\? | bound-identifier=\\? | box | box-cas! | box-immutable | box\\? | break-enabled | break-parameterization\\? | break-thread | build-list | build-path | build-path\\/convention-type | build-string | build-vector | byte-pregexp | byte-pregexp\\? | byte-ready\\? | byte-regexp | byte-regexp\\? | byte\\? | bytes | bytes->immutable-bytes | bytes->list | bytes->path | bytes->path-element | bytes->string\\/latin-1 | bytes->string\\/locale | bytes->string\\/utf-8 | bytes-append | bytes-close-converter | bytes-convert | bytes-convert-end | bytes-converter\\? | bytes-copy | bytes-copy! | bytes-environment-variable-name\\? | bytes-fill! | bytes-length | bytes-open-converter | bytes-ref | bytes-set! | bytes-utf-8-index | bytes-utf-8-length | bytes-utf-8-ref | bytes<\\? | bytes=\\? | bytes>\\? | bytes\\? | caaaar | caaadr | caaar | caadar | caaddr | caadr | caar | cadaar | cadadr | cadar | caddar | cadddr | caddr | cadr | call-in-nested-thread | call-with-break-parameterization | call-with-composable-continuation | call-with-continuation-barrier | call-with-continuation-prompt | call-with-current-continuation | call-with-default-reading-parameterization | call-with-escape-continuation | call-with-exception-handler | call-with-immediate-continuation-mark | call-with-parameterization | call-with-semaphore | call-with-semaphore\\/enable-break | call-with-values | call\\/cc | call\\/ec | car | cdaaar | cdaadr | cdaar | cdadar | cdaddr | cdadr | cdar | cddaar | cddadr | cddar | cdddar | cddddr | cdddr | cddr | cdr | ceiling | channel-get | channel-put | channel-put-evt | channel-put-evt\\? | channel-try-get | channel\\? | chaperone-box | chaperone-channel | chaperone-continuation-mark-key | chaperone-evt | chaperone-hash | chaperone-of\\? | chaperone-procedure | chaperone-procedure\\* | chaperone-prompt-tag | chaperone-struct | chaperone-struct-type | chaperone-vector | chaperone-vector\\* | chaperone\\? | char->integer | char-alphabetic\\? | char-blank\\? | char-ci<=\\? | char-ci<\\? | char-ci=\\? | char-ci>=\\? | char-ci>\\? | char-downcase | char-foldcase | char-general-category | char-graphic\\? | char-iso-control\\? | char-lower-case\\? | char-numeric\\? | char-punctuation\\? | char-ready\\? | char-symbolic\\? | char-title-case\\? | char-titlecase | char-upcase | char-upper-case\\? | char-utf-8-length | char-whitespace\\? | char<=\\? | char<\\? | char=\\? | char>=\\? | char>\\? | char\\? | check-duplicate-identifier | check-tail-contract | checked-procedure-check-and-extract | choice-evt | cleanse-path | close-input-port | close-output-port | collect-garbage | collection-file-path | collection-path | compile | compile-allow-set!-undefined | compile-context-preservation-enabled | compile-enforce-module-constants | compile-syntax | compiled-expression-recompile | compiled-expression\\? | compiled-module-expression\\? | complete-path\\? | complex\\? | compose | compose1 | cons | continuation-mark-key\\? | continuation-mark-set->context | continuation-mark-set->list | continuation-mark-set->list\\* | continuation-mark-set-first | continuation-mark-set\\? | continuation-marks | continuation-prompt-available\\? | continuation-prompt-tag\\? | continuation\\? | copy-file | cos | current-break-parameterization | current-code-inspector | current-command-line-arguments | current-compile | current-compiled-file-roots | current-continuation-marks | current-custodian | current-directory | current-directory-for-user | current-drive | current-environment-variables | current-error-port | current-eval | current-evt-pseudo-random-generator | current-force-delete-permissions | current-gc-milliseconds | current-get-interaction-input-port | current-inexact-milliseconds | current-input-port | current-inspector | current-library-collection-links | current-library-collection-paths | current-load | current-load-extension | current-load-relative-directory | current-load\\/use-compiled | current-locale | current-logger | current-memory-use | current-milliseconds | current-module-declare-name | current-module-declare-source | current-module-name-resolver | current-module-path-for-load | current-namespace | current-output-port | current-parameterization | current-plumber | current-preserved-thread-cell-values | current-print | current-process-milliseconds | current-prompt-read | current-pseudo-random-generator | current-read-interaction | current-reader-guard | current-readtable | current-seconds | current-security-guard | current-subprocess-custodian-mode | current-thread | current-thread-group | current-thread-initial-stack-size | current-write-relative-directory | custodian-box-value | custodian-box\\? | custodian-limit-memory | custodian-managed-list | custodian-memory-accounting-available\\? | custodian-require-memory | custodian-shut-down\\? | custodian-shutdown-all | custodian\\? | custom-print-quotable-accessor | custom-print-quotable\\? | custom-write-accessor | custom-write\\? | date\\*-nanosecond | date\\*-time-zone-name | date\\*\\? | date-day | date-dst\\? | date-hour | date-minute | date-month | date-second | date-time-zone-offset | date-week-day | date-year | date-year-day | date\\? | datum->syntax | datum-intern-literal | default-continuation-prompt-tag | delete-directory | delete-file | denominator | directory-exists\\? | directory-list | display | displayln | double-flonum\\? | dump-memory-stats | dynamic-require | dynamic-require-for-syntax | dynamic-wind | environment-variables-copy | environment-variables-names | environment-variables-ref | environment-variables-set! | environment-variables\\? | eof | eof-object\\? | ephemeron-value | ephemeron\\? | eprintf | eq-hash-code | eq\\? | equal-hash-code | equal-secondary-hash-code | equal\\? | equal\\?\\/recur | eqv-hash-code | eqv\\? | error | error-display-handler | error-escape-handler | error-print-context-length | error-print-source-location | error-print-width | error-value->string-handler | eval | eval-jit-enabled | eval-syntax | even\\? | evt\\? | exact->inexact | exact-integer\\? | exact-nonnegative-integer\\? | exact-positive-integer\\? | exact\\? | executable-yield-handler | exit | exit-handler | exn-continuation-marks | exn-message | exn:break-continuation | exn:break:hang-up\\? | exn:break:terminate\\? | exn:break\\? | exn:fail:contract:arity\\? | exn:fail:contract:continuation\\? | exn:fail:contract:divide-by-zero\\? | exn:fail:contract:non-fixnum-result\\? | exn:fail:contract:variable-id | exn:fail:contract:variable\\? | exn:fail:contract\\? | exn:fail:filesystem:errno-errno | exn:fail:filesystem:errno\\? | exn:fail:filesystem:exists\\? | exn:fail:filesystem:missing-module-path | exn:fail:filesystem:missing-module\\? | exn:fail:filesystem:version\\? | exn:fail:filesystem\\? | exn:fail:network:errno-errno | exn:fail:network:errno\\? | exn:fail:network\\? | exn:fail:out-of-memory\\? | exn:fail:read-srclocs | exn:fail:read:eof\\? | exn:fail:read:non-char\\? | exn:fail:read\\? | exn:fail:syntax-exprs | exn:fail:syntax:missing-module-path | exn:fail:syntax:missing-module\\? | exn:fail:syntax:unbound\\? | exn:fail:syntax\\? | exn:fail:unsupported\\? | exn:fail:user\\? | exn:fail\\? | exn:missing-module-accessor | exn:missing-module\\? | exn:srclocs-accessor | exn:srclocs\\? | exn\\? | exp | expand | expand-for-clause | expand-once | expand-syntax | expand-syntax-once | expand-syntax-to-top-form | expand-to-top-form | expand-user-path | explode-path | expt | file-exists\\? | file-or-directory-identity | file-or-directory-modify-seconds | file-or-directory-permissions | file-position | file-position\\* | file-size | file-stream-buffer-mode | file-stream-port\\? | file-truncate | filesystem-change-evt | filesystem-change-evt-cancel | filesystem-change-evt\\? | filesystem-root-list | filter | find-executable-path | find-library-collection-links | find-library-collection-paths | find-system-path | findf | fixnum\\? | floating-point-bytes->real | flonum\\? | floor | flush-output | foldl | foldr | for-clause-syntax-protect | for-each | format | fprintf | free-identifier=\\? | free-label-identifier=\\? | free-template-identifier=\\? | free-transformer-identifier=\\? | gcd | generate-temporaries | gensym | get-output-bytes | get-output-string | getenv | global-port-print-handler | guard-evt | handle-evt | handle-evt\\? | hash | hash->list | hash-clear | hash-clear! | hash-copy | hash-copy-clear | hash-count | hash-empty\\? | hash-eq\\? | hash-equal\\? | hash-eqv\\? | hash-for-each | hash-has-key\\? | hash-iterate-first | hash-iterate-key | hash-iterate-key\\+value | hash-iterate-next | hash-iterate-pair | hash-iterate-value | hash-keys | hash-keys-subset\\? | hash-map | hash-placeholder\\? | hash-ref | hash-ref! | hash-remove | hash-remove! | hash-set | hash-set! | hash-set\\* | hash-set\\*! | hash-update | hash-update! | hash-values | hash-weak\\? | hash\\? | hasheq | hasheqv | identifier-binding | identifier-binding-symbol | identifier-label-binding | identifier-prune-lexical-context | identifier-prune-to-source-module | identifier-remove-from-definition-context | identifier-template-binding | identifier-transformer-binding | identifier\\? | imag-part | immutable\\? | impersonate-box | impersonate-channel | impersonate-continuation-mark-key | impersonate-hash | impersonate-procedure | impersonate-procedure\\* | impersonate-prompt-tag | impersonate-struct | impersonate-vector | impersonate-vector\\* | impersonator-ephemeron | impersonator-of\\? | impersonator-prop:application-mark | impersonator-property-accessor-procedure\\? | impersonator-property\\? | impersonator\\? | in-cycle | in-parallel | in-sequences | in-values\\*-sequence | in-values-sequence | inexact->exact | inexact-real\\? | inexact\\? | input-port\\? | inspector-superior\\? | inspector\\? | integer->char | integer->integer-bytes | integer-bytes->integer | integer-length | integer-sqrt | integer-sqrt\\/remainder | integer\\? | internal-definition-context-binding-identifiers | internal-definition-context-introduce | internal-definition-context-seal | internal-definition-context\\? | keyword->string | keyword-apply | keyword<\\? | keyword\\? | kill-thread | lcm | legacy-match-expander\\? | length | liberal-define-context\\? | link-exists\\? | list | list\\* | list->bytes | list->string | list->vector | list-ref | list-tail | list\\? | load | load-extension | load-on-demand-enabled | load-relative | load-relative-extension | load\\/cd | load\\/use-compiled | local-expand | local-expand\\/capture-lifts | local-transformer-expand | local-transformer-expand\\/capture-lifts | locale-string-encoding | log | log-all-levels | log-level-evt | log-level\\? | log-max-level | log-message | log-receiver\\? | logger-name | logger\\? | magnitude | make-arity-at-least | make-base-empty-namespace | make-base-namespace | make-bytes | make-channel | make-continuation-mark-key | make-continuation-prompt-tag | make-custodian | make-custodian-box | make-date | make-date\\* | make-derived-parameter | make-directory | make-do-sequence | make-empty-namespace | make-environment-variables | make-ephemeron | make-exn | make-exn:break | make-exn:break:hang-up | make-exn:break:terminate | make-exn:fail | make-exn:fail:contract | make-exn:fail:contract:arity | make-exn:fail:contract:continuation | make-exn:fail:contract:divide-by-zero | make-exn:fail:contract:non-fixnum-result | make-exn:fail:contract:variable | make-exn:fail:filesystem | make-exn:fail:filesystem:errno | make-exn:fail:filesystem:exists | make-exn:fail:filesystem:missing-module | make-exn:fail:filesystem:version | make-exn:fail:network | make-exn:fail:network:errno | make-exn:fail:out-of-memory | make-exn:fail:read | make-exn:fail:read:eof | make-exn:fail:read:non-char | make-exn:fail:syntax | make-exn:fail:syntax:missing-module | make-exn:fail:syntax:unbound | make-exn:fail:unsupported | make-exn:fail:user | make-file-or-directory-link | make-hash | make-hash-placeholder | make-hasheq | make-hasheq-placeholder | make-hasheqv | make-hasheqv-placeholder | make-immutable-hash | make-immutable-hasheq | make-immutable-hasheqv | make-impersonator-property | make-input-port | make-inspector | make-keyword-procedure | make-known-char-range-list | make-log-receiver | make-logger | make-output-port | make-parameter | make-phantom-bytes | make-pipe | make-placeholder | make-plumber | make-polar | make-prefab-struct | make-pseudo-random-generator | make-reader-graph | make-readtable | make-rectangular | make-rename-transformer | make-resolved-module-path | make-security-guard | make-semaphore | make-set!-transformer | make-shared-bytes | make-sibling-inspector | make-special-comment | make-srcloc | make-string | make-struct-field-accessor | make-struct-field-mutator | make-struct-type | make-struct-type-property | make-syntax-delta-introducer | make-syntax-introducer | make-thread-cell | make-thread-group | make-vector | make-weak-box | make-weak-hash | make-weak-hasheq | make-weak-hasheqv | make-will-executor | map | match-\\.\\.\\.-nesting | match-expander\\? | max | mcar | mcdr | mcons | member | memf | memq | memv | min | module->exports | module->imports | module->indirect-exports | module->language-info | module->namespace | module-compiled-cross-phase-persistent\\? | module-compiled-exports | module-compiled-imports | module-compiled-indirect-exports | module-compiled-language-info | module-compiled-name | module-compiled-submodules | module-declared\\? | module-path-index-join | module-path-index-resolve | module-path-index-split | module-path-index-submodule | module-path-index\\? | module-path\\? | module-predefined\\? | module-provide-protected\\? | modulo | mpair\\? | nack-guard-evt | namespace-anchor->empty-namespace | namespace-anchor->namespace | namespace-anchor\\? | namespace-attach-module | namespace-attach-module-declaration | namespace-base-phase | namespace-mapped-symbols | namespace-module-identifier | namespace-module-registry | namespace-require | namespace-require\\/constant | namespace-require\\/copy | namespace-require\\/expansion-time | namespace-set-variable-value! | namespace-symbol->identifier | namespace-syntax-introduce | namespace-undefine-variable! | namespace-unprotect-module | namespace-variable-value | namespace\\? | negative\\? | never-evt | newline | normal-case-path | not | null | null\\? | number->string | number\\? | numerator | object-name | odd\\? | open-input-bytes | open-input-string | open-output-bytes | open-output-string | ormap | output-port\\? | pair\\? | parameter-procedure=\\? | parameter\\? | parameterization\\? | parse-leftover->\\* | path->bytes | path->complete-path | path->directory-path | path->string | path-add-extension | path-add-suffix | path-convention-type | path-element->bytes | path-element->string | path-for-some-system\\? | path-list-string->path-list | path-replace-extension | path-replace-suffix | path-string\\? | path<\\? | path\\? | peek-byte | peek-byte-or-special | peek-bytes | peek-bytes! | peek-bytes-avail! | peek-bytes-avail!\\* | peek-bytes-avail!\\/enable-break | peek-char | peek-char-or-special | peek-string | peek-string! | phantom-bytes\\? | pipe-content-length | placeholder-get | placeholder-set! | placeholder\\? | plumber-add-flush! | plumber-flush-all | plumber-flush-handle-remove! | plumber-flush-handle\\? | plumber\\? | poll-guard-evt | port-closed-evt | port-closed\\? | port-commit-peeked | port-count-lines! | port-count-lines-enabled | port-counts-lines\\? | port-display-handler | port-file-identity | port-file-unlock | port-next-location | port-print-handler | port-progress-evt | port-provides-progress-evts\\? | port-read-handler | port-try-file-lock\\? | port-write-handler | port-writes-atomic\\? | port-writes-special\\? | port\\? | positive\\? | prefab-key->struct-type | prefab-key\\? | prefab-struct-key | pregexp | pregexp\\? | primitive-closure\\? | primitive-result-arity | primitive\\? | print | print-as-expression | print-boolean-long-form | print-box | print-graph | print-hash-table | print-mpair-curly-braces | print-pair-curly-braces | print-reader-abbreviations | print-struct | print-syntax-width | print-unreadable | print-vector-length | printf | println | procedure->method | procedure-arity | procedure-arity-includes\\? | procedure-arity\\? | procedure-closure-contents-eq\\? | procedure-extract-target | procedure-impersonator\\*\\? | procedure-keywords | procedure-reduce-arity | procedure-reduce-keyword-arity | procedure-rename | procedure-result-arity | procedure-specialize | procedure-struct-type\\? | procedure\\? | progress-evt\\? | prop:arity-string | prop:authentic | prop:checked-procedure | prop:custom-print-quotable | prop:custom-write | prop:equal\\+hash | prop:evt | prop:exn:missing-module | prop:exn:srclocs | prop:expansion-contexts | prop:impersonator-of | prop:input-port | prop:legacy-match-expander | prop:liberal-define-context | prop:match-expander | prop:object-name | prop:output-port | prop:procedure | prop:rename-transformer | prop:sequence | prop:set!-transformer | pseudo-random-generator->vector | pseudo-random-generator-vector\\? | pseudo-random-generator\\? | putenv | quotient | quotient\\/remainder | raise | raise-argument-error | raise-arguments-error | raise-arity-error | raise-mismatch-error | raise-range-error | raise-result-error | raise-syntax-error | raise-type-error | raise-user-error | random | random-seed | rational\\? | rationalize | read | read-accept-bar-quote | read-accept-box | read-accept-compiled | read-accept-dot | read-accept-graph | read-accept-infix-dot | read-accept-lang | read-accept-quasiquote | read-accept-reader | read-byte | read-byte-or-special | read-bytes | read-bytes! | read-bytes-avail! | read-bytes-avail!\\* | read-bytes-avail!\\/enable-break | read-bytes-line | read-case-sensitive | read-cdot | read-char | read-char-or-special | read-curly-brace-as-paren | read-curly-brace-with-tag | read-decimal-as-inexact | read-eval-print-loop | read-language | read-line | read-on-demand-source | read-square-bracket-as-paren | read-square-bracket-with-tag | read-string | read-string! | read-syntax | read-syntax\\/recursive | read\\/recursive | readtable-mapping | readtable\\? | real->decimal-string | real->double-flonum | real->floating-point-bytes | real->single-flonum | real-part | real\\? | regexp | regexp-match | regexp-match-exact\\? | regexp-match-peek | regexp-match-peek-immediate | regexp-match-peek-positions | regexp-match-peek-positions-immediate | regexp-match-peek-positions-immediate\\/end | regexp-match-peek-positions\\/end | regexp-match-positions | regexp-match-positions\\/end | regexp-match\\/end | regexp-match\\? | regexp-max-lookbehind | regexp-quote | regexp-replace | regexp-replace\\* | regexp-replace-quote | regexp-replaces | regexp-split | regexp-try-match | regexp\\? | relative-path\\? | remainder | remove | remove\\* | remq | remq\\* | remv | remv\\* | rename-file-or-directory | rename-transformer-target | rename-transformer\\? | replace-evt | reroot-path | resolve-path | resolved-module-path-name | resolved-module-path\\? | reverse | round | seconds->date | security-guard\\? | semaphore-peek-evt | semaphore-peek-evt\\? | semaphore-post | semaphore-try-wait\\? | semaphore-wait | semaphore-wait\\/enable-break | semaphore\\? | sequence->stream | sequence-generate | sequence-generate\\* | sequence\\? | set!-transformer-procedure | set!-transformer\\? | set-box! | set-mcar! | set-mcdr! | set-phantom-bytes! | set-port-next-location! | shared-bytes | shell-execute | simplify-path | sin | single-flonum\\? | sleep | special-comment-value | special-comment\\? | split-path | sqrt | srcloc->string | srcloc-column | srcloc-line | srcloc-position | srcloc-source | srcloc-span | srcloc\\? | stop-after | stop-before | string | string->bytes\\/latin-1 | string->bytes\\/locale | string->bytes\\/utf-8 | string->immutable-string | string->keyword | string->list | string->number | string->path | string->path-element | string->symbol | string->uninterned-symbol | string->unreadable-symbol | string-append | string-ci<=\\? | string-ci<\\? | string-ci=\\? | string-ci>=\\? | string-ci>\\? | string-copy | string-copy! | string-downcase | string-environment-variable-name\\? | string-fill! | string-foldcase | string-length | string-locale-ci<\\? | string-locale-ci=\\? | string-locale-ci>\\? | string-locale-downcase | string-locale-upcase | string-locale<\\? | string-locale=\\? | string-locale>\\? | string-normalize-nfc | string-normalize-nfd | string-normalize-nfkc | string-normalize-nfkd | string-port\\? | string-ref | string-set! | string-titlecase | string-upcase | string-utf-8-length | string<=\\? | string<\\? | string=\\? | string>=\\? | string>\\? | string\\? | struct->vector | struct-accessor-procedure\\? | struct-constructor-procedure\\? | struct-info | struct-mutator-procedure\\? | struct-predicate-procedure\\? | struct-type-info | struct-type-make-constructor | struct-type-make-predicate | struct-type-property-accessor-procedure\\? | struct-type-property\\? | struct-type\\? | struct:arity-at-least | struct:date | struct:date\\* | struct:exn | struct:exn:break | struct:exn:break:hang-up | struct:exn:break:terminate | struct:exn:fail | struct:exn:fail:contract | struct:exn:fail:contract:arity | struct:exn:fail:contract:continuation | struct:exn:fail:contract:divide-by-zero | struct:exn:fail:contract:non-fixnum-result | struct:exn:fail:contract:variable | struct:exn:fail:filesystem | struct:exn:fail:filesystem:errno | struct:exn:fail:filesystem:exists | struct:exn:fail:filesystem:missing-module | struct:exn:fail:filesystem:version | struct:exn:fail:network | struct:exn:fail:network:errno | struct:exn:fail:out-of-memory | struct:exn:fail:read | struct:exn:fail:read:eof | struct:exn:fail:read:non-char | struct:exn:fail:syntax | struct:exn:fail:syntax:missing-module | struct:exn:fail:syntax:unbound | struct:exn:fail:unsupported | struct:exn:fail:user | struct:srcloc | struct\\? | sub1 | subbytes | subprocess | subprocess-group-enabled | subprocess-kill | subprocess-pid | subprocess-status | subprocess-wait | subprocess\\? | substring | symbol->string | symbol-interned\\? | symbol-unreadable\\? | symbol<\\? | symbol\\? | sync | sync\\/enable-break | sync\\/timeout | sync\\/timeout\\/enable-break | syntax->datum | syntax->list | syntax-arm | syntax-column | syntax-debug-info | syntax-disarm | syntax-e | syntax-line | syntax-local-bind-syntaxes | syntax-local-certifier | syntax-local-context | syntax-local-expand-expression | syntax-local-get-shadower | syntax-local-identifier-as-binding | syntax-local-introduce | syntax-local-lift-context | syntax-local-lift-expression | syntax-local-lift-module | syntax-local-lift-module-end-declaration | syntax-local-lift-provide | syntax-local-lift-require | syntax-local-lift-values-expression | syntax-local-make-definition-context | syntax-local-make-delta-introducer | syntax-local-match-introduce | syntax-local-module-defined-identifiers | syntax-local-module-exports | syntax-local-module-required-identifiers | syntax-local-name | syntax-local-phase-level | syntax-local-submodules | syntax-local-transforming-module-provides\\? | syntax-local-value | syntax-local-value\\/immediate | syntax-original\\? | syntax-pattern-variable\\? | syntax-position | syntax-property | syntax-property-preserved\\? | syntax-property-symbol-keys | syntax-protect | syntax-rearm | syntax-recertify | syntax-shift-phase-level | syntax-source | syntax-source-module | syntax-span | syntax-taint | syntax-tainted\\? | syntax-track-origin | syntax-transforming-module-expression\\? | syntax-transforming-with-lifts\\? | syntax-transforming\\? | syntax\\? | system-big-endian\\? | system-idle-evt | system-language\\+country | system-library-subpath | system-path-convention-type | system-type | tan | terminal-port\\? | thread | thread-cell-ref | thread-cell-set! | thread-cell-values\\? | thread-cell\\? | thread-dead-evt | thread-dead\\? | thread-group\\? | thread-receive | thread-receive-evt | thread-resume | thread-resume-evt | thread-rewind-receive | thread-running\\? | thread-send | thread-suspend | thread-suspend-evt | thread-try-receive | thread-wait | thread\\/suspend-to-kill | thread\\? | time-apply | truncate | unbox | uncaught-exception-handler | unquoted-printing-string | unquoted-printing-string-value | unquoted-printing-string\\? | use-collection-link-paths | use-compiled-file-check | use-compiled-file-paths | use-user-specific-search-paths | values | variable-reference->empty-namespace | variable-reference->module-base-phase | variable-reference->module-declaration-inspector | variable-reference->module-path-index | variable-reference->module-source | variable-reference->namespace | variable-reference->phase | variable-reference->resolved-module-path | variable-reference-constant\\? | variable-reference\\? | vector | vector->immutable-vector | vector->list | vector->pseudo-random-generator | vector->pseudo-random-generator! | vector->values | vector-cas! | vector-copy! | vector-fill! | vector-immutable | vector-length | vector-ref | vector-set! | vector-set-performance-stats! | vector\\? | version | void | void\\? | weak-box-value | weak-box\\? | will-execute | will-executor\\? | will-register | will-try-execute | wrap-evt | write | write-byte | write-bytes | write-bytes-avail | write-bytes-avail\\* | write-bytes-avail-evt | write-bytes-avail\\/enable-break | write-char | write-special | write-special-avail\\* | write-special-evt | write-string | writeln | zero\\? | \\* | \\*list\\/c | \\+ | - | \\/ | < | <\\/c | <= | = | > | >\\/c | >= | abort-current-continuation | abs | absolute-path\\? | acos | add1 | alarm-evt | always-evt | andmap | angle | append | append\\* | append-map | argmax | argmin | arithmetic-shift | arity-at-least-value | arity-at-least\\? | arity-checking-wrapper | arity-includes\\? | arity=\\? | arrow-contract-info-accepts-arglist | arrow-contract-info-chaperone-procedure | arrow-contract-info-check-first-order | arrow-contract-info\\? | asin | assf | assoc | assq | assv | atan | banner | base->-doms\\/c | base->-rngs\\/c | base->\\? | bitwise-and | bitwise-bit-field | bitwise-bit-set\\? | bitwise-ior | bitwise-not | bitwise-xor | blame-add-car-context | blame-add-cdr-context | blame-add-missing-party | blame-add-nth-arg-context | blame-add-range-context | blame-add-unknown-context | blame-context | blame-contract | blame-fmt->-string | blame-missing-party\\? | blame-negative | blame-original\\? | blame-positive | blame-replace-negative | blame-source | blame-swap | blame-swapped\\? | blame-update | blame-value | blame\\? | boolean=\\? | boolean\\? | bound-identifier=\\? | box | box-cas! | box-immutable | box\\? | break-enabled | break-parameterization\\? | break-thread | build-chaperone-contract-property | build-compound-type-name | build-contract-property | build-flat-contract-property | build-list | build-path | build-path\\/convention-type | build-string | build-vector | byte-pregexp | byte-pregexp\\? | byte-ready\\? | byte-regexp | byte-regexp\\? | byte\\? | bytes | bytes->immutable-bytes | bytes->list | bytes->path | bytes->path-element | bytes->string\\/latin-1 | bytes->string\\/locale | bytes->string\\/utf-8 | bytes-append | bytes-append\\* | bytes-close-converter | bytes-convert | bytes-convert-end | bytes-converter\\? | bytes-copy | bytes-copy! | bytes-environment-variable-name\\? | bytes-fill! | bytes-join | bytes-length | bytes-no-nuls\\? | bytes-open-converter | bytes-ref | bytes-set! | bytes-utf-8-index | bytes-utf-8-length | bytes-utf-8-ref | bytes<\\? | bytes=\\? | bytes>\\? | bytes\\? | caaaar | caaadr | caaar | caadar | caaddr | caadr | caar | cadaar | cadadr | cadar | caddar | cadddr | caddr | cadr | call-in-nested-thread | call-with-break-parameterization | call-with-composable-continuation | call-with-continuation-barrier | call-with-continuation-prompt | call-with-current-continuation | call-with-default-reading-parameterization | call-with-escape-continuation | call-with-exception-handler | call-with-immediate-continuation-mark | call-with-input-bytes | call-with-input-string | call-with-output-bytes | call-with-output-string | call-with-parameterization | call-with-semaphore | call-with-semaphore\\/enable-break | call-with-values | call\\/cc | call\\/ec | car | cartesian-product | cdaaar | cdaadr | cdaar | cdadar | cdaddr | cdadr | cdar | cddaar | cddadr | cddar | cdddar | cddddr | cdddr | cddr | cdr | ceiling | channel-get | channel-put | channel-put-evt | channel-put-evt\\? | channel-try-get | channel\\? | chaperone-box | chaperone-channel | chaperone-continuation-mark-key | chaperone-contract-property\\? | chaperone-contract\\? | chaperone-evt | chaperone-hash | chaperone-hash-set | chaperone-of\\? | chaperone-procedure | chaperone-procedure\\* | chaperone-prompt-tag | chaperone-struct | chaperone-struct-type | chaperone-vector | chaperone-vector\\* | chaperone\\? | char->integer | char-alphabetic\\? | char-blank\\? | char-ci<=\\? | char-ci<\\? | char-ci=\\? | char-ci>=\\? | char-ci>\\? | char-downcase | char-foldcase | char-general-category | char-graphic\\? | char-in | char-iso-control\\? | char-lower-case\\? | char-numeric\\? | char-punctuation\\? | char-ready\\? | char-symbolic\\? | char-title-case\\? | char-titlecase | char-upcase | char-upper-case\\? | char-utf-8-length | char-whitespace\\? | char<=\\? | char<\\? | char=\\? | char>=\\? | char>\\? | char\\? | check-duplicate-identifier | checked-procedure-check-and-extract | choice-evt | class->interface | class-info | class-seal | class-unseal | class\\? | cleanse-path | close-input-port | close-output-port | coerce-chaperone-contract | coerce-chaperone-contracts | coerce-contract | coerce-contract\\/f | coerce-contracts | coerce-flat-contract | coerce-flat-contracts | collect-garbage | collection-file-path | collection-path | combinations | compile | compile-allow-set!-undefined | compile-context-preservation-enabled | compile-enforce-module-constants | compile-syntax | compiled-expression-recompile | compiled-expression\\? | compiled-module-expression\\? | complete-path\\? | complex\\? | compose | compose1 | conjoin | conjugate | cons | cons\\? | const | continuation-mark-key\\? | continuation-mark-set->context | continuation-mark-set->list | continuation-mark-set->list\\* | continuation-mark-set-first | continuation-mark-set\\? | continuation-marks | continuation-prompt-available\\? | continuation-prompt-tag\\? | continuation\\? | contract-continuation-mark-key | contract-custom-write-property-proc | contract-first-order | contract-first-order-passes\\? | contract-late-neg-projection | contract-name | contract-proc | contract-projection | contract-property\\? | contract-random-generate | contract-random-generate-fail | contract-random-generate-fail\\? | contract-random-generate-get-current-environment | contract-random-generate-stash | contract-random-generate\\/choose | contract-stronger\\? | contract-struct-exercise | contract-struct-generate | contract-struct-late-neg-projection | contract-struct-list-contract\\? | contract-val-first-projection | contract\\? | convert-stream | copy-file | copy-port | cos | cosh | count | current-blame-format | current-break-parameterization | current-code-inspector | current-command-line-arguments | current-compile | current-compiled-file-roots | current-continuation-marks | current-custodian | current-directory | current-directory-for-user | current-drive | current-environment-variables | current-error-port | current-eval | current-evt-pseudo-random-generator | current-force-delete-permissions | current-future | current-gc-milliseconds | current-get-interaction-input-port | current-inexact-milliseconds | current-input-port | current-inspector | current-library-collection-links | current-library-collection-paths | current-load | current-load-extension | current-load-relative-directory | current-load\\/use-compiled | current-locale | current-logger | current-memory-use | current-milliseconds | current-module-declare-name | current-module-declare-source | current-module-name-resolver | current-module-path-for-load | current-namespace | current-output-port | current-parameterization | current-plumber | current-preserved-thread-cell-values | current-print | current-process-milliseconds | current-prompt-read | current-pseudo-random-generator | current-read-interaction | current-reader-guard | current-readtable | current-seconds | current-security-guard | current-subprocess-custodian-mode | current-thread | current-thread-group | current-thread-initial-stack-size | current-write-relative-directory | curry | curryr | custodian-box-value | custodian-box\\? | custodian-limit-memory | custodian-managed-list | custodian-memory-accounting-available\\? | custodian-require-memory | custodian-shut-down\\? | custodian-shutdown-all | custodian\\? | custom-print-quotable-accessor | custom-print-quotable\\? | custom-write-accessor | custom-write-property-proc | custom-write\\? | date\\*-nanosecond | date\\*-time-zone-name | date\\*\\? | date-day | date-dst\\? | date-hour | date-minute | date-month | date-second | date-time-zone-offset | date-week-day | date-year | date-year-day | date\\? | datum->syntax | datum-intern-literal | default-continuation-prompt-tag | degrees->radians | delete-directory | delete-file | denominator | dict-iter-contract | dict-key-contract | dict-value-contract | directory-exists\\? | directory-list | disjoin | display | displayln | double-flonum\\? | drop | drop-common-prefix | drop-right | dropf | dropf-right | dump-memory-stats | dup-input-port | dup-output-port | dynamic-get-field | dynamic-object\\/c | dynamic-require | dynamic-require-for-syntax | dynamic-send | dynamic-set-field! | dynamic-wind | eighth | empty | empty-sequence | empty-stream | empty\\? | environment-variables-copy | environment-variables-names | environment-variables-ref | environment-variables-set! | environment-variables\\? | eof | eof-object\\? | ephemeron-value | ephemeron\\? | eprintf | eq-contract-val | eq-contract\\? | eq-hash-code | eq\\? | equal-contract-val | equal-contract\\? | equal-hash-code | equal-secondary-hash-code | equal<%> | equal\\? | equal\\?\\/recur | eqv-hash-code | eqv\\? | error | error-display-handler | error-escape-handler | error-print-context-length | error-print-source-location | error-print-width | error-value->string-handler | eval | eval-jit-enabled | eval-syntax | even\\? | evt\\/c | evt\\? | exact->inexact | exact-ceiling | exact-floor | exact-integer\\? | exact-nonnegative-integer\\? | exact-positive-integer\\? | exact-round | exact-truncate | exact\\? | executable-yield-handler | exit | exit-handler | exn-continuation-marks | exn-message | exn:break-continuation | exn:break:hang-up\\? | exn:break:terminate\\? | exn:break\\? | exn:fail:contract:arity\\? | exn:fail:contract:blame-object | exn:fail:contract:blame\\? | exn:fail:contract:continuation\\? | exn:fail:contract:divide-by-zero\\? | exn:fail:contract:non-fixnum-result\\? | exn:fail:contract:variable-id | exn:fail:contract:variable\\? | exn:fail:contract\\? | exn:fail:filesystem:errno-errno | exn:fail:filesystem:errno\\? | exn:fail:filesystem:exists\\? | exn:fail:filesystem:missing-module-path | exn:fail:filesystem:missing-module\\? | exn:fail:filesystem:version\\? | exn:fail:filesystem\\? | exn:fail:network:errno-errno | exn:fail:network:errno\\? | exn:fail:network\\? | exn:fail:object\\? | exn:fail:out-of-memory\\? | exn:fail:read-srclocs | exn:fail:read:eof\\? | exn:fail:read:non-char\\? | exn:fail:read\\? | exn:fail:syntax-exprs | exn:fail:syntax:missing-module-path | exn:fail:syntax:missing-module\\? | exn:fail:syntax:unbound\\? | exn:fail:syntax\\? | exn:fail:unsupported\\? | exn:fail:user\\? | exn:fail\\? | exn:misc:match\\? | exn:missing-module-accessor | exn:missing-module\\? | exn:srclocs-accessor | exn:srclocs\\? | exn\\? | exp | expand | expand-once | expand-syntax | expand-syntax-once | expand-syntax-to-top-form | expand-to-top-form | expand-user-path | explode-path | expt | externalizable<%> | failure-result\\/c | false | false\\/c | false\\? | field-names | fifth | file-exists\\? | file-name-from-path | file-or-directory-identity | file-or-directory-modify-seconds | file-or-directory-permissions | file-position | file-position\\* | file-size | file-stream-buffer-mode | file-stream-port\\? | file-truncate | filename-extension | filesystem-change-evt | filesystem-change-evt-cancel | filesystem-change-evt\\? | filesystem-root-list | filter | filter-map | filter-not | filter-read-input-port | find-executable-path | find-library-collection-links | find-library-collection-paths | find-system-path | findf | first | fixnum\\? | flat-contract | flat-contract-predicate | flat-contract-property\\? | flat-contract\\? | flat-named-contract | flatten | floating-point-bytes->real | flonum\\? | floor | flush-output | fold-files | foldl | foldr | for-each | force | format | fourth | fprintf | free-identifier=\\? | free-label-identifier=\\? | free-template-identifier=\\? | free-transformer-identifier=\\? | fsemaphore-count | fsemaphore-post | fsemaphore-try-wait\\? | fsemaphore-wait | fsemaphore\\? | future | future\\? | futures-enabled\\? | gcd | generate-member-key | generate-temporaries | generic-set\\? | generic\\? | gensym | get-output-bytes | get-output-string | get\\/build-late-neg-projection | get\\/build-val-first-projection | getenv | global-port-print-handler | group-by | group-execute-bit | group-read-bit | group-write-bit | guard-evt | handle-evt | handle-evt\\? | has-blame\\? | has-contract\\? | hash | hash->list | hash-clear | hash-clear! | hash-copy | hash-copy-clear | hash-count | hash-empty\\? | hash-eq\\? | hash-equal\\? | hash-eqv\\? | hash-for-each | hash-has-key\\? | hash-iterate-first | hash-iterate-key | hash-iterate-key\\+value | hash-iterate-next | hash-iterate-pair | hash-iterate-value | hash-keys | hash-keys-subset\\? | hash-map | hash-placeholder\\? | hash-ref | hash-ref! | hash-remove | hash-remove! | hash-set | hash-set! | hash-set\\* | hash-set\\*! | hash-update | hash-update! | hash-values | hash-weak\\? | hash\\? | hasheq | hasheqv | identifier-binding | identifier-binding-symbol | identifier-label-binding | identifier-prune-lexical-context | identifier-prune-to-source-module | identifier-remove-from-definition-context | identifier-template-binding | identifier-transformer-binding | identifier\\? | identity | if\\/c | imag-part | immutable\\? | impersonate-box | impersonate-channel | impersonate-continuation-mark-key | impersonate-hash | impersonate-hash-set | impersonate-procedure | impersonate-procedure\\* | impersonate-prompt-tag | impersonate-struct | impersonate-vector | impersonate-vector\\* | impersonator-contract\\? | impersonator-ephemeron | impersonator-of\\? | impersonator-prop:application-mark | impersonator-prop:blame | impersonator-prop:contracted | impersonator-property-accessor-procedure\\? | impersonator-property\\? | impersonator\\? | implementation\\? | implementation\\?\\/c | in-combinations | in-cycle | in-dict-pairs | in-parallel | in-permutations | in-sequences | in-values\\*-sequence | in-values-sequence | index-of | index-where | indexes-of | indexes-where | inexact->exact | inexact-real\\? | inexact\\? | infinite\\? | input-port-append | input-port\\? | inspector-superior\\? | inspector\\? | instanceof\\/c | integer->char | integer->integer-bytes | integer-bytes->integer | integer-length | integer-sqrt | integer-sqrt\\/remainder | integer\\? | interface->method-names | interface-extension\\? | interface\\? | internal-definition-context-binding-identifiers | internal-definition-context-introduce | internal-definition-context-seal | internal-definition-context\\? | is-a\\? | is-a\\?\\/c | keyword->string | keyword-apply | keyword<\\? | keyword\\? | keywords-match | kill-thread | last | last-pair | lcm | length | liberal-define-context\\? | link-exists\\? | list | list\\* | list->bytes | list->mutable-set | list->mutable-seteq | list->mutable-seteqv | list->set | list->seteq | list->seteqv | list->string | list->vector | list->weak-set | list->weak-seteq | list->weak-seteqv | list-contract\\? | list-prefix\\? | list-ref | list-set | list-tail | list-update | list\\? | listen-port-number\\? | load | load-extension | load-on-demand-enabled | load-relative | load-relative-extension | load\\/cd | load\\/use-compiled | local-expand | local-expand\\/capture-lifts | local-transformer-expand | local-transformer-expand\\/capture-lifts | locale-string-encoding | log | log-all-levels | log-level-evt | log-level\\? | log-max-level | log-message | log-receiver\\? | logger-name | logger\\? | magnitude | make-arity-at-least | make-base-empty-namespace | make-base-namespace | make-bytes | make-channel | make-chaperone-contract | make-continuation-mark-key | make-continuation-prompt-tag | make-contract | make-custodian | make-custodian-box | make-date | make-date\\* | make-derived-parameter | make-directory | make-directory\\* | make-do-sequence | make-empty-namespace | make-environment-variables | make-ephemeron | make-exn | make-exn:break | make-exn:break:hang-up | make-exn:break:terminate | make-exn:fail | make-exn:fail:contract | make-exn:fail:contract:arity | make-exn:fail:contract:blame | make-exn:fail:contract:continuation | make-exn:fail:contract:divide-by-zero | make-exn:fail:contract:non-fixnum-result | make-exn:fail:contract:variable | make-exn:fail:filesystem | make-exn:fail:filesystem:errno | make-exn:fail:filesystem:exists | make-exn:fail:filesystem:missing-module | make-exn:fail:filesystem:version | make-exn:fail:network | make-exn:fail:network:errno | make-exn:fail:object | make-exn:fail:out-of-memory | make-exn:fail:read | make-exn:fail:read:eof | make-exn:fail:read:non-char | make-exn:fail:syntax | make-exn:fail:syntax:missing-module | make-exn:fail:syntax:unbound | make-exn:fail:unsupported | make-exn:fail:user | make-file-or-directory-link | make-flat-contract | make-fsemaphore | make-generic | make-hash | make-hash-placeholder | make-hasheq | make-hasheq-placeholder | make-hasheqv | make-hasheqv-placeholder | make-immutable-hash | make-immutable-hasheq | make-immutable-hasheqv | make-impersonator-property | make-input-port | make-input-port\\/read-to-peek | make-inspector | make-keyword-procedure | make-known-char-range-list | make-limited-input-port | make-list | make-lock-file-name | make-log-receiver | make-logger | make-mixin-contract | make-none\\/c | make-output-port | make-parameter | make-parent-directory\\* | make-phantom-bytes | make-pipe | make-pipe-with-specials | make-placeholder | make-plumber | make-polar | make-prefab-struct | make-primitive-class | make-proj-contract | make-pseudo-random-generator | make-reader-graph | make-readtable | make-rectangular | make-rename-transformer | make-resolved-module-path | make-security-guard | make-semaphore | make-set!-transformer | make-shared-bytes | make-sibling-inspector | make-special-comment | make-srcloc | make-string | make-struct-field-accessor | make-struct-field-mutator | make-struct-type | make-struct-type-property | make-syntax-delta-introducer | make-syntax-introducer | make-tentative-pretty-print-output-port | make-thread-cell | make-thread-group | make-vector | make-weak-box | make-weak-hash | make-weak-hasheq | make-weak-hasheqv | make-will-executor | map | match-equality-test | matches-arity-exactly\\? | max | mcar | mcdr | mcons | member | member-name-key-hash-code | member-name-key=\\? | member-name-key\\? | memf | memq | memv | merge-input | method-in-interface\\? | min | mixin-contract | module->exports | module->imports | module->indirect-exports | module->language-info | module->namespace | module-compiled-cross-phase-persistent\\? | module-compiled-exports | module-compiled-imports | module-compiled-indirect-exports | module-compiled-language-info | module-compiled-name | module-compiled-submodules | module-declared\\? | module-path-index-join | module-path-index-resolve | module-path-index-split | module-path-index-submodule | module-path-index\\? | module-path\\? | module-predefined\\? | module-provide-protected\\? | modulo | mpair\\? | mutable-set | mutable-seteq | mutable-seteqv | n->th | nack-guard-evt | namespace-anchor->empty-namespace | namespace-anchor->namespace | namespace-anchor\\? | namespace-attach-module | namespace-attach-module-declaration | namespace-base-phase | namespace-mapped-symbols | namespace-module-identifier | namespace-module-registry | namespace-require | namespace-require\\/constant | namespace-require\\/copy | namespace-require\\/expansion-time | namespace-set-variable-value! | namespace-symbol->identifier | namespace-syntax-introduce | namespace-undefine-variable! | namespace-unprotect-module | namespace-variable-value | namespace\\? | nan\\? | natural-number\\/c | natural\\? | negate | negative-integer\\? | negative\\? | never-evt | newline | ninth | non-empty-string\\? | nonnegative-integer\\? | nonpositive-integer\\? | normal-case-path | normalize-arity | normalize-path | normalized-arity\\? | not | null | null\\? | number->string | number\\? | numerator | object% | object->vector | object-info | object-interface | object-method-arity-includes\\? | object-name | object-or-false=\\? | object=\\? | object\\? | odd\\? | open-input-bytes | open-input-string | open-output-bytes | open-output-nowhere | open-output-string | order-of-magnitude | ormap | other-execute-bit | other-read-bit | other-write-bit | output-port\\? | pair\\? | parameter-procedure=\\? | parameter\\? | parameterization\\? | parse-command-line | partition | path->bytes | path->complete-path | path->directory-path | path->string | path-add-extension | path-add-suffix | path-convention-type | path-element->bytes | path-element->string | path-element\\? | path-for-some-system\\? | path-get-extension | path-has-extension\\? | path-list-string->path-list | path-only | path-replace-extension | path-replace-suffix | path-string\\? | path<\\? | path\\? | peek-byte | peek-byte-or-special | peek-bytes | peek-bytes! | peek-bytes-avail! | peek-bytes-avail!\\* | peek-bytes-avail!\\/enable-break | peek-char | peek-char-or-special | peek-string | peek-string! | permutations | phantom-bytes\\? | pi | pi\\.f | pipe-content-length | place-break | place-channel | place-channel-get | place-channel-put | place-channel-put\\/get | place-channel\\? | place-dead-evt | place-enabled\\? | place-kill | place-location\\? | place-message-allowed\\? | place-sleep | place-wait | place\\? | placeholder-get | placeholder-set! | placeholder\\? | plumber-add-flush! | plumber-flush-all | plumber-flush-handle-remove! | plumber-flush-handle\\? | plumber\\? | poll-guard-evt | port->list | port-closed-evt | port-closed\\? | port-commit-peeked | port-count-lines! | port-count-lines-enabled | port-counts-lines\\? | port-display-handler | port-file-identity | port-file-unlock | port-next-location | port-number\\? | port-print-handler | port-progress-evt | port-provides-progress-evts\\? | port-read-handler | port-try-file-lock\\? | port-write-handler | port-writes-atomic\\? | port-writes-special\\? | port\\? | positive-integer\\? | positive\\? | predicate\\/c | prefab-key->struct-type | prefab-key\\? | prefab-struct-key | preferences-lock-file-mode | pregexp | pregexp\\? | pretty-display | pretty-print | pretty-print-\\.-symbol-without-bars | pretty-print-abbreviate-read-macros | pretty-print-columns | pretty-print-current-style-table | pretty-print-depth | pretty-print-exact-as-decimal | pretty-print-extend-style-table | pretty-print-handler | pretty-print-newline | pretty-print-post-print-hook | pretty-print-pre-print-hook | pretty-print-print-hook | pretty-print-print-line | pretty-print-remap-stylable | pretty-print-show-inexactness | pretty-print-size-hook | pretty-print-style-table\\? | pretty-printing | pretty-write | primitive-closure\\? | primitive-result-arity | primitive\\? | print | print-as-expression | print-boolean-long-form | print-box | print-graph | print-hash-table | print-mpair-curly-braces | print-pair-curly-braces | print-reader-abbreviations | print-struct | print-syntax-width | print-unreadable | print-vector-length | printable\\/c | printable<%> | printf | println | procedure->method | procedure-arity | procedure-arity-includes\\? | procedure-arity\\? | procedure-closure-contents-eq\\? | procedure-extract-target | procedure-impersonator\\*\\? | procedure-keywords | procedure-reduce-arity | procedure-reduce-keyword-arity | procedure-rename | procedure-result-arity | procedure-specialize | procedure-struct-type\\? | procedure\\? | processor-count | progress-evt\\? | promise-forced\\? | promise-running\\? | promise\\/name\\? | promise\\? | prop:arity-string | prop:arrow-contract | prop:arrow-contract-get-info | prop:arrow-contract\\? | prop:authentic | prop:blame | prop:chaperone-contract | prop:checked-procedure | prop:contract | prop:contracted | prop:custom-print-quotable | prop:custom-write | prop:dict | prop:equal\\+hash | prop:evt | prop:exn:missing-module | prop:exn:srclocs | prop:expansion-contexts | prop:flat-contract | prop:impersonator-of | prop:input-port | prop:liberal-define-context | prop:object-name | prop:opt-chaperone-contract | prop:opt-chaperone-contract-get-test | prop:opt-chaperone-contract\\? | prop:orc-contract | prop:orc-contract-get-subcontracts | prop:orc-contract\\? | prop:output-port | prop:place-location | prop:procedure | prop:recursive-contract | prop:recursive-contract-unroll | prop:recursive-contract\\? | prop:rename-transformer | prop:sequence | prop:set!-transformer | prop:stream | proper-subset\\? | pseudo-random-generator->vector | pseudo-random-generator-vector\\? | pseudo-random-generator\\? | put-preferences | putenv | quotient | quotient\\/remainder | radians->degrees | raise | raise-argument-error | raise-arguments-error | raise-arity-error | raise-contract-error | raise-mismatch-error | raise-range-error | raise-result-error | raise-syntax-error | raise-type-error | raise-user-error | random | random-seed | rational\\? | rationalize | read | read-accept-bar-quote | read-accept-box | read-accept-compiled | read-accept-dot | read-accept-graph | read-accept-infix-dot | read-accept-lang | read-accept-quasiquote | read-accept-reader | read-byte | read-byte-or-special | read-bytes | read-bytes! | read-bytes-avail! | read-bytes-avail!\\* | read-bytes-avail!\\/enable-break | read-bytes-line | read-case-sensitive | read-cdot | read-char | read-char-or-special | read-curly-brace-as-paren | read-curly-brace-with-tag | read-decimal-as-inexact | read-eval-print-loop | read-language | read-line | read-on-demand-source | read-square-bracket-as-paren | read-square-bracket-with-tag | read-string | read-string! | read-syntax | read-syntax\\/recursive | read\\/recursive | readtable-mapping | readtable\\? | real->decimal-string | real->double-flonum | real->floating-point-bytes | real->single-flonum | real-part | real\\? | reencode-input-port | reencode-output-port | regexp | regexp-match | regexp-match-exact\\? | regexp-match-peek | regexp-match-peek-immediate | regexp-match-peek-positions | regexp-match-peek-positions-immediate | regexp-match-peek-positions-immediate\\/end | regexp-match-peek-positions\\/end | regexp-match-positions | regexp-match-positions\\/end | regexp-match\\/end | regexp-match\\? | regexp-max-lookbehind | regexp-quote | regexp-replace | regexp-replace\\* | regexp-replace-quote | regexp-replaces | regexp-split | regexp-try-match | regexp\\? | relative-path\\? | remainder | remf | remf\\* | remove | remove\\* | remq | remq\\* | remv | remv\\* | rename-contract | rename-file-or-directory | rename-transformer-target | rename-transformer\\? | replace-evt | reroot-path | resolve-path | resolved-module-path-name | resolved-module-path\\? | rest | reverse | round | second | seconds->date | security-guard\\? | semaphore-peek-evt | semaphore-peek-evt\\? | semaphore-post | semaphore-try-wait\\? | semaphore-wait | semaphore-wait\\/enable-break | semaphore\\? | sequence->list | sequence->stream | sequence-add-between | sequence-andmap | sequence-append | sequence-count | sequence-filter | sequence-fold | sequence-for-each | sequence-generate | sequence-generate\\* | sequence-length | sequence-map | sequence-ormap | sequence-ref | sequence-tail | sequence\\? | set | set!-transformer-procedure | set!-transformer\\? | set->list | set->stream | set-add | set-add! | set-box! | set-clear | set-clear! | set-copy | set-copy-clear | set-count | set-empty\\? | set-eq\\? | set-equal\\? | set-eqv\\? | set-first | set-for-each | set-implements\\/c | set-implements\\? | set-intersect | set-intersect! | set-map | set-mcar! | set-mcdr! | set-member\\? | set-mutable\\? | set-phantom-bytes! | set-port-next-location! | set-remove | set-remove! | set-rest | set-subtract | set-subtract! | set-symmetric-difference | set-symmetric-difference! | set-union | set-union! | set-weak\\? | set=\\? | set\\? | seteq | seteqv | seventh | sgn | shared-bytes | shell-execute | shrink-path-wrt | shuffle | simple-form-path | simplify-path | sin | single-flonum\\? | sinh | sixth | skip-projection-wrapper\\? | sleep | some-system-path->string | special-comment-value | special-comment\\? | special-filter-input-port | split-at | split-at-right | split-common-prefix | split-path | splitf-at | splitf-at-right | sqr | sqrt | srcloc->string | srcloc-column | srcloc-line | srcloc-position | srcloc-source | srcloc-span | srcloc\\? | stop-after | stop-before | stream->list | stream-add-between | stream-andmap | stream-append | stream-count | stream-empty\\? | stream-filter | stream-first | stream-fold | stream-for-each | stream-length | stream-map | stream-ormap | stream-ref | stream-rest | stream-tail | stream\\/c | stream\\? | string | string->bytes\\/latin-1 | string->bytes\\/locale | string->bytes\\/utf-8 | string->immutable-string | string->keyword | string->list | string->number | string->path | string->path-element | string->some-system-path | string->symbol | string->uninterned-symbol | string->unreadable-symbol | string-append | string-append\\* | string-ci<=\\? | string-ci<\\? | string-ci=\\? | string-ci>=\\? | string-ci>\\? | string-contains\\? | string-copy | string-copy! | string-downcase | string-environment-variable-name\\? | string-fill! | string-foldcase | string-length | string-locale-ci<\\? | string-locale-ci=\\? | string-locale-ci>\\? | string-locale-downcase | string-locale-upcase | string-locale<\\? | string-locale=\\? | string-locale>\\? | string-no-nuls\\? | string-normalize-nfc | string-normalize-nfd | string-normalize-nfkc | string-normalize-nfkd | string-port\\? | string-prefix\\? | string-ref | string-set! | string-suffix\\? | string-titlecase | string-upcase | string-utf-8-length | string<=\\? | string<\\? | string=\\? | string>=\\? | string>\\? | string\\? | struct->vector | struct-accessor-procedure\\? | struct-constructor-procedure\\? | struct-info | struct-mutator-procedure\\? | struct-predicate-procedure\\? | struct-type-info | struct-type-make-constructor | struct-type-make-predicate | struct-type-property-accessor-procedure\\? | struct-type-property\\/c | struct-type-property\\? | struct-type\\? | struct:arity-at-least | struct:arrow-contract-info | struct:date | struct:date\\* | struct:exn | struct:exn:break | struct:exn:break:hang-up | struct:exn:break:terminate | struct:exn:fail | struct:exn:fail:contract | struct:exn:fail:contract:arity | struct:exn:fail:contract:blame | struct:exn:fail:contract:continuation | struct:exn:fail:contract:divide-by-zero | struct:exn:fail:contract:non-fixnum-result | struct:exn:fail:contract:variable | struct:exn:fail:filesystem | struct:exn:fail:filesystem:errno | struct:exn:fail:filesystem:exists | struct:exn:fail:filesystem:missing-module | struct:exn:fail:filesystem:version | struct:exn:fail:network | struct:exn:fail:network:errno | struct:exn:fail:object | struct:exn:fail:out-of-memory | struct:exn:fail:read | struct:exn:fail:read:eof | struct:exn:fail:read:non-char | struct:exn:fail:syntax | struct:exn:fail:syntax:missing-module | struct:exn:fail:syntax:unbound | struct:exn:fail:unsupported | struct:exn:fail:user | struct:srcloc | struct:wrapped-extra-arg-arrow | struct\\? | sub1 | subbytes | subclass\\? | subclass\\?\\/c | subprocess | subprocess-group-enabled | subprocess-kill | subprocess-pid | subprocess-status | subprocess-wait | subprocess\\? | subset\\? | substring | suggest\\/c | symbol->string | symbol-interned\\? | symbol-unreadable\\? | symbol<\\? | symbol=\\? | symbol\\? | sync | sync\\/enable-break | sync\\/timeout | sync\\/timeout\\/enable-break | syntax->datum | syntax->list | syntax-arm | syntax-column | syntax-debug-info | syntax-disarm | syntax-e | syntax-line | syntax-local-bind-syntaxes | syntax-local-certifier | syntax-local-context | syntax-local-expand-expression | syntax-local-get-shadower | syntax-local-identifier-as-binding | syntax-local-introduce | syntax-local-lift-context | syntax-local-lift-expression | syntax-local-lift-module | syntax-local-lift-module-end-declaration | syntax-local-lift-provide | syntax-local-lift-require | syntax-local-lift-values-expression | syntax-local-make-definition-context | syntax-local-make-delta-introducer | syntax-local-module-defined-identifiers | syntax-local-module-exports | syntax-local-module-required-identifiers | syntax-local-name | syntax-local-phase-level | syntax-local-submodules | syntax-local-transforming-module-provides\\? | syntax-local-value | syntax-local-value\\/immediate | syntax-original\\? | syntax-position | syntax-property | syntax-property-preserved\\? | syntax-property-symbol-keys | syntax-protect | syntax-rearm | syntax-recertify | syntax-shift-phase-level | syntax-source | syntax-source-module | syntax-span | syntax-taint | syntax-tainted\\? | syntax-track-origin | syntax-transforming-module-expression\\? | syntax-transforming-with-lifts\\? | syntax-transforming\\? | syntax\\? | system-big-endian\\? | system-idle-evt | system-language\\+country | system-library-subpath | system-path-convention-type | system-type | tail-marks-match\\? | take | take-common-prefix | take-right | takef | takef-right | tan | tanh | tcp-abandon-port | tcp-accept | tcp-accept-evt | tcp-accept-ready\\? | tcp-accept\\/enable-break | tcp-addresses | tcp-close | tcp-connect | tcp-connect\\/enable-break | tcp-listen | tcp-listener\\? | tcp-port\\? | tentative-pretty-print-port-cancel | tentative-pretty-print-port-transfer | tenth | terminal-port\\? | the-unsupplied-arg | third | thread | thread-cell-ref | thread-cell-set! | thread-cell-values\\? | thread-cell\\? | thread-dead-evt | thread-dead\\? | thread-group\\? | thread-receive | thread-receive-evt | thread-resume | thread-resume-evt | thread-rewind-receive | thread-running\\? | thread-send | thread-suspend | thread-suspend-evt | thread-try-receive | thread-wait | thread\\/suspend-to-kill | thread\\? | time-apply | touch | true | truncate | udp-addresses | udp-bind! | udp-bound\\? | udp-close | udp-connect! | udp-connected\\? | udp-multicast-interface | udp-multicast-join-group! | udp-multicast-leave-group! | udp-multicast-loopback\\? | udp-multicast-set-interface! | udp-multicast-set-loopback! | udp-multicast-set-ttl! | udp-multicast-ttl | udp-open-socket | udp-receive! | udp-receive!\\* | udp-receive!-evt | udp-receive!\\/enable-break | udp-receive-ready-evt | udp-send | udp-send\\* | udp-send-evt | udp-send-ready-evt | udp-send-to | udp-send-to\\* | udp-send-to-evt | udp-send-to\\/enable-break | udp-send\\/enable-break | udp\\? | unbox | uncaught-exception-handler | unit\\? | unquoted-printing-string | unquoted-printing-string-value | unquoted-printing-string\\? | unspecified-dom | unsupplied-arg\\? | use-collection-link-paths | use-compiled-file-check | use-compiled-file-paths | use-user-specific-search-paths | user-execute-bit | user-read-bit | user-write-bit | value-blame | value-contract | values | variable-reference->empty-namespace | variable-reference->module-base-phase | variable-reference->module-declaration-inspector | variable-reference->module-path-index | variable-reference->module-source | variable-reference->namespace | variable-reference->phase | variable-reference->resolved-module-path | variable-reference-constant\\? | variable-reference\\? | vector | vector->immutable-vector | vector->list | vector->pseudo-random-generator | vector->pseudo-random-generator! | vector->values | vector-append | vector-argmax | vector-argmin | vector-cas! | vector-copy | vector-copy! | vector-count | vector-drop | vector-drop-right | vector-fill! | vector-filter | vector-filter-not | vector-immutable | vector-length | vector-map | vector-map! | vector-member | vector-memq | vector-memv | vector-ref | vector-set! | vector-set\\*! | vector-set-performance-stats! | vector-split-at | vector-split-at-right | vector-take | vector-take-right | vector\\? | version | void | void\\? | weak-box-value | weak-box\\? | weak-set | weak-seteq | weak-seteqv | will-execute | will-executor\\? | will-register | will-try-execute | with-input-from-bytes | with-input-from-string | with-output-to-bytes | with-output-to-string | would-be-future | wrap-evt | wrapped-extra-arg-arrow-extra-neg-party-argument | wrapped-extra-arg-arrow-real-func | wrapped-extra-arg-arrow\\? | writable<%> | write | write-byte | write-bytes | write-bytes-avail | write-bytes-avail\\* | write-bytes-avail-evt | write-bytes-avail\\/enable-break | write-char | write-special | write-special-avail\\* | write-special-evt | write-string | writeln | xor | zero\\? +) (?=$|[()\\[\\]{}",'\`;\\s])`}]},"byte-string":{patterns:[{begin:'#"',beginCaptures:{0:[{name:"punctuation.definition.string.begin.racket"}]},end:'"',endCaptures:{0:[{name:"punctuation.definition.string.end.racket"}]},name:"string.byte.racket",patterns:[{include:"#escape-char-base"}]}]},character:{patterns:[{match:`(?x) \\#\\\\ +(?: +(?: [0-7]{3}) | +(?: u[0-9a-fA-F]{1,4}) | +(?: U[0-9a-fA-F]{1,6}) | +(?: +(?: +null? | newline | linefeed | backspace | vtab | page | +return | space | rubout | (?: [^\\w\\s] | \\d) +) +(?![a-zA-Z]) +) | +(?: [^\\W\\d](?=[\\W\\d]) | \\W ) +) +`,name:"constant.character.racket"}]},comment:{patterns:[{include:"#comment-line"},{include:"#comment-block"},{include:"#comment-sexp"}]},"comment-block":{patterns:[{begin:"#\\|",beginCaptures:{0:{name:"punctuation.definition.comment.begin.racket"}},end:"\\|#",endCaptures:{0:{name:"punctuation.definition.comment.end.racket"}},name:"comment.block.racket",patterns:[{include:"#comment-block"}]}]},"comment-line":{patterns:[{beginCaptures:{1:{name:"punctuation.definition.comment.racket"}},match:"(#!)[ /].*$",name:"comment.line.unix.racket"},{captures:{1:{name:"punctuation.definition.comment.racket"}},match:"(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) (;) .* $",name:"comment.line.semicolon.racket"}]},"comment-sexp":{patterns:[{match:"(?<=^|[()\\[\\]{}\",'`;\\s])#;",name:"comment.sexp.racket"}]},"default-args":{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#default-args-content"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#default-args-content"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#default-args-content"}]}]},"default-args-content":{patterns:[{include:"#comment"},{include:"#argument"},{include:"$base"}]},"default-args-struct":{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#default-args-struct-content"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#default-args-struct-content"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#default-args-struct-content"}]}]},"default-args-struct-content":{patterns:[{include:"#comment"},{include:"#argument-struct"},{include:"$base"}]},define:{patterns:[{include:"#define-func"},{include:"#define-vals"},{include:"#define-val"}]},"define-func":{patterns:[{begin:`(?x) (?<=[(\\[{]) \\s* +(define (?: (?: -for)?-syntax)?) \\s* +(\\() +`,beginCaptures:{1:{name:"storage.type.lambda.racket"},2:{name:"punctuation.section.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#func-args"}]},{begin:`(?x) (?<=[(\\[{]) \\s* +(define (?: (?: -for)?-syntax)?) \\s* +(\\[) +`,beginCaptures:{1:{name:"storage.type.lambda.racket"},2:{name:"punctuation.section.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#func-args"}]},{begin:`(?x) (?<=[(\\[{]) \\s* +(define (?: (?: -for)?-syntax)?) \\s* +({) +`,beginCaptures:{1:{name:"storage.type.lambda.racket"},2:{name:"punctuation.section.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#func-args"}]}]},"define-val":{patterns:[{captures:{1:{name:"storage.type.racket"},2:{name:"entity.name.constant.racket"}},match:`(?x) (?<=[(\\[{]) \\s* +(define(?: (?: -for)?-syntax)?) \\s+ +([^(\\#)\\[\\]{}",'\`;\\s][^()\\[\\]{}",'\`;\\s]*) +`}]},"define-vals":{patterns:[{begin:`(?x) (?<=[(\\[{]) \\s* +(define-(?: values(?: -for-syntax)? | syntaxes)?) \\s* +(\\() +`,beginCaptures:{1:{name:"storage.type.racket"},2:{name:"punctuation.section.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{match:"[^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*",name:"entity.name.constant"}]},{begin:`(?x) (?<=[(\\[{]) \\s* +(define-(?: values(?: -for-syntax)? | syntaxes)?) \\s* +(\\[) +`,beginCaptures:{1:{name:"storage.type.racket"},2:{name:"punctuation.section.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{match:"[^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*",name:"entity.name.constant"}]},{begin:`(?x) (?<=[(\\[{]) \\s* +(define-(?: values(?: -for-syntax)? | syntaxes)?) \\s* +({) +`,beginCaptures:{1:{name:"storage.type.racket"},2:{name:"punctuation.section.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{match:"[^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*",name:"entity.name.constant"}]}]},dot:{patterns:[{match:"(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) \\. (?=$|[()\\[\\]{}\",'`;\\s])",name:"punctuation.accessor.racket"}]},"escape-char":{patterns:[{include:"#escape-char-base"},{match:`(?x) \\\\ +(?: +(?: u[\\da-fA-F]{1,4}) | +(?: U[\\da-fA-F]{1,8}) +) +`,name:"constant.character.escape.racket"},{include:"#escape-char-error"}]},"escape-char-base":{patterns:[{match:`(?x) \\\\ +(?: +(?: [abtnvfre"'\\\\]) | +(?: [0-7]{1,3}) | +(?: x[\\da-fA-F]{1,2}) +) +`,name:"constant.character.escape.racket"}]},"escape-char-error":{patterns:[{match:"\\\\.",name:"invalid.illegal.escape.racket"}]},format:{patterns:[{begin:`(?x) (?<=[(\\[{]) \\s* +(e?printf | format) \\s* +(") +`,beginCaptures:{1:{name:"support.function.racket"},2:{name:"string.quoted.double.racket"}},contentName:"string.quoted.double.racket",end:'"',endCaptures:{0:{name:"string.quoted.double.racket"}},patterns:[{include:"#format-string"},{include:"#escape-char"}]}]},"format-string":{patterns:[{match:`(?x) ~ +(?: +(?: \\.?[n%aAsSvV]) | +[cCbBoOxX~\\s] +) +`,name:"constant.other.placeholder.racket"}]},"func-args":{patterns:[{include:"#function-name"},{include:"#dot"},{include:"#comment"},{include:"#args"}]},"function-name":{patterns:[{begin:"(?x) (?<=[(\\[{]) \\s* (\\|)",beginCaptures:{1:{name:"punctuation.verbatim.begin.racket"}},contentName:"entity.name.function.racket",end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"},name:"entity.name.function.racket"},{begin:`(?x) (?<=[(\\[{]) \\s* +(\\#% | \\\\\\ | [^\\#()\\[\\]{}",'\`;\\s]) +`,beginCaptures:{1:{name:"entity.name.function.racket"}},contentName:"entity.name.function.racket",end:"(?=[()\\[\\]{}\",'`;\\s])",patterns:[{match:"\\\\ "},{begin:"\\|",beginCaptures:{0:"punctuation.verbatim.begin.racket"},end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"}}]}]},hash:{patterns:[{begin:"(?x) \\# hash(?: eq(?: v)?)? \\(",beginCaptures:{0:{name:"punctuation.section.hash.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.hash.end.racket"}},name:"meta.hash.racket",patterns:[{include:"#hash-content"}]},{begin:"(?x) \\# hash(?: eq(?: v)?)? \\[",beginCaptures:{0:{name:"punctuation.section.hash.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.hash.end.racket"}},name:"meta.hash.racket",patterns:[{include:"#hash-content"}]},{begin:"(?x) \\# hash(?: eq(?: v)?)? \\{",beginCaptures:{0:{name:"punctuation.section.hash.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.hash.end.racket"}},name:"meta.hash.racket",patterns:[{include:"#hash-content"}]}]},"hash-content":{patterns:[{include:"#comment"},{include:"#pairing"}]},"here-string":{patterns:[{begin:"#<<(.*)$",end:"^\\1$",name:"string.here.racket"}]},keyword:{patterns:[{match:`(?x) (?<=^|[()\\[\\]{}",'\`;\\s]) \\#: [^()\\[\\]{}",'\`;\\s]+ +`,name:"keyword.other.racket"}]},lambda:{patterns:[{include:"#lambda-onearg"},{include:"#lambda-args"}]},"lambda-args":{patterns:[{begin:`(?x) (?<=[(\\[{]) \\s* +(lambda | λ) \\s+ +(\\() +`,beginCaptures:{1:{name:"storage.type.lambda.racket"},2:{name:"punctuation.section.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.end.racket"}},name:"meta.lambda.racket",patterns:[{include:"#args"}]},{begin:`(?x) (?<=[(\\[{]) \\s* +(lambda | λ) \\s+ +({) +`,beginCaptures:{1:{name:"storage.type.lambda.racket"},2:{name:"punctuation.section.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.end.racket"}},name:"meta.lambda.racket",patterns:[{include:"#args"}]},{begin:`(?x) (?<=[(\\[{]) \\s* +(lambda | λ) \\s+ +(\\[) +`,beginCaptures:{1:{name:"storage.type.lambda.racket"},2:{name:"punctuation.section.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.end.racket"}},name:"meta.lambda.racket",patterns:[{include:"#args"}]}]},"lambda-onearg":[{captures:{1:{name:"storage.type.lambda.racket"},2:{name:"variable.parameter.racket"}},match:`(?x) (?<=[(\\[{]) \\s* +(lambda | λ) \\s+ +([^(\\#)\\[\\]{}",'\`;\\s][^()\\[\\]{}",'\`;\\s]*) +`,name:"meta.lambda.racket"}],list:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.list.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.list.end.racket"}},name:"meta.list.racket",patterns:[{include:"#list-content"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.list.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.list.end.racket"}},name:"meta.list.racket",patterns:[{include:"#list-content"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.list.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.list.end.racket"}},name:"meta.list.racket",patterns:[{include:"#list-content"}]}]},"list-content":{patterns:[{include:"#builtin-functions"},{include:"#dot"},{include:"$base"}]},"not-atom":{patterns:[{include:"#vector"},{include:"#hash"},{include:"#prefab-struct"},{include:"#list"},{match:`(?x) (?<=^|[()\\[\\]{}\\",'\`;\\s]) +(?: \\#[cC][iI] | \\#[cC][sS]) +(?=\\s) +`,name:"keyword.control.racket"},{match:`(?x) (?<=^|[()\\[\\]{}\\",'\`;\\s]) +(?: \\#&) +`,name:"support.function.racket"}]},number:{patterns:[{include:"#number-dec"},{include:"#number-oct"},{include:"#number-bin"},{include:"#number-hex"}]},"number-bin":{patterns:[{match:`(?x) +(?<=^|[()\\[\\]{}",'\`;\\s]) +(?: \\#[bB](?: \\#[eEiI])? | (?: \\#[eEiI])?\\#[bB]) +(?: +(?: +(?: +(?: +(?: +(?: [+-]? [01]+ \\#* \\/ [01]+ \\#*)| +(?: [+-]? [01]+ \\. [01]+ \\#*) | +(?: [+-]? [01]+ \\#* \\. \\#*) | +(?: [+-]? [01]+ \\#*) +) (?: [sldefSLDEF] [+-]? [01]+)? +) | +[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) +) @ +(?: +(?: +(?: +(?: [+-]? [01]+ \\#* \\/ [01]+ \\#*)| +(?: [+-]? [01]+ \\. [01]+ \\#*) | +(?: [+-]? [01]+ \\#* \\. \\#*) | +(?: [+-]? [01]+ \\#*) +) (?: [sldefSLDEF] [+-]? [01]+)? +) | +(?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) +) +) | +(?: +(?: +(?: +(?: +(?: [+-]? [01]+ \\#* \\/ [01]+ \\#*)| +(?: [+-]? [01]+ \\. [01]+ \\#*) | +(?: [+-]? [01]+ \\#* \\. \\#*) | +(?: [+-]? [01]+ \\#*) +) (?: [sldefSLDEF] [+-]? [01]+)? +) | +[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) +)? [+-] +(?: +(?: +(?: +(?: [+-]? [01]+ \\#* \\/ [01]+ \\#*)| +(?: [+-]? [01]+ \\. [01]+ \\#*) | +(?: [+-]? [01]+ \\#* \\. \\#*) | +(?: [+-]? [01]+ \\#*) +) (?: [sldefSLDEF] [+-]? [01]+)? +) | +(?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) | +) i +) | +[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) | +(?: +(?: [+-]? [01]+ \\#* \\/ [01]+ \\#*)| +(?: [+-]? [01]* \\. [01]+ \\#*) | +(?: [+-]? [01]+ \\#* \\. \\#*) | +(?: [+-]? [01]+ \\#*) +) (?: [sldefSLDEF] [+-]? [01]+)? +) (?=$|[()\\[\\]{}",'\`;\\s]) +`,name:"constant.numeric.bin.racket"}]},"number-dec":{patterns:[{match:`(?x) +(?<=^|[()\\[\\]{}",'\`;\\s]) +(?: (?: \\#[dD])?(?: \\#[eEiI])? | (?: \\#[eEiI])?(?: \\#[dD])?) +(?: +(?: +(?: +(?: +(?: +(?: [+-]? \\d+ \\#* \\/ \\d+ \\#*)| +(?: [+-]? \\d+ \\. \\d+ \\#*) | +(?: [+-]? \\d+ \\#* \\. \\#*) | +(?: [+-]? \\d+ \\#*) +) (?: [sldefSLDEF] [+-]? \\d+)? +) | +[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) +) @ +(?: +(?: +(?: +(?: [+-]? \\d+ \\#* \\/ \\d+ \\#*)| +(?: [+-]? \\d+ \\. \\d+ \\#*) | +(?: [+-]? \\d+ \\#* \\. \\#*) | +(?: [+-]? \\d+ \\#*) +) (?: [sldefSLDEF] [+-]? \\d+)? +) | +[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) +) +) | +(?: +(?: +(?: +(?: +(?: [+-]? \\d+ \\#* \\/ \\d+ \\#*)| +(?: [+-]? \\d+ \\. \\d+ \\#*) | +(?: [+-]? \\d+ \\#* \\. \\#*) | +(?: [+-]? \\d+ \\#*) +) (?: [sldefSLDEF] [+-]? \\d+)? +) | +[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) +)? [+-] +(?: +(?: +(?: +(?: [+-]? \\d+ \\#* \\/ \\d+ \\#*)| +(?: [+-]? \\d+ \\. \\d+ \\#*) | +(?: [+-]? \\d+ \\#* \\. \\#*) | +(?: [+-]? \\d+ \\#*) +) (?: [sldefSLDEF] [+-]? \\d+)? +) | +(?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) | +) i +) | +[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) | +(?: +(?: [+-]? \\d+ \\#* \\/ \\d+ \\#*)| +(?: [+-]? \\d* \\. \\d+ \\#*) | +(?: [+-]? \\d+ \\#* \\. \\#*) | +(?: [+-]? \\d+ \\#*) +) (?: [sldefSLDEF] [+-]? \\d+)? +) (?=$|[()\\[\\]{}",'\`;\\s]) +`,name:"constant.numeric.racket"}]},"number-hex":{patterns:[{match:`(?x) +(?<=^|[()\\[\\]{}",'\`;\\s]) +(?: \\#[xX](?: \\#[eEiI])? | (?: \\#[eEiI])?\\#[xX]) +(?: +(?: +(?: +(?: +(?: +(?: [+-]? [0-9a-fA-F]+ \\#* \\/ [0-9a-fA-F]+ \\#*)| +(?: [+-]? [0-9a-fA-F] \\. [0-9a-fA-F]+ \\#*) | +(?: [+-]? [0-9a-fA-F]+ \\#* \\. \\#*) | +(?: [+-]? [0-9a-fA-F]+ \\#*) +) (?: [slSL] [+-]? [0-9a-fA-F]+)? +) | +[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) +) @ +(?: +(?: +(?: +(?: [+-]? [0-9a-fA-F]+ \\#* \\/ [0-9a-fA-F]+ \\#*)| +(?: [+-]? [0-9a-fA-F]+ \\. [0-9a-fA-F]+ \\#*) | +(?: [+-]? [0-9a-fA-F]+ \\#* \\. \\#*) | +(?: [+-]? [0-9a-fA-F]+ \\#*) +) (?: [slSL] [+-]? [0-9a-fA-F]+)? +) | +(?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) +) +) | +(?: +(?: +(?: +(?: +(?: [+-]? [0-9a-fA-F]+ \\#* \\/ [0-9a-fA-F]+ \\#*)| +(?: [+-]? [0-9a-fA-F]+ \\. [0-9a-fA-F]+ \\#*) | +(?: [+-]? [0-9a-fA-F]+ \\#* \\. \\#*) | +(?: [+-]? [0-9a-fA-F]+ \\#*) +) (?: [slSL] [+-]? [0-9a-fA-F]+)? +) | +[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) +)? [+-] +(?: +(?: +(?: +(?: [+-]? [0-9a-fA-F]+ \\#* \\/ [0-9a-fA-F]+ \\#*)| +(?: [+-]? [0-9a-fA-F]+ \\. [0-9a-fA-F]+ \\#*) | +(?: [+-]? [0-9a-fA-F]+ \\#* \\. \\#*) | +(?: [+-]? [0-9a-fA-F]+ \\#*) +) (?: [slSL] [+-]? [0-9a-fA-F]+)? +) | +(?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) | +) i +) | +[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) | +(?: +(?: [+-]? [0-9a-fA-F]+ \\#* \\/ [0-9a-fA-F]+ \\#*)| +(?: [+-]? [0-9a-fA-F]* \\. [0-9a-fA-F]+ \\#*) | +(?: [+-]? [0-9a-fA-F]+ \\#* \\. \\#*) | +(?: [+-]? [0-9a-fA-F]+ \\#*) +) (?: [slSL] [+-]? [0-9a-fA-F]+)? +) (?=$|[()\\[\\]{}",'\`;\\s]) +`,name:"constant.numeric.hex.racket"}]},"number-oct":{patterns:[{match:`(?x) +(?<=^|[()\\[\\]{}",'\`;\\s]) +(?: \\#[oO](?: \\#[eEiI])? | (?: \\#[eEiI])?\\#[oO]) +(?: +(?: +(?: +(?: +(?: +(?: [+-]? [0-7]+ \\#* \\/ [0-7]+ \\#*)| +(?: [+-]? [0-7]+ \\. [0-7]+ \\#*) | +(?: [+-]? [0-7]+ \\#* \\. \\#*) | +(?: [+-]? [0-7]+ \\#*) +) (?: [sldefSLDEF] [+-]? [0-7]+)? +) | +[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) +) @ +(?: +(?: +(?: +(?: [+-]? [0-7]+ \\#* \\/ [0-7]+ \\#*)| +(?: [+-]? [0-7]+ \\. [0-7]+ \\#*) | +(?: [+-]? [0-7]+ \\#* \\. \\#*) | +(?: [+-]? [0-7]+ \\#*) +) (?: [sldefSLDEF] [+-]? [0-7]+)? +) | +[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) +) +) | +(?: +(?: +(?: +(?: +(?: [+-]? [0-7]+ \\#* \\/ [0-7]+ \\#*)| +(?: [+-]? [0-7]+ \\. [0-7]+ \\#*) | +(?: [+-]? [0-7]+ \\#* \\. \\#*) | +(?: [+-]? [0-7]+ \\#*) +) (?: [sldefSLDEF] [+-]? [0-7]+)? +) | +[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) +)? [+-] +(?: +(?: +(?: +(?: [+-]? [0-7]+ \\#* \\/ [0-7]+ \\#*)| +(?: [+-]? [0-7]+ \\. [0-7]+ \\#*) | +(?: [+-]? [0-7]+ \\#* \\. \\#*) | +(?: [+-]? [0-7]+ \\#*) +) (?: [sldefSLDEF] [+-]? [0-7]+)? +) | +(?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) | +) i +) | +[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) | +(?: +(?: [+-]? [0-7]+ \\#* \\/ [0-7]+ \\#*)| +(?: [+-]? [0-7]* \\. [0-7]+ \\#*) | +(?: [+-]? [0-7]+ \\#* \\. \\#*) | +(?: [+-]? [0-7]+ \\#*) +) (?: [sldefSLDEF] [+-]? [0-7]+)? +) (?=$|[()\\[\\]{}",'\`;\\s]) +`,name:"constant.numeric.octal.racket"}]},"pair-content":{patterns:[{include:"#dot"},{include:"#comment"},{include:"#atom"}]},pairing:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.pair.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.pair.end.racket"}},name:"meta.list.racket",patterns:[{include:"#pair-content"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.pair.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.pair.end.racket"}},name:"meta.list.racket",patterns:[{include:"#pair-content"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.pair.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.pair.end.racket"}},name:"meta.list.racket",patterns:[{include:"#pair-content"}]}]},"prefab-struct":{patterns:[{begin:"#s\\(",beginCaptures:{0:{name:"punctuation.section.prefab-struct.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.prefab-struct.end.racket"}},name:"meta.prefab-struct.racket",patterns:[{include:"$base"}]},{begin:"#s\\[",beginCaptures:{0:{name:"punctuation.section.prefab-struct.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.prefab-struct.end.racket"}},name:"meta.prefab-struct.racket",patterns:[{include:"$base"}]},{begin:"#s{",beginCaptures:{0:{name:"punctuation.section.prefab-struct.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.prefab-struct.end.racket"}},name:"meta.prefab-struct.racket",patterns:[{include:"$base"}]}]},quote:{patterns:[{match:`(?x) (?<=^|[()\\[\\]{}\\",'\`;\\s]) +(?: ,@ | ' | \` | , | \\#' | \\#\` | \\#, | \\#~ | \\#,@)+ +(?=[()\\[\\]{}\\",'\`;\\s] | \\#[^%] | [^()\\[\\]{}",'\`;\\s] ) +`,name:"support.function.racket"}]},"regexp-byte-string":{patterns:[{begin:'#(r|p)x#"',beginCaptures:{0:[{name:"punctuation.definition.string.begin.racket"}]},end:'"',endCaptures:{0:[{name:"punctuation.definition.string.end.racket"}]},name:"string.regexp.byte.racket",patterns:[{include:"#escape-char-base"}]}]},"regexp-string":{patterns:[{begin:'#(r|p)x"',beginCaptures:{0:[{name:"punctuation.definition.string.begin.racket"}]},end:'"',endCaptures:{0:[{name:"punctuation.definition.string.end.racket"}]},name:"string.regexp.racket",patterns:[{include:"#escape-char-base"}]}]},string:{patterns:[{include:"#byte-string"},{include:"#regexp-byte-string"},{include:"#regexp-string"},{include:"#base-string"},{include:"#here-string"}]},struct:{patterns:[{begin:`(?x) (?<=[(\\[{]) \\s* +(struct) \\s+ +([^(\\#)\\[\\]{}",'\`;\\s][^()\\[\\]{}",'\`;\\s]*) +(?: \\s+ [^(\\#)\\[\\]{}",'\`;\\s][^()\\[\\]{}",'\`;\\s]*)? \\s* +(\\() +`,beginCaptures:{1:{name:"storage.struct.racket"},2:{name:"entity.name.struct.racket"},3:{name:"punctuation.section.fields.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.fields.end.racket"}},name:"meta.struct.fields.racket",patterns:[{include:"#comment"},{include:"#default-args-struct"},{include:"#struct-field"}]},{begin:`(?x) (?<=[(\\[{]) \\s* +(struct) \\s+ +([^(\\#)\\[\\]{}",'\`;\\s][^()\\[\\]{}",'\`;\\s]*) +(?: \\s+ [^(\\#)\\[\\]{}",'\`;\\s][^()\\[\\]{}",'\`;\\s]*)? \\s* +(\\[) +`,beginCaptures:{1:{name:"storage.struct.racket"},2:{name:"entity.name.struct.racket"},3:{name:"punctuation.section.fields.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.fields.end.racket"}},name:"meta.struct.fields.racket",patterns:[{include:"#default-args-struct"},{include:"#struct-field"}]},{begin:`(?x) (?<=[(\\[{]) \\s* +(struct) \\s+ +([^(\\#)\\[\\]{}",'\`;\\s][^()\\[\\]{}",'\`;\\s]*) +(?: \\s+ [^(\\#)\\[\\]{}",'\`;\\s][^()\\[\\]{}",'\`;\\s]*)? \\s* +(\\{) +`,beginCaptures:{1:{name:"storage.struct.racket"},2:{name:"entity.name.struct.racket"},3:{name:"punctuation.section.fields.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.fields.end.racket"}},name:"meta.struct.fields.racket",patterns:[{include:"#default-args-struct"},{include:"#struct-field"}]}]},"struct-field":{patterns:[{begin:"(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) (\\|)",beginCaptures:{1:{name:"punctuation.verbatim.begin.racket"}},contentName:"variable.other.member.racket",end:"\\|",endCaptures:{0:{name:"punctuation.verbatim.end.racket"}}},{begin:`(?x) (?<=^|[()\\[\\]{}",'\`;\\s]) +(\\#% | \\\\\\ | [^\\#()\\[\\]{}",'\`;\\s]) +`,beginCaptures:{1:{name:"variable.other.member.racket"}},contentName:"variable.other.member.racket",end:"(?=[()\\[\\]{}\",'`;\\s])",patterns:[{match:"\\\\ "},{begin:"\\|",beginCaptures:{0:{name:"punctuation.verbatim.begin.racket"}},end:"\\|",endCaptures:{0:{name:"punctuation.verbatim.end.racket"}}}]}]},symbol:{patterns:[{begin:`(?x) (?<=^|[()\\[\\]{}",;\\s]) (?: \` | ' )+(\\|) +`,beginCaptures:{1:{name:"punctuation.verbatim.begin.racket"}},end:"\\|",endCaptures:{0:{name:"punctuation.verbatim.end.racket"}},name:"string.quoted.single.racket"},{begin:`(?x) (?<=^|[()\\[\\]{}",;\\s]) (?: \` | ' )+ +(?: \\#% | \\\\\\ | [^\\#()\\[\\]{}",'\`;\\s]) +`,end:"(?=[()\\[\\]{}\",'`;\\s])",name:"string.quoted.single.racket",patterns:[{match:"\\\\ "},{begin:"\\|",beginCaptures:{0:{name:"punctuation.verbatim.begin.racket"}},end:"\\|",endCaptures:{0:{name:"punctuation.verbatim.end.racket"}}}]}]},variable:{patterns:[{begin:"(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) (\\|)",beginCaptures:{1:{name:"punctuation.verbatim.begin.racket"}},end:"\\|",endCaptures:{0:{name:"punctuation.verbatim.end.racket"}}},{begin:`(?x) (?<=^|[()\\[\\]{}",'\`;\\s]) +(?: \\#% | \\\\\\ | [^\\#()\\[\\]{}",'\`;\\s]) +`,end:"(?=[()\\[\\]{}\",'`;\\s])",patterns:[{match:"\\\\ "},{begin:"\\|",beginCaptures:{0:{name:"punctuation.verbatim.begin.racket"}},end:"\\|",endCaptures:{0:{name:"punctuation.verbatim.end.racket"}}}]}]},vector:{patterns:[{begin:"(?x) \\# (?: fl | Fl | fx | Fx)? [0-9]* \\(",beginCaptures:{0:{name:"punctuation.section.vector.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.vector.end.racket"}},name:"meta.vector.racket",patterns:[{include:"$base"}]},{begin:"(?x) \\# (?: fl | Fl | fx | Fx)? [0-9]* \\[",beginCaptures:{0:{name:"punctuation.section.vector.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.vector.end.racket"}},name:"meta.vector.racket",patterns:[{include:"$base"}]},{begin:"(?x) \\# (?: fl | Fl | fx | Fx)? [0-9]* {",beginCaptures:{0:{name:"punctuation.section.vector.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.vector.end.racket"}},name:"meta.vector.racket",patterns:[{include:"$base"}]}]}},scopeName:"source.racket"});var t=[e];export{t as default}; diff --git a/assets/chunks/raku.D384ylkT.js b/assets/chunks/raku.D384ylkT.js new file mode 100644 index 000000000..97fbf18aa --- /dev/null +++ b/assets/chunks/raku.D384ylkT.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Raku",name:"raku",patterns:[{begin:"^=begin",end:"^=end",name:"comment.block.perl"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.perl"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.perl"}},end:"\\n",name:"comment.line.number-sign.perl"}]},{captures:{1:{name:"storage.type.class.perl.6"},3:{name:"entity.name.type.class.perl.6"}},match:"(class|enum|grammar|knowhow|module|package|role|slang|subset)(\\s+)(((?:::|')?(?:([a-zA-Z_\\x{C0}-\\x{FF}\\$])([a-zA-Z0-9_\\x{C0}-\\x{FF}\\\\$]|[\\-'][a-zA-Z0-9_\\x{C0}-\\x{FF}\\$])*))+)",name:"meta.class.perl.6"},{begin:"(?<=\\s)'",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.single.perl",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.perl"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.double.perl",patterns:[{match:'\\\\[abtnfre"\\\\]',name:"constant.character.escape.perl"}]},{begin:"q(q|to|heredoc)*\\s*:?(q|to|heredoc)*\\s*/(.+)/",end:"\\3",name:"string.quoted.single.heredoc.perl"},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*{{",end:"}}",name:"string.quoted.double.heredoc.brace.perl",patterns:[{include:"#qq_brace_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\(\\(",end:"\\)\\)",name:"string.quoted.double.heredoc.paren.perl",patterns:[{include:"#qq_paren_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\[\\[",end:"\\]\\]",name:"string.quoted.double.heredoc.bracket.perl",patterns:[{include:"#qq_bracket_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*{",end:"}",name:"string.quoted.single.heredoc.brace.perl",patterns:[{include:"#qq_brace_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*/",end:"/",name:"string.quoted.single.heredoc.slash.perl",patterns:[{include:"#qq_slash_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\(",end:"\\)",name:"string.quoted.single.heredoc.paren.perl",patterns:[{include:"#qq_paren_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\[",end:"\\]",name:"string.quoted.single.heredoc.bracket.perl",patterns:[{include:"#qq_bracket_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*'",end:"'",name:"string.quoted.single.heredoc.single.perl",patterns:[{include:"#qq_single_string_content"}]},{begin:'(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*"',end:'"',name:"string.quoted.single.heredoc.double.perl",patterns:[{include:"#qq_double_string_content"}]},{match:"\\b\\$\\w+\\b",name:"variable.other.perl"},{match:"\\b(macro|sub|submethod|method|multi|proto|only|rule|token|regex|category)\\b",name:"storage.type.declare.routine.perl"},{match:"\\b(self)\\b",name:"variable.language.perl"},{match:"\\b(use|require)\\b",name:"keyword.other.include.perl"},{match:"\\b(if|else|elsif|unless)\\b",name:"keyword.control.conditional.perl"},{match:"\\b(let|my|our|state|temp|has|constant)\\b",name:"storage.type.variable.perl"},{match:"\\b(for|loop|repeat|while|until|gather|given)\\b",name:"keyword.control.repeat.perl"},{match:"\\b(take|do|when|next|last|redo|return|contend|maybe|defer|default|exit|make|continue|break|goto|leave|async|lift)\\b",name:"keyword.control.flowcontrol.perl"},{match:"\\b(is|as|but|trusts|of|returns|handles|where|augment|supersede)\\b",name:"storage.modifier.type.constraints.perl"},{match:"\\b(BEGIN|CHECK|INIT|START|FIRST|ENTER|LEAVE|KEEP|UNDO|NEXT|LAST|PRE|POST|END|CATCH|CONTROL|TEMP)\\b",name:"meta.function.perl"},{match:"\\b(die|fail|try|warn)\\b",name:"keyword.control.control-handlers.perl"},{match:"\\b(prec|irs|ofs|ors|export|deep|binary|unary|reparsed|rw|parsed|cached|readonly|defequiv|will|ref|copy|inline|tighter|looser|equiv|assoc|required)\\b",name:"storage.modifier.perl"},{match:"\\b(NaN|Inf)\\b",name:"constant.numeric.perl"},{match:"\\b(oo|fatal)\\b",name:"keyword.other.pragma.perl"},{match:"\\b(Object|Any|Junction|Whatever|Capture|MatchSignature|Proxy|Matcher|Package|Module|ClassGrammar|Scalar|Array|Hash|KeyHash|KeySet|KeyBagPair|List|Seq|Range|Set|Bag|Mapping|Void|UndefFailure|Exception|Code|Block|Routine|Sub|MacroMethod|Submethod|Regex|Str|str|Blob|Char|ByteCodepoint|Grapheme|StrPos|StrLen|Version|NumComplex|num|complex|Bit|bit|bool|True|FalseIncreasing|Decreasing|Ordered|Callable|AnyCharPositional|Associative|Ordering|KeyExtractorComparator|OrderingPair|IO|KitchenSink|RoleInt|int|int1|int2|int4|int8|int16|int32|int64Rat|rat|rat1|rat2|rat4|rat8|rat16|rat32|rat64Buf|buf|buf1|buf2|buf4|buf8|buf16|buf32|buf64UInt|uint|uint1|uint2|uint4|uint8|uint16|uint32uint64|Abstraction|utf8|utf16|utf32)\\b",name:"support.type.perl6"},{match:"\\b(div|xx|x|mod|also|leg|cmp|before|after|eq|ne|le|lt|not|gt|ge|eqv|ff|fff|and|andthen|or|xor|orelse|extra|lcm|gcd)\\b",name:"keyword.operator.perl"},{match:"(\\$|@|%|&)(\\*|:|!|\\^|~|=|\\?|(<(?=.+>)))?([a-zA-Z_\\x{C0}-\\x{FF}\\$])([a-zA-Z0-9_\\x{C0}-\\x{FF}\\$]|[\\-'][a-zA-Z0-9_\\x{C0}-\\x{FF}\\$])*",name:"variable.other.identifier.perl.6"},{match:"\\b(eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints|chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin|classify|first|sum|keys|values|pairs|defined|delete|exists|elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push|shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign|sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2|pick|chop|p5chop|chomp|p5chomp|lc|lcfirst|uc|ucfirst|capitalize|normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars|nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead|nothing|want|bless|chr|ord|gmtime|time|eof|localtime|gethost|getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs|codes|bytes|clone|print|open|read|write|readline|say|seek|close|opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink|symlink|uniq|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan|sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh|sech|acosech|acotanh|asech|ok|nok|plan_ok|dies_ok|lives_ok|skip|todo|pass|flunk|force_todo|use_ok|isa_ok|diag|is_deeply|isnt|like|skip_rest|unlike|cmp_ok|eval_dies_ok|nok_error|eval_lives_ok|approx|is_approx|throws_ok|version_lt|plan|EVAL|succ|pred|times|nonce|once|signature|new|connect|operator|undef|undefine|sleep|from|to|infix|postfix|prefix|circumfix|postcircumfix|minmax|lazy|count|unwrap|getc|pi|e|context|void|quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity|assuming|rewind|callwith|callsame|nextwith|nextsame|attr|eval_elsewhere|none|srand|trim|trim_start|trim_end|lastcall|WHAT|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not|true|iterator|by|re|im|invert|flip|gist|flat|tree|is-prime|throws_like|trans)\\b",name:"support.function.perl"}],repository:{qq_brace_string_content:{begin:"{",end:"}",patterns:[{include:"#qq_brace_string_content"}]},qq_bracket_string_content:{begin:"\\[",end:"\\]",patterns:[{include:"#qq_bracket_string_content"}]},qq_double_string_content:{begin:'"',end:'"',patterns:[{include:"#qq_double_string_content"}]},qq_paren_string_content:{begin:"\\(",end:"\\)",patterns:[{include:"#qq_paren_string_content"}]},qq_single_string_content:{begin:"'",end:"'",patterns:[{include:"#qq_single_string_content"}]},qq_slash_string_content:{begin:"\\\\/",end:"\\\\/",patterns:[{include:"#qq_slash_string_content"}]}},scopeName:"source.perl.6",aliases:["perl6"]});var a=[e];export{a as default}; diff --git a/assets/chunks/razor.BPIJn9no.js b/assets/chunks/razor.BPIJn9no.js new file mode 100644 index 000000000..8ba8b5cfc --- /dev/null +++ b/assets/chunks/razor.BPIJn9no.js @@ -0,0 +1,40 @@ +import e from"./html.CuK0VrWf.js";import t from"./csharp.DISxKEhY.js";import"./javascript.Dch3xQiY.js";import"./css.CbYhyuC0.js";const n=Object.freeze({displayName:"ASP.NET Razor",fileTypes:["razor","cshtml"],injections:{"string.quoted.double.html":{patterns:[{include:"#explicit-razor-expression"},{include:"#implicit-expression"}]},"string.quoted.single.html":{patterns:[{include:"#explicit-razor-expression"},{include:"#implicit-expression"}]}},name:"razor",patterns:[{include:"#razor-control-structures"},{include:"text.html.basic"}],repository:{"addTagHelper-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.addTagHelper"},3:{patterns:[{include:"#tagHelper-directive-argument"}]}},match:"(@)(addTagHelper)\\s+([^$]+)?",name:"meta.directive"},"attribute-directive":{begin:"(@)(attribute)\\b\\s+",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.attribute"}},end:"(?<=\\])|$",name:"meta.directive",patterns:[{include:"source.cs#attribute-section"}]},"await-prefix":{match:"(await)\\s+",name:"keyword.other.await.cs"},"balanced-brackets-csharp":{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.squarebracket.open.cs"}},end:"(\\])",endCaptures:{1:{name:"punctuation.squarebracket.close.cs"}},name:"razor.test.balanced.brackets",patterns:[{include:"source.cs"}]},"balanced-parenthesis-csharp":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.parenthesis.open.cs"}},end:"(\\))",endCaptures:{1:{name:"punctuation.parenthesis.close.cs"}},name:"razor.test.balanced.parenthesis",patterns:[{include:"source.cs"}]},"catch-clause":{begin:"(?:^|(?<=}))\\s*(catch)\\b\\s*?(?=[\\n\\(\\{])",beginCaptures:{1:{name:"keyword.control.try.catch.cs"}},end:"(?<=})",name:"meta.statement.catch.razor",patterns:[{include:"#catch-condition"},{include:"source.cs#when-clause"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"catch-condition":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{captures:{1:{patterns:[{include:"source.cs#type"}]},6:{name:"entity.name.variable.local.cs"}},match:`(?x) +(?<type-name> +(?: +(?: +(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(?<name-and-type-args> +\\g<identifier>\\s* +(?<type-args>\\s*<(?:[^<>]|\\g<type-args>)+>\\s*)? +) +(?:\\s*\\.\\s*\\g<name-and-type-args>)* | +(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* +) +)\\s* +(?:(\\g<identifier>)\\b)?`}]},"code-directive":{begin:"(@)(code)((?=\\{)|\\s+)",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.code"}},end:"(?<=})|\\s",patterns:[{include:"#directive-codeblock"}]},"csharp-code-block":{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.curlybrace.open.cs"}},end:"(\\})",endCaptures:{1:{name:"punctuation.curlybrace.close.cs"}},name:"meta.structure.razor.csharp.codeblock",patterns:[{include:"#razor-codeblock-body"}]},"csharp-condition":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.parenthesis.open.cs"}},end:"(\\))",endCaptures:{1:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"source.cs#local-variable-declaration"},{include:"source.cs#expression"},{include:"source.cs#punctuation-comma"},{include:"source.cs#punctuation-semicolon"}]},"directive-codeblock":{begin:"(\\{)",beginCaptures:{1:{name:"keyword.control.razor.directive.codeblock.open"}},contentName:"source.cs",end:"(\\})",endCaptures:{1:{name:"keyword.control.razor.directive.codeblock.close"}},name:"meta.structure.razor.directive.codeblock",patterns:[{include:"source.cs#class-or-struct-members"}]},"directive-markupblock":{begin:"(\\{)",beginCaptures:{1:{name:"keyword.control.razor.directive.codeblock.open"}},end:"(\\})",endCaptures:{1:{name:"keyword.control.razor.directive.codeblock.close"}},name:"meta.structure.razor.directive.markblock",patterns:[{include:"$self"}]},directives:{patterns:[{include:"#code-directive"},{include:"#functions-directive"},{include:"#page-directive"},{include:"#addTagHelper-directive"},{include:"#removeTagHelper-directive"},{include:"#tagHelperPrefix-directive"},{include:"#model-directive"},{include:"#inherits-directive"},{include:"#implements-directive"},{include:"#namespace-directive"},{include:"#inject-directive"},{include:"#attribute-directive"},{include:"#section-directive"},{include:"#layout-directive"},{include:"#using-directive"},{include:"#rendermode-directive"},{include:"#preservewhitespace-directive"},{include:"#typeparam-directive"}]},"do-statement":{begin:"(?:(@))(do)\\b\\s",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.loop.do.cs"}},end:"(?<=})",name:"meta.statement.do.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"do-statement-with-optional-transition":{begin:"(?:^\\s*|(@))(do)\\b\\s",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.loop.do.cs"}},end:"(?<=})",name:"meta.statement.do.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"else-part":{begin:"(?:^|(?<=}))\\s*(else)\\b\\s*?(?: (if))?\\s*?(?=[\\n\\(\\{])",beginCaptures:{1:{name:"keyword.control.conditional.else.cs"},2:{name:"keyword.control.conditional.if.cs"}},end:"(?<=})",name:"meta.statement.else.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"escaped-transition":{match:"@@",name:"constant.character.escape.razor.transition"},"explicit-razor-expression":{begin:"(@)\\(",beginCaptures:{0:{name:"keyword.control.cshtml"},1:{patterns:[{include:"#transition"}]}},end:"\\)",endCaptures:{0:{name:"keyword.control.cshtml"}},name:"meta.expression.explicit.cshtml",patterns:[{include:"source.cs#expression"}]},"finally-clause":{begin:"(?:^|(?<=}))\\s*(finally)\\b\\s*?(?=[\\n\\{])",beginCaptures:{1:{name:"keyword.control.try.finally.cs"}},end:"(?<=})",name:"meta.statement.finally.razor",patterns:[{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"for-statement":{begin:"(?:(@))(for)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.loop.for.cs"}},end:"(?<=})",name:"meta.statement.for.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"for-statement-with-optional-transition":{begin:"(?:^\\s*|(@))(for)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.loop.for.cs"}},end:"(?<=})",name:"meta.statement.for.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"foreach-condition":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{captures:{1:{name:"keyword.other.var.cs"},2:{patterns:[{include:"source.cs#type"}]},7:{name:"entity.name.variable.local.cs"},8:{name:"keyword.control.loop.in.cs"}},match:`(?x) +(?: +(\\bvar\\b)| +(?<type-name> +(?: +(?: +(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? +(?<name-and-type-args> +\\g<identifier>\\s* +(?<type-args>\\s*<(?:[^<>]|\\g<type-args>)+>\\s*)? +) +(?:\\s*\\.\\s*\\g<name-and-type-args>)* | +(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\)) +) +(?:\\s*\\?\\s*)? +(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* +) +) +)\\s+ +(\\g<identifier>)\\s+ +\\b(in)\\b`},{captures:{1:{name:"keyword.other.var.cs"},2:{patterns:[{include:"source.cs#tuple-declaration-deconstruction-element-list"}]},3:{name:"keyword.control.loop.in.cs"}},match:`(?x) +(?:\\b(var)\\b\\s*)? +(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s+ +\\b(in)\\b`},{include:"source.cs#expression"}]},"foreach-statement":{begin:"(?:(@)(await\\s+)?)(foreach)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{patterns:[{include:"#await-prefix"}]},3:{name:"keyword.control.loop.foreach.cs"}},end:"(?<=})",name:"meta.statement.foreach.razor",patterns:[{include:"#foreach-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"foreach-statement-with-optional-transition":{begin:"(?:^\\s*|(@)(await\\s+)?)(foreach)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{patterns:[{include:"#await-prefix"}]},3:{name:"keyword.control.loop.foreach.cs"}},end:"(?<=})",name:"meta.statement.foreach.razor",patterns:[{include:"#foreach-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"functions-directive":{begin:"(@)(functions)((?=\\{)|\\s+)",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.functions"}},end:"(?<=})|\\s",patterns:[{include:"#directive-codeblock"}]},"if-statement":{begin:"(?:(@))(if)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.conditional.if.cs"}},end:"(?<=})",name:"meta.statement.if.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"if-statement-with-optional-transition":{begin:"(?:^\\s*|(@))(if)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.conditional.if.cs"}},end:"(?<=})",name:"meta.statement.if.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"implements-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.implements"},3:{patterns:[{include:"source.cs#type"}]}},match:"(@)(implements)\\s+([^$]+)?",name:"meta.directive"},"implicit-expression":{begin:"(?<![[:alpha:][:alnum:]])(@)",beginCaptures:{1:{patterns:[{include:"#transition"}]}},contentName:"source.cs",end:`(?=[\\s<>\\{\\}\\)\\]'"])`,name:"meta.expression.implicit.cshtml",patterns:[{include:"#await-prefix"},{include:"#implicit-expression-body"}]},"implicit-expression-accessor":{match:"(?<=\\.)[_[:alpha:]][_[:alnum:]]*",name:"variable.other.object.property.cs"},"implicit-expression-accessor-start":{begin:"([_[:alpha:]][_[:alnum:]]*)",beginCaptures:{1:{name:"variable.other.object.cs"}},end:`(?=[\\s<>\\{\\}\\)\\]'"])`,patterns:[{include:"#implicit-expression-continuation"}]},"implicit-expression-body":{end:`(?=[\\s<>\\{\\}\\)\\]'"])`,patterns:[{include:"#implicit-expression-invocation-start"},{include:"#implicit-expression-accessor-start"}]},"implicit-expression-continuation":{end:`(?=[\\s<>\\{\\}\\)\\]'"])`,patterns:[{include:"#balanced-parenthesis-csharp"},{include:"#balanced-brackets-csharp"},{include:"#implicit-expression-invocation"},{include:"#implicit-expression-accessor"},{include:"#implicit-expression-extension"}]},"implicit-expression-dot-operator":{captures:{1:{name:"punctuation.accessor.cs"}},match:"(\\.)(?=[_[:alpha:]][_[:alnum:]]*)"},"implicit-expression-invocation":{match:"(?<=\\.)[_[:alpha:]][_[:alnum:]]*(?=\\()",name:"entity.name.function.cs"},"implicit-expression-invocation-start":{begin:"([_[:alpha:]][_[:alnum:]]*)(?=\\()",beginCaptures:{1:{name:"entity.name.function.cs"}},end:`(?=[\\s<>\\{\\}\\)\\]'"])`,patterns:[{include:"#implicit-expression-continuation"}]},"implicit-expression-null-conditional-operator":{captures:{1:{name:"keyword.operator.null-conditional.cs"}},match:"(\\?)(?=[.\\[])"},"implicit-expression-null-forgiveness-operator":{captures:{1:{name:"keyword.operator.logical.cs"}},match:"(\\!)(?=(?:\\.[_[:alpha:]][_[:alnum:]]*)|\\?|[\\[\\(])"},"implicit-expression-operator":{patterns:[{include:"#implicit-expression-dot-operator"},{include:"#implicit-expression-null-conditional-operator"},{include:"#implicit-expression-null-forgiveness-operator"}]},"inherits-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.inherits"},3:{patterns:[{include:"source.cs#type"}]}},match:"(@)(inherits)\\s+([^$]+)?",name:"meta.directive"},"inject-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.inject"},3:{patterns:[{include:"source.cs#type"}]},4:{name:"entity.name.variable.property.cs"}},match:"(@)(inject)\\s*([\\S\\s]+?)?\\s*([_[:alpha:]][_[:alnum:]]*)?\\s*(?=$)",name:"meta.directive"},"layout-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.layout"},3:{patterns:[{include:"source.cs#type"}]}},match:"(@)(layout)\\s+([^$]+)?",name:"meta.directive"},"lock-statement":{begin:"(?:(@))(lock)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.other.lock.cs"}},end:"(?<=})",name:"meta.statement.lock.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"lock-statement-with-optional-transition":{begin:"(?:^\\s*|(@))(lock)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.other.lock.cs"}},end:"(?<=})",name:"meta.statement.lock.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"model-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.model"},3:{patterns:[{include:"source.cs#type"}]}},match:"(@)(model)\\s+([^$]+)?",name:"meta.directive"},"namespace-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.namespace"},3:{patterns:[{include:"#namespace-directive-argument"}]}},match:"(@)(namespace)\\s+([^\\s]+)?",name:"meta.directive"},"namespace-directive-argument":{captures:{1:{name:"entity.name.type.namespace.cs"},2:{name:"punctuation.accessor.cs"}},match:"([_[:alpha:]][_[:alnum:]]*)(\\.)?"},"non-void-tag":{begin:"(?=<(!)?([^/\\s>]+)(\\s|/?>))",end:"(</)(\\2)\\s*(>)|(/>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"punctuation.definition.tag.end.html"},4:{name:"punctuation.definition.tag.end.html"}},patterns:[{begin:"(<)(!)?([^/\\s>]+)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"constant.character.escape.razor.tagHelperOptOut"},3:{name:"entity.name.tag.html"}},end:"(?=/?>)",patterns:[{include:"#razor-control-structures"},{include:"text.html.basic#attribute"}]},{begin:">",beginCaptures:{0:{name:"punctuation.definition.tag.end.html"}},end:"(?=</)",patterns:[{include:"#wellformed-html"},{include:"$self"}]}]},"optionally-transitioned-csharp-control-structures":{patterns:[{include:"#using-statement-with-optional-transition"},{include:"#if-statement-with-optional-transition"},{include:"#else-part"},{include:"#foreach-statement-with-optional-transition"},{include:"#for-statement-with-optional-transition"},{include:"#while-statement"},{include:"#switch-statement-with-optional-transition"},{include:"#lock-statement-with-optional-transition"},{include:"#do-statement-with-optional-transition"},{include:"#try-statement-with-optional-transition"}]},"optionally-transitioned-razor-control-structures":{patterns:[{include:"#razor-comment"},{include:"#razor-codeblock"},{include:"#explicit-razor-expression"},{include:"#escaped-transition"},{include:"#directives"},{include:"#optionally-transitioned-csharp-control-structures"},{include:"#implicit-expression"}]},"page-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.page"},3:{patterns:[{include:"source.cs#string-literal"}]}},match:"(@)(page)\\s+([^$]+)?",name:"meta.directive"},"preservewhitespace-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.preservewhitespace"},3:{patterns:[{include:"source.cs#boolean-literal"}]}},match:"(@)(preservewhitespace)\\s+([^$]+)?",name:"meta.directive"},"razor-codeblock":{begin:"(@)(\\{)",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.codeblock.open"}},contentName:"source.cs",end:"(\\})",endCaptures:{1:{name:"keyword.control.razor.directive.codeblock.close"}},name:"meta.structure.razor.codeblock",patterns:[{include:"#razor-codeblock-body"}]},"razor-codeblock-body":{patterns:[{include:"#text-tag"},{include:"#wellformed-html"},{include:"#razor-single-line-markup"},{include:"#optionally-transitioned-razor-control-structures"},{include:"source.cs"}]},"razor-comment":{begin:"(@)(\\*)",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.comment.star"}},contentName:"comment.block.razor",end:"(\\*)(@)",endCaptures:{1:{name:"keyword.control.razor.comment.star"},2:{patterns:[{include:"#transition"}]}},name:"meta.comment.razor"},"razor-control-structures":{patterns:[{include:"#razor-comment"},{include:"#razor-codeblock"},{include:"#explicit-razor-expression"},{include:"#escaped-transition"},{include:"#directives"},{include:"#transitioned-csharp-control-structures"},{include:"#implicit-expression"}]},"razor-single-line-markup":{captures:{1:{name:"keyword.control.razor.singleLineMarkup"},2:{patterns:[{include:"#razor-control-structures"},{include:"text.html.basic"}]}},match:"(\\@\\:)([^$]*)$"},"removeTagHelper-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.removeTagHelper"},3:{patterns:[{include:"#tagHelper-directive-argument"}]}},match:"(@)(removeTagHelper)\\s+([^$]+)?",name:"meta.directive"},"rendermode-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.rendermode"},3:{patterns:[{include:"source.cs#type"}]}},match:"(@)(rendermode)\\s+([^$]+)?",name:"meta.directive"},"section-directive":{begin:"(@)(section)\\b\\s+([_[:alpha:]][_[:alnum:]]*)?",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.section"},3:{name:"variable.other.razor.directive.sectionName"}},end:"(?<=})",name:"meta.directive.block",patterns:[{include:"#directive-markupblock"}]},"switch-code-block":{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.curlybrace.open.cs"}},end:"(\\})",endCaptures:{1:{name:"punctuation.curlybrace.close.cs"}},name:"meta.structure.razor.csharp.codeblock.switch",patterns:[{include:"source.cs#switch-label"},{include:"#razor-codeblock-body"}]},"switch-statement":{begin:"(?:(@))(switch)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.switch.cs"}},end:"(?<=})",name:"meta.statement.switch.razor",patterns:[{include:"#csharp-condition"},{include:"#switch-code-block"},{include:"#razor-codeblock-body"}]},"switch-statement-with-optional-transition":{begin:"(?:^\\s*|(@))(switch)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.switch.cs"}},end:"(?<=})",name:"meta.statement.switch.razor",patterns:[{include:"#csharp-condition"},{include:"#switch-code-block"},{include:"#razor-codeblock-body"}]},"tagHelper-directive-argument":{patterns:[{include:"source.cs#string-literal"},{include:"#unquoted-string-argument"}]},"tagHelperPrefix-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.tagHelperPrefix"},3:{patterns:[{include:"#tagHelper-directive-argument"}]}},match:"(@)(tagHelperPrefix)\\s+([^$]+)?",name:"meta.directive"},"text-tag":{begin:"(<text\\s*>)",beginCaptures:{1:{name:"keyword.control.cshtml.transition.textTag.open"}},end:"(</text>)",endCaptures:{1:{name:"keyword.control.cshtml.transition.textTag.close"}},patterns:[{include:"#wellformed-html"},{include:"$self"}]},transition:{match:"@",name:"keyword.control.cshtml.transition"},"transitioned-csharp-control-structures":{patterns:[{include:"#using-statement"},{include:"#if-statement"},{include:"#else-part"},{include:"#foreach-statement"},{include:"#for-statement"},{include:"#while-statement"},{include:"#switch-statement"},{include:"#lock-statement"},{include:"#do-statement"},{include:"#try-statement"}]},"try-block":{begin:"(?:(@))(try)\\b\\s*",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.try.cs"}},end:"(?<=})",name:"meta.statement.try.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"try-block-with-optional-transition":{begin:"(?:^\\s*|(@))(try)\\b\\s*",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.try.cs"}},end:"(?<=})",name:"meta.statement.try.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"try-statement":{patterns:[{include:"#try-block"},{include:"#catch-clause"},{include:"#finally-clause"}]},"try-statement-with-optional-transition":{patterns:[{include:"#try-block-with-optional-transition"},{include:"#catch-clause"},{include:"#finally-clause"}]},"typeparam-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.typeparam"},3:{patterns:[{include:"source.cs#type"}]}},match:"(@)(typeparam)\\s+([^$]+)?",name:"meta.directive"},"unquoted-string-argument":{match:"[^$]+",name:"string.quoted.double.cs"},"using-alias-directive":{captures:{1:{name:"entity.name.type.alias.cs"},2:{name:"keyword.operator.assignment.cs"},3:{patterns:[{include:"source.cs#type"}]}},match:"([_[:alpha:]][_[:alnum:]]*)\\b\\s*(=)\\s*(.+)\\s*"},"using-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.other.using.cs"},3:{patterns:[{include:"#using-static-directive"},{include:"#using-alias-directive"},{include:"#using-standard-directive"}]},4:{name:"keyword.control.razor.optionalSemicolon"}},match:"(@)(using)\\b\\s+(?!\\(|\\s)(.+?)?(;)?$",name:"meta.directive"},"using-standard-directive":{captures:{1:{name:"entity.name.type.namespace.cs"}},match:"([_[:alpha:]][_[:alnum:]]*)\\s*"},"using-statement":{begin:"(?:(@))(using)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.other.using.cs"}},end:"(?<=})",name:"meta.statement.using.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"using-statement-with-optional-transition":{begin:"(?:^\\s*|(@))(using)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.other.using.cs"}},end:"(?<=})",name:"meta.statement.using.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"using-static-directive":{captures:{1:{name:"keyword.other.static.cs"},2:{patterns:[{include:"source.cs#type"}]}},match:"(static)\\b\\s+(.+)"},"void-tag":{begin:"(?i)(<)(!)?(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"constant.character.escape.razor.tagHelperOptOut"},3:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$3.void.html",patterns:[{include:"text.html.basic#attribute"}]},"wellformed-html":{patterns:[{include:"#void-tag"},{include:"#non-void-tag"}]},"while-statement":{begin:"(?:(@)|^\\s*|(?<=})\\s*)(while)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.loop.while.cs"}},end:"(?<=})|(;)",endCaptures:{1:{name:"punctuation.terminator.statement.cs"}},name:"meta.statement.while.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]}},scopeName:"text.aspnetcorerazor",embeddedLangs:["html","csharp"]});var o=[...e,...t,n];export{o as default}; diff --git a/assets/chunks/red.jaXbsbtS.js b/assets/chunks/red.jaXbsbtS.js new file mode 100644 index 000000000..9982cb977 --- /dev/null +++ b/assets/chunks/red.jaXbsbtS.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.background":"#580000","badge.background":"#cc3333","button.background":"#833","debugToolBar.background":"#660000","dropdown.background":"#580000","editor.background":"#390000","editor.foreground":"#F8F8F8","editor.hoverHighlightBackground":"#ff000044","editor.lineHighlightBackground":"#ff000033","editor.selectionBackground":"#750000","editor.selectionHighlightBackground":"#f5500039","editorCursor.foreground":"#970000","editorGroup.border":"#ff666633","editorGroupHeader.tabsBackground":"#330000","editorHoverWidget.background":"#300000","editorLineNumber.activeForeground":"#ffbbbb88","editorLineNumber.foreground":"#ff777788","editorLink.activeForeground":"#FFD0AA","editorSuggestWidget.background":"#300000","editorSuggestWidget.border":"#220000","editorWhitespace.foreground":"#c10000","editorWidget.background":"#300000",errorForeground:"#ffeaea","extensionButton.prominentBackground":"#cc3333","extensionButton.prominentHoverBackground":"#cc333388",focusBorder:"#ff6666aa","input.background":"#580000","inputOption.activeBorder":"#cc0000","inputValidation.infoBackground":"#550000","inputValidation.infoBorder":"#DB7E58","list.activeSelectionBackground":"#880000","list.dropBackground":"#662222","list.highlightForeground":"#ff4444","list.hoverBackground":"#800000","list.inactiveSelectionBackground":"#770000","minimap.selectionHighlight":"#750000","peekView.border":"#ff000044","peekViewEditor.background":"#300000","peekViewResult.background":"#400000","peekViewTitle.background":"#550000","pickerGroup.border":"#ff000033","pickerGroup.foreground":"#cc9999","ports.iconRunningProcessForeground":"#DB7E58","progressBar.background":"#cc3333","quickInputList.focusBackground":"#660000","selection.background":"#ff777788","sideBar.background":"#330000","statusBar.background":"#700000","statusBar.noFolderBackground":"#700000","statusBarItem.remoteBackground":"#c33","tab.activeBackground":"#490000","tab.inactiveBackground":"#300a0a","tab.lastPinnedBorder":"#ff000044","titleBar.activeBackground":"#770000","titleBar.inactiveBackground":"#772222"},displayName:"Red",name:"red",semanticHighlighting:!0,tokenColors:[{settings:{foreground:"#F8F8F8"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#F8F8F8"}},{scope:"comment",settings:{fontStyle:"italic",foreground:"#e7c0c0ff"}},{scope:"constant",settings:{fontStyle:"",foreground:"#994646ff"}},{scope:"keyword",settings:{fontStyle:"",foreground:"#f12727ff"}},{scope:"entity",settings:{fontStyle:"",foreground:"#fec758ff"}},{scope:"storage",settings:{fontStyle:"bold",foreground:"#ff6262ff"}},{scope:"string",settings:{fontStyle:"",foreground:"#cd8d8dff"}},{scope:"support",settings:{fontStyle:"",foreground:"#9df39fff"}},{scope:"variable",settings:{fontStyle:"italic",foreground:"#fb9a4bff"}},{scope:"invalid",settings:{foreground:"#ffffffff"}},{scope:"entity.other.inherited-class",settings:{fontStyle:"underline",foreground:"#aa5507ff"}},{scope:"constant.character",settings:{foreground:"#ec0d1e"}},{scope:["string constant","constant.character.escape"],settings:{fontStyle:"",foreground:"#ffe862ff"}},{scope:"string.regexp",settings:{foreground:"#ffb454ff"}},{scope:"string variable",settings:{foreground:"#edef7dff"}},{scope:"support.function",settings:{fontStyle:"",foreground:"#ffb454ff"}},{scope:["support.constant","support.variable"],settings:{fontStyle:"",foreground:"#eb939aff"}},{scope:["declaration.sgml.html declaration.doctype","declaration.sgml.html declaration.doctype entity","declaration.sgml.html declaration.doctype string","declaration.xml-processing","declaration.xml-processing entity","declaration.xml-processing string"],settings:{fontStyle:"",foreground:"#73817dff"}},{scope:["declaration.tag","declaration.tag entity","meta.tag","meta.tag entity"],settings:{fontStyle:"",foreground:"#ec0d1eff"}},{scope:"meta.selector.css entity.name.tag",settings:{fontStyle:"",foreground:"#aa5507ff"}},{scope:"meta.selector.css entity.other.attribute-name.id",settings:{foreground:"#fec758ff"}},{scope:"meta.selector.css entity.other.attribute-name.class",settings:{fontStyle:"",foreground:"#41a83eff"}},{scope:"support.type.property-name.css",settings:{fontStyle:"",foreground:"#96dd3bff"}},{scope:["meta.property-group support.constant.property-value.css","meta.property-value support.constant.property-value.css"],settings:{fontStyle:"italic",foreground:"#ffe862ff"}},{scope:["meta.property-value support.constant.named-color.css","meta.property-value constant"],settings:{fontStyle:"",foreground:"#ffe862ff"}},{scope:"meta.preprocessor.at-rule keyword.control.at-rule",settings:{foreground:"#fd6209ff"}},{scope:"meta.constructor.argument.css",settings:{fontStyle:"",foreground:"#ec9799ff"}},{scope:["meta.diff","meta.diff.header"],settings:{fontStyle:"italic",foreground:"#f8f8f8ff"}},{scope:"markup.deleted",settings:{foreground:"#ec9799ff"}},{scope:"markup.changed",settings:{foreground:"#f8f8f8ff"}},{scope:"markup.inserted",settings:{foreground:"#41a83eff"}},{scope:"markup.quote",settings:{foreground:"#f12727ff"}},{scope:"markup.list",settings:{foreground:"#ff6262ff"}},{scope:["markup.bold","markup.italic"],settings:{foreground:"#fb9a4bff"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#cd8d8dff"}},{scope:["markup.heading","markup.heading.setext","punctuation.definition.heading","entity.name.section"],settings:{fontStyle:"bold",foreground:"#fec758ff"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded",".format.placeholder"],settings:{foreground:"#ec0d1e"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/reg.CrhH3_Og.js b/assets/chunks/reg.CrhH3_Og.js new file mode 100644 index 000000000..a2fca6a35 --- /dev/null +++ b/assets/chunks/reg.CrhH3_Og.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Windows Registry Script",fileTypes:["reg","REG"],name:"reg",patterns:[{match:"Windows Registry Editor Version 5\\.00|REGEDIT4",name:"keyword.control.import.reg"},{captures:{1:{name:"punctuation.definition.comment.reg"}},match:"(;).*$",name:"comment.line.semicolon.reg"},{captures:{1:{name:"punctuation.definition.section.reg"},2:{name:"entity.section.reg"},3:{name:"punctuation.definition.section.reg"}},match:"^\\s*(\\[(?!-))(.*?)(\\])",name:"entity.name.function.section.add.reg"},{captures:{1:{name:"punctuation.definition.section.reg"},2:{name:"entity.section.reg"},3:{name:"punctuation.definition.section.reg"}},match:"^\\s*(\\[-)(.*?)(\\])",name:"entity.name.function.section.delete.reg"},{captures:{2:{name:"punctuation.definition.quote.reg"},3:{name:"support.function.regname.ini"},4:{name:"punctuation.definition.quote.reg"},5:{name:"punctuation.definition.equals.reg"},7:{name:"keyword.operator.arithmetic.minus.reg"},9:{name:"punctuation.definition.quote.reg"},10:{name:"string.name.regdata.reg"},11:{name:"punctuation.definition.quote.reg"},13:{name:"support.type.dword.reg"},14:{name:"keyword.operator.arithmetic.colon.reg"},15:{name:"constant.numeric.dword.reg"},17:{name:"support.type.dword.reg"},18:{name:"keyword.operator.arithmetic.parenthesis.reg"},19:{name:"keyword.operator.arithmetic.parenthesis.reg"},20:{name:"constant.numeric.hex.size.reg"},21:{name:"keyword.operator.arithmetic.parenthesis.reg"},22:{name:"keyword.operator.arithmetic.colon.reg"},23:{name:"constant.numeric.hex.reg"},24:{name:"keyword.operator.arithmetic.linecontinuation.reg"},25:{name:"comment.declarationline.semicolon.reg"}},match:`^(\\s*(["']?)(.+?)(["']?)\\s*(=))?\\s*((-)|((["'])(.*?)(["']))|(((?i:dword))(\\:)\\s*([\\dabcdefABCDEF]{1,8}))|(((?i:hex))((\\()([\\d]*)(\\)))?(\\:)(.*?)(\\\\?)))\\s*(;.*)?$`,name:"meta.declaration.reg"},{match:"[0-9]+",name:"constant.numeric.reg"},{match:"[a-fA-F]+",name:"constant.numeric.hex.reg"},{match:",+",name:"constant.numeric.hex.comma.reg"},{match:"\\\\",name:"keyword.operator.arithmetic.linecontinuation.reg"}],scopeName:"source.reg"});var n=[e];export{n as default}; diff --git a/assets/chunks/rel.6Kuza3Wr.js b/assets/chunks/rel.6Kuza3Wr.js new file mode 100644 index 000000000..2dc88a2d2 --- /dev/null +++ b/assets/chunks/rel.6Kuza3Wr.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Rel",name:"rel",patterns:[{include:"#strings"},{include:"#comment"},{include:"#single-line-comment-consuming-line-ending"},{include:"#deprecated-temporary"},{include:"#operators"},{include:"#symbols"},{include:"#keywords"},{include:"#otherkeywords"},{include:"#types"},{include:"#constants"}],repository:{comment:{patterns:[{begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.rel"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.rel"}},name:"comment.block.documentation.rel",patterns:[{include:"#docblock"}]},{begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{1:{name:"punctuation.definition.comment.rel"},2:{name:"storage.type.internaldeclaration.rel"},3:{name:"punctuation.decorator.internaldeclaration.rel"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.rel"}},name:"comment.block.rel"},{begin:'doc"""',end:'"""',name:"comment.block.documentation.rel"},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.rel"},2:{name:"comment.line.double-slash.rel"},3:{name:"punctuation.definition.comment.rel"},4:{name:"storage.type.internaldeclaration.rel"},5:{name:"punctuation.decorator.internaldeclaration.rel"}},contentName:"comment.line.double-slash.rel",end:"(?=$)"}]},constants:{patterns:[{match:"(\\b(true|false)\\b)",name:"constant.language.rel"}]},"deprecated-temporary":{patterns:[{match:"@inspect",name:"keyword.other.rel"}]},keywords:{patterns:[{match:"(\\b(def|entity|bound|include|ic|forall|exists|∀|∃|return|module|^end)\\b)|(((\\<)?\\|(\\>)?)|∀|∃)",name:"keyword.control.rel"}]},operators:{patterns:[{match:"(\\b(if|then|else|and|or|not|eq|neq|lt|lt_eq|gt|gt_eq)\\b)|(\\+|\\-|\\*|\\/|÷|\\^|\\%|\\=|\\!\\=|≠|\\<|\\<\\=|≤|\\>|\\>\\=|≥|\\&)|\\s+(end)",name:"keyword.other.rel"}]},otherkeywords:{patterns:[{match:"\\s*(@inline)\\s*|\\s*(@auto_number)\\s*|\\s*(function)\\s|(\\b(implies|select|from|∈|where|for|in)\\b)|(((\\<)?\\|(\\>)?)|∈)",name:"keyword.other.rel"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.rel"},2:{name:"comment.line.double-slash.rel"},3:{name:"punctuation.definition.comment.rel"},4:{name:"storage.type.internaldeclaration.rel"},5:{name:"punctuation.decorator.internaldeclaration.rel"}},contentName:"comment.line.double-slash.rel",end:"(?=^)"},strings:{begin:'"',end:'"',name:"string.quoted.double.rel",patterns:[{match:"\\\\.",name:"constant.character.escape.rel"}]},symbols:{patterns:[{match:"(:[\\[_$[:alpha:]](\\]|[_$[:alnum:]]*))",name:"variable.parameter.rel"}]},types:{patterns:[{match:"(\\b(Symbol|Char|Bool|Rational|FixedDecimal|Float16|Float32|Float64|Int8|Int16|Int32|Int64|Int128|UInt8|UInt16|UInt32|UInt64|UInt128|Date|DateTime|Day|Week|Month|Year|Nanosecond|Microsecond|Millisecond|Second|Minute|Hour|FilePos|HashValue|AutoNumberValue)\\b)",name:"entity.name.type.rel"}]}},scopeName:"source.rel"});var n=[e];export{n as default}; diff --git a/assets/chunks/riscv.AgnqFTPX.js b/assets/chunks/riscv.AgnqFTPX.js new file mode 100644 index 000000000..be5670a42 --- /dev/null +++ b/assets/chunks/riscv.AgnqFTPX.js @@ -0,0 +1,13 @@ +const n=Object.freeze({displayName:"RISC-V",fileTypes:["S","s","riscv","asm"],name:"riscv",patterns:[{comment:"ok actually this are instructions, but one also could call them funtions…",match:"\\b(la|lb|lh|lw|ld|nop|li|mv|not|neg|negw|sext\\.w|seqz|snez|sltz|sgtz|beqz|bnez|blez|bgez|bltz|bgtz|bgt|ble|bgtu|bleu|j|jal|jr|ret|call|tail|fence|csr[r|w|s|c]|csr[w|s|c]i)\\b",name:"support.function.pseudo.riscv"},{match:"\\b(add|addw|auipc|lui|jalr|beq|bne|blt|bge|bltu|bgeu|lb|lh|lw|ld|lbu|lhu|sb|sh|sw|sd|addi|addiw|slti|sltiu|xori|ori|andi|slli|slliw|srli|srliw|srai|sraiw|sub|subw|sll|sllw|slt|sltu|xor|srl|srlw|sra|sraw|or|and|fence|fence\\.i|csrrw|csrrs|csrrc|csrrwi|csrrsi|csrrci)\\b",name:"support.function.riscv"},{comment:"priviledged instructions",match:"\\b(ecall|ebreak|sfence\\.vma|mret|sret|uret|wfi)\\b",name:"support.function.riscv.privileged"},{comment:"M extension (multiplication and division)",match:"\\b(mul|mulh|mulhsu|mulhu|div|divu|rem|remu|mulw|divw|divuw|remw|remuw)\\b",name:"support.function.riscv.m"},{comment:"C extension (compressed instructions)",match:"\\b(c\\.addi4spn|c\\.fld|c\\.lq|c\\.lw|c\\.flw|c\\.ld|c\\.fsd|c\\.sq|c\\.sw|c\\.fsw|c\\.sd|c\\.nop|c\\.addi|c\\.jal|c\\.addiw|c\\.li|c\\.addi16sp|c\\.lui|c\\.srli|c\\.srli64|c\\.srai|c\\.srai64|c\\.andi|c\\.sub|c\\.xor|c\\.or|c\\.and|c\\.subw|c\\.addw|c\\.j|c\\.beqz|c\\.bnez)\\b",name:"support.function.riscv.c"},{comment:"A extension (atomic instructions)",match:"\\b(lr\\.[w|d]|sc\\.[w|d]|amoswap\\.[w|d]|amoadd\\.[w|d]|amoxor\\.[w|d]|amoand\\.[w|d]|amoor\\.[w|d]|amomin\\.[w|d]|amomax\\.[w|d]|amominu\\.[w|d]|amomaxu\\.[w|d])\\b",name:"support.function.riscv.a"},{comment:"F extension (single precision floating point)",match:"\\b(flw|fsw|fmadd\\.s|fmsub\\.s|fnmsub\\.s|fnmadd\\.s|fadd\\.s|fsub\\.s|fmul\\.s|fdiv\\.s|fsqrt\\.s|fsgnj\\.s|fsgnjn\\.s|fsgnjx\\.s|fmin\\.s|fmax\\.s|fcvt\\.w\\.s|fcvt\\.wu\\.s|fmv\\.x\\.w|feq\\.s|flt\\.s|fle\\.s|fclass\\.s|fcvt\\.s\\.w|fcvt\\.s\\.wu|fmv\\.w\\.x|fcvt\\.l\\.s|fcvt\\.lu\\.s|fcvt\\.s\\.l|fcvt\\.s\\.lu)\\b",name:"support.function.riscv.f"},{comment:"D extension (double precision floating point)",match:"\\b(fld|fsd|fmadd\\.d|fmsub\\.d|fnmsub\\.d|fnmadd\\.d|fadd\\.d|fsub\\.d|fmul\\.d|fdiv\\.d|fsqrt\\.d|fsgnj\\.d|fsgnjn\\.d|fsgnjx\\.d|fmin\\.d|fmax\\.d|fcvt\\.s\\.d|fcvt\\.d\\.s|feq\\.d|flt\\.d|fle\\.d|fclass\\.d|fcvt\\.w\\.d|fcvt\\.wu\\.d|fcvt\\.d\\.w|fcvt\\.d\\.wu|fcvt\\.l\\.d|fcvt\\.lu\\.d|fmv\\.x\\.d|fcvt\\.d\\.l|fcvt\\.d\\.lu|fmv\\.d\\.x)\\b",name:"support.function.riscv.d"},{match:"\\.(skip|ascii|asciiz|byte|[2|4|8]byte|data|double|float|half|kdata|ktext|space|text|word|dword|dtprelword|dtpreldword|set\\s*(noat|at)|[s|u]leb128|string|incbin|zero|rodata|comm|common)\\b",name:"storage.type.riscv"},{match:"\\.(balign|align|p2align|extern|globl|global|local|pushsection|section|bss|insn|option|type|equ|macro|endm|file|ident)\\b",name:"storage.modifier.riscv"},{captures:{1:{name:"entity.name.function.label.riscv"}},match:"\\b([A-Za-z0-9_]+):",name:"meta.function.label.riscv"},{captures:{1:{name:"punctuation.definition.variable.riscv"}},match:"\\b(x([0-9]|1[0-9]|2[0-9]|3[0-1]))\\b",name:"variable.other.register.usable.by-number.riscv"},{captures:{1:{name:"punctuation.definition.variable.riscv"}},match:"\\b(zero|ra|sp|gp|tp|t[0-6]|a[0-7]|s[0-9]|fp|s1[0-1])\\b",name:"variable.other.register.usable.by-name.riscv"},{captures:{1:{name:"punctuation.definition.variable.riscv"}},match:"\\b(([umsh]|vs)status|([umsh]|vs)ie|([ums]|vs)tvec|([ums]|vs)scratch|([ums]|vs)epc|([ums]|vs)cause|([umsh]|vs)tval|([umsh]|vs)ip|fflags|frm|fcsr|m?cycleh?|timeh?|m?instreth?|m?hpmcounter([3-9]|[12][0-9]|3[01])h?|[msh][ei]deleg|[msh]counteren|v?satp|hgeie|hgeip|[hm]tinst|hvip|hgatp|htimedeltah?|mvendorid|marchid|mimpid|mhartid|misa|mstatush|mtval2|pmpcfg[0-3]|pmpaddr([0-9]|1[0-5])|mcountinhibit|mhpmevent([3-9]|[12][0-9]|3[01])|tselect|tdata[1-3]|dcsr|dpc|dscratch[0-1])\\b",name:"variable.other.csr.names.riscv"},{captures:{1:{name:"punctuation.definition.variable.riscv"}},match:"\\bf([0-9]|1[0-9]|2[0-9]|3[0-1])\\b",name:"variable.other.register.usable.floating-point.riscv"},{match:"\\b\\d+\\.\\d+\\b",name:"constant.numeric.float.riscv"},{match:"\\b(\\d+|0(x|X)[a-fA-F0-9]+)\\b",name:"constant.numeric.integer.riscv"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.riscv"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.riscv"}},name:"string.quoted.double.riscv",patterns:[{match:'\\\\[rnt\\\\"]',name:"constant.character.escape.riscv"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.riscv"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.riscv"}},name:"string.quoted.single.riscv",patterns:[{match:'\\\\[rnt\\\\"]',name:"constant.character.escape.riscv"}]},{begin:"\\/\\*",end:"\\*\\/",name:"comment.block"},{begin:"\\/\\/",end:"\\n",name:"comment.line.double-slash"},{begin:`(?x) +^\\s*\\#\\s*(define)\\s+ +((?<id>[a-zA-Z_][a-zA-Z0-9_]*)) +(?: +(\\() +( +\\s* \\g<id> \\s* +((,) \\s* \\g<id> \\s*)* +(?:\\.\\.\\.)? +) +(\\)) +)? +`,beginCaptures:{1:{name:"keyword.control.import.define.c"},2:{name:"entity.name.function.preprocessor.c"},4:{name:"punctuation.definition.parameters.c"},5:{name:"variable.parameter.preprocessor.c"},7:{name:"punctuation.separator.parameters.c"},8:{name:"punctuation.definition.parameters.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.macro.c",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{include:"$base"}]},{begin:"^\\s*#\\s*(error|warning)\\b",captures:{1:{name:"keyword.control.import.error.c"}},end:"$",name:"meta.preprocessor.diagnostic.c",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"}]},{begin:"^\\s*#\\s*(include|import)\\b\\s+",captures:{1:{name:"keyword.control.import.include.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.c.include",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.c"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.c"}},name:"string.quoted.double.include.c"},{begin:"<",beginCaptures:{0:{name:"punctuation.definition.string.begin.c"}},end:">",endCaptures:{0:{name:"punctuation.definition.string.end.c"}},name:"string.quoted.other.lt-gt.include.c"}]},{begin:"^\\s*#\\s*(define|defined|elif|else|if|ifdef|ifndef|line|pragma|undef|endif)\\b",captures:{1:{name:"keyword.control.import.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.c",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"}]},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.riscv"}},end:"(?!\\G)",patterns:[{begin:"#|(\\/\\/)",beginCaptures:{0:{name:"punctuation.definition.comment.riscv"}},end:"\\n",name:"comment.line.number-sign.riscv"}]}],scopeName:"source.riscv"});var e=[n];export{e as default}; diff --git a/assets/chunks/rose-pine-dawn.Bj5xdiaE.js b/assets/chunks/rose-pine-dawn.Bj5xdiaE.js new file mode 100644 index 000000000..ac417b146 --- /dev/null +++ b/assets/chunks/rose-pine-dawn.Bj5xdiaE.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#575279","activityBar.background":"#faf4ed","activityBar.dropBorder":"#f2e9e1","activityBar.foreground":"#575279","activityBar.inactiveForeground":"#797593","activityBarBadge.background":"#d7827e","activityBarBadge.foreground":"#faf4ed","badge.background":"#d7827e","badge.foreground":"#faf4ed","banner.background":"#fffaf3","banner.foreground":"#575279","banner.iconForeground":"#797593","breadcrumb.activeSelectionForeground":"#d7827e","breadcrumb.background":"#faf4ed","breadcrumb.focusForeground":"#797593","breadcrumb.foreground":"#9893a5","breadcrumbPicker.background":"#fffaf3","button.background":"#d7827e","button.foreground":"#faf4ed","button.hoverBackground":"#d7827ee6","button.secondaryBackground":"#fffaf3","button.secondaryForeground":"#575279","button.secondaryHoverBackground":"#f2e9e1","charts.blue":"#56949f","charts.foreground":"#575279","charts.green":"#286983","charts.lines":"#797593","charts.orange":"#d7827e","charts.purple":"#907aa9","charts.red":"#b4637a","charts.yellow":"#ea9d34","checkbox.background":"#fffaf3","checkbox.border":"#6e6a8614","checkbox.foreground":"#575279","debugExceptionWidget.background":"#fffaf3","debugExceptionWidget.border":"#6e6a8614","debugIcon.breakpointCurrentStackframeForeground":"#797593","debugIcon.breakpointDisabledForeground":"#797593","debugIcon.breakpointForeground":"#797593","debugIcon.breakpointStackframeForeground":"#797593","debugIcon.breakpointUnverifiedForeground":"#797593","debugIcon.continueForeground":"#797593","debugIcon.disconnectForeground":"#797593","debugIcon.pauseForeground":"#797593","debugIcon.restartForeground":"#797593","debugIcon.startForeground":"#797593","debugIcon.stepBackForeground":"#797593","debugIcon.stepIntoForeground":"#797593","debugIcon.stepOutForeground":"#797593","debugIcon.stepOverForeground":"#797593","debugIcon.stopForeground":"#b4637a","debugToolBar.background":"#fffaf3","debugToolBar.border":"#f2e9e1",descriptionForeground:"#797593","diffEditor.border":"#f2e9e1","diffEditor.diagonalFill":"#6e6a8626","diffEditor.insertedLineBackground":"#56949f26","diffEditor.insertedTextBackground":"#56949f26","diffEditor.removedLineBackground":"#b4637a26","diffEditor.removedTextBackground":"#b4637a26","diffEditorOverview.insertedForeground":"#56949f80","diffEditorOverview.removedForeground":"#b4637a80","dropdown.background":"#fffaf3","dropdown.border":"#6e6a8614","dropdown.foreground":"#575279","dropdown.listBackground":"#fffaf3","editor.background":"#faf4ed","editor.findMatchBackground":"#6e6a8626","editor.findMatchHighlightBackground":"#6e6a8626","editor.findRangeHighlightBackground":"#6e6a8626","editor.findRangeHighlightBorder":"#0000","editor.focusedStackFrameHighlightBackground":"#6e6a8614","editor.foldBackground":"#fffaf3","editor.foreground":"#575279","editor.hoverHighlightBackground":"#0000","editor.inactiveSelectionBackground":"#6e6a860d","editor.inlineValuesBackground":"#0000","editor.inlineValuesForeground":"#797593","editor.lineHighlightBackground":"#6e6a860d","editor.lineHighlightBorder":"#0000","editor.linkedEditingBackground":"#fffaf3","editor.rangeHighlightBackground":"#6e6a860d","editor.selectionBackground":"#6e6a8614","editor.selectionForeground":"#575279","editor.selectionHighlightBackground":"#6e6a8614","editor.selectionHighlightBorder":"#faf4ed","editor.snippetFinalTabstopHighlightBackground":"#6e6a8614","editor.snippetFinalTabstopHighlightBorder":"#fffaf3","editor.snippetTabstopHighlightBackground":"#6e6a8614","editor.snippetTabstopHighlightBorder":"#fffaf3","editor.stackFrameHighlightBackground":"#6e6a8614","editor.symbolHighlightBackground":"#6e6a8614","editor.symbolHighlightBorder":"#0000","editor.wordHighlightBackground":"#6e6a8614","editor.wordHighlightBorder":"#0000","editor.wordHighlightStrongBackground":"#6e6a8614","editor.wordHighlightStrongBorder":"#6e6a8614","editorBracketHighlight.foreground1":"#b4637a80","editorBracketHighlight.foreground2":"#28698380","editorBracketHighlight.foreground3":"#ea9d3480","editorBracketHighlight.foreground4":"#56949f80","editorBracketHighlight.foreground5":"#d7827e80","editorBracketHighlight.foreground6":"#907aa980","editorBracketMatch.background":"#0000","editorBracketMatch.border":"#797593","editorBracketPairGuide.activeBackground1":"#286983","editorBracketPairGuide.activeBackground2":"#d7827e","editorBracketPairGuide.activeBackground3":"#907aa9","editorBracketPairGuide.activeBackground4":"#56949f","editorBracketPairGuide.activeBackground5":"#ea9d34","editorBracketPairGuide.activeBackground6":"#b4637a","editorBracketPairGuide.background1":"#28698380","editorBracketPairGuide.background2":"#d7827e80","editorBracketPairGuide.background3":"#907aa980","editorBracketPairGuide.background4":"#56949f80","editorBracketPairGuide.background5":"#ea9d3480","editorBracketPairGuide.background6":"#b4637a80","editorCodeLens.foreground":"#d7827e","editorCursor.background":"#575279","editorCursor.foreground":"#9893a5","editorError.border":"#0000","editorError.foreground":"#b4637a","editorGhostText.foreground":"#797593","editorGroup.border":"#0000","editorGroup.dropBackground":"#fffaf3","editorGroup.emptyBackground":"#0000","editorGroup.focusedEmptyBorder":"#0000","editorGroupHeader.noTabsBackground":"#0000","editorGroupHeader.tabsBackground":"#0000","editorGroupHeader.tabsBorder":"#0000","editorGutter.addedBackground":"#56949f","editorGutter.background":"#faf4ed","editorGutter.commentRangeForeground":"#797593","editorGutter.deletedBackground":"#b4637a","editorGutter.foldingControlForeground":"#907aa9","editorGutter.modifiedBackground":"#d7827e","editorHint.border":"#0000","editorHint.foreground":"#797593","editorHoverWidget.background":"#fffaf3","editorHoverWidget.border":"#9893a580","editorHoverWidget.foreground":"#797593","editorHoverWidget.highlightForeground":"#575279","editorHoverWidget.statusBarBackground":"#0000","editorIndentGuide.activeBackground":"#9893a5","editorIndentGuide.background":"#6e6a8626","editorInfo.border":"#f2e9e1","editorInfo.foreground":"#56949f","editorInlayHint.background":"#f2e9e1","editorInlayHint.foreground":"#797593","editorInlayHint.parameterBackground":"#f2e9e1","editorInlayHint.parameterForeground":"#907aa9","editorInlayHint.typeBackground":"#f2e9e1","editorInlayHint.typeForeground":"#56949f","editorLightBulb.foreground":"#286983","editorLightBulbAutoFix.foreground":"#d7827e","editorLineNumber.activeForeground":"#575279","editorLineNumber.foreground":"#797593","editorLink.activeForeground":"#d7827e","editorMarkerNavigation.background":"#fffaf3","editorMarkerNavigationError.background":"#fffaf3","editorMarkerNavigationInfo.background":"#fffaf3","editorMarkerNavigationWarning.background":"#fffaf3","editorOverviewRuler.addedForeground":"#56949f80","editorOverviewRuler.background":"#faf4ed","editorOverviewRuler.border":"#6e6a8626","editorOverviewRuler.bracketMatchForeground":"#797593","editorOverviewRuler.commonContentForeground":"#6e6a860d","editorOverviewRuler.currentContentForeground":"#6e6a8614","editorOverviewRuler.deletedForeground":"#b4637a80","editorOverviewRuler.errorForeground":"#b4637a80","editorOverviewRuler.findMatchForeground":"#6e6a8626","editorOverviewRuler.incomingContentForeground":"#907aa980","editorOverviewRuler.infoForeground":"#56949f80","editorOverviewRuler.modifiedForeground":"#d7827e80","editorOverviewRuler.rangeHighlightForeground":"#6e6a8626","editorOverviewRuler.selectionHighlightForeground":"#6e6a8626","editorOverviewRuler.warningForeground":"#ea9d3480","editorOverviewRuler.wordHighlightForeground":"#6e6a8614","editorOverviewRuler.wordHighlightStrongForeground":"#6e6a8626","editorPane.background":"#0000","editorRuler.foreground":"#6e6a8626","editorSuggestWidget.background":"#fffaf3","editorSuggestWidget.border":"#0000","editorSuggestWidget.focusHighlightForeground":"#d7827e","editorSuggestWidget.foreground":"#797593","editorSuggestWidget.highlightForeground":"#d7827e","editorSuggestWidget.selectedBackground":"#6e6a8614","editorSuggestWidget.selectedForeground":"#575279","editorSuggestWidget.selectedIconForeground":"#575279","editorUnnecessaryCode.border":"#0000","editorUnnecessaryCode.opacity":"#57527980","editorWarning.border":"#0000","editorWarning.foreground":"#ea9d34","editorWhitespace.foreground":"#9893a5","editorWidget.background":"#fffaf3","editorWidget.border":"#f2e9e1","editorWidget.foreground":"#797593","editorWidget.resizeBorder":"#9893a5",errorForeground:"#b4637a","extensionBadge.remoteBackground":"#907aa9","extensionBadge.remoteForeground":"#faf4ed","extensionButton.prominentBackground":"#d7827e","extensionButton.prominentForeground":"#faf4ed","extensionButton.prominentHoverBackground":"#d7827ee6","extensionIcon.preReleaseForeground":"#286983","extensionIcon.starForeground":"#d7827e","extensionIcon.verifiedForeground":"#907aa9",focusBorder:"#6e6a8614",foreground:"#575279","gitDecoration.addedResourceForeground":"#56949f","gitDecoration.conflictingResourceForeground":"#b4637a","gitDecoration.deletedResourceForeground":"#797593","gitDecoration.ignoredResourceForeground":"#9893a5","gitDecoration.modifiedResourceForeground":"#d7827e","gitDecoration.renamedResourceForeground":"#286983","gitDecoration.stageDeletedResourceForeground":"#b4637a","gitDecoration.stageModifiedResourceForeground":"#907aa9","gitDecoration.submoduleResourceForeground":"#ea9d34","gitDecoration.untrackedResourceForeground":"#ea9d34","icon.foreground":"#797593","input.background":"#f2e9e180","input.border":"#6e6a8614","input.foreground":"#575279","input.placeholderForeground":"#797593","inputOption.activeBackground":"#d7827e26","inputOption.activeForeground":"#d7827e","inputValidation.errorBackground":"#fffaf3","inputValidation.errorBorder":"#6e6a8626","inputValidation.errorForeground":"#b4637a","inputValidation.infoBackground":"#fffaf3","inputValidation.infoBorder":"#6e6a8626","inputValidation.infoForeground":"#56949f","inputValidation.warningBackground":"#fffaf3","inputValidation.warningBorder":"#6e6a8626","inputValidation.warningForeground":"#56949f80","keybindingLabel.background":"#f2e9e1","keybindingLabel.border":"#6e6a8626","keybindingLabel.bottomBorder":"#6e6a8626","keybindingLabel.foreground":"#907aa9","keybindingTable.headerBackground":"#f2e9e1","keybindingTable.rowsBackground":"#fffaf3","list.activeSelectionBackground":"#6e6a8614","list.activeSelectionForeground":"#575279","list.deemphasizedForeground":"#797593","list.dropBackground":"#fffaf3","list.errorForeground":"#b4637a","list.filterMatchBackground":"#fffaf3","list.filterMatchBorder":"#d7827e","list.focusBackground":"#6e6a8626","list.focusForeground":"#575279","list.focusOutline":"#6e6a8614","list.highlightForeground":"#d7827e","list.hoverBackground":"#6e6a860d","list.hoverForeground":"#575279","list.inactiveFocusBackground":"#6e6a860d","list.inactiveSelectionBackground":"#fffaf3","list.inactiveSelectionForeground":"#575279","list.invalidItemForeground":"#b4637a","list.warningForeground":"#ea9d34","listFilterWidget.background":"#fffaf3","listFilterWidget.noMatchesOutline":"#b4637a","listFilterWidget.outline":"#f2e9e1","menu.background":"#fffaf3","menu.border":"#6e6a860d","menu.foreground":"#575279","menu.selectionBackground":"#6e6a8614","menu.selectionBorder":"#f2e9e1","menu.selectionForeground":"#575279","menu.separatorBackground":"#6e6a8626","menubar.selectionBackground":"#6e6a8614","menubar.selectionBorder":"#6e6a860d","menubar.selectionForeground":"#575279","merge.border":"#f2e9e1","merge.commonContentBackground":"#6e6a8614","merge.commonHeaderBackground":"#6e6a8614","merge.currentContentBackground":"#ea9d3480","merge.currentHeaderBackground":"#ea9d3480","merge.incomingContentBackground":"#56949f80","merge.incomingHeaderBackground":"#56949f80","minimap.background":"#fffaf3","minimap.errorHighlight":"#b4637a80","minimap.findMatchHighlight":"#6e6a8614","minimap.selectionHighlight":"#6e6a8614","minimap.warningHighlight":"#ea9d3480","minimapGutter.addedBackground":"#56949f","minimapGutter.deletedBackground":"#b4637a","minimapGutter.modifiedBackground":"#d7827e","minimapSlider.activeBackground":"#6e6a8626","minimapSlider.background":"#6e6a8614","minimapSlider.hoverBackground":"#6e6a8614","notebook.cellBorderColor":"#56949f80","notebook.cellEditorBackground":"#fffaf3","notebook.cellHoverBackground":"#f2e9e180","notebook.focusedCellBackground":"#6e6a860d","notebook.focusedCellBorder":"#56949f","notebook.outputContainerBackgroundColor":"#6e6a860d","notificationCenter.border":"#6e6a8614","notificationCenterHeader.background":"#fffaf3","notificationCenterHeader.foreground":"#797593","notificationLink.foreground":"#907aa9","notificationToast.border":"#6e6a8614","notifications.background":"#fffaf3","notifications.border":"#6e6a8614","notifications.foreground":"#575279","notificationsErrorIcon.foreground":"#b4637a","notificationsInfoIcon.foreground":"#56949f","notificationsWarningIcon.foreground":"#ea9d34","panel.background":"#fffaf3","panel.border":"#0000","panel.dropBorder":"#f2e9e1","panelInput.border":"#fffaf3","panelSection.dropBackground":"#6e6a8614","panelSectionHeader.background":"#fffaf3","panelSectionHeader.foreground":"#575279","panelTitle.activeBorder":"#6e6a8626","panelTitle.activeForeground":"#575279","panelTitle.inactiveForeground":"#797593","peekView.border":"#f2e9e1","peekViewEditor.background":"#fffaf3","peekViewEditor.matchHighlightBackground":"#6e6a8626","peekViewResult.background":"#fffaf3","peekViewResult.fileForeground":"#797593","peekViewResult.lineForeground":"#797593","peekViewResult.matchHighlightBackground":"#6e6a8626","peekViewResult.selectionBackground":"#6e6a8614","peekViewResult.selectionForeground":"#575279","peekViewTitle.background":"#f2e9e1","peekViewTitleDescription.foreground":"#797593","pickerGroup.border":"#6e6a8626","pickerGroup.foreground":"#907aa9","ports.iconRunningProcessForeground":"#d7827e","problemsErrorIcon.foreground":"#b4637a","problemsInfoIcon.foreground":"#56949f","problemsWarningIcon.foreground":"#ea9d34","progressBar.background":"#d7827e","quickInput.background":"#fffaf3","quickInput.foreground":"#797593","quickInputList.focusBackground":"#6e6a8614","quickInputList.focusForeground":"#575279","quickInputList.focusIconForeground":"#575279","scrollbar.shadow":"#fffaf34d","scrollbarSlider.activeBackground":"#28698380","scrollbarSlider.background":"#6e6a8614","scrollbarSlider.hoverBackground":"#6e6a8626","searchEditor.findMatchBackground":"#6e6a8614","selection.background":"#6e6a8626","settings.focusedRowBackground":"#fffaf3","settings.focusedRowBorder":"#6e6a8614","settings.headerForeground":"#575279","settings.modifiedItemIndicator":"#d7827e","settings.rowHoverBackground":"#fffaf3","sideBar.background":"#faf4ed","sideBar.dropBackground":"#fffaf3","sideBar.foreground":"#797593","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#6e6a8614","statusBar.background":"#faf4ed","statusBar.debuggingBackground":"#907aa9","statusBar.debuggingForeground":"#faf4ed","statusBar.foreground":"#797593","statusBar.noFolderBackground":"#faf4ed","statusBar.noFolderForeground":"#797593","statusBarItem.activeBackground":"#6e6a8626","statusBarItem.errorBackground":"#faf4ed","statusBarItem.errorForeground":"#b4637a","statusBarItem.hoverBackground":"#6e6a8614","statusBarItem.prominentBackground":"#f2e9e1","statusBarItem.prominentForeground":"#575279","statusBarItem.prominentHoverBackground":"#6e6a8614","statusBarItem.remoteBackground":"#faf4ed","statusBarItem.remoteForeground":"#ea9d34","symbolIcon.arrayForeground":"#797593","symbolIcon.classForeground":"#797593","symbolIcon.colorForeground":"#797593","symbolIcon.constantForeground":"#797593","symbolIcon.constructorForeground":"#797593","symbolIcon.enumeratorForeground":"#797593","symbolIcon.enumeratorMemberForeground":"#797593","symbolIcon.eventForeground":"#797593","symbolIcon.fieldForeground":"#797593","symbolIcon.fileForeground":"#797593","symbolIcon.folderForeground":"#797593","symbolIcon.functionForeground":"#797593","symbolIcon.interfaceForeground":"#797593","symbolIcon.keyForeground":"#797593","symbolIcon.keywordForeground":"#797593","symbolIcon.methodForeground":"#797593","symbolIcon.moduleForeground":"#797593","symbolIcon.namespaceForeground":"#797593","symbolIcon.nullForeground":"#797593","symbolIcon.numberForeground":"#797593","symbolIcon.objectForeground":"#797593","symbolIcon.operatorForeground":"#797593","symbolIcon.packageForeground":"#797593","symbolIcon.propertyForeground":"#797593","symbolIcon.referenceForeground":"#797593","symbolIcon.snippetForeground":"#797593","symbolIcon.stringForeground":"#797593","symbolIcon.structForeground":"#797593","symbolIcon.textForeground":"#797593","symbolIcon.typeParameterForeground":"#797593","symbolIcon.unitForeground":"#797593","symbolIcon.variableForeground":"#797593","tab.activeBackground":"#6e6a860d","tab.activeForeground":"#575279","tab.activeModifiedBorder":"#56949f","tab.border":"#0000","tab.hoverBackground":"#6e6a8614","tab.inactiveBackground":"#0000","tab.inactiveForeground":"#797593","tab.inactiveModifiedBorder":"#56949f80","tab.lastPinnedBorder":"#9893a5","tab.unfocusedActiveBackground":"#0000","tab.unfocusedHoverBackground":"#0000","tab.unfocusedInactiveBackground":"#0000","tab.unfocusedInactiveModifiedBorder":"#56949f80","terminal.ansiBlack":"#f2e9e1","terminal.ansiBlue":"#56949f","terminal.ansiBrightBlack":"#797593","terminal.ansiBrightBlue":"#56949f","terminal.ansiBrightCyan":"#d7827e","terminal.ansiBrightGreen":"#286983","terminal.ansiBrightMagenta":"#907aa9","terminal.ansiBrightRed":"#b4637a","terminal.ansiBrightWhite":"#575279","terminal.ansiBrightYellow":"#ea9d34","terminal.ansiCyan":"#d7827e","terminal.ansiGreen":"#286983","terminal.ansiMagenta":"#907aa9","terminal.ansiRed":"#b4637a","terminal.ansiWhite":"#575279","terminal.ansiYellow":"#ea9d34","terminal.dropBackground":"#6e6a8614","terminal.foreground":"#575279","terminal.selectionBackground":"#6e6a8614","terminal.tab.activeBorder":"#575279","terminalCursor.background":"#575279","terminalCursor.foreground":"#9893a5","textBlockQuote.background":"#fffaf3","textBlockQuote.border":"#6e6a8614","textCodeBlock.background":"#fffaf3","textLink.activeForeground":"#907aa9e6","textLink.foreground":"#907aa9","textPreformat.foreground":"#ea9d34","textSeparator.foreground":"#797593","titleBar.activeBackground":"#faf4ed","titleBar.activeForeground":"#797593","titleBar.inactiveBackground":"#fffaf3","titleBar.inactiveForeground":"#797593","toolbar.activeBackground":"#6e6a8626","toolbar.hoverBackground":"#6e6a8614","tree.indentGuidesStroke":"#797593","walkThrough.embeddedEditorBackground":"#faf4ed","welcomePage.background":"#faf4ed","welcomePage.buttonBackground":"#fffaf3","welcomePage.buttonHoverBackground":"#f2e9e1","widget.shadow":"#fffaf34d","window.activeBorder":"#fffaf3","window.inactiveBorder":"#fffaf3"},displayName:"Rosé Pine Dawn",name:"rose-pine-dawn",tokenColors:[{scope:["comment"],settings:{fontStyle:"italic",foreground:"#9893a5"}},{scope:["constant"],settings:{foreground:"#286983"}},{scope:["constant.numeric","constant.language"],settings:{foreground:"#d7827e"}},{scope:["entity.name"],settings:{foreground:"#d7827e"}},{scope:["entity.name.section","entity.name.tag","entity.name.namespace","entity.name.type"],settings:{foreground:"#56949f"}},{scope:["entity.other.attribute-name","entity.other.inherited-class"],settings:{fontStyle:"italic",foreground:"#907aa9"}},{scope:["invalid"],settings:{foreground:"#b4637a"}},{scope:["invalid.deprecated"],settings:{foreground:"#797593"}},{scope:["keyword"],settings:{foreground:"#286983"}},{scope:["markup.inserted.diff"],settings:{foreground:"#56949f"}},{scope:["markup.deleted.diff"],settings:{foreground:"#b4637a"}},{scope:"markup.heading",settings:{fontStyle:"bold"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:["meta.diff.range"],settings:{foreground:"#907aa9"}},{scope:["meta.tag","meta.brace"],settings:{foreground:"#575279"}},{scope:["meta.import","meta.export"],settings:{foreground:"#286983"}},{scope:"meta.directive.vue",settings:{fontStyle:"italic",foreground:"#907aa9"}},{scope:"meta.property-name.css",settings:{foreground:"#56949f"}},{scope:"meta.property-value.css",settings:{foreground:"#ea9d34"}},{scope:"meta.tag.other.html",settings:{foreground:"#797593"}},{scope:["punctuation"],settings:{foreground:"#797593"}},{scope:["punctuation.accessor"],settings:{foreground:"#286983"}},{scope:["punctuation.definition.string"],settings:{foreground:"#ea9d34"}},{scope:["punctuation.definition.tag"],settings:{foreground:"#9893a5"}},{scope:["storage.type","storage.modifier"],settings:{foreground:"#286983"}},{scope:["string"],settings:{foreground:"#ea9d34"}},{scope:["support"],settings:{foreground:"#56949f"}},{scope:["support.constant"],settings:{foreground:"#ea9d34"}},{scope:["support.function"],settings:{fontStyle:"italic",foreground:"#b4637a"}},{scope:["variable"],settings:{fontStyle:"italic",foreground:"#d7827e"}},{scope:["variable.other","variable.language","variable.function","variable.argument"],settings:{foreground:"#575279"}},{scope:["variable.parameter"],settings:{foreground:"#907aa9"}}],type:"light"});export{e as default}; diff --git a/assets/chunks/rose-pine-moon.CdedUr_-.js b/assets/chunks/rose-pine-moon.CdedUr_-.js new file mode 100644 index 000000000..5beba826a --- /dev/null +++ b/assets/chunks/rose-pine-moon.CdedUr_-.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#e0def4","activityBar.background":"#232136","activityBar.dropBorder":"#393552","activityBar.foreground":"#e0def4","activityBar.inactiveForeground":"#908caa","activityBarBadge.background":"#ea9a97","activityBarBadge.foreground":"#232136","badge.background":"#ea9a97","badge.foreground":"#232136","banner.background":"#2a273f","banner.foreground":"#e0def4","banner.iconForeground":"#908caa","breadcrumb.activeSelectionForeground":"#ea9a97","breadcrumb.background":"#232136","breadcrumb.focusForeground":"#908caa","breadcrumb.foreground":"#6e6a86","breadcrumbPicker.background":"#2a273f","button.background":"#ea9a97","button.foreground":"#232136","button.hoverBackground":"#ea9a97e6","button.secondaryBackground":"#2a273f","button.secondaryForeground":"#e0def4","button.secondaryHoverBackground":"#393552","charts.blue":"#9ccfd8","charts.foreground":"#e0def4","charts.green":"#3e8fb0","charts.lines":"#908caa","charts.orange":"#ea9a97","charts.purple":"#c4a7e7","charts.red":"#eb6f92","charts.yellow":"#f6c177","checkbox.background":"#2a273f","checkbox.border":"#817c9c26","checkbox.foreground":"#e0def4","debugExceptionWidget.background":"#2a273f","debugExceptionWidget.border":"#817c9c26","debugIcon.breakpointCurrentStackframeForeground":"#908caa","debugIcon.breakpointDisabledForeground":"#908caa","debugIcon.breakpointForeground":"#908caa","debugIcon.breakpointStackframeForeground":"#908caa","debugIcon.breakpointUnverifiedForeground":"#908caa","debugIcon.continueForeground":"#908caa","debugIcon.disconnectForeground":"#908caa","debugIcon.pauseForeground":"#908caa","debugIcon.restartForeground":"#908caa","debugIcon.startForeground":"#908caa","debugIcon.stepBackForeground":"#908caa","debugIcon.stepIntoForeground":"#908caa","debugIcon.stepOutForeground":"#908caa","debugIcon.stepOverForeground":"#908caa","debugIcon.stopForeground":"#eb6f92","debugToolBar.background":"#2a273f","debugToolBar.border":"#393552",descriptionForeground:"#908caa","diffEditor.border":"#393552","diffEditor.diagonalFill":"#817c9c4d","diffEditor.insertedLineBackground":"#9ccfd826","diffEditor.insertedTextBackground":"#9ccfd826","diffEditor.removedLineBackground":"#eb6f9226","diffEditor.removedTextBackground":"#eb6f9226","diffEditorOverview.insertedForeground":"#9ccfd880","diffEditorOverview.removedForeground":"#eb6f9280","dropdown.background":"#2a273f","dropdown.border":"#817c9c26","dropdown.foreground":"#e0def4","dropdown.listBackground":"#2a273f","editor.background":"#232136","editor.findMatchBackground":"#817c9c4d","editor.findMatchHighlightBackground":"#817c9c4d","editor.findRangeHighlightBackground":"#817c9c4d","editor.findRangeHighlightBorder":"#0000","editor.focusedStackFrameHighlightBackground":"#817c9c26","editor.foldBackground":"#2a273f","editor.foreground":"#e0def4","editor.hoverHighlightBackground":"#0000","editor.inactiveSelectionBackground":"#817c9c14","editor.inlineValuesBackground":"#0000","editor.inlineValuesForeground":"#908caa","editor.lineHighlightBackground":"#817c9c14","editor.lineHighlightBorder":"#0000","editor.linkedEditingBackground":"#2a273f","editor.rangeHighlightBackground":"#817c9c14","editor.selectionBackground":"#817c9c26","editor.selectionForeground":"#e0def4","editor.selectionHighlightBackground":"#817c9c26","editor.selectionHighlightBorder":"#232136","editor.snippetFinalTabstopHighlightBackground":"#817c9c26","editor.snippetFinalTabstopHighlightBorder":"#2a273f","editor.snippetTabstopHighlightBackground":"#817c9c26","editor.snippetTabstopHighlightBorder":"#2a273f","editor.stackFrameHighlightBackground":"#817c9c26","editor.symbolHighlightBackground":"#817c9c26","editor.symbolHighlightBorder":"#0000","editor.wordHighlightBackground":"#817c9c26","editor.wordHighlightBorder":"#0000","editor.wordHighlightStrongBackground":"#817c9c26","editor.wordHighlightStrongBorder":"#817c9c26","editorBracketHighlight.foreground1":"#eb6f9280","editorBracketHighlight.foreground2":"#3e8fb080","editorBracketHighlight.foreground3":"#f6c17780","editorBracketHighlight.foreground4":"#9ccfd880","editorBracketHighlight.foreground5":"#ea9a9780","editorBracketHighlight.foreground6":"#c4a7e780","editorBracketMatch.background":"#0000","editorBracketMatch.border":"#908caa","editorBracketPairGuide.activeBackground1":"#3e8fb0","editorBracketPairGuide.activeBackground2":"#ea9a97","editorBracketPairGuide.activeBackground3":"#c4a7e7","editorBracketPairGuide.activeBackground4":"#9ccfd8","editorBracketPairGuide.activeBackground5":"#f6c177","editorBracketPairGuide.activeBackground6":"#eb6f92","editorBracketPairGuide.background1":"#3e8fb080","editorBracketPairGuide.background2":"#ea9a9780","editorBracketPairGuide.background3":"#c4a7e780","editorBracketPairGuide.background4":"#9ccfd880","editorBracketPairGuide.background5":"#f6c17780","editorBracketPairGuide.background6":"#eb6f9280","editorCodeLens.foreground":"#ea9a97","editorCursor.background":"#e0def4","editorCursor.foreground":"#6e6a86","editorError.border":"#0000","editorError.foreground":"#eb6f92","editorGhostText.foreground":"#908caa","editorGroup.border":"#0000","editorGroup.dropBackground":"#2a273f","editorGroup.emptyBackground":"#0000","editorGroup.focusedEmptyBorder":"#0000","editorGroupHeader.noTabsBackground":"#0000","editorGroupHeader.tabsBackground":"#0000","editorGroupHeader.tabsBorder":"#0000","editorGutter.addedBackground":"#9ccfd8","editorGutter.background":"#232136","editorGutter.commentRangeForeground":"#908caa","editorGutter.deletedBackground":"#eb6f92","editorGutter.foldingControlForeground":"#c4a7e7","editorGutter.modifiedBackground":"#ea9a97","editorHint.border":"#0000","editorHint.foreground":"#908caa","editorHoverWidget.background":"#2a273f","editorHoverWidget.border":"#6e6a8680","editorHoverWidget.foreground":"#908caa","editorHoverWidget.highlightForeground":"#e0def4","editorHoverWidget.statusBarBackground":"#0000","editorIndentGuide.activeBackground":"#6e6a86","editorIndentGuide.background":"#817c9c4d","editorInfo.border":"#393552","editorInfo.foreground":"#9ccfd8","editorInlayHint.background":"#393552","editorInlayHint.foreground":"#908caa","editorInlayHint.parameterBackground":"#393552","editorInlayHint.parameterForeground":"#c4a7e7","editorInlayHint.typeBackground":"#393552","editorInlayHint.typeForeground":"#9ccfd8","editorLightBulb.foreground":"#3e8fb0","editorLightBulbAutoFix.foreground":"#ea9a97","editorLineNumber.activeForeground":"#e0def4","editorLineNumber.foreground":"#908caa","editorLink.activeForeground":"#ea9a97","editorMarkerNavigation.background":"#2a273f","editorMarkerNavigationError.background":"#2a273f","editorMarkerNavigationInfo.background":"#2a273f","editorMarkerNavigationWarning.background":"#2a273f","editorOverviewRuler.addedForeground":"#9ccfd880","editorOverviewRuler.background":"#232136","editorOverviewRuler.border":"#817c9c4d","editorOverviewRuler.bracketMatchForeground":"#908caa","editorOverviewRuler.commonContentForeground":"#817c9c14","editorOverviewRuler.currentContentForeground":"#817c9c26","editorOverviewRuler.deletedForeground":"#eb6f9280","editorOverviewRuler.errorForeground":"#eb6f9280","editorOverviewRuler.findMatchForeground":"#817c9c4d","editorOverviewRuler.incomingContentForeground":"#c4a7e780","editorOverviewRuler.infoForeground":"#9ccfd880","editorOverviewRuler.modifiedForeground":"#ea9a9780","editorOverviewRuler.rangeHighlightForeground":"#817c9c4d","editorOverviewRuler.selectionHighlightForeground":"#817c9c4d","editorOverviewRuler.warningForeground":"#f6c17780","editorOverviewRuler.wordHighlightForeground":"#817c9c26","editorOverviewRuler.wordHighlightStrongForeground":"#817c9c4d","editorPane.background":"#0000","editorRuler.foreground":"#817c9c4d","editorSuggestWidget.background":"#2a273f","editorSuggestWidget.border":"#0000","editorSuggestWidget.focusHighlightForeground":"#ea9a97","editorSuggestWidget.foreground":"#908caa","editorSuggestWidget.highlightForeground":"#ea9a97","editorSuggestWidget.selectedBackground":"#817c9c26","editorSuggestWidget.selectedForeground":"#e0def4","editorSuggestWidget.selectedIconForeground":"#e0def4","editorUnnecessaryCode.border":"#0000","editorUnnecessaryCode.opacity":"#e0def480","editorWarning.border":"#0000","editorWarning.foreground":"#f6c177","editorWhitespace.foreground":"#6e6a86","editorWidget.background":"#2a273f","editorWidget.border":"#393552","editorWidget.foreground":"#908caa","editorWidget.resizeBorder":"#6e6a86",errorForeground:"#eb6f92","extensionBadge.remoteBackground":"#c4a7e7","extensionBadge.remoteForeground":"#232136","extensionButton.prominentBackground":"#ea9a97","extensionButton.prominentForeground":"#232136","extensionButton.prominentHoverBackground":"#ea9a97e6","extensionIcon.preReleaseForeground":"#3e8fb0","extensionIcon.starForeground":"#ea9a97","extensionIcon.verifiedForeground":"#c4a7e7",focusBorder:"#817c9c26",foreground:"#e0def4","gitDecoration.addedResourceForeground":"#9ccfd8","gitDecoration.conflictingResourceForeground":"#eb6f92","gitDecoration.deletedResourceForeground":"#908caa","gitDecoration.ignoredResourceForeground":"#6e6a86","gitDecoration.modifiedResourceForeground":"#ea9a97","gitDecoration.renamedResourceForeground":"#3e8fb0","gitDecoration.stageDeletedResourceForeground":"#eb6f92","gitDecoration.stageModifiedResourceForeground":"#c4a7e7","gitDecoration.submoduleResourceForeground":"#f6c177","gitDecoration.untrackedResourceForeground":"#f6c177","icon.foreground":"#908caa","input.background":"#39355280","input.border":"#817c9c26","input.foreground":"#e0def4","input.placeholderForeground":"#908caa","inputOption.activeBackground":"#ea9a9726","inputOption.activeForeground":"#ea9a97","inputValidation.errorBackground":"#2a273f","inputValidation.errorBorder":"#817c9c4d","inputValidation.errorForeground":"#eb6f92","inputValidation.infoBackground":"#2a273f","inputValidation.infoBorder":"#817c9c4d","inputValidation.infoForeground":"#9ccfd8","inputValidation.warningBackground":"#2a273f","inputValidation.warningBorder":"#817c9c4d","inputValidation.warningForeground":"#9ccfd880","keybindingLabel.background":"#393552","keybindingLabel.border":"#817c9c4d","keybindingLabel.bottomBorder":"#817c9c4d","keybindingLabel.foreground":"#c4a7e7","keybindingTable.headerBackground":"#393552","keybindingTable.rowsBackground":"#2a273f","list.activeSelectionBackground":"#817c9c26","list.activeSelectionForeground":"#e0def4","list.deemphasizedForeground":"#908caa","list.dropBackground":"#2a273f","list.errorForeground":"#eb6f92","list.filterMatchBackground":"#2a273f","list.filterMatchBorder":"#ea9a97","list.focusBackground":"#817c9c4d","list.focusForeground":"#e0def4","list.focusOutline":"#817c9c26","list.highlightForeground":"#ea9a97","list.hoverBackground":"#817c9c14","list.hoverForeground":"#e0def4","list.inactiveFocusBackground":"#817c9c14","list.inactiveSelectionBackground":"#2a273f","list.inactiveSelectionForeground":"#e0def4","list.invalidItemForeground":"#eb6f92","list.warningForeground":"#f6c177","listFilterWidget.background":"#2a273f","listFilterWidget.noMatchesOutline":"#eb6f92","listFilterWidget.outline":"#393552","menu.background":"#2a273f","menu.border":"#817c9c14","menu.foreground":"#e0def4","menu.selectionBackground":"#817c9c26","menu.selectionBorder":"#393552","menu.selectionForeground":"#e0def4","menu.separatorBackground":"#817c9c4d","menubar.selectionBackground":"#817c9c26","menubar.selectionBorder":"#817c9c14","menubar.selectionForeground":"#e0def4","merge.border":"#393552","merge.commonContentBackground":"#817c9c26","merge.commonHeaderBackground":"#817c9c26","merge.currentContentBackground":"#f6c17780","merge.currentHeaderBackground":"#f6c17780","merge.incomingContentBackground":"#9ccfd880","merge.incomingHeaderBackground":"#9ccfd880","minimap.background":"#2a273f","minimap.errorHighlight":"#eb6f9280","minimap.findMatchHighlight":"#817c9c26","minimap.selectionHighlight":"#817c9c26","minimap.warningHighlight":"#f6c17780","minimapGutter.addedBackground":"#9ccfd8","minimapGutter.deletedBackground":"#eb6f92","minimapGutter.modifiedBackground":"#ea9a97","minimapSlider.activeBackground":"#817c9c4d","minimapSlider.background":"#817c9c26","minimapSlider.hoverBackground":"#817c9c26","notebook.cellBorderColor":"#9ccfd880","notebook.cellEditorBackground":"#2a273f","notebook.cellHoverBackground":"#39355280","notebook.focusedCellBackground":"#817c9c14","notebook.focusedCellBorder":"#9ccfd8","notebook.outputContainerBackgroundColor":"#817c9c14","notificationCenter.border":"#817c9c26","notificationCenterHeader.background":"#2a273f","notificationCenterHeader.foreground":"#908caa","notificationLink.foreground":"#c4a7e7","notificationToast.border":"#817c9c26","notifications.background":"#2a273f","notifications.border":"#817c9c26","notifications.foreground":"#e0def4","notificationsErrorIcon.foreground":"#eb6f92","notificationsInfoIcon.foreground":"#9ccfd8","notificationsWarningIcon.foreground":"#f6c177","panel.background":"#2a273f","panel.border":"#0000","panel.dropBorder":"#393552","panelInput.border":"#2a273f","panelSection.dropBackground":"#817c9c26","panelSectionHeader.background":"#2a273f","panelSectionHeader.foreground":"#e0def4","panelTitle.activeBorder":"#817c9c4d","panelTitle.activeForeground":"#e0def4","panelTitle.inactiveForeground":"#908caa","peekView.border":"#393552","peekViewEditor.background":"#2a273f","peekViewEditor.matchHighlightBackground":"#817c9c4d","peekViewResult.background":"#2a273f","peekViewResult.fileForeground":"#908caa","peekViewResult.lineForeground":"#908caa","peekViewResult.matchHighlightBackground":"#817c9c4d","peekViewResult.selectionBackground":"#817c9c26","peekViewResult.selectionForeground":"#e0def4","peekViewTitle.background":"#393552","peekViewTitleDescription.foreground":"#908caa","pickerGroup.border":"#817c9c4d","pickerGroup.foreground":"#c4a7e7","ports.iconRunningProcessForeground":"#ea9a97","problemsErrorIcon.foreground":"#eb6f92","problemsInfoIcon.foreground":"#9ccfd8","problemsWarningIcon.foreground":"#f6c177","progressBar.background":"#ea9a97","quickInput.background":"#2a273f","quickInput.foreground":"#908caa","quickInputList.focusBackground":"#817c9c26","quickInputList.focusForeground":"#e0def4","quickInputList.focusIconForeground":"#e0def4","scrollbar.shadow":"#2a273f4d","scrollbarSlider.activeBackground":"#3e8fb080","scrollbarSlider.background":"#817c9c26","scrollbarSlider.hoverBackground":"#817c9c4d","searchEditor.findMatchBackground":"#817c9c26","selection.background":"#817c9c4d","settings.focusedRowBackground":"#2a273f","settings.focusedRowBorder":"#817c9c26","settings.headerForeground":"#e0def4","settings.modifiedItemIndicator":"#ea9a97","settings.rowHoverBackground":"#2a273f","sideBar.background":"#232136","sideBar.dropBackground":"#2a273f","sideBar.foreground":"#908caa","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#817c9c26","statusBar.background":"#232136","statusBar.debuggingBackground":"#c4a7e7","statusBar.debuggingForeground":"#232136","statusBar.foreground":"#908caa","statusBar.noFolderBackground":"#232136","statusBar.noFolderForeground":"#908caa","statusBarItem.activeBackground":"#817c9c4d","statusBarItem.errorBackground":"#232136","statusBarItem.errorForeground":"#eb6f92","statusBarItem.hoverBackground":"#817c9c26","statusBarItem.prominentBackground":"#393552","statusBarItem.prominentForeground":"#e0def4","statusBarItem.prominentHoverBackground":"#817c9c26","statusBarItem.remoteBackground":"#232136","statusBarItem.remoteForeground":"#f6c177","symbolIcon.arrayForeground":"#908caa","symbolIcon.classForeground":"#908caa","symbolIcon.colorForeground":"#908caa","symbolIcon.constantForeground":"#908caa","symbolIcon.constructorForeground":"#908caa","symbolIcon.enumeratorForeground":"#908caa","symbolIcon.enumeratorMemberForeground":"#908caa","symbolIcon.eventForeground":"#908caa","symbolIcon.fieldForeground":"#908caa","symbolIcon.fileForeground":"#908caa","symbolIcon.folderForeground":"#908caa","symbolIcon.functionForeground":"#908caa","symbolIcon.interfaceForeground":"#908caa","symbolIcon.keyForeground":"#908caa","symbolIcon.keywordForeground":"#908caa","symbolIcon.methodForeground":"#908caa","symbolIcon.moduleForeground":"#908caa","symbolIcon.namespaceForeground":"#908caa","symbolIcon.nullForeground":"#908caa","symbolIcon.numberForeground":"#908caa","symbolIcon.objectForeground":"#908caa","symbolIcon.operatorForeground":"#908caa","symbolIcon.packageForeground":"#908caa","symbolIcon.propertyForeground":"#908caa","symbolIcon.referenceForeground":"#908caa","symbolIcon.snippetForeground":"#908caa","symbolIcon.stringForeground":"#908caa","symbolIcon.structForeground":"#908caa","symbolIcon.textForeground":"#908caa","symbolIcon.typeParameterForeground":"#908caa","symbolIcon.unitForeground":"#908caa","symbolIcon.variableForeground":"#908caa","tab.activeBackground":"#817c9c14","tab.activeForeground":"#e0def4","tab.activeModifiedBorder":"#9ccfd8","tab.border":"#0000","tab.hoverBackground":"#817c9c26","tab.inactiveBackground":"#0000","tab.inactiveForeground":"#908caa","tab.inactiveModifiedBorder":"#9ccfd880","tab.lastPinnedBorder":"#6e6a86","tab.unfocusedActiveBackground":"#0000","tab.unfocusedHoverBackground":"#0000","tab.unfocusedInactiveBackground":"#0000","tab.unfocusedInactiveModifiedBorder":"#9ccfd880","terminal.ansiBlack":"#393552","terminal.ansiBlue":"#9ccfd8","terminal.ansiBrightBlack":"#908caa","terminal.ansiBrightBlue":"#9ccfd8","terminal.ansiBrightCyan":"#ea9a97","terminal.ansiBrightGreen":"#3e8fb0","terminal.ansiBrightMagenta":"#c4a7e7","terminal.ansiBrightRed":"#eb6f92","terminal.ansiBrightWhite":"#e0def4","terminal.ansiBrightYellow":"#f6c177","terminal.ansiCyan":"#ea9a97","terminal.ansiGreen":"#3e8fb0","terminal.ansiMagenta":"#c4a7e7","terminal.ansiRed":"#eb6f92","terminal.ansiWhite":"#e0def4","terminal.ansiYellow":"#f6c177","terminal.dropBackground":"#817c9c26","terminal.foreground":"#e0def4","terminal.selectionBackground":"#817c9c26","terminal.tab.activeBorder":"#e0def4","terminalCursor.background":"#e0def4","terminalCursor.foreground":"#6e6a86","textBlockQuote.background":"#2a273f","textBlockQuote.border":"#817c9c26","textCodeBlock.background":"#2a273f","textLink.activeForeground":"#c4a7e7e6","textLink.foreground":"#c4a7e7","textPreformat.foreground":"#f6c177","textSeparator.foreground":"#908caa","titleBar.activeBackground":"#232136","titleBar.activeForeground":"#908caa","titleBar.inactiveBackground":"#2a273f","titleBar.inactiveForeground":"#908caa","toolbar.activeBackground":"#817c9c4d","toolbar.hoverBackground":"#817c9c26","tree.indentGuidesStroke":"#908caa","walkThrough.embeddedEditorBackground":"#232136","welcomePage.background":"#232136","welcomePage.buttonBackground":"#2a273f","welcomePage.buttonHoverBackground":"#393552","widget.shadow":"#2a273f4d","window.activeBorder":"#2a273f","window.inactiveBorder":"#2a273f"},displayName:"Rosé Pine Moon",name:"rose-pine-moon",tokenColors:[{scope:["comment"],settings:{fontStyle:"italic",foreground:"#6e6a86"}},{scope:["constant"],settings:{foreground:"#3e8fb0"}},{scope:["constant.numeric","constant.language"],settings:{foreground:"#ea9a97"}},{scope:["entity.name"],settings:{foreground:"#ea9a97"}},{scope:["entity.name.section","entity.name.tag","entity.name.namespace","entity.name.type"],settings:{foreground:"#9ccfd8"}},{scope:["entity.other.attribute-name","entity.other.inherited-class"],settings:{fontStyle:"italic",foreground:"#c4a7e7"}},{scope:["invalid"],settings:{foreground:"#eb6f92"}},{scope:["invalid.deprecated"],settings:{foreground:"#908caa"}},{scope:["keyword"],settings:{foreground:"#3e8fb0"}},{scope:["markup.inserted.diff"],settings:{foreground:"#9ccfd8"}},{scope:["markup.deleted.diff"],settings:{foreground:"#eb6f92"}},{scope:"markup.heading",settings:{fontStyle:"bold"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:["meta.diff.range"],settings:{foreground:"#c4a7e7"}},{scope:["meta.tag","meta.brace"],settings:{foreground:"#e0def4"}},{scope:["meta.import","meta.export"],settings:{foreground:"#3e8fb0"}},{scope:"meta.directive.vue",settings:{fontStyle:"italic",foreground:"#c4a7e7"}},{scope:"meta.property-name.css",settings:{foreground:"#9ccfd8"}},{scope:"meta.property-value.css",settings:{foreground:"#f6c177"}},{scope:"meta.tag.other.html",settings:{foreground:"#908caa"}},{scope:["punctuation"],settings:{foreground:"#908caa"}},{scope:["punctuation.accessor"],settings:{foreground:"#3e8fb0"}},{scope:["punctuation.definition.string"],settings:{foreground:"#f6c177"}},{scope:["punctuation.definition.tag"],settings:{foreground:"#6e6a86"}},{scope:["storage.type","storage.modifier"],settings:{foreground:"#3e8fb0"}},{scope:["string"],settings:{foreground:"#f6c177"}},{scope:["support"],settings:{foreground:"#9ccfd8"}},{scope:["support.constant"],settings:{foreground:"#f6c177"}},{scope:["support.function"],settings:{fontStyle:"italic",foreground:"#eb6f92"}},{scope:["variable"],settings:{fontStyle:"italic",foreground:"#ea9a97"}},{scope:["variable.other","variable.language","variable.function","variable.argument"],settings:{foreground:"#e0def4"}},{scope:["variable.parameter"],settings:{foreground:"#c4a7e7"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/rose-pine.CX_FIdg1.js b/assets/chunks/rose-pine.CX_FIdg1.js new file mode 100644 index 000000000..38c0ab32b --- /dev/null +++ b/assets/chunks/rose-pine.CX_FIdg1.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#e0def4","activityBar.background":"#191724","activityBar.dropBorder":"#26233a","activityBar.foreground":"#e0def4","activityBar.inactiveForeground":"#908caa","activityBarBadge.background":"#ebbcba","activityBarBadge.foreground":"#191724","badge.background":"#ebbcba","badge.foreground":"#191724","banner.background":"#1f1d2e","banner.foreground":"#e0def4","banner.iconForeground":"#908caa","breadcrumb.activeSelectionForeground":"#ebbcba","breadcrumb.background":"#191724","breadcrumb.focusForeground":"#908caa","breadcrumb.foreground":"#6e6a86","breadcrumbPicker.background":"#1f1d2e","button.background":"#ebbcba","button.foreground":"#191724","button.hoverBackground":"#ebbcbae6","button.secondaryBackground":"#1f1d2e","button.secondaryForeground":"#e0def4","button.secondaryHoverBackground":"#26233a","charts.blue":"#9ccfd8","charts.foreground":"#e0def4","charts.green":"#31748f","charts.lines":"#908caa","charts.orange":"#ebbcba","charts.purple":"#c4a7e7","charts.red":"#eb6f92","charts.yellow":"#f6c177","checkbox.background":"#1f1d2e","checkbox.border":"#6e6a8633","checkbox.foreground":"#e0def4","debugExceptionWidget.background":"#1f1d2e","debugExceptionWidget.border":"#6e6a8633","debugIcon.breakpointCurrentStackframeForeground":"#908caa","debugIcon.breakpointDisabledForeground":"#908caa","debugIcon.breakpointForeground":"#908caa","debugIcon.breakpointStackframeForeground":"#908caa","debugIcon.breakpointUnverifiedForeground":"#908caa","debugIcon.continueForeground":"#908caa","debugIcon.disconnectForeground":"#908caa","debugIcon.pauseForeground":"#908caa","debugIcon.restartForeground":"#908caa","debugIcon.startForeground":"#908caa","debugIcon.stepBackForeground":"#908caa","debugIcon.stepIntoForeground":"#908caa","debugIcon.stepOutForeground":"#908caa","debugIcon.stepOverForeground":"#908caa","debugIcon.stopForeground":"#eb6f92","debugToolBar.background":"#1f1d2e","debugToolBar.border":"#26233a",descriptionForeground:"#908caa","diffEditor.border":"#26233a","diffEditor.diagonalFill":"#6e6a8666","diffEditor.insertedLineBackground":"#9ccfd826","diffEditor.insertedTextBackground":"#9ccfd826","diffEditor.removedLineBackground":"#eb6f9226","diffEditor.removedTextBackground":"#eb6f9226","diffEditorOverview.insertedForeground":"#9ccfd880","diffEditorOverview.removedForeground":"#eb6f9280","dropdown.background":"#1f1d2e","dropdown.border":"#6e6a8633","dropdown.foreground":"#e0def4","dropdown.listBackground":"#1f1d2e","editor.background":"#191724","editor.findMatchBackground":"#6e6a8666","editor.findMatchHighlightBackground":"#6e6a8666","editor.findRangeHighlightBackground":"#6e6a8666","editor.findRangeHighlightBorder":"#0000","editor.focusedStackFrameHighlightBackground":"#6e6a8633","editor.foldBackground":"#1f1d2e","editor.foreground":"#e0def4","editor.hoverHighlightBackground":"#0000","editor.inactiveSelectionBackground":"#6e6a861a","editor.inlineValuesBackground":"#0000","editor.inlineValuesForeground":"#908caa","editor.lineHighlightBackground":"#6e6a861a","editor.lineHighlightBorder":"#0000","editor.linkedEditingBackground":"#1f1d2e","editor.rangeHighlightBackground":"#6e6a861a","editor.selectionBackground":"#6e6a8633","editor.selectionForeground":"#e0def4","editor.selectionHighlightBackground":"#6e6a8633","editor.selectionHighlightBorder":"#191724","editor.snippetFinalTabstopHighlightBackground":"#6e6a8633","editor.snippetFinalTabstopHighlightBorder":"#1f1d2e","editor.snippetTabstopHighlightBackground":"#6e6a8633","editor.snippetTabstopHighlightBorder":"#1f1d2e","editor.stackFrameHighlightBackground":"#6e6a8633","editor.symbolHighlightBackground":"#6e6a8633","editor.symbolHighlightBorder":"#0000","editor.wordHighlightBackground":"#6e6a8633","editor.wordHighlightBorder":"#0000","editor.wordHighlightStrongBackground":"#6e6a8633","editor.wordHighlightStrongBorder":"#6e6a8633","editorBracketHighlight.foreground1":"#eb6f9280","editorBracketHighlight.foreground2":"#31748f80","editorBracketHighlight.foreground3":"#f6c17780","editorBracketHighlight.foreground4":"#9ccfd880","editorBracketHighlight.foreground5":"#ebbcba80","editorBracketHighlight.foreground6":"#c4a7e780","editorBracketMatch.background":"#0000","editorBracketMatch.border":"#908caa","editorBracketPairGuide.activeBackground1":"#31748f","editorBracketPairGuide.activeBackground2":"#ebbcba","editorBracketPairGuide.activeBackground3":"#c4a7e7","editorBracketPairGuide.activeBackground4":"#9ccfd8","editorBracketPairGuide.activeBackground5":"#f6c177","editorBracketPairGuide.activeBackground6":"#eb6f92","editorBracketPairGuide.background1":"#31748f80","editorBracketPairGuide.background2":"#ebbcba80","editorBracketPairGuide.background3":"#c4a7e780","editorBracketPairGuide.background4":"#9ccfd880","editorBracketPairGuide.background5":"#f6c17780","editorBracketPairGuide.background6":"#eb6f9280","editorCodeLens.foreground":"#ebbcba","editorCursor.background":"#e0def4","editorCursor.foreground":"#6e6a86","editorError.border":"#0000","editorError.foreground":"#eb6f92","editorGhostText.foreground":"#908caa","editorGroup.border":"#0000","editorGroup.dropBackground":"#1f1d2e","editorGroup.emptyBackground":"#0000","editorGroup.focusedEmptyBorder":"#0000","editorGroupHeader.noTabsBackground":"#0000","editorGroupHeader.tabsBackground":"#0000","editorGroupHeader.tabsBorder":"#0000","editorGutter.addedBackground":"#9ccfd8","editorGutter.background":"#191724","editorGutter.commentRangeForeground":"#908caa","editorGutter.deletedBackground":"#eb6f92","editorGutter.foldingControlForeground":"#c4a7e7","editorGutter.modifiedBackground":"#ebbcba","editorHint.border":"#0000","editorHint.foreground":"#908caa","editorHoverWidget.background":"#1f1d2e","editorHoverWidget.border":"#6e6a8680","editorHoverWidget.foreground":"#908caa","editorHoverWidget.highlightForeground":"#e0def4","editorHoverWidget.statusBarBackground":"#0000","editorIndentGuide.activeBackground":"#6e6a86","editorIndentGuide.background":"#6e6a8666","editorInfo.border":"#26233a","editorInfo.foreground":"#9ccfd8","editorInlayHint.background":"#26233a","editorInlayHint.foreground":"#908caa","editorInlayHint.parameterBackground":"#26233a","editorInlayHint.parameterForeground":"#c4a7e7","editorInlayHint.typeBackground":"#26233a","editorInlayHint.typeForeground":"#9ccfd8","editorLightBulb.foreground":"#31748f","editorLightBulbAutoFix.foreground":"#ebbcba","editorLineNumber.activeForeground":"#e0def4","editorLineNumber.foreground":"#908caa","editorLink.activeForeground":"#ebbcba","editorMarkerNavigation.background":"#1f1d2e","editorMarkerNavigationError.background":"#1f1d2e","editorMarkerNavigationInfo.background":"#1f1d2e","editorMarkerNavigationWarning.background":"#1f1d2e","editorOverviewRuler.addedForeground":"#9ccfd880","editorOverviewRuler.background":"#191724","editorOverviewRuler.border":"#6e6a8666","editorOverviewRuler.bracketMatchForeground":"#908caa","editorOverviewRuler.commonContentForeground":"#6e6a861a","editorOverviewRuler.currentContentForeground":"#6e6a8633","editorOverviewRuler.deletedForeground":"#eb6f9280","editorOverviewRuler.errorForeground":"#eb6f9280","editorOverviewRuler.findMatchForeground":"#6e6a8666","editorOverviewRuler.incomingContentForeground":"#c4a7e780","editorOverviewRuler.infoForeground":"#9ccfd880","editorOverviewRuler.modifiedForeground":"#ebbcba80","editorOverviewRuler.rangeHighlightForeground":"#6e6a8666","editorOverviewRuler.selectionHighlightForeground":"#6e6a8666","editorOverviewRuler.warningForeground":"#f6c17780","editorOverviewRuler.wordHighlightForeground":"#6e6a8633","editorOverviewRuler.wordHighlightStrongForeground":"#6e6a8666","editorPane.background":"#0000","editorRuler.foreground":"#6e6a8666","editorSuggestWidget.background":"#1f1d2e","editorSuggestWidget.border":"#0000","editorSuggestWidget.focusHighlightForeground":"#ebbcba","editorSuggestWidget.foreground":"#908caa","editorSuggestWidget.highlightForeground":"#ebbcba","editorSuggestWidget.selectedBackground":"#6e6a8633","editorSuggestWidget.selectedForeground":"#e0def4","editorSuggestWidget.selectedIconForeground":"#e0def4","editorUnnecessaryCode.border":"#0000","editorUnnecessaryCode.opacity":"#e0def480","editorWarning.border":"#0000","editorWarning.foreground":"#f6c177","editorWhitespace.foreground":"#6e6a86","editorWidget.background":"#1f1d2e","editorWidget.border":"#26233a","editorWidget.foreground":"#908caa","editorWidget.resizeBorder":"#6e6a86",errorForeground:"#eb6f92","extensionBadge.remoteBackground":"#c4a7e7","extensionBadge.remoteForeground":"#191724","extensionButton.prominentBackground":"#ebbcba","extensionButton.prominentForeground":"#191724","extensionButton.prominentHoverBackground":"#ebbcbae6","extensionIcon.preReleaseForeground":"#31748f","extensionIcon.starForeground":"#ebbcba","extensionIcon.verifiedForeground":"#c4a7e7",focusBorder:"#6e6a8633",foreground:"#e0def4","gitDecoration.addedResourceForeground":"#9ccfd8","gitDecoration.conflictingResourceForeground":"#eb6f92","gitDecoration.deletedResourceForeground":"#908caa","gitDecoration.ignoredResourceForeground":"#6e6a86","gitDecoration.modifiedResourceForeground":"#ebbcba","gitDecoration.renamedResourceForeground":"#31748f","gitDecoration.stageDeletedResourceForeground":"#eb6f92","gitDecoration.stageModifiedResourceForeground":"#c4a7e7","gitDecoration.submoduleResourceForeground":"#f6c177","gitDecoration.untrackedResourceForeground":"#f6c177","icon.foreground":"#908caa","input.background":"#26233a80","input.border":"#6e6a8633","input.foreground":"#e0def4","input.placeholderForeground":"#908caa","inputOption.activeBackground":"#ebbcba26","inputOption.activeForeground":"#ebbcba","inputValidation.errorBackground":"#1f1d2e","inputValidation.errorBorder":"#6e6a8666","inputValidation.errorForeground":"#eb6f92","inputValidation.infoBackground":"#1f1d2e","inputValidation.infoBorder":"#6e6a8666","inputValidation.infoForeground":"#9ccfd8","inputValidation.warningBackground":"#1f1d2e","inputValidation.warningBorder":"#6e6a8666","inputValidation.warningForeground":"#9ccfd880","keybindingLabel.background":"#26233a","keybindingLabel.border":"#6e6a8666","keybindingLabel.bottomBorder":"#6e6a8666","keybindingLabel.foreground":"#c4a7e7","keybindingTable.headerBackground":"#26233a","keybindingTable.rowsBackground":"#1f1d2e","list.activeSelectionBackground":"#6e6a8633","list.activeSelectionForeground":"#e0def4","list.deemphasizedForeground":"#908caa","list.dropBackground":"#1f1d2e","list.errorForeground":"#eb6f92","list.filterMatchBackground":"#1f1d2e","list.filterMatchBorder":"#ebbcba","list.focusBackground":"#6e6a8666","list.focusForeground":"#e0def4","list.focusOutline":"#6e6a8633","list.highlightForeground":"#ebbcba","list.hoverBackground":"#6e6a861a","list.hoverForeground":"#e0def4","list.inactiveFocusBackground":"#6e6a861a","list.inactiveSelectionBackground":"#1f1d2e","list.inactiveSelectionForeground":"#e0def4","list.invalidItemForeground":"#eb6f92","list.warningForeground":"#f6c177","listFilterWidget.background":"#1f1d2e","listFilterWidget.noMatchesOutline":"#eb6f92","listFilterWidget.outline":"#26233a","menu.background":"#1f1d2e","menu.border":"#6e6a861a","menu.foreground":"#e0def4","menu.selectionBackground":"#6e6a8633","menu.selectionBorder":"#26233a","menu.selectionForeground":"#e0def4","menu.separatorBackground":"#6e6a8666","menubar.selectionBackground":"#6e6a8633","menubar.selectionBorder":"#6e6a861a","menubar.selectionForeground":"#e0def4","merge.border":"#26233a","merge.commonContentBackground":"#6e6a8633","merge.commonHeaderBackground":"#6e6a8633","merge.currentContentBackground":"#f6c17780","merge.currentHeaderBackground":"#f6c17780","merge.incomingContentBackground":"#9ccfd880","merge.incomingHeaderBackground":"#9ccfd880","minimap.background":"#1f1d2e","minimap.errorHighlight":"#eb6f9280","minimap.findMatchHighlight":"#6e6a8633","minimap.selectionHighlight":"#6e6a8633","minimap.warningHighlight":"#f6c17780","minimapGutter.addedBackground":"#9ccfd8","minimapGutter.deletedBackground":"#eb6f92","minimapGutter.modifiedBackground":"#ebbcba","minimapSlider.activeBackground":"#6e6a8666","minimapSlider.background":"#6e6a8633","minimapSlider.hoverBackground":"#6e6a8633","notebook.cellBorderColor":"#9ccfd880","notebook.cellEditorBackground":"#1f1d2e","notebook.cellHoverBackground":"#26233a80","notebook.focusedCellBackground":"#6e6a861a","notebook.focusedCellBorder":"#9ccfd8","notebook.outputContainerBackgroundColor":"#6e6a861a","notificationCenter.border":"#6e6a8633","notificationCenterHeader.background":"#1f1d2e","notificationCenterHeader.foreground":"#908caa","notificationLink.foreground":"#c4a7e7","notificationToast.border":"#6e6a8633","notifications.background":"#1f1d2e","notifications.border":"#6e6a8633","notifications.foreground":"#e0def4","notificationsErrorIcon.foreground":"#eb6f92","notificationsInfoIcon.foreground":"#9ccfd8","notificationsWarningIcon.foreground":"#f6c177","panel.background":"#1f1d2e","panel.border":"#0000","panel.dropBorder":"#26233a","panelInput.border":"#1f1d2e","panelSection.dropBackground":"#6e6a8633","panelSectionHeader.background":"#1f1d2e","panelSectionHeader.foreground":"#e0def4","panelTitle.activeBorder":"#6e6a8666","panelTitle.activeForeground":"#e0def4","panelTitle.inactiveForeground":"#908caa","peekView.border":"#26233a","peekViewEditor.background":"#1f1d2e","peekViewEditor.matchHighlightBackground":"#6e6a8666","peekViewResult.background":"#1f1d2e","peekViewResult.fileForeground":"#908caa","peekViewResult.lineForeground":"#908caa","peekViewResult.matchHighlightBackground":"#6e6a8666","peekViewResult.selectionBackground":"#6e6a8633","peekViewResult.selectionForeground":"#e0def4","peekViewTitle.background":"#26233a","peekViewTitleDescription.foreground":"#908caa","pickerGroup.border":"#6e6a8666","pickerGroup.foreground":"#c4a7e7","ports.iconRunningProcessForeground":"#ebbcba","problemsErrorIcon.foreground":"#eb6f92","problemsInfoIcon.foreground":"#9ccfd8","problemsWarningIcon.foreground":"#f6c177","progressBar.background":"#ebbcba","quickInput.background":"#1f1d2e","quickInput.foreground":"#908caa","quickInputList.focusBackground":"#6e6a8633","quickInputList.focusForeground":"#e0def4","quickInputList.focusIconForeground":"#e0def4","scrollbar.shadow":"#1f1d2e4d","scrollbarSlider.activeBackground":"#31748f80","scrollbarSlider.background":"#6e6a8633","scrollbarSlider.hoverBackground":"#6e6a8666","searchEditor.findMatchBackground":"#6e6a8633","selection.background":"#6e6a8666","settings.focusedRowBackground":"#1f1d2e","settings.focusedRowBorder":"#6e6a8633","settings.headerForeground":"#e0def4","settings.modifiedItemIndicator":"#ebbcba","settings.rowHoverBackground":"#1f1d2e","sideBar.background":"#191724","sideBar.dropBackground":"#1f1d2e","sideBar.foreground":"#908caa","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#6e6a8633","statusBar.background":"#191724","statusBar.debuggingBackground":"#c4a7e7","statusBar.debuggingForeground":"#191724","statusBar.foreground":"#908caa","statusBar.noFolderBackground":"#191724","statusBar.noFolderForeground":"#908caa","statusBarItem.activeBackground":"#6e6a8666","statusBarItem.errorBackground":"#191724","statusBarItem.errorForeground":"#eb6f92","statusBarItem.hoverBackground":"#6e6a8633","statusBarItem.prominentBackground":"#26233a","statusBarItem.prominentForeground":"#e0def4","statusBarItem.prominentHoverBackground":"#6e6a8633","statusBarItem.remoteBackground":"#191724","statusBarItem.remoteForeground":"#f6c177","symbolIcon.arrayForeground":"#908caa","symbolIcon.classForeground":"#908caa","symbolIcon.colorForeground":"#908caa","symbolIcon.constantForeground":"#908caa","symbolIcon.constructorForeground":"#908caa","symbolIcon.enumeratorForeground":"#908caa","symbolIcon.enumeratorMemberForeground":"#908caa","symbolIcon.eventForeground":"#908caa","symbolIcon.fieldForeground":"#908caa","symbolIcon.fileForeground":"#908caa","symbolIcon.folderForeground":"#908caa","symbolIcon.functionForeground":"#908caa","symbolIcon.interfaceForeground":"#908caa","symbolIcon.keyForeground":"#908caa","symbolIcon.keywordForeground":"#908caa","symbolIcon.methodForeground":"#908caa","symbolIcon.moduleForeground":"#908caa","symbolIcon.namespaceForeground":"#908caa","symbolIcon.nullForeground":"#908caa","symbolIcon.numberForeground":"#908caa","symbolIcon.objectForeground":"#908caa","symbolIcon.operatorForeground":"#908caa","symbolIcon.packageForeground":"#908caa","symbolIcon.propertyForeground":"#908caa","symbolIcon.referenceForeground":"#908caa","symbolIcon.snippetForeground":"#908caa","symbolIcon.stringForeground":"#908caa","symbolIcon.structForeground":"#908caa","symbolIcon.textForeground":"#908caa","symbolIcon.typeParameterForeground":"#908caa","symbolIcon.unitForeground":"#908caa","symbolIcon.variableForeground":"#908caa","tab.activeBackground":"#6e6a861a","tab.activeForeground":"#e0def4","tab.activeModifiedBorder":"#9ccfd8","tab.border":"#0000","tab.hoverBackground":"#6e6a8633","tab.inactiveBackground":"#0000","tab.inactiveForeground":"#908caa","tab.inactiveModifiedBorder":"#9ccfd880","tab.lastPinnedBorder":"#6e6a86","tab.unfocusedActiveBackground":"#0000","tab.unfocusedHoverBackground":"#0000","tab.unfocusedInactiveBackground":"#0000","tab.unfocusedInactiveModifiedBorder":"#9ccfd880","terminal.ansiBlack":"#26233a","terminal.ansiBlue":"#9ccfd8","terminal.ansiBrightBlack":"#908caa","terminal.ansiBrightBlue":"#9ccfd8","terminal.ansiBrightCyan":"#ebbcba","terminal.ansiBrightGreen":"#31748f","terminal.ansiBrightMagenta":"#c4a7e7","terminal.ansiBrightRed":"#eb6f92","terminal.ansiBrightWhite":"#e0def4","terminal.ansiBrightYellow":"#f6c177","terminal.ansiCyan":"#ebbcba","terminal.ansiGreen":"#31748f","terminal.ansiMagenta":"#c4a7e7","terminal.ansiRed":"#eb6f92","terminal.ansiWhite":"#e0def4","terminal.ansiYellow":"#f6c177","terminal.dropBackground":"#6e6a8633","terminal.foreground":"#e0def4","terminal.selectionBackground":"#6e6a8633","terminal.tab.activeBorder":"#e0def4","terminalCursor.background":"#e0def4","terminalCursor.foreground":"#6e6a86","textBlockQuote.background":"#1f1d2e","textBlockQuote.border":"#6e6a8633","textCodeBlock.background":"#1f1d2e","textLink.activeForeground":"#c4a7e7e6","textLink.foreground":"#c4a7e7","textPreformat.foreground":"#f6c177","textSeparator.foreground":"#908caa","titleBar.activeBackground":"#191724","titleBar.activeForeground":"#908caa","titleBar.inactiveBackground":"#1f1d2e","titleBar.inactiveForeground":"#908caa","toolbar.activeBackground":"#6e6a8666","toolbar.hoverBackground":"#6e6a8633","tree.indentGuidesStroke":"#908caa","walkThrough.embeddedEditorBackground":"#191724","welcomePage.background":"#191724","welcomePage.buttonBackground":"#1f1d2e","welcomePage.buttonHoverBackground":"#26233a","widget.shadow":"#1f1d2e4d","window.activeBorder":"#1f1d2e","window.inactiveBorder":"#1f1d2e"},displayName:"Rosé Pine",name:"rose-pine",tokenColors:[{scope:["comment"],settings:{fontStyle:"italic",foreground:"#6e6a86"}},{scope:["constant"],settings:{foreground:"#31748f"}},{scope:["constant.numeric","constant.language"],settings:{foreground:"#ebbcba"}},{scope:["entity.name"],settings:{foreground:"#ebbcba"}},{scope:["entity.name.section","entity.name.tag","entity.name.namespace","entity.name.type"],settings:{foreground:"#9ccfd8"}},{scope:["entity.other.attribute-name","entity.other.inherited-class"],settings:{fontStyle:"italic",foreground:"#c4a7e7"}},{scope:["invalid"],settings:{foreground:"#eb6f92"}},{scope:["invalid.deprecated"],settings:{foreground:"#908caa"}},{scope:["keyword"],settings:{foreground:"#31748f"}},{scope:["markup.inserted.diff"],settings:{foreground:"#9ccfd8"}},{scope:["markup.deleted.diff"],settings:{foreground:"#eb6f92"}},{scope:"markup.heading",settings:{fontStyle:"bold"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:["meta.diff.range"],settings:{foreground:"#c4a7e7"}},{scope:["meta.tag","meta.brace"],settings:{foreground:"#e0def4"}},{scope:["meta.import","meta.export"],settings:{foreground:"#31748f"}},{scope:"meta.directive.vue",settings:{fontStyle:"italic",foreground:"#c4a7e7"}},{scope:"meta.property-name.css",settings:{foreground:"#9ccfd8"}},{scope:"meta.property-value.css",settings:{foreground:"#f6c177"}},{scope:"meta.tag.other.html",settings:{foreground:"#908caa"}},{scope:["punctuation"],settings:{foreground:"#908caa"}},{scope:["punctuation.accessor"],settings:{foreground:"#31748f"}},{scope:["punctuation.definition.string"],settings:{foreground:"#f6c177"}},{scope:["punctuation.definition.tag"],settings:{foreground:"#6e6a86"}},{scope:["storage.type","storage.modifier"],settings:{foreground:"#31748f"}},{scope:["string"],settings:{foreground:"#f6c177"}},{scope:["support"],settings:{foreground:"#9ccfd8"}},{scope:["support.constant"],settings:{foreground:"#f6c177"}},{scope:["support.function"],settings:{fontStyle:"italic",foreground:"#eb6f92"}},{scope:["variable"],settings:{fontStyle:"italic",foreground:"#ebbcba"}},{scope:["variable.other","variable.language","variable.function","variable.argument"],settings:{foreground:"#e0def4"}},{scope:["variable.parameter"],settings:{foreground:"#c4a7e7"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/rst.MQSXyo4o.js b/assets/chunks/rst.MQSXyo4o.js new file mode 100644 index 000000000..ea4677347 --- /dev/null +++ b/assets/chunks/rst.MQSXyo4o.js @@ -0,0 +1 @@ +import e from"./html-derivative.fiapQfxX.js";import n from"./cpp.BnO_O5bK.js";import a from"./python.DwuVtWc2.js";import c from"./javascript.Dch3xQiY.js";import o from"./shellscript.BZfs-ost.js";import t from"./yaml.C5gCGmDW.js";import r from"./cmake.DXZpi2gR.js";import l from"./ruby.BYVeyLWu.js";import"./html.CuK0VrWf.js";import"./css.CbYhyuC0.js";import"./glsl.-GlVTnW0.js";import"./c.RCJZWN-0.js";import"./sql.DbK06e1c.js";import"./xml.BzTcx3OS.js";import"./java.ClXEvkw9.js";import"./lua.CHJYZA-p.js";const s=Object.freeze({displayName:"reStructuredText",name:"rst",patterns:[{include:"#body"}],repository:{anchor:{match:"^\\.{2}\\s+(_[^:]+:)\\s*",name:"entity.name.tag.anchor"},block:{begin:"^(\\s*)(\\.{2}\\s+\\S+::)(.*)",beginCaptures:{2:{name:"keyword.control"},3:{name:"variable"}},end:"^(?!\\1\\s|\\s*$)",patterns:[{include:"#block-param"},{include:"#body"}]},"block-comment":{begin:"^(\\s*)\\.{2}(\\s+|$)",end:"^(?=\\S)|^\\s*$",name:"comment.block",patterns:[{begin:"^\\s{3,}(?=\\S)",name:"comment.block",while:"^\\s{3}.*|^\\s*$"}]},"block-param":{patterns:[{captures:{1:{name:"keyword.control"},2:{name:"variable.parameter"}},match:"(:param\\s+(.+?):)(?:\\s|$)"},{captures:{1:{name:"keyword.control"},2:{patterns:[{match:"\\b(0x[a-fA-F\\d]+|\\d+)\\b",name:"constant.numeric"},{include:"#inline-markup"}]}},match:"(:.+?:)(?:$|\\s+(.*))"}]},blocks:{patterns:[{include:"#domains"},{include:"#doctest"},{include:"#code-block-cpp"},{include:"#code-block-py"},{include:"#code-block-console"},{include:"#code-block-javascript"},{include:"#code-block-yaml"},{include:"#code-block-cmake"},{include:"#code-block-kconfig"},{include:"#code-block-ruby"},{include:"#code-block-dts"},{include:"#code-block"},{include:"#doctest-block"},{include:"#raw-html"},{include:"#block"},{include:"#literal-block"},{include:"#block-comment"}]},body:{patterns:[{include:"#title"},{include:"#inline-markup"},{include:"#anchor"},{include:"#line-block"},{include:"#replace-include"},{include:"#footnote"},{include:"#substitution"},{include:"#blocks"},{include:"#table"},{include:"#simple-table"},{include:"#options-list"}]},bold:{begin:`(?<=[\\s"'(\\[{<]|^)\\*{2}[^\\s*]`,end:"\\*{2}|^\\s*$",name:"markup.bold"},citation:{applyEndPatternLast:0,begin:"(?<=[\\s\"'(\\[{<]|^)`[^\\s`]",end:"`_{,2}|^\\s*$",name:"entity.name.tag"},"code-block":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)",beginCaptures:{2:{name:"keyword.control"}},patterns:[{include:"#block-param"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-cmake":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(cmake)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.cmake"}},patterns:[{include:"#block-param"},{include:"source.cmake"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-console":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(console|shell|bash)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.console"}},patterns:[{include:"#block-param"},{include:"source.shell"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-cpp":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(c|c\\+\\+|cpp|C|C\\+\\+|CPP|Cpp)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.cpp"}},patterns:[{include:"#block-param"},{include:"source.cpp"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-dts":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(dts|DTS|devicetree)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.dts"}},patterns:[{include:"#block-param"},{include:"source.dts"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-javascript":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(javascript)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.js"}},patterns:[{include:"#block-param"},{include:"source.js"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-kconfig":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*([kK]config)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.kconfig"}},patterns:[{include:"#block-param"},{include:"source.kconfig"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-py":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(python)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.py"}},patterns:[{include:"#block-param"},{include:"source.python"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-ruby":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ruby)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.ruby"}},patterns:[{include:"#block-param"},{include:"source.ruby"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-yaml":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ya?ml)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.yaml"}},patterns:[{include:"#block-param"},{include:"source.yaml"}],while:"^\\1(?=\\s)|^\\s*$"},doctest:{begin:"^(>>>)\\s*(.*)",beginCaptures:{1:{name:"keyword.control"},2:{patterns:[{include:"source.python"}]}},end:"^\\s*$"},"doctest-block":{begin:"^(\\s*)(\\.{2}\\s+doctest::)\\s*$",beginCaptures:{2:{name:"keyword.control"}},patterns:[{include:"#block-param"},{include:"source.python"}],while:"^\\1(?=\\s)|^\\s*$"},"domain-auto":{begin:"^(\\s*)(\\.{2}\\s+auto(?:class|module|exception|function|decorator|data|method|attribute|property)::)\\s*(.*)",beginCaptures:{2:{name:"keyword.control.py"},3:{patterns:[{include:"source.python"}]}},patterns:[{include:"#block-param"},{include:"#body"}],while:"^\\1(?=\\s)|^\\s*$"},"domain-cpp":{begin:"^(\\s*)(\\.{2}\\s+(?:cpp|c):(?:class|struct|function|member|var|type|enum|enum-struct|enum-class|enumerator|union|concept)::)\\s*(?:(@\\w+)|(.*))",beginCaptures:{2:{name:"keyword.control"},3:{name:"entity.name.tag"},4:{patterns:[{include:"source.cpp"}]}},patterns:[{include:"#block-param"},{include:"#body"}],while:"^\\1(?=\\s)|^\\s*$"},"domain-js":{begin:"^(\\s*)(\\.{2}\\s+js:\\w+::)\\s*(.*)",beginCaptures:{2:{name:"keyword.control"},3:{patterns:[{include:"source.js"}]}},end:"^(?!\\1[ \\t]|$)",patterns:[{include:"#block-param"},{include:"#body"}]},"domain-py":{begin:"^(\\s*)(\\.{2}\\s+py:(?:module|function|data|exception|class|attribute|property|method|staticmethod|classmethod|decorator|decoratormethod)::)\\s*(.*)",beginCaptures:{2:{name:"keyword.control"},3:{patterns:[{include:"source.python"}]}},patterns:[{include:"#block-param"},{include:"#body"}],while:"^\\1(?=\\s)|^\\s*$"},domains:{patterns:[{include:"#domain-cpp"},{include:"#domain-py"},{include:"#domain-auto"},{include:"#domain-js"}]},escaped:{match:"\\\\.",name:"constant.character.escape"},footnote:{match:"^\\s*\\.{2}\\s+\\[(?:[\\w\\.-]+|[#*]|#\\w+)\\]\\s+",name:"entity.name.tag"},"footnote-ref":{match:"\\[(?:[\\w\\.-]+|[#*])\\]_",name:"entity.name.tag"},ignore:{patterns:[{match:"'[`*]+'"},{match:"<[`*]+>"},{match:"{[`*]+}"},{match:"\\([`*]+\\)"},{match:"\\[[`*]+\\]"},{match:'"[`*]+"'}]},"inline-markup":{patterns:[{include:"#escaped"},{include:"#ignore"},{include:"#ref"},{include:"#literal"},{include:"#monospaced"},{include:"#citation"},{include:"#bold"},{include:"#italic"},{include:"#list"},{include:"#macro"},{include:"#reference"},{include:"#footnote-ref"}]},italic:{begin:`(?<=[\\s"'(\\[{<]|^)\\*[^\\s*]`,end:"\\*|^\\s*$",name:"markup.italic"},"line-block":{match:"^\\|\\s+",name:"keyword.control"},list:{match:"^\\s*(\\d+\\.|\\* -|[a-zA-Z#]\\.|[iIvVxXmMcC]+\\.|\\(\\d+\\)|\\d+\\)|[*+-])\\s+",name:"keyword.control"},literal:{captures:{1:{name:"keyword.control"},2:{name:"entity.name.tag"}},match:"(:\\S+:)(`.*?`\\\\?)"},"literal-block":{begin:"^(\\s*)(.*)(::)\\s*$",beginCaptures:{2:{patterns:[{include:"#inline-markup"}]},3:{name:"keyword.control"}},while:"^\\1(?=\\s)|^\\s*$"},macro:{match:"\\|[^\\|]+\\|",name:"entity.name.tag"},monospaced:{begin:"(?<=[\\s\"'(\\[{<]|^)``[^\\s`]",end:"``|^\\s*$",name:"string.interpolated"},"options-list":{match:"(?:(?:^|,\\s+)(?:[-+]\\w|--?[a-zA-Z][\\w-]+|/\\w+)(?:[ =](?:\\w+|<[^<>]+?>))?)+(?= |\\t|$)",name:"variable.parameter"},"raw-html":{begin:"^(\\s*)(\\.{2}\\s+raw\\s*::)\\s+(html)\\s*$",beginCaptures:{2:{name:"keyword.control"},3:{name:"variable.parameter.html"}},patterns:[{include:"#block-param"},{include:"text.html.derivative"}],while:"^\\1(?=\\s)|^\\s*$"},ref:{begin:"(:ref:)`",beginCaptures:{1:{name:"keyword.control"}},end:"`|^\\s*$",name:"entity.name.tag",patterns:[{match:"<.*?>",name:"markup.underline.link"}]},reference:{match:"[\\w-]*[a-zA-Z\\d-]__?\\b",name:"entity.name.tag"},"replace-include":{captures:{1:{name:"keyword.control"},2:{name:"entity.name.tag"},3:{name:"keyword.control"}},match:"^\\s*(\\.{2})\\s+(\\|[^\\|]+\\|)\\s+(replace::)"},"simple-table":{match:"^[=\\s]+$",name:"keyword.control.table"},substitution:{match:"^\\.{2}\\s*\\|([^|]+)\\|",name:"entity.name.tag"},table:{begin:"^\\s*\\+[=+-]+\\+\\s*$",beginCaptures:{0:{name:"keyword.control.table"}},end:"^(?![+|])",patterns:[{match:"[=+|-]",name:"keyword.control.table"}]},title:{match:"^(\\*{3,}|#{3,}|\\={3,}|~{3,}|\\+{3,}|-{3,}|`{3,}|\\^{3,}|:{3,}|\"{3,}|_{3,}|'{3,})$",name:"markup.heading"}},scopeName:"source.rst",embeddedLangs:["html-derivative","cpp","python","javascript","shellscript","yaml","cmake","ruby"]});var x=[...e,...n,...a,...c,...o,...t,...r,...l,s];export{x as default}; diff --git a/assets/chunks/ruby.BYVeyLWu.js b/assets/chunks/ruby.BYVeyLWu.js new file mode 100644 index 000000000..9e485114e --- /dev/null +++ b/assets/chunks/ruby.BYVeyLWu.js @@ -0,0 +1,80 @@ +import e from"./html.CuK0VrWf.js";import n from"./xml.BzTcx3OS.js";import t from"./sql.DbK06e1c.js";import a from"./css.CbYhyuC0.js";import r from"./c.RCJZWN-0.js";import i from"./javascript.Dch3xQiY.js";import s from"./shellscript.BZfs-ost.js";import c from"./lua.CHJYZA-p.js";import"./java.ClXEvkw9.js";const u=Object.freeze({displayName:"Ruby",name:"ruby",patterns:[{captures:{1:{name:"keyword.control.class.ruby"},2:{name:"entity.name.type.class.ruby"},3:{name:"keyword.operator.other.ruby"},4:{name:"entity.other.inherited-class.ruby"},5:{name:"keyword.operator.other.ruby"},6:{name:"variable.other.object.ruby"}},match:"^\\s*(class)\\s+(?:([.a-zA-Z0-9_:]+)(?:\\s*(<)\\s*([.a-zA-Z0-9_:]+))?|(<<)\\s*([.a-zA-Z0-9_:]+))",name:"meta.class.ruby"},{captures:{1:{name:"keyword.control.module.ruby"},2:{name:"entity.name.type.module.ruby"},3:{name:"entity.other.inherited-class.module.first.ruby"},4:{name:"punctuation.separator.inheritance.ruby"},5:{name:"entity.other.inherited-class.module.second.ruby"},6:{name:"punctuation.separator.inheritance.ruby"},7:{name:"entity.other.inherited-class.module.third.ruby"},8:{name:"punctuation.separator.inheritance.ruby"}},match:"^\\s*(module)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)",name:"meta.module.ruby"},{comment:"else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.",match:"(?<!\\.)\\belse(\\s)+if\\b",name:"invalid.deprecated.ruby"},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.9 syntax)",match:"(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)",name:"constant.other.symbol.hashkey.ruby"},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.8 syntax)",match:"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!])?)(?=\\s*=>)",name:"constant.other.symbol.hashkey.ruby"},{comment:"everything being a reserved word, not a value and needing a 'end' is a..",match:"(?<!\\.)\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\b(?![?!])",name:"keyword.control.ruby"},{comment:"contextual smart pair support for block parameters",match:"(?<!\\.)\\bdo\\b",name:"keyword.control.start-block.ruby"},{comment:"contextual smart pair support",match:"(?<=\\{)(\\s+)",name:"meta.syntax.ruby.start-block"},{match:"(?<!\\.)\\b(alias|alias_method|block_given[?]|break|defined[?]|iterator[?]|next|redo|retry|return|super|undef|yield)(\\b|(?<=[?]))(?![?!])",name:"keyword.control.pseudo-method.ruby"},{match:"\\b(nil|true|false)\\b(?![?!])",name:"constant.language.ruby"},{match:"\\b(__(dir|FILE|LINE)__)\\b(?![?!])",name:"variable.language.ruby"},{begin:"^__END__\\n",captures:{0:{name:"string.unquoted.program-block.ruby"}},comment:"__END__ marker",contentName:"text.plain",end:"(?=not)impossible",patterns:[{begin:"(?=<?xml|<(?i:html\\b)|!DOCTYPE (?i:html\\b))",end:"(?=not)impossible",name:"text.html.embedded.ruby",patterns:[{include:"text.html.basic"}]}]},{match:"\\b(self)\\b(?![?!])",name:"variable.language.self.ruby"},{comment:" everything being a method but having a special function is a..",match:"\\b(initialize|new|loop|include|extend|prepend|fail|raise|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\b(?![?!])",name:"keyword.other.special-method.ruby"},{begin:"\\b(?<!\\.|::)(require|require_relative)\\b",captures:{1:{name:"keyword.other.special-method.ruby"}},end:"$|(?=#|\\})",name:"meta.require.ruby",patterns:[{include:"$self"}]},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(\\$)(!|@|&|`|'|\\+|\\d+|~|=|/|\\\\|,|;|\\.|<|>|_|\\*|\\$|\\?|:|\"|-[0adFiIlpvw])",name:"variable.other.readwrite.global.pre-defined.ruby"},{begin:"\\b(ENV)\\[",beginCaptures:{1:{name:"variable.other.constant.ruby"}},end:"\\]",name:"meta.environment-variable.ruby",patterns:[{include:"$self"}]},{match:"\\b[A-Z]\\w*(?=((\\.|::)[A-Za-z]|\\[))",name:"support.class.ruby"},{match:"\\b(abort|at_exit|autoload[?]?|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|exit!|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)(\\b|(?<=[?!]))(?![?!])",name:"support.function.kernel.ruby"},{match:"\\b[A-Z]\\w*\\b",name:"variable.other.constant.ruby"},{begin:`(?x) +(?=def\\b) +(?<=^|\\s)(def)\\s+ +( (?>[a-zA-Z_]\\w*(?>\\.|::))? +(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? +|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&\`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) +\\s*(\\() +`,beginCaptures:{1:{name:"keyword.control.def.ruby"},2:{name:"entity.name.function.ruby"},3:{name:"punctuation.definition.parameters.ruby"}},comment:"the method pattern comes from the symbol pattern, see there for a explaination",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.ruby"}},name:"meta.function.method.with-arguments.ruby",patterns:[{begin:"(?=[&*_a-zA-Z])",end:"(?=[,)])",patterns:[{captures:{1:{name:"storage.type.variable.ruby"},2:{name:"constant.other.symbol.hashkey.parameter.function.ruby"},3:{name:"punctuation.definition.constant.ruby"},4:{name:"variable.parameter.function.ruby"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))"},{include:"#parens"},{include:"#braces"},{include:"$self"}]}],repository:{braces:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.function.begin.ruby"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"$self"}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.function.begin.ruby"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"$self"}]}}},{begin:`(?x) +(?=def\\b) +(?<=^|\\s)(def)\\s+ +( (?>[a-zA-Z_]\\w*(?>\\.|::))? +(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? +|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&\`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) +[ \\t] +(?=[ \\t]*[^\\s#;]) +`,beginCaptures:{1:{name:"keyword.control.def.ruby"},2:{name:"entity.name.function.ruby"}},comment:"same as the previous rule, but without parentheses around the arguments",end:"$",name:"meta.function.method.with-arguments.ruby",patterns:[{begin:"(?![\\s,])",end:"(?=,|$)",patterns:[{captures:{1:{name:"storage.type.variable.ruby"},2:{name:"constant.other.symbol.hashkey.parameter.function.ruby"},3:{name:"punctuation.definition.constant.ruby"},4:{name:"variable.parameter.function.ruby"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))",name:"variable.parameter.function.ruby"},{include:"$self"}]}]},{captures:{1:{name:"keyword.control.def.ruby"},3:{name:"entity.name.function.ruby"}},comment:" the optional name is just to catch the def also without a method-name",match:`(?x) +(?=def\\b) +(?<=^|\\s)(def)\\b +( \\s+ +( (?>[a-zA-Z_]\\w*(?>\\.|::))? +(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? +|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&\`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) )? +`,name:"meta.function.method.without-arguments.ruby"},{match:"\\b\\d(?>_?\\d)*(?=\\.\\d|[eE])(\\.\\d(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?r?i?\\b",name:"constant.numeric.float.ruby"},{match:"\\b(0|(0[dD]\\d|[1-9])(?>_?\\d)*)r?i?\\b",name:"constant.numeric.integer.ruby"},{match:"\\b0[xX]\\h(?>_?\\h)*r?i?\\b",name:"constant.numeric.hex.ruby"},{match:"\\b0[bB][01](?>_?[01])*r?i?\\b",name:"constant.numeric.binary.ruby"},{match:"\\b0([oO]?[0-7](?>_?[0-7])*)?r?i?\\b",name:"constant.numeric.octal.ruby"},{begin:":'",captures:{0:{name:"punctuation.definition.constant.ruby"}},end:"'",name:"constant.other.symbol.single-quoted.ruby",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.ruby"}]},{begin:':"',captures:{0:{name:"punctuation.definition.constant.ruby"}},end:'"',name:"constant.other.symbol.double-quoted.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{comment:"Needs higher precedence than regular expressions.",match:"(?<!\\()/=",name:"keyword.operator.assignment.augmented.ruby"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"single quoted string (does not allow interpolation)",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.single.ruby",patterns:[{match:"\\\\'|\\\\\\\\",name:"constant.character.escape.ruby"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"double quoted string (allows for interpolation)",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.double.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"execute string (allows for interpolation)",end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{include:"#percent_literals"},{begin:`(?x) +(?: +^ +| (?<= +[=>~(?:\\[,|&;] +| [\\s;]if\\s +| [\\s;]elsif\\s +| [\\s;]while\\s +| [\\s;]unless\\s +| [\\s;]when\\s +| [\\s;]assert_match\\s +| [\\s;]or\\s +| [\\s;]and\\s +| [\\s;]not\\s +| [\\s.]index\\s +| [\\s.]scan\\s +| [\\s.]sub\\s +| [\\s.]sub!\\s +| [\\s.]gsub\\s +| [\\s.]gsub!\\s +| [\\s.]match\\s +) +| (?<= +^when\\s +| ^if\\s +| ^elsif\\s +| ^while\\s +| ^unless\\s +) +) +\\s*((/))(?![*+{}?]) +`,captures:{1:{name:"string.regexp.classic.ruby"},2:{name:"punctuation.definition.string.ruby"}},comment:`regular expressions (normal) + we only start a regexp if the character before it (excluding whitespace) + is what we think is before a regexp + `,contentName:"string.regexp.classic.ruby",end:"((/[eimnosux]*))",patterns:[{include:"#regex_sub"}]},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols",match:"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?|(@@?|\\$)[a-zA-Z_]\\w*)",name:"constant.other.symbol.ruby"},{begin:"^=begin",captures:{0:{name:"punctuation.definition.comment.ruby"}},comment:"multiline comments",end:"^=end",name:"comment.block.documentation.ruby"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ruby"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.ruby"}},end:"\\n",name:"comment.line.number-sign.ruby"}]},{comment:` + matches questionmark-letters. + + examples (1st alternation = hex): + ?\\x1 ?\\x61 + + examples (2nd alternation = octal): + ?\\0 ?\\07 ?\\017 + + examples (3rd alternation = escaped): + ?\\n ?\\b + + examples (4th alternation = meta-ctrl): + ?\\C-a ?\\M-a ?\\C-\\M-\\C-\\M-a + + examples (4th alternation = normal): + ?a ?A ?0 + ?* ?" ?( + ?. ?# + + + the negative lookbehind prevents against matching + p(42.tainted?) + `,match:"(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|0[0-7]{0,2}(?![0-7])\\b|[^x0MC])|(\\\\[MC]-)+\\w|[^\\s\\\\])",name:"constant.numeric.ruby"},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)HTML)\\b\\1))',comment:"Heredoc with embedded html",end:"(?!\\G)",name:"meta.embedded.block.html",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)HTML)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.html",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.html.basic"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)XML)\\b\\1))',comment:"Heredoc with embedded xml",end:"(?!\\G)",name:"meta.embedded.block.xml",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)XML)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.xml",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.xml"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)SQL)\\b\\1))',comment:"Heredoc with embedded sql",end:"(?!\\G)",name:"meta.embedded.block.sql",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)SQL)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.sql",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.sql"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)CSS)\\b\\1))',comment:"Heredoc with embedded css",end:"(?!\\G)",name:"meta.embedded.block.css",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)CSS)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.css",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.css"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)CPP)\\b\\1))',comment:"Heredoc with embedded c++",end:"(?!\\G)",name:"meta.embedded.block.c++",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)CPP)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c++",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c++"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)C)\\b\\1))',comment:"Heredoc with embedded c",end:"(?!\\G)",name:"meta.embedded.block.c",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)C)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1))',comment:"Heredoc with embedded javascript",end:"(?!\\G)",name:"meta.embedded.block.js",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)JQUERY)\\b\\1))',comment:"Heredoc with embedded jQuery javascript",end:"(?!\\G)",name:"meta.embedded.block.js.jquery",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)JQUERY)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js.jquery",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js.jquery"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1))',comment:"Heredoc with embedded shell",end:"(?!\\G)",name:"meta.embedded.block.shell",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.shell",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.shell"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)LUA)\\b\\1))',comment:"Heredoc with embedded lua",end:"(?!\\G)",name:"meta.embedded.block.lua",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)LUA)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.lua",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.lua"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)RUBY)\\b\\1))',comment:"Heredoc with embedded ruby",end:"(?!\\G)",name:"meta.embedded.block.ruby",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)RUBY)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.ruby",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.ruby"},{include:"#escaped_char"}]}]},{begin:"(?>=\\s*<<(\\w+))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"^\\1$",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"(?><<[-~](\\w+))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"heredoc with indented terminator",end:"\\s*\\1$",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"(?<=\\{|do|\\{\\s|do\\s)(\\|)",captures:{1:{name:"punctuation.separator.arguments.ruby"}},end:"(?<!\\|)(\\|)(?!\\|)",patterns:[{include:"$self"},{match:"[_a-zA-Z][_a-zA-Z0-9]*",name:"variable.other.block.ruby"},{match:",",name:"punctuation.separator.variable.ruby"}]},{match:"=>",name:"punctuation.separator.key-value"},{match:"->",name:"support.function.kernel.lambda.ruby"},{match:"<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<",name:"keyword.operator.assignment.augmented.ruby"},{match:"<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?",name:"keyword.operator.comparison.ruby"},{match:"(?<!\\.)\\b(and|not|or)\\b(?![?!])",name:"keyword.operator.logical.ruby"},{comment:"Make sure this goes after assignment and comparison",match:"(?<=^|[ \\t])!|&&|\\|\\||\\^",name:"keyword.operator.logical.ruby"},{captures:{1:{name:"punctuation.separator.method.ruby"}},comment:"Safe navigation operator - Added in 2.3",match:"(&\\.)\\s*(?![A-Z])"},{match:"(%|&|\\*\\*|\\*|\\+|-|/)",name:"keyword.operator.arithmetic.ruby"},{match:"=",name:"keyword.operator.assignment.ruby"},{match:"\\||~|>>",name:"keyword.operator.other.ruby"},{match:";",name:"punctuation.separator.statement.ruby"},{match:",",name:"punctuation.separator.object.ruby"},{captures:{1:{name:"punctuation.separator.namespace.ruby"}},comment:"Mark as namespace separator if double colons followed by capital letter",match:"(::)\\s*(?=[A-Z])"},{captures:{1:{name:"punctuation.separator.method.ruby"}},comment:"Mark as method separator if double colons not followed by capital letter",match:"(\\.|::)\\s*(?![A-Z])"},{comment:"Must come after method and constant separators to prefer double colons",match:":",name:"punctuation.separator.other.ruby"},{match:"\\{",name:"punctuation.section.scope.begin.ruby"},{match:"\\}",name:"punctuation.section.scope.end.ruby"},{match:"\\[",name:"punctuation.section.array.begin.ruby"},{match:"\\]",name:"punctuation.section.array.end.ruby"},{match:"\\(|\\)",name:"punctuation.section.function.ruby"}],repository:{escaped_char:{match:"\\\\(?:[0-7]{1,3}|x[\\da-fA-F]{1,2}|.)",name:"constant.character.escape.ruby"},heredoc:{begin:"^<<[-~]?\\w+",end:"$",patterns:[{include:"$self"}]},interpolated_ruby:{patterns:[{begin:"#\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.ruby"}},contentName:"source.ruby",end:"(\\})",endCaptures:{0:{name:"punctuation.section.embedded.end.ruby"},1:{name:"source.ruby"}},name:"meta.embedded.line.ruby",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}],repository:{nest_curly_and_self:{patterns:[{begin:"\\{",captures:{0:{name:"punctuation.section.scope.ruby"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]}}},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"}]},percent_literals:{patterns:[{begin:"%i(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.symbol.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#symbol"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#symbol"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#symbol"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#symbol"}]},{include:"#symbol"}],repository:{angles:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\<|\\\\>",name:"constant.other.symbol.ruby"},{begin:"<",captures:{0:{name:"constant.other.symbol.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#symbol"}]}]},braces:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\{|\\\\\\}",name:"constant.other.symbol.ruby"},{begin:"\\{",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#symbol"}]}]},brackets:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\[|\\\\\\]",name:"constant.other.symbol.ruby"},{begin:"\\[",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#symbol"}]}]},parens:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\(|\\\\\\)",name:"constant.other.symbol.ruby"},{begin:"\\(",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#symbol"}]}]},symbol:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\\\|\\\\[ ]",name:"constant.other.symbol.ruby"},{match:"\\S\\w*",name:"constant.other.symbol.ruby"}]}}},{begin:"%I(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.symbol.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#symbol"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#symbol"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#symbol"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#symbol"}]},{include:"#symbol"}],repository:{angles:{patterns:[{begin:"<",captures:{0:{name:"constant.other.symbol.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#symbol"}]}]},braces:{patterns:[{begin:"\\{",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#symbol"}]}]},brackets:{patterns:[{begin:"\\[",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#symbol"}]}]},parens:{patterns:[{begin:"\\(",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#symbol"}]}]},symbol:{patterns:[{begin:"(?=\\\\|#\\{)",end:"(?!\\G)",name:"constant.other.symbol.ruby",patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"}]},{match:"\\S\\w*",name:"constant.other.symbol.ruby"}]}}},{begin:"%q(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]}],repository:{angles:{patterns:[{match:"\\\\<|\\\\>|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{match:"\\\\\\{|\\\\\\}|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{match:"\\\\\\[|\\\\\\]|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{match:"\\\\\\(|\\\\\\)|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%Q?(?:([(\\[{<])|([^\\w\\s=]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#escaped_char"},{include:"#interpolated_ruby"}],repository:{angles:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%r(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"([)\\]}>]\\2|\\1\\2)[eimnosux]*",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.regexp.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#regex_sub"}],repository:{angles:{patterns:[{include:"#regex_sub"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#regex_sub"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#regex_sub"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#regex_sub"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%s(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.constant.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.constant.end.ruby"}},name:"constant.other.symbol.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]}],repository:{angles:{patterns:[{match:"\\\\<|\\\\>|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{match:"\\\\\\{|\\\\\\}|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{match:"\\\\\\[|\\\\\\]|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{match:"\\\\\\(|\\\\\\)|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%w(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.string.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#string"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#string"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#string"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#string"}]},{include:"#string"}],repository:{angles:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\<|\\\\>",name:"string.other.ruby"},{begin:"<",captures:{0:{name:"string.other.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#string"}]}]},braces:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\{|\\\\\\}",name:"string.other.ruby"},{begin:"\\{",captures:{0:{name:"string.other.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#string"}]}]},brackets:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\[|\\\\\\]",name:"string.other.ruby"},{begin:"\\[",captures:{0:{name:"string.other.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#string"}]}]},parens:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\(|\\\\\\)",name:"string.other.ruby"},{begin:"\\(",captures:{0:{name:"string.other.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#string"}]}]},string:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\\\|\\\\[ ]",name:"string.other.ruby"},{match:"\\S\\w*",name:"string.other.ruby"}]}}},{begin:"%W(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.string.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#string"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#string"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#string"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#string"}]},{include:"#string"}],repository:{angles:{patterns:[{begin:"<",captures:{0:{name:"string.other.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#string"}]}]},braces:{patterns:[{begin:"\\{",captures:{0:{name:"string.other.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#string"}]}]},brackets:{patterns:[{begin:"\\[",captures:{0:{name:"string.other.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#string"}]}]},parens:{patterns:[{begin:"\\(",captures:{0:{name:"string.other.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#string"}]}]},string:{patterns:[{begin:"(?=\\\\|#\\{)",end:"(?!\\G)",name:"string.other.ruby",patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"}]},{match:"\\S\\w*",name:"string.other.ruby"}]}}},{begin:"%x(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#escaped_char"},{include:"#interpolated_ruby"}],repository:{angles:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}}]},regex_sub:{patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{captures:{1:{name:"punctuation.definition.quantifier.begin.ruby"},3:{name:"punctuation.definition.quantifier.end.ruby"}},match:"(\\{)\\d+(,\\d+)?(\\})",name:"keyword.operator.quantifier.ruby"},{begin:"\\[\\^?",beginCaptures:{0:{name:"punctuation.definition.character-class.begin.ruby"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.character-class.end.ruby"}},name:"constant.other.character-class.set.ruby",patterns:[{include:"#escaped_char"}]},{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.definition.comment.begin.ruby"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.comment.end.ruby"}},name:"comment.line.number-sign.ruby",patterns:[{include:"#escaped_char"}]},{begin:"\\(",captures:{0:{name:"punctuation.definition.group.ruby"}},end:"\\)",name:"meta.group.regexp.ruby",patterns:[{include:"#regex_sub"}]},{begin:"(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)",beginCaptures:{1:{name:"punctuation.definition.comment.ruby"}},comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",end:"$\\n?",name:"comment.line.number-sign.ruby"}]}},scopeName:"source.ruby",embeddedLangs:["html","xml","sql","css","c","javascript","shellscript","lua"],aliases:["rb"]});var _=[...e,...n,...t,...a,...r,...i,...s,...c,u];export{_ as default}; diff --git a/assets/chunks/rust.DGxQkqYo.js b/assets/chunks/rust.DGxQkqYo.js new file mode 100644 index 000000000..a3494830c --- /dev/null +++ b/assets/chunks/rust.DGxQkqYo.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Rust",name:"rust",patterns:[{begin:"(<)(\\[)",beginCaptures:{1:{name:"punctuation.brackets.angle.rust"},2:{name:"punctuation.brackets.square.rust"}},comment:"boxed slice literal",end:">",endCaptures:{0:{name:"punctuation.brackets.angle.rust"}},patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#gtypes"},{include:"#lvariables"},{include:"#lifetimes"},{include:"#punctuation"},{include:"#types"}]},{captures:{1:{name:"keyword.operator.macro.dollar.rust"},3:{name:"keyword.other.crate.rust"},4:{name:"entity.name.type.metavariable.rust"},6:{name:"keyword.operator.key-value.rust"},7:{name:"variable.other.metavariable.specifier.rust"}},comment:"macro type metavariables",match:"(\\$)((crate)|([A-Z][A-Za-z0-9_]*))((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?",name:"meta.macro.metavariable.type.rust",patterns:[{include:"#keywords"}]},{captures:{1:{name:"keyword.operator.macro.dollar.rust"},2:{name:"variable.other.metavariable.name.rust"},4:{name:"keyword.operator.key-value.rust"},5:{name:"variable.other.metavariable.specifier.rust"}},comment:"macro metavariables",match:"(\\$)([a-z][A-Za-z0-9_]*)((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?",name:"meta.macro.metavariable.rust",patterns:[{include:"#keywords"}]},{captures:{1:{name:"entity.name.function.macro.rules.rust"},3:{name:"entity.name.function.macro.rust"},4:{name:"entity.name.type.macro.rust"},5:{name:"punctuation.brackets.curly.rust"}},comment:"macro rules",match:"\\b(macro_rules!)\\s+(([a-z0-9_]+)|([A-Z][a-z0-9_]*))\\s+(\\{)",name:"meta.macro.rules.rust"},{captures:{1:{name:"storage.type.rust"},2:{name:"entity.name.module.rust"}},comment:"modules",match:"(mod)\\s+((?:r#(?!crate|[Ss]elf|super))?[a-z][A-Za-z0-9_]*)"},{begin:"\\b(extern)\\s+(crate)",beginCaptures:{1:{name:"storage.type.rust"},2:{name:"keyword.other.crate.rust"}},comment:"external crate imports",end:";",endCaptures:{0:{name:"punctuation.semi.rust"}},name:"meta.import.rust",patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#punctuation"}]},{begin:"\\b(use)\\s",beginCaptures:{1:{name:"keyword.other.rust"}},comment:"use statements",end:";",endCaptures:{0:{name:"punctuation.semi.rust"}},name:"meta.use.rust",patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#namespaces"},{include:"#punctuation"},{include:"#types"},{include:"#lvariables"}]},{include:"#block-comments"},{include:"#comments"},{include:"#attributes"},{include:"#lvariables"},{include:"#constants"},{include:"#gtypes"},{include:"#functions"},{include:"#types"},{include:"#keywords"},{include:"#lifetimes"},{include:"#macros"},{include:"#namespaces"},{include:"#punctuation"},{include:"#strings"},{include:"#variables"}],repository:{attributes:{begin:"(#)(\\!?)(\\[)",beginCaptures:{1:{name:"punctuation.definition.attribute.rust"},3:{name:"punctuation.brackets.attribute.rust"}},comment:"attributes",end:"\\]",endCaptures:{0:{name:"punctuation.brackets.attribute.rust"}},name:"meta.attribute.rust",patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#lifetimes"},{include:"#punctuation"},{include:"#strings"},{include:"#gtypes"},{include:"#types"}]},"block-comments":{patterns:[{comment:"empty block comments",match:"/\\*\\*/",name:"comment.block.rust"},{begin:"/\\*\\*",comment:"block documentation comments",end:"\\*/",name:"comment.block.documentation.rust",patterns:[{include:"#block-comments"}]},{begin:"/\\*(?!\\*)",comment:"block comments",end:"\\*/",name:"comment.block.rust",patterns:[{include:"#block-comments"}]}]},comments:{patterns:[{captures:{1:{name:"punctuation.definition.comment.rust"}},comment:"documentation comments",match:"(///).*$",name:"comment.line.documentation.rust"},{captures:{1:{name:"punctuation.definition.comment.rust"}},comment:"line comments",match:"(//).*$",name:"comment.line.double-slash.rust"}]},constants:{patterns:[{comment:"ALL CAPS constants",match:"\\b[A-Z]{2}[A-Z0-9_]*\\b",name:"constant.other.caps.rust"},{captures:{1:{name:"storage.type.rust"},2:{name:"constant.other.caps.rust"}},comment:"constant declarations",match:"\\b(const)\\s+([A-Z][A-Za-z0-9_]*)\\b"},{captures:{1:{name:"punctuation.separator.dot.decimal.rust"},2:{name:"keyword.operator.exponent.rust"},3:{name:"keyword.operator.exponent.sign.rust"},4:{name:"constant.numeric.decimal.exponent.mantissa.rust"},5:{name:"entity.name.type.numeric.rust"}},comment:"decimal integers and floats",match:"\\b\\d[\\d_]*(\\.?)[\\d_]*(?:(E|e)([+-]?)([\\d_]+))?(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b",name:"constant.numeric.decimal.rust"},{captures:{1:{name:"entity.name.type.numeric.rust"}},comment:"hexadecimal integers",match:"\\b0x[\\da-fA-F_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b",name:"constant.numeric.hex.rust"},{captures:{1:{name:"entity.name.type.numeric.rust"}},comment:"octal integers",match:"\\b0o[0-7_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b",name:"constant.numeric.oct.rust"},{captures:{1:{name:"entity.name.type.numeric.rust"}},comment:"binary integers",match:"\\b0b[01_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b",name:"constant.numeric.bin.rust"},{comment:"booleans",match:"\\b(true|false)\\b",name:"constant.language.bool.rust"}]},escapes:{captures:{1:{name:"constant.character.escape.backslash.rust"},2:{name:"constant.character.escape.bit.rust"},3:{name:"constant.character.escape.unicode.rust"},4:{name:"constant.character.escape.unicode.punctuation.rust"},5:{name:"constant.character.escape.unicode.punctuation.rust"}},comment:"escapes: ASCII, byte, Unicode, quote, regex",match:"(\\\\)(?:(?:(x[0-7][\\da-fA-F])|(u(\\{)[\\da-fA-F]{4,6}(\\}))|.))",name:"constant.character.escape.rust"},functions:{patterns:[{captures:{1:{name:"keyword.other.rust"},2:{name:"punctuation.brackets.round.rust"}},comment:"pub as a function",match:"\\b(pub)(\\()"},{begin:"\\b(fn)\\s+((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)((\\()|(<))",beginCaptures:{1:{name:"keyword.other.fn.rust"},2:{name:"entity.name.function.rust"},4:{name:"punctuation.brackets.round.rust"},5:{name:"punctuation.brackets.angle.rust"}},comment:"function definition",end:"\\{|;",endCaptures:{0:{name:"punctuation.brackets.curly.rust"}},name:"meta.function.definition.rust",patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#lvariables"},{include:"#constants"},{include:"#gtypes"},{include:"#functions"},{include:"#lifetimes"},{include:"#macros"},{include:"#namespaces"},{include:"#punctuation"},{include:"#strings"},{include:"#types"},{include:"#variables"}]},{begin:"((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(\\()",beginCaptures:{1:{name:"entity.name.function.rust"},2:{name:"punctuation.brackets.round.rust"}},comment:"function/method calls, chaining",end:"\\)",endCaptures:{0:{name:"punctuation.brackets.round.rust"}},name:"meta.function.call.rust",patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#attributes"},{include:"#keywords"},{include:"#lvariables"},{include:"#constants"},{include:"#gtypes"},{include:"#functions"},{include:"#lifetimes"},{include:"#macros"},{include:"#namespaces"},{include:"#punctuation"},{include:"#strings"},{include:"#types"},{include:"#variables"}]},{begin:"((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(?=::<.*>\\()",beginCaptures:{1:{name:"entity.name.function.rust"}},comment:"function/method calls with turbofish",end:"\\)",endCaptures:{0:{name:"punctuation.brackets.round.rust"}},name:"meta.function.call.rust",patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#attributes"},{include:"#keywords"},{include:"#lvariables"},{include:"#constants"},{include:"#gtypes"},{include:"#functions"},{include:"#lifetimes"},{include:"#macros"},{include:"#namespaces"},{include:"#punctuation"},{include:"#strings"},{include:"#types"},{include:"#variables"}]}]},gtypes:{patterns:[{comment:"option types",match:"\\b(Some|None)\\b",name:"entity.name.type.option.rust"},{comment:"result types",match:"\\b(Ok|Err)\\b",name:"entity.name.type.result.rust"}]},interpolations:{captures:{1:{name:"punctuation.definition.interpolation.rust"},2:{name:"punctuation.definition.interpolation.rust"}},comment:"curly brace interpolations",match:'({)[^"{}]*(})',name:"meta.interpolation.rust"},keywords:{patterns:[{comment:"control flow keywords",match:"\\b(await|break|continue|do|else|for|if|loop|match|return|try|while|yield)\\b",name:"keyword.control.rust"},{comment:"storage keywords",match:"\\b(extern|let|macro|mod)\\b",name:"keyword.other.rust storage.type.rust"},{comment:"const keyword",match:"\\b(const)\\b",name:"storage.modifier.rust"},{comment:"type keyword",match:"\\b(type)\\b",name:"keyword.declaration.type.rust storage.type.rust"},{comment:"enum keyword",match:"\\b(enum)\\b",name:"keyword.declaration.enum.rust storage.type.rust"},{comment:"trait keyword",match:"\\b(trait)\\b",name:"keyword.declaration.trait.rust storage.type.rust"},{comment:"struct keyword",match:"\\b(struct)\\b",name:"keyword.declaration.struct.rust storage.type.rust"},{comment:"storage modifiers",match:"\\b(abstract|static)\\b",name:"storage.modifier.rust"},{comment:"other keywords",match:"\\b(as|async|become|box|dyn|move|final|gen|impl|in|override|priv|pub|ref|typeof|union|unsafe|unsized|use|virtual|where)\\b",name:"keyword.other.rust"},{comment:"fn",match:"\\bfn\\b",name:"keyword.other.fn.rust"},{comment:"crate",match:"\\bcrate\\b",name:"keyword.other.crate.rust"},{comment:"mut",match:"\\bmut\\b",name:"storage.modifier.mut.rust"},{comment:"logical operators",match:"(\\^|\\||\\|\\||&&|<<|>>|!)(?!=)",name:"keyword.operator.logical.rust"},{comment:"logical AND, borrow references",match:"&(?![&=])",name:"keyword.operator.borrow.and.rust"},{comment:"assignment operators",match:"(\\+=|-=|\\*=|/=|%=|\\^=|&=|\\|=|<<=|>>=)",name:"keyword.operator.assignment.rust"},{comment:"single equal",match:"(?<![<>])=(?!=|>)",name:"keyword.operator.assignment.equal.rust"},{comment:"comparison operators",match:"(=(=)?(?!>)|!=|<=|(?<!=)>=)",name:"keyword.operator.comparison.rust"},{comment:"math operators",match:"(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))",name:"keyword.operator.math.rust"},{captures:{1:{name:"punctuation.brackets.round.rust"},2:{name:"punctuation.brackets.square.rust"},3:{name:"punctuation.brackets.curly.rust"},4:{name:"keyword.operator.comparison.rust"},5:{name:"punctuation.brackets.round.rust"},6:{name:"punctuation.brackets.square.rust"},7:{name:"punctuation.brackets.curly.rust"}},comment:"less than, greater than (special case)",match:"(?:\\b|(?:(\\))|(\\])|(\\})))[ \\t]+([<>])[ \\t]+(?:\\b|(?:(\\()|(\\[)|(\\{)))"},{comment:"namespace operator",match:"::",name:"keyword.operator.namespace.rust"},{captures:{1:{name:"keyword.operator.dereference.rust"}},comment:"dereference asterisk",match:"(\\*)(?=\\w+)"},{comment:"subpattern binding",match:"@",name:"keyword.operator.subpattern.rust"},{comment:"dot access",match:"\\.(?!\\.)",name:"keyword.operator.access.dot.rust"},{comment:"ranges, range patterns",match:"\\.{2}(=|\\.)?",name:"keyword.operator.range.rust"},{comment:"colon",match:":(?!:)",name:"keyword.operator.key-value.rust"},{comment:"dashrocket, skinny arrow",match:"->",name:"keyword.operator.arrow.skinny.rust"},{comment:"hashrocket, fat arrow",match:"=>",name:"keyword.operator.arrow.fat.rust"},{comment:"dollar macros",match:"\\$",name:"keyword.operator.macro.dollar.rust"},{comment:"question mark operator, questionably sized, macro kleene matcher",match:"\\?",name:"keyword.operator.question.rust"}]},lifetimes:{patterns:[{captures:{1:{name:"punctuation.definition.lifetime.rust"},2:{name:"entity.name.type.lifetime.rust"}},comment:"named lifetime parameters",match:"(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\b"},{captures:{1:{name:"keyword.operator.borrow.rust"},2:{name:"punctuation.definition.lifetime.rust"},3:{name:"entity.name.type.lifetime.rust"}},comment:"borrowing references to named lifetimes",match:"(\\&)(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\b"}]},lvariables:{patterns:[{comment:"self",match:"\\b[Ss]elf\\b",name:"variable.language.self.rust"},{comment:"super",match:"\\bsuper\\b",name:"variable.language.super.rust"}]},macros:{patterns:[{captures:{2:{name:"entity.name.function.macro.rust"},3:{name:"entity.name.type.macro.rust"}},comment:"macros",match:"(([a-z_][A-Za-z0-9_]*!)|([A-Z_][A-Za-z0-9_]*!))",name:"meta.macro.rust"}]},namespaces:{patterns:[{captures:{1:{name:"entity.name.namespace.rust"},2:{name:"keyword.operator.namespace.rust"}},comment:"namespace (non-type, non-function path segment)",match:"(?<![A-Za-z0-9_])([A-Za-z0-9_]+)((?<!super|self)::)"}]},punctuation:{patterns:[{comment:"comma",match:",",name:"punctuation.comma.rust"},{comment:"curly braces",match:"[{}]",name:"punctuation.brackets.curly.rust"},{comment:"parentheses, round brackets",match:"[()]",name:"punctuation.brackets.round.rust"},{comment:"semicolon",match:";",name:"punctuation.semi.rust"},{comment:"square brackets",match:"[\\[\\]]",name:"punctuation.brackets.square.rust"},{comment:"angle brackets",match:"(?<!=)[<>]",name:"punctuation.brackets.angle.rust"}]},strings:{patterns:[{begin:'(b?)(")',beginCaptures:{1:{name:"string.quoted.byte.raw.rust"},2:{name:"punctuation.definition.string.rust"}},comment:"double-quoted strings and byte strings",end:'"',endCaptures:{0:{name:"punctuation.definition.string.rust"}},name:"string.quoted.double.rust",patterns:[{include:"#escapes"},{include:"#interpolations"}]},{begin:'(b?r)(#*)(")',beginCaptures:{1:{name:"string.quoted.byte.raw.rust"},2:{name:"punctuation.definition.string.raw.rust"},3:{name:"punctuation.definition.string.rust"}},comment:"double-quoted raw strings and raw byte strings",end:'(")(\\2)',endCaptures:{1:{name:"punctuation.definition.string.rust"},2:{name:"punctuation.definition.string.raw.rust"}},name:"string.quoted.double.rust"},{begin:"(b)?(')",beginCaptures:{1:{name:"string.quoted.byte.raw.rust"},2:{name:"punctuation.definition.char.rust"}},comment:"characters and bytes",end:"'",endCaptures:{0:{name:"punctuation.definition.char.rust"}},name:"string.quoted.single.char.rust",patterns:[{include:"#escapes"}]}]},types:{patterns:[{captures:{1:{name:"entity.name.type.numeric.rust"}},comment:"numeric types",match:"(?<![A-Za-z])(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)\\b"},{begin:"\\b(_?[A-Z][A-Za-z0-9_]*)(<)",beginCaptures:{1:{name:"entity.name.type.rust"},2:{name:"punctuation.brackets.angle.rust"}},comment:"parameterized types",end:">",endCaptures:{0:{name:"punctuation.brackets.angle.rust"}},patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#lvariables"},{include:"#lifetimes"},{include:"#punctuation"},{include:"#types"},{include:"#variables"}]},{comment:"primitive types",match:"\\b(bool|char|str)\\b",name:"entity.name.type.primitive.rust"},{captures:{1:{name:"keyword.declaration.trait.rust storage.type.rust"},2:{name:"entity.name.type.trait.rust"}},comment:"trait declarations",match:"\\b(trait)\\s+(_?[A-Z][A-Za-z0-9_]*)\\b"},{captures:{1:{name:"keyword.declaration.struct.rust storage.type.rust"},2:{name:"entity.name.type.struct.rust"}},comment:"struct declarations",match:"\\b(struct)\\s+(_?[A-Z][A-Za-z0-9_]*)\\b"},{captures:{1:{name:"keyword.declaration.enum.rust storage.type.rust"},2:{name:"entity.name.type.enum.rust"}},comment:"enum declarations",match:"\\b(enum)\\s+(_?[A-Z][A-Za-z0-9_]*)\\b"},{captures:{1:{name:"keyword.declaration.type.rust storage.type.rust"},2:{name:"entity.name.type.declaration.rust"}},comment:"type declarations",match:"\\b(type)\\s+(_?[A-Z][A-Za-z0-9_]*)\\b"},{comment:"types",match:"\\b_?[A-Z][A-Za-z0-9_]*\\b(?!!)",name:"entity.name.type.rust"}]},variables:{patterns:[{comment:"variables",match:"\\b(?<!(?<!\\.)\\.)(?:r#(?!(crate|[Ss]elf|super)))?[a-z0-9_]+\\b",name:"variable.other.rust"}]}},scopeName:"source.rust",aliases:["rs"]});var t=[e];export{t as default}; diff --git a/assets/chunks/sas.2Dj3KWk-.js b/assets/chunks/sas.2Dj3KWk-.js new file mode 100644 index 000000000..1bd1a6d88 --- /dev/null +++ b/assets/chunks/sas.2Dj3KWk-.js @@ -0,0 +1 @@ +import e from"./sql.DbK06e1c.js";const t=Object.freeze({displayName:"SAS",fileTypes:["sas"],foldingStartMarker:"(?i:(proc|data|%macro).*;$)",foldingStopMarker:"(?i:(run|quit|%mend)\\s?);",name:"sas",patterns:[{include:"#starComment"},{include:"#blockComment"},{include:"#macro"},{include:"#constant"},{include:"#quote"},{include:"#operator"},{begin:"\\b(?i:(data))\\s+",beginCaptures:{1:{name:"keyword.other.sas"}},comment:"Begins a DATA step and provides names for any output SAS data sets, views, or programs.",end:"(;)",patterns:[{include:"#blockComment"},{include:"#dataSet"},{captures:{1:{name:"keyword.other.sas"},2:{name:"keyword.other.sas"}},match:"(?i:(?:(stack|pgm|view|source)\\s?=\\s?)|(debug|nesting|nolist))"}]},{begin:"\\b(?i:(set|update|modify|merge))\\s+",beginCaptures:{1:{name:"support.function.sas"},2:{name:"entity.name.class.sas"},3:{name:"entity.name.class.sas"}},comment:"DATA set File-Handling Statements for DATA step",end:"(;)",patterns:[{include:"#blockComment"},{include:"#dataSet"}]},{match:"(?i:\\b(if|while|until|for|do|end|then|else|run|quit|cancel|options)\\b)",name:"keyword.control.sas"},{captures:{1:{name:"support.class.sas"},3:{name:"entity.name.function.sas"}},match:"(?i:(%(bquote|do|else|end|eval|global|goto|if|inc|include|index|input|length|let|list|local|lowcase|macro|mend|nrbquote|nrquote|nrstr|put|qscan|qsysfunc|quote|run|scan|str|substr|syscall|sysevalf|sysexec|sysfunc|sysrc|then|to|unquote|upcase|until|while|window)\\b))\\s*(\\w*)",name:"keyword.other.sas"},{begin:"(?i:\\b(proc\\s*(sql))\\b)",beginCaptures:{1:{name:"support.function.sas"},2:{name:"support.class.sas"}},comment:"Looks like for this to work there must be a *name* as well as the patterns/include bit.",end:"(?i:\\b(quit)\\s*;)",endCaptures:{1:{name:"keyword.control.sas"}},name:"meta.sql.sas",patterns:[{include:"#starComment"},{include:"#blockComment"},{include:"source.sql"}]},{match:"(?i:\\b(by|label|format)\\b)",name:"keyword.datastep.sas"},{captures:{1:{name:"support.function.sas"},2:{name:"support.class.sas"}},match:"(?i:\\b(proc (\\w+))\\b)",name:"meta.function-call.sas"},{match:"(?i:\\b(_n_|_error_)\\b)",name:"variable.language.sas"},{captures:{1:{name:"support.class.sas"}},match:"\\b(?i:(_all_|_character_|_cmd_|_freq_|_i_|_infile_|_last_|_msg_|_null_|_numeric_|_temporary_|_type_|abort|abs|addr|adjrsq|airy|alpha|alter|altlog|altprint|and|arcos|array|arsin|as|atan|attrc|attrib|attrn|authserver|autoexec|awscontrol|awsdef|awsmenu|awsmenumerge|awstitle|backward|band|base|betainv|between|blocksize|blshift|bnot|bor|brshift|bufno|bufsize|bxor|by|byerr|byline|byte|calculated|call|cards|cards4|case|catcache|cbufno|cdf|ceil|center|cexist|change|chisq|cinv|class|cleanup|close|cnonct|cntllev|coalesce|codegen|col|collate|collin|column|comamid|comaux1|comaux2|comdef|compbl|compound|compress|config|continue|convert|cos|cosh|cpuid|create|cross|crosstab|css|curobs|cv|daccdb|daccdbsl|daccsl|daccsyd|dacctab|dairy|datalines|datalines4|date|datejul|datepart|datetime|day|dbcslang|dbcstype|dclose|ddm|delete|delimiter|depdb|depdbsl|depsl|depsyd|deptab|dequote|descending|descript|design=|device|dflang|dhms|dif|digamma|dim|dinfo|display|distinct|dkricond|dkrocond|dlm|dnum|do|dopen|doptname|doptnum|dread|drop|dropnote|dsname|dsnferr|echo|else|emaildlg|emailid|emailpw|emailserver|emailsys|encrypt|end|endsas|engine|eof|eov|erf|erfc|error|errorcheck|errors|exist|exp|fappend|fclose|fcol|fdelete|feedback|fetch|fetchobs|fexist|fget|file|fileclose|fileexist|filefmt|filename|fileref|filevar|finfo|finv|fipname|fipnamel|fipstate|first|firstobs|floor|fmterr|fmtsearch|fnonct|fnote|font|fontalias|footnote[1-9]?|fopen|foptname|foptnum|force|formatted|formchar|formdelim|formdlim|forward|fpoint|fpos|fput|fread|frewind|frlen|from|fsep|full|fullstimer|fuzz|fwrite|gaminv|gamma|getoption|getvarc|getvarn|go|goto|group|gwindow|hbar|hbound|helpenv|helploc|hms|honorappearance|hosthelp|hostprint|hour|hpct|html|hvar|ibessel|ibr|id|if|index|indexc|indexw|infile|informat|initcmd|initstmt|inner|input|inputc|inputn|inr|insert|int|intck|intnx|into|intrr|invaliddata|irr|is|jbessel|join|juldate|keep|kentb|kurtosis|label|lag|last|lbound|leave|left|length|levels|lgamma|lib|libname|library|libref|line|linesize|link|list|log|log10|log2|logpdf|logpmf|logsdf|lostcard|lowcase|lrecl|ls|macro|macrogen|maps|mautosource|max|maxdec|maxr|mdy|mean|measures|median|memtype|merge|merror|min|minute|missing|missover|mlogic|mod|mode|model|modify|month|mopen|mort|mprint|mrecall|msglevel|msymtabmax|mvarsize|myy|n|nest|netpv|new|news|nmiss|no|nobatch|nobs|nocaps|nocardimage|nocenter|nocharcode|nocmdmac|nocol|nocum|nodate|nodbcs|nodetails|nodmr|nodms|nodmsbatch|nodup|nodupkey|noduplicates|noechoauto|noequals|noerrorabend|noexitwindows|nofullstimer|noicon|noimplmac|noint|nolist|noloadlist|nomiss|nomlogic|nomprint|nomrecall|nomsgcase|nomstored|nomultenvappl|nonotes|nonumber|noobs|noovp|nopad|nopercent|noprint|noprintinit|normal|norow|norsasuser|nosetinit|nosource|nosource2|nosplash|nosymbolgen|note|notes|notitle|notitles|notsorted|noverbose|noxsync|noxwait|npv|null|number|numkeys|nummousekeys|nway|obs|ods|on|open|option|order|ordinal|otherwise|out|outer|outp=|output|over|ovp|p(1|5|10|25|50|75|90|95|99)|pad|pad2|page|pageno|pagesize|paired|parm|parmcards|path|pathdll|pathname|pdf|peek|peekc|pfkey|pmf|point|poisson|poke|position|printer|probbeta|probbnml|probchi|probf|probgam|probhypr|probit|probnegb|probnorm|probsig|probt|procleave|project|prt|propcase|prxmatch|prxparse|prxchange|prxposn|ps|put|putc|putn|pw|pwreq|qtr|quote|r|ranbin|rancau|ranexp|rangam|range|ranks|rannor|ranpoi|rantbl|rantri|ranuni|read|recfm|register|regr|remote|remove|rename|repeat|replace|resolve|retain|return|reuse|reverse|rewind|right|round|rsquare|rtf|rtrace|rtraceloc|s|s2|samploc|sasautos|sascontrol|sasfrscr|sashelp|sasmsg|sasmstore|sasscript|sasuser|saving|scan|sdf|second|select|selection|separated|seq|serror|set|setcomm|setot|sign|simple|sin|sinh|siteinfo|skewness|skip|sle|sls|sortedby|sortpgm|sortseq|sortsize|soundex|source2|spedis|splashlocation|split|spool|sqrt|start|std|stderr|stdin|stfips|stimer|stname|stnamel|stop|stopover|strip|subgroup|subpopn|substr|sum|sumwgt|symbol|symbolgen|symget|symput|sysget|sysin|sysleave|sysmsg|sysparm|sysprint|sysprintfont|sysprod|sysrc|system|t|table|tables|tan|tanh|tapeclose|tbufsize|terminal|test|then|time|timepart|tinv|title[1-9]?|tnonct|to|today|tol|tooldef|totper|transformout|translate|trantab|tranwrd|trigamma|trim|trimn|trunc|truncover|type|unformatted|uniform|union|until|upcase|update|user|usericon|uss|validate|value|var|varfmt|varinfmt|varlabel|varlen|varname|varnum|varray|varrayx|vartype|verify|vformat|vformatd|vformatdx|vformatn|vformatnx|vformatw|vformatwx|vformatx|vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|vinformatn|vinformatnx|vinformatw|vinformatwx|vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|vnamex|vnferr|vtype|vtypex|weekday|weight|when|where|while|wincharset|window|work|workinit|workterm|write|wsum|wsumx|x|xsync|xwait|year|yearcutoff|yes|yyq|zipfips|zipname|zipnamel|zipstate))\\b",name:"support.function.sas"}],repository:{blockComment:{patterns:[{begin:"\\/\\*",end:"\\*\\/",name:"comment.block.slashstar.sas"}]},constant:{patterns:[{comment:"numeric constant",match:"(?<![&\\}])\\b[0-9]*\\.?[0-9]+([eEdD][-+]?[0-9]+)?\\b",name:"constant.numeric.sas"},{comment:"single quote numeric-type constant",match:"(')([^']+)(')(dt|[dt])",name:"constant.numeric.quote.single.sas"},{comment:"double quote numeric-type constant",match:'(")([^"]+)(")(dt|[dt])',name:"constant.numeric.quote.double.sas"}]},dataSet:{patterns:[{begin:"((\\w+)\\.)?(\\w+)\\s?\\(",beginCaptures:{2:{name:"entity.name.class.libref.sas"},3:{name:"entity.name.class.dsname.sas"}},comment:"data set with options",end:"\\)",patterns:[{include:"#dataSetOptions"},{include:"#blockComment"},{include:"#macro"},{include:"#constant"},{include:"#quote"},{include:"#operator"}]},{captures:{2:{name:"entity.name.class.libref.sas"},3:{name:"entity.name.class.dsname.sas"}},comment:"data set without options",match:"\\b((\\w+)\\.)?(\\w+)\\b"}]},dataSetOptions:{patterns:[{match:"(?<=\\s|\\(|\\))(?i:ALTER|BUFNO|BUFSIZE|CNTLLEV|COMPRESS|DLDMGACTION|ENCRYPT|ENCRYPTKEY|EXTENDOBSCOUNTER|GENMAX|GENNUM|INDEX|LABEL|OBSBUF|OUTREP|PW|PWREQ|READ|REPEMPTY|REPLACE|REUSE|ROLE|SORTEDBY|SPILL|TOBSNO|TYPE|WRITE|FILECLOSE|FIRSTOBS|IN|OBS|POINTOBS|WHERE|WHEREUP|IDXNAME|IDXWHERE|DROP|KEEP|RENAME)\\s?=",name:"keyword.other.sas"}]},macro:{patterns:[{match:"(&+(?i:[a-z_]([a-z0-9_]+)?)(\\.+)?)\\b",name:"variable.other.macro.sas"}]},operator:{patterns:[{match:"([\\+\\-\\*\\^\\/])",name:"keyword.operator.arithmetic.sas"},{match:"\\b(?i:(eq|ne|gt|lt|ge|le|in|not|&|and|or|min|max))\\b",name:"keyword.operator.comparison.sas"},{match:"([¬<>^~]?=(:)?|>|<|\\||!|¦|¬|^|~|<>|><|\\|\\|)",name:"keyword.operator.sas"}]},quote:{patterns:[{begin:"(?<!%)(')",comment:"single quoted string block",end:"(')([bx])?",name:"string.quoted.single.sas"},{begin:'(")',comment:"double quoted string block",end:'(")([bx])?',name:"string.quoted.double.sas"}]},starComment:{patterns:[{include:"#blockcomment"},{begin:"(?<=;)[\\s%]*\\*",end:";",name:"comment.line.inline.star.sas"},{begin:"^[\\s%]*\\*",end:";",name:"comment.line.start.sas"}]}},scopeName:"source.sas",embeddedLangs:["sql"]});var a=[...e,t];export{a as default}; diff --git a/assets/chunks/sass.CMDmr8et.js b/assets/chunks/sass.CMDmr8et.js new file mode 100644 index 000000000..5c2192003 --- /dev/null +++ b/assets/chunks/sass.CMDmr8et.js @@ -0,0 +1,2 @@ +const e=Object.freeze({displayName:"Sass",fileTypes:["sass"],foldingStartMarker:"/\\*|^#|^\\*|^\\b|*#?region|^\\.",foldingStopMarker:"\\*/|*#?endregion|^\\s*$",name:"sass",patterns:[{begin:"^(\\s*)(/\\*)",end:"(\\*/)|^(?!\\s\\1)",name:"comment.block.sass",patterns:[{include:"#comment-tag"},{include:"#comment-param"}]},{match:"^[\\t ]*/?//[\\t ]*[SRI][\\t ]*$",name:"keyword.other.sass.formatter.action"},{begin:"^[\\t ]*//[\\t ]*(import)[\\t ]*(css-variables)[\\t ]*(from)",captures:{1:{name:"keyword.control"},2:{name:"variable"},3:{name:"keyword.control"}},end:"$\\n?",name:"comment.import.css.variables",patterns:[{include:"#import-quotes"}]},{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#curly-brackets"},{include:"#placeholder-selector"},{begin:"\\$[a-zA-Z0-9_-]+(?=:)",captures:{0:{name:"variable.other.name"}},end:"$\\n?|(?=\\)\\s\\)|\\)\\n)",name:"sass.script.maps",patterns:[{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#variable"},{include:"#rgb-value"},{include:"#numeric"},{include:"#unit"},{include:"#flag"},{include:"#comma"},{include:"#function"},{include:"#function-content"},{include:"#operator"},{include:"#reserved-words"},{include:"#parent-selector"},{include:"#property-value"},{include:"#semicolon"},{include:"#dotdotdot"}]},{include:"#variable-root"},{include:"#numeric"},{include:"#unit"},{include:"#flag"},{include:"#comma"},{include:"#semicolon"},{include:"#dotdotdot"},{begin:"@include|\\+(?!\\W|\\d)",captures:{0:{name:"keyword.control.at-rule.css.sass"}},end:"(?=\\n|\\()",name:"support.function.name.sass.library"},{begin:"^(@use)",captures:{0:{name:"keyword.control.at-rule.css.sass.use"}},end:"(?=\\n)",name:"sass.use",patterns:[{match:"as|with",name:"support.type.css.sass"},{include:"#numeric"},{include:"#unit"},{include:"#variable-root"},{include:"#rgb-value"},{include:"#comma"},{include:"#parenthesis-open"},{include:"#parenthesis-close"},{include:"#colon"},{include:"#import-quotes"}]},{begin:"^@import(.*?)( as.*)?$",captures:{1:{name:"constant.character.css.sass"},2:{name:"invalid"}},end:"(?=\\n)",name:"keyword.control.at-rule.use"},{begin:"@mixin|^[\\t ]*=|@function",captures:{0:{name:"keyword.control.at-rule.css.sass"}},end:"$\\n?|(?=\\()",name:"support.function.name.sass",patterns:[{match:"[\\w-]+",name:"entity.name.function"}]},{begin:"@",end:"$\\n?|\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\s|,))",name:"keyword.control.at-rule.css.sass"},{begin:"(?<!\\-|\\()\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video|main|svg|rect|ruby|center|circle|ellipse|line|polyline|polygon|path|text|u|slot)\\b(?!-|\\)|:\\s)|&",end:"$\\n?|(?=\\s|,|\\(|\\)|\\.|\\#|\\[|>|-|_)",name:"entity.name.tag.css.sass.symbol",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{begin:"#",end:"$\\n?|(?=\\s|,|\\(|\\)|\\.|\\[|>)",name:"entity.other.attribute-name.id.css.sass",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{begin:"\\.|(?<=&)(-|_)",end:"$\\n?|(?=\\s|,|\\(|\\)|\\[|>)",name:"entity.other.attribute-name.class.css.sass",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{begin:"\\[",end:"\\]",name:"entity.other.attribute-selector.sass",patterns:[{include:"#double-quoted"},{include:"#single-quoted"},{match:"\\^|\\$|\\*|~",name:"keyword.other.regex.sass"}]},{match:`^((?<=\\]|\\)|not\\(|\\*|>|>\\s)| +*):[a-z:-]+|(::|:-)[a-z:-]+`,name:"entity.other.attribute-name.pseudo-class.css.sass"},{include:"#module"},{match:"[\\w-]*\\(",name:"entity.name.function"},{match:"\\)",name:"entity.name.function.close"},{begin:":",end:"$\\n?|(?=\\s\\(|and\\(|\\),)",name:"meta.property-list.css.sass.prop",patterns:[{match:"(?<=:)[a-z-]+\\s",name:"support.type.property-name.css.sass.prop.name"},{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#curly-brackets"},{include:"#variable"},{include:"#rgb-value"},{include:"#numeric"},{include:"#unit"},{include:"#module"},{match:"--.+?(?=\\))",name:"variable.css"},{match:"[\\w-]*\\(",name:"entity.name.function"},{match:"\\)",name:"entity.name.function.close"},{include:"#flag"},{include:"#comma"},{include:"#semicolon"},{include:"#function"},{include:"#function-content"},{include:"#operator"},{include:"#parent-selector"},{include:"#property-value"}]},{include:"#rgb-value"},{include:"#function"},{include:"#function-content"},{begin:"(?<=})(?!\\n|\\(|\\)|[a-zA-Z0-9_-]+:)",end:"\\s|(?=,|\\.|\\[|\\)|\\n)",name:"entity.name.tag.css.sass",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{include:"#operator"},{match:"[a-z-]+((?=:|#{))",name:"support.type.property-name.css.sass.prop.name"},{include:"#reserved-words"},{include:"#property-value"}],repository:{colon:{match:":",name:"meta.property-list.css.sass.colon"},comma:{match:"\\band\\b|\\bor\\b|,",name:"comment.punctuation.comma.sass"},"comment-param":{match:"\\@(\\w+)",name:"storage.type.class.jsdoc"},"comment-tag":{begin:"(?<={{)",end:"(?=}})",name:"comment.tag.sass"},"curly-brackets":{match:"{|}",name:"invalid"},dotdotdot:{match:"\\.\\.\\.",name:"variable.other"},"double-quoted":{begin:'"',end:'"',name:"string.quoted.double.css.sass",patterns:[{include:"#quoted-interpolation"}]},"double-slash":{begin:"//",end:"$\\n?",name:"comment.line.sass",patterns:[{include:"#comment-tag"}]},flag:{match:"!(important|default|optional|global)",name:"keyword.other.important.css.sass"},function:{match:"(?<=[\\s|\\(|,|:])(?!url|format|attr)[a-zA-Z0-9_-][\\w-]*(?=\\()",name:"support.function.name.sass"},"function-content":{begin:"(?<=url\\(|format\\(|attr\\()",end:".(?=\\))",name:"string.quoted.double.css.sass"},"import-quotes":{match:`["']?\\.{0,2}[\\w/]+["']?`,name:"constant.character.css.sass"},interpolation:{begin:"#{",end:"}",name:"support.function.interpolation.sass",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#operator"},{include:"#unit"},{include:"#comma"},{include:"#double-quoted"},{include:"#single-quoted"}]},module:{captures:{1:{name:"constant.character.module.name"},2:{name:"constant.numeric.module.dot"}},match:"([\\w-]+?)(\\.)",name:"constant.character.module"},numeric:{match:"(-|\\.)?[0-9]+(\\.[0-9]+)?",name:"constant.numeric.css.sass"},operator:{match:"\\+|\\s-\\s|\\s-(?=\\$)|(?<=\\()-(?=\\$)|\\s-(?=\\()|\\*|/|%|=|!|<|>|~",name:"keyword.operator.sass"},"parent-selector":{match:"&",name:"entity.name.tag.css.sass"},"parenthesis-close":{match:"\\)",name:"entity.name.function.parenthesis.close"},"parenthesis-open":{match:"\\(",name:"entity.name.function.parenthesis.open"},"placeholder-selector":{begin:"(?<!\\d)%(?!\\d)",end:"$\\n?|\\s",name:"entity.other.inherited-class.placeholder-selector.css.sass"},"property-value":{match:"[a-zA-Z0-9_-]+",name:"meta.property-value.css.sass support.constant.property-value.css.sass"},"pseudo-class":{match:":[a-z:-]+",name:"entity.other.attribute-name.pseudo-class.css.sass"},"quoted-interpolation":{begin:"#{",end:"}",name:"support.function.interpolation.sass",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#operator"},{include:"#unit"},{include:"#comma"}]},"reserved-words":{match:"\\b(false|from|in|not|null|through|to|true)\\b",name:"support.type.property-name.css.sass"},"rgb-value":{match:"(#)([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b",name:"constant.language.color.rgb-value.css.sass"},semicolon:{match:";",name:"invalid"},"single-quoted":{begin:"'",end:"'",name:"string.quoted.single.css.sass",patterns:[{include:"#quoted-interpolation"}]},unit:{match:"(?<=[\\d]|})(ch|cm|deg|dpcm|dpi|dppx|em|ex|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vw|fr|%)",name:"keyword.control.unit.css.sass"},variable:{match:"\\$[a-zA-Z0-9_-]+",name:"variable.other.value"},"variable-root":{match:"\\$[a-zA-Z0-9_-]+",name:"variable.other.root"}},scopeName:"source.sass"});var n=[e];export{n as default}; diff --git a/assets/chunks/scala.vMsNTMhM.js b/assets/chunks/scala.vMsNTMhM.js new file mode 100644 index 000000000..051b4235b --- /dev/null +++ b/assets/chunks/scala.vMsNTMhM.js @@ -0,0 +1,5 @@ +const a=Object.freeze({displayName:"Scala",fileTypes:["scala"],firstLineMatch:"^#!/.*\\b\\w*scala\\b",foldingStartMarker:"/\\*\\*|\\{\\s*$",foldingStopMarker:"\\*\\*/|^\\s*\\}",name:"scala",patterns:[{include:"#code"}],repository:{backQuotedVariable:{match:"`[^`]+`"},"block-comments":{patterns:[{captures:{0:{name:"punctuation.definition.comment.scala"}},match:"/\\*\\*/",name:"comment.block.empty.scala"},{begin:"^\\s*(/\\*\\*)(?!/)",beginCaptures:{1:{name:"punctuation.definition.comment.scala"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.scala"}},name:"comment.block.documentation.scala",patterns:[{captures:{1:{name:"keyword.other.documentation.scaladoc.scala"},2:{name:"variable.parameter.scala"}},match:"(@param)\\s+(\\S+)"},{captures:{1:{name:"keyword.other.documentation.scaladoc.scala"},2:{name:"entity.name.class"}},match:"(@(?:tparam|throws))\\s+(\\S+)"},{match:"@(return|see|note|example|constructor|usecase|author|version|since|todo|deprecated|migration|define|inheritdoc)\\b",name:"keyword.other.documentation.scaladoc.scala"},{captures:{1:{name:"punctuation.definition.documentation.link.scala"},2:{name:"string.other.link.title.markdown"},3:{name:"punctuation.definition.documentation.link.scala"}},match:"(\\[\\[)([^\\]]+)(\\]\\])"},{include:"#block-comments"}]},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.scala"}},end:"\\*/",name:"comment.block.scala",patterns:[{include:"#block-comments"}]}]},"char-literal":{patterns:[{captures:{1:{name:"punctuation.definition.character.begin.scala"},2:{name:"punctuation.definition.character.end.scala"}},match:"(')'(')",name:"string.quoted.other constant.character.literal.scala"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.character.begin.scala"}},end:"'|$",endCaptures:{0:{name:"punctuation.definition.character.end.scala"}},name:"string.quoted.other constant.character.literal.scala",patterns:[{match:`\\\\(?:[btnfr\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})`,name:"constant.character.escape.scala"},{match:"\\\\.",name:"invalid.illegal.unrecognized-character-escape.scala"},{match:"[^']{2,}",name:"invalid.illegal.character-literal-too-long"},{match:"(?<!')[^']",name:"invalid.illegal.character-literal-too-long"}]}]},code:{patterns:[{include:"#using-directive"},{include:"#script-header"},{include:"#storage-modifiers"},{include:"#declarations"},{include:"#inheritance"},{include:"#extension"},{include:"#imports"},{include:"#exports"},{include:"#comments"},{include:"#strings"},{include:"#initialization"},{include:"#xml-literal"},{include:"#keywords"},{include:"#using"},{include:"#constants"},{include:"#singleton-type"},{include:"#inline"},{include:"#scala-quoted-or-symbol"},{include:"#char-literal"},{include:"#empty-parentheses"},{include:"#parameter-list"},{include:"#qualifiedClassName"},{include:"#backQuotedVariable"},{include:"#curly-braces"},{include:"#meta-brackets"},{include:"#meta-bounds"},{include:"#meta-colons"}]},comments:{patterns:[{include:"#block-comments"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.scala"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.scala"}},end:"\\n",name:"comment.line.double-slash.scala"}]}]},constants:{patterns:[{match:"\\b(false|null|true)\\b",name:"constant.language.scala"},{match:"\\b(0[xX][0-9a-fA-F_]*)\\b",name:"constant.numeric.scala"},{match:"\\b(([0-9][0-9_]*(\\.[0-9][0-9_]*)?)([eE](\\+|-)?[0-9][0-9_]*)?|[0-9][0-9_]*)[LlFfDd]?\\b",name:"constant.numeric.scala"},{match:"(\\.[0-9][0-9_]*)([eE](\\+|-)?[0-9][0-9_]*)?[LlFfDd]?\\b",name:"constant.numeric.scala"},{match:"\\b0[bB][01]([01_]*[01])?[Ll]?\\b",name:"constant.numeric.scala"},{match:"\\b(this|super)\\b",name:"variable.language.scala"}]},"curly-braces":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.scala"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.scala"}},patterns:[{include:"#code"}]},declarations:{patterns:[{captures:{1:{name:"keyword.declaration.scala"},2:{name:"entity.name.function.declaration"}},match:"\\b(def)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?"},{captures:{1:{name:"keyword.declaration.scala"},2:{name:"entity.name.class.declaration"}},match:"\\b(trait)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?"},{captures:{1:{name:"keyword.declaration.scala"},2:{name:"keyword.declaration.scala"},3:{name:"entity.name.class.declaration"}},match:"\\b(?:(case)\\s+)?(class|object|enum)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?"},{captures:{1:{name:"keyword.declaration.scala"},2:{name:"entity.name.type.declaration"}},match:"(?<!\\.)\\b(type)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?"},{captures:{1:{name:"keyword.declaration.stable.scala"},2:{name:"keyword.declaration.volatile.scala"}},match:"\\b(?:(val)|(var))\\b\\s*(?!//|/\\*)(?=(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)?\\()"},{captures:{1:{name:"keyword.declaration.stable.scala"},2:{name:"variable.stable.declaration.scala"}},match:'\\b(val)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)(?:\\s*,\\s*(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))*)?(?!")'},{captures:{1:{name:"keyword.declaration.volatile.scala"},2:{name:"variable.volatile.declaration.scala"}},match:'\\b(var)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)(?:\\s*,\\s*(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))*)?(?!")'},{captures:{1:{name:"keyword.other.package.scala"},2:{name:"keyword.declaration.scala"},3:{name:"entity.name.class.declaration"}},match:"\\b(package)\\s+(object)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?"},{begin:"\\b(package)\\s+",beginCaptures:{1:{name:"keyword.other.package.scala"}},end:"(?<=[\\n;])",name:"meta.package.scala",patterns:[{include:"#comments"},{match:"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))",name:"entity.name.package.scala"},{match:"\\.",name:"punctuation.definition.package"}]},{captures:{1:{name:"keyword.declaration.scala"},2:{name:"entity.name.given.declaration"}},match:"\\b(given)\\b\\s*([_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`)?"}]},"empty-parentheses":{captures:{1:{name:"meta.bracket.scala"}},match:"(\\(\\))",name:"meta.parentheses.scala"},exports:{begin:"\\b(export)\\s+",beginCaptures:{1:{name:"keyword.other.export.scala"}},end:"(?<=[\\n;])",name:"meta.export.scala",patterns:[{include:"#comments"},{match:"\\b(given)\\b",name:"keyword.other.export.given.scala"},{match:"[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?",name:"entity.name.class.export.scala"},{match:"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))",name:"entity.name.export.scala"},{match:"\\.",name:"punctuation.definition.export"},{begin:"{",beginCaptures:{0:{name:"meta.bracket.scala"}},end:"}",endCaptures:{0:{name:"meta.bracket.scala"}},name:"meta.export.selector.scala",patterns:[{captures:{1:{name:"keyword.other.export.given.scala"},2:{name:"entity.name.class.export.renamed-from.scala"},3:{name:"entity.name.export.renamed-from.scala"},4:{name:"keyword.other.arrow.scala"},5:{name:"entity.name.class.export.renamed-to.scala"},6:{name:"entity.name.export.renamed-to.scala"}},match:"(?x)(given\\s)?\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*(=>)\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*"},{match:"\\b(given)\\b",name:"keyword.other.export.given.scala"},{captures:{1:{name:"keyword.other.export.given.scala"},2:{name:"entity.name.class.export.scala"},3:{name:"entity.name.export.scala"}},match:"(given\\s+)?(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))"}]}]},extension:{patterns:[{captures:{1:{name:"keyword.declaration.scala"}},match:"^\\s*(extension)\\s+(?=[\\[\\(])"}]},imports:{begin:"\\b(import)\\s+",beginCaptures:{1:{name:"keyword.other.import.scala"}},end:"(?<=[\\n;])",name:"meta.import.scala",patterns:[{include:"#comments"},{match:"\\b(given)\\b",name:"keyword.other.import.given.scala"},{match:"\\s(as)\\s",name:"keyword.other.import.as.scala"},{match:"[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?",name:"entity.name.class.import.scala"},{match:"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))",name:"entity.name.import.scala"},{match:"\\.",name:"punctuation.definition.import"},{begin:"{",beginCaptures:{0:{name:"meta.bracket.scala"}},end:"}",endCaptures:{0:{name:"meta.bracket.scala"}},name:"meta.import.selector.scala",patterns:[{captures:{1:{name:"keyword.other.import.given.scala"},2:{name:"entity.name.class.import.renamed-from.scala"},3:{name:"entity.name.import.renamed-from.scala"},4:{name:"keyword.other.arrow.scala"},5:{name:"entity.name.class.import.renamed-to.scala"},6:{name:"entity.name.import.renamed-to.scala"}},match:"(?x)(given\\s)?\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*(=>)\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*"},{match:"\\b(given)\\b",name:"keyword.other.import.given.scala"},{captures:{1:{name:"keyword.other.import.given.scala"},2:{name:"entity.name.class.import.scala"},3:{name:"entity.name.import.scala"}},match:"(given\\s+)?(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))"}]}]},inheritance:{patterns:[{captures:{1:{name:"keyword.declaration.scala"},2:{name:"entity.name.class"}},match:'\\b(extends|with|derives)\\b\\s*([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`|(?=\\([^\\)]+=>)|(?=(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))|(?="))?'}]},initialization:{captures:{1:{name:"keyword.declaration.scala"}},match:"\\b(new)\\b"},inline:{patterns:[{match:"\\b(inline)(?=\\s+((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)\\s*:)",name:"storage.modifier.other"},{match:"\\b(inline)\\b(?=(?:.(?!\\b(?:val|def|given)\\b))*\\b(if|match)\\b)",name:"keyword.control.flow.scala"}]},keywords:{patterns:[{match:"\\b(return|throw)\\b",name:"keyword.control.flow.jump.scala"},{match:"\\b(classOf|isInstanceOf|asInstanceOf)\\b",name:"support.function.type-of.scala"},{match:"\\b(else|if|then|do|while|for|yield|match|case)\\b",name:"keyword.control.flow.scala"},{match:"^\\s*(end)\\s+(if|while|for|match)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.control.flow.end.scala"},{match:"^\\s*(end)\\s+(val)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.declaration.stable.end.scala"},{match:"^\\s*(end)\\s+(var)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.declaration.volatile.end.scala"},{captures:{1:{name:"keyword.declaration.end.scala"},2:{name:"keyword.declaration.end.scala"},3:{name:"entity.name.type.declaration"}},match:"^\\s*(end)\\s+(?:(new|extension)|([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)"},{match:"\\b(catch|finally|try)\\b",name:"keyword.control.exception.scala"},{match:"^\\s*(end)\\s+(try)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.control.exception.end.scala"},{captures:{1:{name:"keyword.declaration.end.scala"},2:{name:"entity.name.declaration"}},match:"^\\s*(end)\\s+(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))?(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)"},{match:"(==?|!=|<=|>=|<>|<|>)",name:"keyword.operator.comparison.scala"},{match:"(\\-|\\+|\\*|/(?![/*])|%|~)",name:"keyword.operator.arithmetic.scala"},{match:"(?<![!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]|_)(!|&&|\\|\\|)(?![!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}])",name:"keyword.operator.logical.scala"},{match:"(<-|←|->|→|=>|⇒|\\?|\\:+|@|\\|)+",name:"keyword.operator.scala"}]},"meta-bounds":{comment:"For themes: Matching view bounds",match:"<%|=:=|<:<|<%<|>:|<:",name:"meta.bounds.scala"},"meta-brackets":{comment:"For themes: Brackets look nice when colored.",patterns:[{comment:"The punctuation.section.*.begin is needed for return snippet in source bundle",match:"\\{",name:"punctuation.section.block.begin.scala"},{comment:"The punctuation.section.*.end is needed for return snippet in source bundle",match:"\\}",name:"punctuation.section.block.end.scala"},{match:"{|}|\\(|\\)|\\[|\\]",name:"meta.bracket.scala"}]},"meta-colons":{comment:"For themes: Matching type colons",patterns:[{match:"(?<!:):(?!:)",name:"meta.colon.scala"}]},"parameter-list":{patterns:[{captures:{1:{name:"variable.parameter.scala"},2:{name:"meta.colon.scala"}},match:"(?<=[^\\._$a-zA-Z0-9])(`[^`]+`|[_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)\\s*(:)\\s+"}]},qualifiedClassName:{captures:{1:{name:"entity.name.class"}},match:"(\\b([A-Z][\\w]*)(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)"},"scala-quoted-or-symbol":{patterns:[{captures:{1:{name:"keyword.control.flow.staging.scala constant.other.symbol.scala"},2:{name:"constant.other.symbol.scala"}},match:"(')((?>(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))(?!')"},{match:"'(?=\\s*\\{(?!'))",name:"keyword.control.flow.staging.scala"},{match:"'(?=\\s*\\[(?!'))",name:"keyword.control.flow.staging.scala"},{match:"\\$(?=\\s*\\{)",name:"keyword.control.flow.staging.scala"}]},"script-header":{captures:{1:{name:"string.unquoted.shebang.scala"}},match:"^#!(.*)$",name:"comment.block.shebang.scala"},"singleton-type":{captures:{1:{name:"keyword.type.scala"}},match:"\\.(type)(?![A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[0-9])"},"storage-modifiers":{patterns:[{match:"\\b(private\\[\\S+\\]|protected\\[\\S+\\]|private|protected)\\b",name:"storage.modifier.access"},{match:"\\b(synchronized|@volatile|abstract|final|lazy|sealed|implicit|override|@transient|@native)\\b",name:"storage.modifier.other"},{match:"(?<=^|\\s)\\b(transparent|opaque|infix|open|inline)\\b(?=[a-z\\s]*\\b(def|val|var|given|type|class|trait|object|enum)\\b)",name:"storage.modifier.other"}]},"string-interpolation":{patterns:[{match:"\\$\\$",name:"constant.character.escape.interpolation.scala"},{captures:{1:{name:"punctuation.definition.template-expression.begin.scala"}},match:"(\\$)([A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\p{Lo}\\p{Nl}\\p{Ll}0-9]*)",name:"meta.template.expression.scala"},{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.scala"}},contentName:"meta.embedded.line.scala",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.scala"}},name:"meta.template.expression.scala",patterns:[{include:"#code"}]}]},strings:{patterns:[{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.scala"}},end:'"""(?!")',endCaptures:{0:{name:"punctuation.definition.string.end.scala"}},name:"string.quoted.triple.scala",patterns:[{match:"\\\\\\\\|\\\\u[0-9A-Fa-f]{4}",name:"constant.character.escape.scala"}]},{begin:'\\b(raw)(""")',beginCaptures:{1:{name:"keyword.interpolation.scala"},2:{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},end:`(""")(?!")|\\$ +|(\\$[^\\$"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])`,endCaptures:{1:{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},2:{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{match:'\\$[\\$"]',name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:".",name:"string.quoted.triple.interpolated.scala"}]},{begin:'\\b((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(""")',beginCaptures:{1:{name:"keyword.interpolation.scala"},2:{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},end:`(""")(?!")|\\$ +|(\\$[^\\$"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])`,endCaptures:{1:{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},2:{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{include:"#string-interpolation"},{match:"\\\\\\\\|\\\\u[0-9A-Fa-f]{4}",name:"constant.character.escape.scala"},{match:".",name:"string.quoted.triple.interpolated.scala"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.scala"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.scala"}},name:"string.quoted.double.scala",patterns:[{match:`\\\\(?:[btnfr\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})`,name:"constant.character.escape.scala"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.scala"}]},{begin:'\\b(raw)(")',beginCaptures:{1:{name:"keyword.interpolation.scala"},2:{name:"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},end:`(")|\\$ +|(\\$[^\\$"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])`,endCaptures:{1:{name:"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"},2:{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{match:'\\$[\\$"]',name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:".",name:"string.quoted.double.interpolated.scala"}]},{begin:'\\b((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(")',beginCaptures:{1:{name:"keyword.interpolation.scala"},2:{name:"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},end:`(")|\\$ +|(\\$[^\\$"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])`,endCaptures:{1:{name:"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"},2:{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{match:'\\$[\\$"]',name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:`\\\\(?:[btnfr\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})`,name:"constant.character.escape.scala"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.scala"},{match:".",name:"string.quoted.double.interpolated.scala"}]}]},using:{patterns:[{captures:{1:{name:"keyword.declaration.scala"}},match:"(?<=\\()\\s*(using)\\s"}]},"using-directive":{begin:"^\\s*(//>)\\s*(using)[^\\S\\n]+(?:(\\S+))?",beginCaptures:{1:{name:"punctuation.definition.comment.scala"},2:{name:"keyword.other.import.scala"},3:{patterns:[{match:"[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)",name:"entity.name.import.scala"},{match:"\\.",name:"punctuation.definition.import"}]}},end:"\\n",name:"comment.line.shebang.scala",patterns:[{include:"#constants"},{include:"#strings"},{match:"[^\\s,]+",name:"string.quoted.double.scala"}]},"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:"#xml-entity"}]},"xml-embedded-content":{patterns:[{begin:"{",captures:{0:{name:"meta.bracket.scala"}},end:"}",name:"meta.source.embedded.scala",patterns:[{include:"#code"}]},{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:" (?:([-_a-zA-Z0-9]+)((:)))?([_a-zA-Z-]+)="},{include:"#xml-doublequotedString"},{include:"#xml-singlequotedString"}]},"xml-entity":{captures:{1:{name:"punctuation.definition.constant.xml"},3:{name:"punctuation.definition.constant.xml"}},match:"(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.xml"},"xml-literal":{patterns:[{begin:"(<)((?:([_a-zA-Z0-9][_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*))(?=(\\s[^>]*)?></\\2>)",beginCaptures:{1:{name:"punctuation.definition.tag.xml"},3:{name:"entity.name.tag.namespace.xml"},4:{name:"entity.name.tag.xml"},5:{name:"punctuation.separator.namespace.xml"},6:{name:"entity.name.tag.localname.xml"}},comment:"We do not allow a tag name to start with a - since this would likely conflict with the <- operator. This is not very common for tag names anyway. Also code such as -- if (val <val2 || val> val3) will falsly be recognized as an xml tag. The solution is to put a space on either side of the comparison operator",end:"(>(<))/(?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]*[_a-zA-Z0-9])(>)",endCaptures:{1:{name:"punctuation.definition.tag.xml"},2:{name:"meta.scope.between-tag-pair.xml"},3:{name:"entity.name.tag.namespace.xml"},4:{name:"entity.name.tag.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:"#xml-embedded-content"}]},{begin:"(</?)(?:([_a-zA-Z0-9][-_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*)(?=[^>]*?>)",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:"#xml-embedded-content"}]},{include:"#xml-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:"#xml-entity"}]}},scopeName:"source.scala"});var e=[a];export{e as default}; diff --git a/assets/chunks/scheme.1Je9_Reo.js b/assets/chunks/scheme.1Je9_Reo.js new file mode 100644 index 000000000..d7a435576 --- /dev/null +++ b/assets/chunks/scheme.1Je9_Reo.js @@ -0,0 +1,136 @@ +const e=Object.freeze({displayName:"Scheme",fileTypes:["scm","ss","sch","rkt"],name:"scheme",patterns:[{include:"#comment"},{include:"#block-comment"},{include:"#sexp"},{include:"#string"},{include:"#language-functions"},{include:"#quote"},{include:"#illegal"}],repository:{"block-comment":{begin:"\\#\\|",contentName:"comment",end:"\\|\\#",name:"comment",patterns:[{include:"#block-comment",name:"comment"}]},comment:{begin:"(^[ \\t]+)?(?=;)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.scheme"}},end:"(?!\\G)",patterns:[{begin:";",beginCaptures:{0:{name:"punctuation.definition.comment.scheme"}},end:"\\n",name:"comment.line.semicolon.scheme"}]},constants:{patterns:[{match:"#[t|f]",name:"constant.language.boolean.scheme"},{match:`(?<=[\\(\\s])((#e|#i)?[0-9]+(\\.[0-9]+)?|(#x)[0-9a-fA-F]+|(#o)[0-7]+|(#b)[01]+)(?=[\\s;()'",\\[\\]])`,name:"constant.numeric.scheme"}]},illegal:{match:"[()\\[\\]]",name:"invalid.illegal.parenthesis.scheme"},"language-functions":{patterns:[{match:`(?x) +(?<=(\\s|\\(|\\[)) +( do|or|and|else|quasiquote|begin|if|case|set!| +cond|let|unquote|define|let\\*|unquote-splicing|delay| +letrec) +(?=(\\s|\\())`,name:"keyword.control.scheme"},{comment:` + These functions run a test, and return a boolean + answer. + `,match:`(?x) +(?<=(\\s|\\()) +( char-alphabetic|char-lower-case|char-numeric| +char-ready|char-upper-case|char-whitespace| +(?:char|string)(?:-ci)?(?:=|<=?|>=?)| +atom|boolean|bound-identifier=|char|complex| +identifier|integer|symbol|free-identifier=|inexact| +eof-object|exact|list|(?:input|output)-port|pair| +real|rational|zero|vector|negative|odd|null|string| +eq|equal|eqv|even|number|positive|procedure +) +(\\?) +(?=(\\s|\\()) +`,name:"support.function.boolean-test.scheme"},{comment:` + These functions change one type into another. + `,match:`(?x) +(?<=(\\s|\\()) +( char->integer|exact->inexact|inexact->exact| +integer->char|symbol->string|list->vector| +list->string|identifier->symbol|vector->list| +string->list|string->number|string->symbol| +number->string +) +(?=(\\s|\\()) +`,name:"support.function.convert-type.scheme"},{comment:` + These functions are potentially dangerous because + they have side-effects which could affect other + parts of the program. + `,match:`(?x) +(?<=(\\s|\\()) +( set-(?:car|cdr)| +(?:vector|string)-(?:fill|set) +) +(!) +(?=(\\s|\\()) +`,name:"support.function.with-side-effects.scheme"},{comment:` + +, -, *, /, =, >, etc. + `,match:`(?x) +(?<=(\\s|\\()) +( >=?|<=?|=|[*/+-]) +(?=(\\s|\\()) +`,name:"keyword.operator.arithmetic.scheme"},{match:`(?x) +(?<=(\\s|\\()) +( append|apply|approximate| +call-with-current-continuation|call/cc|catch| +construct-identifier|define-syntax|display|foo| +for-each|force|format|cd|gen-counter|gen-loser| +generate-identifier|last-pair|length|let-syntax| +letrec-syntax|list|list-ref|list-tail|load|log| +macro|magnitude|map|map-streams|max|member|memq| +memv|min|newline|nil|not|peek-char|rationalize| +read|read-char|return|reverse|sequence|substring| +syntax|syntax-rules|transcript-off|transcript-on| +truncate|unwrap-syntax|values-list|write|write-char| + + +cons|c(a|d){1,4}r| + + +abs|acos|angle|asin|assoc|assq|assv|atan|ceiling| +cos|floor|round|sin|sqrt|tan| +(?:real|imag)-part|numerator|denominator + + +modulo|exp|expt|remainder|quotient|lcm| + + +call-with-(?:input|output)-file| +(?:close|current)-(?:input|output)-port| +with-(?:input|output)-from-file| +open-(?:input|output)-file| + + +char-(?:downcase|upcase|ready)| + + +make-(?:polar|promise|rectangular|string|vector) + + +string(?:-(?:append|copy|length|ref))?| +vector(?:-length|-ref) +) +(?=(\\s|\\()) +`,name:"support.function.general.scheme"}]},quote:{comment:` + We need to be able to quote any kind of item, which creates + a tiny bit of complexity in our grammar. It is hopefully + not overwhelming complexity. + + Note: the first two matches are special cases. quoted + symbols, and quoted empty lists are considered constant.other + + `,patterns:[{captures:{1:{name:"punctuation.section.quoted.symbol.scheme"}},match:`(?x) +(')\\s* +([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*) +`,name:"constant.other.symbol.scheme"},{captures:{1:{name:"punctuation.section.quoted.empty-list.scheme"},2:{name:"meta.expression.scheme"},3:{name:"punctuation.section.expression.begin.scheme"},4:{name:"punctuation.section.expression.end.scheme"}},match:`(?x) +(')\\s* +((\\()\\s*(\\))) +`,name:"constant.other.empty-list.schem"},{begin:"(')\\s*",beginCaptures:{1:{name:"punctuation.section.quoted.scheme"}},comment:"quoted double-quoted string or s-expression",end:"(?=[\\s()])|(?<=\\n)",name:"string.other.quoted-object.scheme",patterns:[{include:"#quoted"}]}]},"quote-sexp":{begin:"(?<=\\()\\s*(quote)\\s+",beginCaptures:{1:{name:"keyword.control.quote.scheme"}},comment:` + Something quoted with (quote «thing»). In this case «thing» + will not be evaluated, so we are considering it a string. + `,contentName:"string.other.quote.scheme",end:"(?=[\\s)])|(?<=\\n)",patterns:[{include:"#quoted"}]},quoted:{patterns:[{include:"#string"},{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.expression.begin.scheme"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.expression.end.scheme"}},name:"meta.expression.scheme",patterns:[{include:"#quoted"}]},{include:"#quote"},{include:"#illegal"}]},sexp:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.expression.begin.scheme"}},end:"(\\))(\\n)?",endCaptures:{1:{name:"punctuation.section.expression.end.scheme"},2:{name:"meta.after-expression.scheme"}},name:"meta.expression.scheme",patterns:[{include:"#comment"},{begin:`(?x) +(?<=\\() +(define)\\s+ +(\\() +([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*) +((\\s+ +([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._]) +)* +)\\s* +(\\)) +`,captures:{1:{name:"keyword.control.scheme"},2:{name:"punctuation.definition.function.scheme"},3:{name:"entity.name.function.scheme"},4:{name:"variable.parameter.function.scheme"},7:{name:"punctuation.definition.function.scheme"}},end:"(?=\\))",name:"meta.declaration.procedure.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{begin:`(?x) +(?<=\\() +(lambda)\\s+ +(\\() +((?: +([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._]) +\\s+ +)*(?: +([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._]) +)?) +(\\)) +`,captures:{1:{name:"keyword.control.scheme"},2:{name:"punctuation.definition.variable.scheme"},3:{name:"variable.parameter.scheme"},6:{name:"punctuation.definition.variable.scheme"}},comment:` + Not sure this one is quite correct. That \\s* is + particularly troubling + `,end:"(?=\\))",name:"meta.declaration.procedure.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{begin:"(?<=\\()(define)\\s([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\\s*.*?",captures:{1:{name:"keyword.control.scheme"},2:{name:"variable.other.scheme"}},end:"(?=\\))",name:"meta.declaration.variable.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{include:"#quote-sexp"},{include:"#quote"},{include:"#language-functions"},{include:"#string"},{include:"#constants"},{match:"(?<=[\\(\\s])(#\\\\)(space|newline|tab)(?=[\\s\\)])",name:"constant.character.named.scheme"},{match:"(?<=[\\(\\s])(#\\\\)x[0-9A-F]{2,4}(?=[\\s\\)])",name:"constant.character.hex-literal.scheme"},{match:"(?<=[\\(\\s])(#\\\\).(?=[\\s\\)])",name:"constant.character.escape.scheme"},{comment:` + the . in (a . b) which conses together two elements + a and b. (a b c) == (a . (b . (c . nil))) + `,match:"(?<=[ ()])\\.(?=[ ()])",name:"punctuation.separator.cons.scheme"},{include:"#sexp"},{include:"#illegal"}]},string:{begin:'(")',beginCaptures:{1:{name:"punctuation.definition.string.begin.scheme"}},end:'(")',endCaptures:{1:{name:"punctuation.definition.string.end.scheme"}},name:"string.quoted.double.scheme",patterns:[{match:"\\\\.",name:"constant.character.escape.scheme"}]}},scopeName:"source.scheme"});var n=[e];export{n as default}; diff --git a/assets/chunks/scss.Dr-_CcBd.js b/assets/chunks/scss.Dr-_CcBd.js new file mode 100644 index 000000000..db15cb7a7 --- /dev/null +++ b/assets/chunks/scss.Dr-_CcBd.js @@ -0,0 +1,90 @@ +import e from"./css.CbYhyuC0.js";const n=Object.freeze({displayName:"SCSS",name:"scss",patterns:[{include:"#variable_setting"},{include:"#at_rule_forward"},{include:"#at_rule_use"},{include:"#at_rule_include"},{include:"#at_rule_import"},{include:"#general"},{include:"#flow_control"},{include:"#rules"},{include:"#property_list"},{include:"#at_rule_mixin"},{include:"#at_rule_media"},{include:"#at_rule_function"},{include:"#at_rule_charset"},{include:"#at_rule_option"},{include:"#at_rule_namespace"},{include:"#at_rule_fontface"},{include:"#at_rule_page"},{include:"#at_rule_keyframes"},{include:"#at_rule_at_root"},{include:"#at_rule_supports"},{match:";",name:"punctuation.terminator.rule.css"}],repository:{at_rule_at_root:{begin:"\\s*((@)(at-root))(\\s+|$)",beginCaptures:{1:{name:"keyword.control.at-rule.at-root.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.at-root.scss",patterns:[{include:"#function_attributes"},{include:"#functions"},{include:"#selectors"}]},at_rule_charset:{begin:"\\s*((@)charset\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.charset.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=;|$))",name:"meta.at-rule.charset.scss",patterns:[{include:"#variable"},{include:"#string_single"},{include:"#string_double"}]},at_rule_content:{begin:"\\s*((@)content\\b)\\s*",captures:{1:{name:"keyword.control.content.scss"}},end:"\\s*((?=;))",name:"meta.content.scss",patterns:[{include:"#variable"},{include:"#selectors"},{include:"#property_values"}]},at_rule_each:{begin:"\\s*((@)each\\b)\\s*",captures:{1:{name:"keyword.control.each.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=}))",name:"meta.at-rule.each.scss",patterns:[{match:"\\b(in|,)\\b",name:"keyword.control.operator"},{include:"#variable"},{include:"#property_values"},{include:"$self"}]},at_rule_else:{begin:"\\s*((@)else(\\s*(if)?))\\s*",captures:{1:{name:"keyword.control.else.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.else.scss",patterns:[{include:"#conditional_operators"},{include:"#variable"},{include:"#property_values"}]},at_rule_extend:{begin:"\\s*((@)extend\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.extend.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.extend.scss",patterns:[{include:"#variable"},{include:"#selectors"},{include:"#property_values"}]},at_rule_fontface:{patterns:[{begin:"^\\s*((@)font-face\\b)",beginCaptures:{1:{name:"keyword.control.at-rule.fontface.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.fontface.scss",patterns:[{include:"#function_attributes"}]}]},at_rule_for:{begin:"\\s*((@)for\\b)\\s*",captures:{1:{name:"keyword.control.for.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.for.scss",patterns:[{match:"(==|!=|<=|>=|<|>|from|to|through)",name:"keyword.control.operator"},{include:"#variable"},{include:"#property_values"},{include:"$self"}]},at_rule_forward:{begin:"\\s*((@)forward\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.forward.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.forward.scss",patterns:[{match:"\\b(as|hide|show)\\b",name:"keyword.control.operator"},{captures:{1:{name:"entity.other.attribute-name.module.scss"},2:{name:"punctuation.definition.wildcard.scss"}},match:"\\b([\\w-]+)(\\*)"},{match:"\\b[\\w-]+\\b",name:"entity.name.function.scss"},{include:"#variable"},{include:"#string_single"},{include:"#string_double"},{include:"#comment_line"},{include:"#comment_block"}]},at_rule_function:{patterns:[{begin:"\\s*((@)function\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.function.scss"},2:{name:"punctuation.definition.keyword.scss"},3:{name:"entity.name.function.scss"}},end:"\\s*(?={)",name:"meta.at-rule.function.scss",patterns:[{include:"#function_attributes"}]},{captures:{1:{name:"keyword.control.at-rule.function.scss"},2:{name:"punctuation.definition.keyword.scss"},3:{name:"entity.name.function.scss"}},match:"\\s*((@)function\\b)\\s*",name:"meta.at-rule.function.scss"}]},at_rule_if:{begin:"\\s*((@)if\\b)\\s*",captures:{1:{name:"keyword.control.if.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.if.scss",patterns:[{include:"#conditional_operators"},{include:"#variable"},{include:"#property_values"}]},at_rule_import:{begin:"\\s*((@)import\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.import.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=;)|(?=}))",name:"meta.at-rule.import.scss",patterns:[{include:"#variable"},{include:"#string_single"},{include:"#string_double"},{include:"#functions"},{include:"#comment_line"}]},at_rule_include:{patterns:[{begin:"(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)\\s*(\\()",beginCaptures:{1:{name:"variable.scss"},2:{name:"punctuation.access.module.scss"},3:{name:"entity.name.function.scss"},4:{name:"punctuation.definition.parameters.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.scss"}},name:"meta.at-rule.include.scss",patterns:[{include:"#function_attributes"}]},{captures:{0:{name:"meta.at-rule.include.scss"},1:{name:"variable.scss"},2:{name:"punctuation.access.module.scss"},3:{name:"entity.name.function.scss"}},match:"(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)"},{captures:{0:{name:"meta.at-rule.include.scss"},1:{name:"keyword.control.at-rule.include.scss"},2:{name:"punctuation.definition.keyword.scss"}},match:"((@)include)\\b"}]},at_rule_keyframes:{begin:"(?<=^|\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\b",beginCaptures:{0:{name:"keyword.control.at-rule.keyframes.scss"},1:{name:"punctuation.definition.keyword.scss"}},end:"(?<=})",name:"meta.at-rule.keyframes.scss",patterns:[{captures:{1:{name:"entity.name.function.scss"}},match:"(?<=@keyframes)\\s+((?:[_A-Za-z][-\\w]|-[_A-Za-z])[-\\w]*)"},{begin:'(?<=@keyframes)\\s+(")',beginCaptures:{1:{name:"punctuation.definition.string.begin.scss"}},contentName:"entity.name.function.scss",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.scss"}},name:"string.quoted.double.scss",patterns:[{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.scss"},{include:"#interpolation"}]},{begin:"(?<=@keyframes)\\s+(')",beginCaptures:{1:{name:"punctuation.definition.string.begin.scss"}},contentName:"entity.name.function.scss",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.scss"}},name:"string.quoted.single.scss",patterns:[{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.scss"},{include:"#interpolation"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.keyframes.begin.scss"}},end:"}",endCaptures:{0:{name:"punctuation.section.keyframes.end.scss"}},patterns:[{match:"\\b(?:(?:100|[1-9]\\d|\\d)%|from|to)(?=\\s*{)",name:"entity.other.attribute-name.scss"},{include:"#flow_control"},{include:"#interpolation"},{include:"#property_list"},{include:"#rules"}]}]},at_rule_media:{patterns:[{begin:"^\\s*((@)media)\\b",beginCaptures:{1:{name:"keyword.control.at-rule.media.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.media.scss",patterns:[{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"},{match:"\\b(only)\\b",name:"keyword.control.operator.css.scss"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.media-query.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.media-query.end.bracket.round.scss"}},name:"meta.property-list.media-query.scss",patterns:[{begin:"(?<![-a-z])(?=[-a-z])",end:"$|(?![-a-z])",name:"meta.property-name.media-query.scss",patterns:[{include:"source.css#media-features"},{include:"source.css#property-names"}]},{begin:"(:)\\s*(?!(\\s*{))",beginCaptures:{1:{name:"punctuation.separator.key-value.scss"}},contentName:"meta.property-value.media-query.scss",end:"\\s*(;|(?=}|\\)))",endCaptures:{1:{name:"punctuation.terminator.rule.scss"}},patterns:[{include:"#general"},{include:"#property_values"}]}]},{include:"#variable"},{include:"#conditional_operators"},{include:"source.css#media-types"}]}]},at_rule_mixin:{patterns:[{begin:"(?<=@mixin)\\s+([\\w-]+)\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.scss"},2:{name:"punctuation.definition.parameters.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.scss"}},name:"meta.at-rule.mixin.scss",patterns:[{include:"#function_attributes"}]},{captures:{1:{name:"entity.name.function.scss"}},match:"(?<=@mixin)\\s+([\\w-]+)",name:"meta.at-rule.mixin.scss"},{captures:{1:{name:"keyword.control.at-rule.mixin.scss"},2:{name:"punctuation.definition.keyword.scss"}},match:"((@)mixin)\\b",name:"meta.at-rule.mixin.scss"}]},at_rule_namespace:{patterns:[{begin:"(?<=@namespace)\\s+(?=url)",end:"(?=;|$)",name:"meta.at-rule.namespace.scss",patterns:[{include:"#property_values"},{include:"#string_single"},{include:"#string_double"}]},{begin:"(?<=@namespace)\\s+([\\w-]*)",captures:{1:{name:"entity.name.namespace-prefix.scss"}},end:"(?=;|$)",name:"meta.at-rule.namespace.scss",patterns:[{include:"#variables"},{include:"#property_values"},{include:"#string_single"},{include:"#string_double"}]},{captures:{1:{name:"keyword.control.at-rule.namespace.scss"},2:{name:"punctuation.definition.keyword.scss"}},match:"((@)namespace)\\b",name:"meta.at-rule.namespace.scss"}]},at_rule_option:{captures:{1:{name:"keyword.control.at-rule.charset.scss"},2:{name:"punctuation.definition.keyword.scss"}},match:"^\\s*((@)option\\b)\\s*",name:"meta.at-rule.option.scss"},at_rule_page:{patterns:[{begin:"^\\s*((@)page)(?=:|\\s)\\s*([-:\\w]*)",captures:{1:{name:"keyword.control.at-rule.page.scss"},2:{name:"punctuation.definition.keyword.scss"},3:{name:"entity.name.function.scss"}},end:"\\s*(?={)",name:"meta.at-rule.page.scss"}]},at_rule_return:{begin:"\\s*((@)(return)\\b)",captures:{1:{name:"keyword.control.return.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=;))",name:"meta.at-rule.return.scss",patterns:[{include:"#variable"},{include:"#property_values"}]},at_rule_supports:{begin:"(?<=^|\\s)(@)supports\\b",captures:{0:{name:"keyword.control.at-rule.supports.scss"},1:{name:"punctuation.definition.keyword.scss"}},end:"(?={)|$",name:"meta.at-rule.supports.scss",patterns:[{include:"#logical_operators"},{include:"#properties"},{match:"\\(",name:"punctuation.definition.condition.begin.bracket.round.scss"},{match:"\\)",name:"punctuation.definition.condition.end.bracket.round.scss"}]},at_rule_use:{begin:"\\s*((@)use\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.use.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.use.scss",patterns:[{match:"\\b(as|with)\\b",name:"keyword.control.operator"},{match:"\\b[\\w-]+\\b",name:"variable.scss"},{match:"\\*",name:"variable.language.expanded-namespace.scss"},{include:"#string_single"},{include:"#string_double"},{include:"#comment_line"},{include:"#comment_block"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.scss"}},patterns:[{include:"#function_attributes"}]}]},at_rule_warn:{begin:"\\s*((@)(warn|debug|error)\\b)\\s*",captures:{1:{name:"keyword.control.warn.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.warn.scss",patterns:[{include:"#variable"},{include:"#string_double"},{include:"#string_single"}]},at_rule_while:{begin:"\\s*((@)while\\b)\\s*",captures:{1:{name:"keyword.control.while.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=})",name:"meta.at-rule.while.scss",patterns:[{include:"#conditional_operators"},{include:"#variable"},{include:"#property_values"},{include:"$self"}]},comment_block:{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.scss"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.scss"}},name:"comment.block.scss"},comment_docblock:{begin:"///",beginCaptures:{0:{name:"punctuation.definition.comment.scss"}},end:"(?=$)",name:"comment.block.documentation.scss",patterns:[{include:"source.sassdoc"}]},comment_line:{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.scss"}},end:"\\n",name:"comment.line.scss"},comparison_operators:{match:"==|!=|<=|>=|<|>",name:"keyword.operator.comparison.scss"},conditional_operators:{patterns:[{include:"#comparison_operators"},{include:"#logical_operators"}]},constant_default:{match:"!default",name:"keyword.other.default.scss"},constant_functions:{begin:"(?:([\\w-]+)(\\.))?([\\w-]+)(\\()",beginCaptures:{1:{name:"variable.scss"},2:{name:"punctuation.access.module.scss"},3:{name:"support.function.misc.scss"},4:{name:"punctuation.section.function.scss"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.scss"}},patterns:[{include:"#parameters"}]},constant_important:{match:"!important",name:"keyword.other.important.scss"},constant_mathematical_symbols:{match:"\\b(\\+|-|\\*|/)\\b",name:"support.constant.mathematical-symbols.scss"},constant_optional:{match:"!optional",name:"keyword.other.optional.scss"},constant_sass_functions:{begin:"(headings|stylesheet-url|rgba?|hsla?|ie-hex-str|red|green|blue|alpha|opacity|hue|saturation|lightness|prefixed|prefix|-moz|-svg|-css2|-pie|-webkit|-ms|font-(?:files|url)|grid-image|image-(?:width|height|url|color)|sprites?|sprite-(?:map|map-name|file|url|position)|inline-(?:font-files|image)|opposite-position|grad-point|grad-end-position|color-stops|color-stops-in-percentages|grad-color-stops|(?:radial|linear)-(?:gradient|svg-gradient)|opacify|fade-?in|transparentize|fade-?out|lighten|darken|saturate|desaturate|grayscale|adjust-(?:hue|lightness|saturation|color)|scale-(?:lightness|saturation|color)|change-color|spin|complement|invert|mix|-compass-(?:list|space-list|slice|nth|list-size)|blank|compact|nth|first-value-of|join|length|append|nest|append-selector|headers|enumerate|range|percentage|unitless|unit|if|type-of|comparable|elements-of-type|quote|unquote|escape|e|sin|cos|tan|abs|round|ceil|floor|pi|translate(?:X|Y))(\\()",beginCaptures:{1:{name:"support.function.misc.scss"},2:{name:"punctuation.section.function.scss"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.scss"}},patterns:[{include:"#parameters"}]},flow_control:{patterns:[{include:"#at_rule_if"},{include:"#at_rule_else"},{include:"#at_rule_warn"},{include:"#at_rule_for"},{include:"#at_rule_while"},{include:"#at_rule_each"},{include:"#at_rule_return"}]},function_attributes:{patterns:[{match:":",name:"punctuation.separator.key-value.scss"},{include:"#general"},{include:"#property_values"},{match:"[={}\\?;@]",name:"invalid.illegal.scss"}]},functions:{patterns:[{begin:"([\\w-]{1,})(\\()\\s*",beginCaptures:{1:{name:"support.function.misc.scss"},2:{name:"punctuation.section.function.scss"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.scss"}},patterns:[{include:"#parameters"}]},{match:"([\\w-]{1,})",name:"support.function.misc.scss"}]},general:{patterns:[{include:"#variable"},{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"}]},interpolation:{begin:"#{",beginCaptures:{0:{name:"punctuation.definition.interpolation.begin.bracket.curly.scss"}},end:"}",endCaptures:{0:{name:"punctuation.definition.interpolation.end.bracket.curly.scss"}},name:"variable.interpolation.scss",patterns:[{include:"#variable"},{include:"#property_values"}]},logical_operators:{match:"\\b(not|or|and)\\b",name:"keyword.operator.logical.scss"},map:{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.map.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.map.end.bracket.round.scss"}},name:"meta.definition.variable.map.scss",patterns:[{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"},{captures:{1:{name:"support.type.map.key.scss"},2:{name:"punctuation.separator.key-value.scss"}},match:"\\b([\\w-]+)\\s*(:)"},{match:",",name:"punctuation.separator.delimiter.scss"},{include:"#map"},{include:"#variable"},{include:"#property_values"}]},operators:{match:"[-+*/](?!\\s*[-+*/])",name:"keyword.operator.css"},parameters:{patterns:[{include:"#variable"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.scss"}},patterns:[{include:"#function_attributes"}]},{include:"#property_values"},{include:"#comment_block"},{match:`[^'",) \\t]+`,name:"variable.parameter.url.scss"},{match:",",name:"punctuation.separator.delimiter.scss"}]},parent_selector_suffix:{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.identifier.scss"}]}},match:`(?x) +(?<=&) +( +(?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] +| \\\\(?:[0-9a-fA-F]{1,6}|.) +| \\#\\{ +| \\$ +| } +)+ +) +(?= $ +| [\\s,.\\#)\\[:{>+~|] +| /\\* +)`,name:"entity.other.attribute-name.parent-selector-suffix.css"},properties:{patterns:[{begin:"(?<![-a-z])(?=[-a-z])",end:"$|(?![-a-z])",name:"meta.property-name.scss",patterns:[{include:"source.css#property-names"},{include:"#at_rule_include"}]},{begin:"(:)\\s*(?!(\\s*{))",beginCaptures:{1:{name:"punctuation.separator.key-value.scss"}},contentName:"meta.property-value.scss",end:"\\s*(;|(?=}|\\)))",endCaptures:{1:{name:"punctuation.terminator.rule.scss"}},patterns:[{include:"#general"},{include:"#property_values"}]}]},property_list:{begin:"{",beginCaptures:{0:{name:"punctuation.section.property-list.begin.bracket.curly.scss"}},end:"}",endCaptures:{0:{name:"punctuation.section.property-list.end.bracket.curly.scss"}},name:"meta.property-list.scss",patterns:[{include:"#flow_control"},{include:"#rules"},{include:"#properties"},{include:"$self"}]},property_values:{patterns:[{include:"#string_single"},{include:"#string_double"},{include:"#constant_functions"},{include:"#constant_sass_functions"},{include:"#constant_important"},{include:"#constant_default"},{include:"#constant_optional"},{include:"source.css#numeric-values"},{include:"source.css#property-keywords"},{include:"source.css#color-keywords"},{include:"source.css#property-names"},{include:"#constant_mathematical_symbols"},{include:"#operators"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.scss"}},patterns:[{include:"#general"},{include:"#property_values"}]}]},rules:{patterns:[{include:"#general"},{include:"#at_rule_extend"},{include:"#at_rule_content"},{include:"#at_rule_include"},{include:"#at_rule_media"},{include:"#selectors"}]},selector_attribute:{captures:{1:{name:"punctuation.definition.attribute-selector.begin.bracket.square.scss"},2:{name:"entity.other.attribute-name.attribute.scss",patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},3:{name:"keyword.operator.scss"},4:{name:"string.unquoted.attribute-value.scss",patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},5:{name:"string.quoted.double.attribute-value.scss"},6:{name:"punctuation.definition.string.begin.scss"},7:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},8:{name:"punctuation.definition.string.end.scss"},9:{name:"string.quoted.single.attribute-value.scss"},10:{name:"punctuation.definition.string.begin.scss"},11:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},12:{name:"punctuation.definition.string.end.scss"},13:{name:"punctuation.definition.attribute-selector.end.bracket.square.scss"}},match:`(?xi) +(\\[) +\\s* +( +(?: +[-a-zA-Z_0-9]|[^\\x00-\\x7F] +| \\\\(?:[0-9a-fA-F]{1,6}|.) +| \\#\\{ +| \\.?\\$ +| } +)+? +) +(?: +\\s*([~|^$*]?=)\\s* +(?: +( +(?: +[-a-zA-Z_0-9]|[^\\x00-\\x7F] +| \\\\(?:[0-9a-fA-F]{1,6}|.) +| \\#\\{ +| \\.?\\$ +| } +)+ +) +| +((")(.*?)(")) +| +((')(.*?)(')) +) +)? +\\s* +(\\])`,name:"meta.attribute-selector.scss"},selector_class:{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]}},match:`(?x) +(\\.) +( +(?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] +| \\\\(?:[0-9a-fA-F]{1,6}|.) +| \\#\\{ +| \\.?\\$ +| } +)+ +) +(?= $ +| [\\s,\\#)\\[:{>+~|] +| \\.[^$] +| /\\* +| ; +)`,name:"entity.other.attribute-name.class.css"},selector_custom:{match:"\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\.|\\s++[^:]|\\s*[,\\[{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-(child|last-child|of-type|last-of-type)|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\([0-9A-Za-z]*\\))?)",name:"entity.name.tag.custom.scss"},selector_id:{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.identifier.scss"}]}},match:`(?x) +(\\#) +( +(?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] +| \\\\(?:[0-9a-fA-F]{1,6}|.) +| \\#\\{ +| \\.?\\$ +| } +)+ +) +(?= $ +| [\\s,\\#)\\[:{>+~|] +| \\.[^$] +| /\\* +)`,name:"entity.other.attribute-name.id.css"},selector_placeholder:{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.identifier.scss"}]}},match:`(?x) +(%) +( +(?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] +| \\\\(?:[0-9a-fA-F]{1,6}|.) +| \\#\\{ +| \\.\\$ +| \\$ +| } +)+ +) +(?= ; +| $ +| [\\s,\\#)\\[:{>+~|] +| \\.[^$] +| /\\* +)`,name:"entity.other.attribute-name.placeholder.css"},selector_pseudo_class:{patterns:[{begin:"((:)\\bnth-(?:child|last-child|of-type|last-of-type))(\\()",beginCaptures:{1:{name:"entity.other.attribute-name.pseudo-class.css"},2:{name:"punctuation.definition.entity.css"},3:{name:"punctuation.definition.pseudo-class.begin.bracket.round.css"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.pseudo-class.end.bracket.round.css"}},patterns:[{include:"#interpolation"},{match:"\\d+",name:"constant.numeric.css"},{match:"(?<=\\d)n\\b|\\b(n|even|odd)\\b",name:"constant.other.scss"},{match:"\\w+",name:"invalid.illegal.scss"}]},{include:"source.css#pseudo-classes"},{include:"source.css#pseudo-elements"},{include:"source.css#functional-pseudo-classes"}]},selectors:{patterns:[{include:"source.css#tag-names"},{include:"#selector_custom"},{include:"#selector_class"},{include:"#selector_id"},{include:"#selector_pseudo_class"},{include:"#tag_wildcard"},{include:"#tag_parent_reference"},{include:"source.css#pseudo-elements"},{include:"#selector_attribute"},{include:"#selector_placeholder"},{include:"#parent_selector_suffix"}]},string_double:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.scss"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.scss"}},name:"string.quoted.double.scss",patterns:[{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.scss"},{include:"#interpolation"}]},string_single:{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.scss"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.scss"}},name:"string.quoted.single.scss",patterns:[{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.scss"},{include:"#interpolation"}]},tag_parent_reference:{match:"&",name:"entity.name.tag.reference.scss"},tag_wildcard:{match:"\\*",name:"entity.name.tag.wildcard.scss"},variable:{patterns:[{include:"#variables"},{include:"#interpolation"}]},variable_setting:{begin:"(?=\\$[\\w-]+\\s*:)",contentName:"meta.definition.variable.scss",end:";",endCaptures:{0:{name:"punctuation.terminator.rule.scss"}},patterns:[{match:"\\$[\\w-]+(?=\\s*:)",name:"variable.scss"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.key-value.scss"}},end:"(?=;)",patterns:[{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"},{include:"#map"},{include:"#property_values"},{include:"#variable"},{match:",",name:"punctuation.separator.delimiter.scss"}]}]},variables:{patterns:[{captures:{1:{name:"variable.scss"},2:{name:"punctuation.access.module.scss"},3:{name:"variable.scss"}},match:"\\b([\\w-]+)(\\.)(\\$[\\w-]+)\\b"},{match:"(\\$|\\-\\-)[A-Za-z0-9_-]+\\b",name:"variable.scss"}]}},scopeName:"source.css.scss",embeddedLangs:["css"]});var s=[...e,n];export{s as default}; diff --git a/assets/chunks/shaderlab.D_C8j_yu.js b/assets/chunks/shaderlab.D_C8j_yu.js new file mode 100644 index 000000000..7c86ad667 --- /dev/null +++ b/assets/chunks/shaderlab.D_C8j_yu.js @@ -0,0 +1 @@ +import a from"./hlsl.DmDrTTlz.js";const e=Object.freeze({displayName:"ShaderLab",name:"shaderlab",patterns:[{begin:"//",end:"$",name:"comment.line.double-slash.shaderlab"},{match:"\\b(?i:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\\b",name:"support.type.basic.shaderlab"},{include:"#numbers"},{match:"\\b(?i:Shader|Properties|SubShader|Pass|Category)\\b",name:"storage.type.structure.shaderlab"},{match:"\\b(?i:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\\b",name:"support.type.propertyname.shaderlab"},{match:"\\b(?i:Back|Front|On|Off|[RGBA]{1,3}|AmbientAndDiffuse|Emission)\\b",name:"support.constant.property-value.shaderlab"},{match:"\\b(?i:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\\b",name:"support.constant.property-value.comparisonfunction.shaderlab"},{match:"\\b(?i:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\\b",name:"support.constant.property-value.stenciloperation.shaderlab"},{match:"\\b(?i:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\\b",name:"support.constant.property-value.texturecombiners.shaderlab"},{match:"\\b(?i:Global|Linear|Exp2|Exp)\\b",name:"support.constant.property-value.fog.shaderlab"},{match:"\\b(?i:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\\b",name:"support.constant.property-value.bindchannels.shaderlab"},{match:"\\b(?i:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\\b",name:"support.constant.property-value.blendoperations.shaderlab"},{match:"\\b(?i:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\\b",name:"support.constant.property-value.blendfactors.shaderlab"},{match:'\\[([a-zA-Z_][a-zA-Z0-9_]*)\\](?!\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\(")',name:"support.variable.reference.shaderlab"},{begin:"(\\[)",end:"(\\])",name:"meta.attribute.shaderlab",patterns:[{match:"\\G([a-zA-Z]+)\\b",name:"support.type.attributename.shaderlab"},{include:"#numbers"}]},{match:"\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(",name:"support.variable.declaration.shaderlab"},{begin:"\\b(CGPROGRAM|CGINCLUDE)\\b",beginCaptures:{1:{name:"keyword.other"}},end:"\\b(ENDCG)\\b",endCaptures:{1:{name:"keyword.other"}},name:"meta.cgblock",patterns:[{include:"#hlsl-embedded"}]},{begin:"\\b(HLSLPROGRAM|HLSLINCLUDE)\\b",beginCaptures:{1:{name:"keyword.other"}},end:"\\b(ENDHLSL)\\b",endCaptures:{1:{name:"keyword.other"}},name:"meta.hlslblock",patterns:[{include:"#hlsl-embedded"}]},{begin:'"',end:'"',name:"string.quoted.double.shaderlab"}],repository:{"hlsl-embedded":{patterns:[{include:"source.hlsl"},{match:"\\b(fixed([1-4](x[1-4])?)?)\\b",name:"storage.type.basic.shaderlab"},{match:"\\b(UNITY_MATRIX_MVP|UNITY_MATRIX_MV|UNITY_MATRIX_M|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_I_V|UNITY_MATRIX_IT_MV|_Object2World|_World2Object|unity_ObjectToWorld|unity_WorldToObject)\\b",name:"support.variable.transformations.shaderlab"},{match:"\\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\\b",name:"support.variable.camera.shaderlab"},{match:"\\b(_Time|_SinTime|_CosTime|unity_DeltaTime)\\b",name:"support.variable.time.shaderlab"},{match:"\\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\\b",name:"support.variable.lighting.shaderlab"},{match:"\\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\\b",name:"support.variable.fog.shaderlab"},{match:"\\b(unity_LODFade)\\b",name:"support.variable.various.shaderlab"},{match:"\\b(SHADER_API_D3D9|SHADER_API_D3D11|SHADER_API_GLCORE|SHADER_API_OPENGL|SHADER_API_GLES|SHADER_API_GLES3|SHADER_API_METAL|SHADER_API_D3D11_9X|SHADER_API_PSSL|SHADER_API_XBOXONE|SHADER_API_PSP2|SHADER_API_WIIU|SHADER_API_MOBILE|SHADER_API_GLSL)\\b",name:"support.variable.preprocessor.targetplatform.shaderlab"},{match:"\\b(SHADER_TARGET)\\b",name:"support.variable.preprocessor.targetmodel.shaderlab"},{match:"\\b(UNITY_VERSION)\\b",name:"support.variable.preprocessor.unityversion.shaderlab"},{match:"\\b(UNITY_BRANCH|UNITY_FLATTEN|UNITY_NO_SCREENSPACE_SHADOWS|UNITY_NO_LINEAR_COLORSPACE|UNITY_NO_RGBM|UNITY_NO_DXT5nm|UNITY_FRAMEBUFFER_FETCH_AVAILABLE|UNITY_USE_RGBA_FOR_POINT_SHADOWS|UNITY_ATTEN_CHANNEL|UNITY_HALF_TEXEL_OFFSET|UNITY_UV_STARTS_AT_TOP|UNITY_MIGHT_NOT_HAVE_DEPTH_Texture|UNITY_NEAR_CLIP_VALUE|UNITY_VPOS_TYPE|UNITY_CAN_COMPILE_TESSELLATION|UNITY_COMPILER_HLSL|UNITY_COMPILER_HLSL2GLSL|UNITY_COMPILER_CG|UNITY_REVERSED_Z)\\b",name:"support.variable.preprocessor.platformdifference.shaderlab"},{match:"\\b(UNITY_PASS_FORWARDBASE|UNITY_PASS_FORWARDADD|UNITY_PASS_DEFERRED|UNITY_PASS_SHADOWCASTER|UNITY_PASS_PREPASSBASE|UNITY_PASS_PREPASSFINAL)\\b",name:"support.variable.preprocessor.texture2D.shaderlab"},{match:"\\b(appdata_base|appdata_tan|appdata_full|appdata_img)\\b",name:"support.class.structures.shaderlab"},{match:"\\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\\b",name:"support.class.surface.shaderlab"}]},numbers:{patterns:[{match:"\\b([0-9]+\\.?[0-9]*)\\b",name:"constant.numeric.shaderlab"}]}},scopeName:"source.shaderlab",embeddedLangs:["hlsl"],aliases:["shader"]});var t=[...a,e];export{t as default}; diff --git a/assets/chunks/shellscript.BZfs-ost.js b/assets/chunks/shellscript.BZfs-ost.js new file mode 100644 index 000000000..28eefdae8 --- /dev/null +++ b/assets/chunks/shellscript.BZfs-ost.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Shell",name:"shellscript",patterns:[{include:"#initial_context"}],repository:{alias_statement:{begin:"(?:(?:[ \\t]*+)(alias)(?:[ \\t]*+)((?:(?:((?<!\\w)-\\w+\\b)(?:[ \\t]*+))*))(?:(?:[ \\t]*+)(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?))(?:(?:(\\=)|(\\+\\=))|(\\-\\=))))",beginCaptures:{1:{name:"storage.type.alias.shell"},2:{patterns:[{match:"(?<!\\w)-\\w+\\b",name:"string.unquoted.argument.shell constant.other.option.shell"}]},3:{name:"string.unquoted.argument.shell constant.other.option.shell"},4:{name:"variable.other.assignment.shell"},5:{name:"punctuation.definition.array.access.shell"},6:{name:"variable.other.assignment.shell"},7:{name:"constant.numeric.shell constant.numeric.integer.shell"},8:{name:"punctuation.definition.array.access.shell"},9:{name:"keyword.operator.assignment.shell"},10:{name:"keyword.operator.assignment.compound.shell"},11:{name:"keyword.operator.assignment.compound.shell"}},end:"(?:(?= |\\t|$)|(?:(?:(?:(;)|(&&))|(\\|\\|))|(&)))",endCaptures:{1:{name:"punctuation.terminator.statement.semicolon.shell"},2:{name:"punctuation.separator.statement.and.shell"},3:{name:"punctuation.separator.statement.or.shell"},4:{name:"punctuation.separator.statement.background.shell"}},name:"meta.expression.assignment.alias.shell",patterns:[{include:"#normal_context"}]},argument:{begin:"(?:[ \\t]++)(?!(?:&|\\||\\(|\\[|#|\\n|$|;))",beginCaptures:{},end:"(?= |\\t|;|\\||&|$|\\n|\\)|\\`)",endCaptures:{},name:"meta.argument.shell",patterns:[{include:"#argument_context"},{include:"#line_continuation"}]},argument_context:{patterns:[{captures:{1:{name:"string.unquoted.argument.shell",patterns:[{match:"\\*",name:"variable.language.special.wildcard.shell"},{include:"#variable"},{include:"#numeric_literal"},{captures:{1:{name:"constant.language.$1.shell"}},match:"(?<!\\w)(\\b(?:true|false)\\b)(?!\\w)"}]}},match:"(?:[ \\t]*+)((?:[^ \\t\\n>&;<>\\(\\)\\$`\\\\\"'<\\|]+)(?!>))"},{include:"#normal_context"}]},arithmetic_double:{patterns:[{begin:"\\(\\(",beginCaptures:{0:{name:"punctuation.section.arithmetic.double.shell"}},end:"\\)(?:\\s*)\\)",endCaptures:{0:{name:"punctuation.section.arithmetic.double.shell"}},name:"meta.arithmetic.shell",patterns:[{include:"#math"},{include:"#string"}]}]},arithmetic_no_dollar:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.arithmetic.single.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arithmetic.single.shell"}},name:"meta.arithmetic.shell",patterns:[{include:"#math"},{include:"#string"}]}]},array_access_inline:{captures:{1:{name:"punctuation.section.array.shell"},2:{patterns:[{include:"#special_expansion"},{include:"#string"},{include:"#variable"}]},3:{name:"punctuation.section.array.shell"}},match:"(?:(\\[)([^\\[\\]]+)(\\]))"},array_value:{begin:"(?:[ \\t]*+)(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?))(?:(?:(\\=)|(\\+\\=))|(\\-\\=))(?:[ \\t]*+)(\\()",beginCaptures:{1:{name:"variable.other.assignment.shell"},2:{name:"punctuation.definition.array.access.shell"},3:{name:"variable.other.assignment.shell"},4:{name:"constant.numeric.shell constant.numeric.integer.shell"},5:{name:"punctuation.definition.array.access.shell"},6:{name:"keyword.operator.assignment.shell"},7:{name:"keyword.operator.assignment.compound.shell"},8:{name:"keyword.operator.assignment.compound.shell"},9:{name:"punctuation.definition.array.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.array.shell"}},patterns:[{include:"#comment"},{captures:{1:{name:"variable.other.assignment.array.shell entity.other.attribute-name.shell"},2:{name:"keyword.operator.assignment.shell punctuation.definition.assignment.shell"}},match:"(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(\\=))"},{captures:{1:{name:"punctuation.definition.bracket.named-array.shell"},2:{name:"string.unquoted.shell entity.other.attribute-name.bracket.shell"},3:{name:"punctuation.definition.bracket.named-array.shell"},4:{name:"punctuation.definition.assignment.shell"}},match:"(?:(\\[)(.+?)(\\])(\\=))"},{include:"#normal_context"},{include:"#simple_unquoted"}]},assignment_statement:{patterns:[{include:"#array_value"},{include:"#modified_assignment_statement"},{include:"#normal_assignment_statement"}]},basic_command_name:{captures:{1:{name:"storage.modifier.$1.shell"},2:{name:"entity.name.function.call.shell entity.name.command.shell",patterns:[{match:"(?<!\\w)(?:continue|return|break)(?!\\w)",name:"keyword.control.$0.shell"},{match:"(?<!\\w)(?:(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\.)(?!\\/))(?!\\w)(?!-)",name:"support.function.builtin.shell"},{include:"#variable"}]}},match:`(?:(?:(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!nocorrect |nocorrect |nocorrect$|readonly |readonly |readonly$|function |function |function$|foreach |foreach |foreach$|coproc |coproc |coproc$|logout |logout |logout$|export |export |export$|select |select |select$|repeat |repeat |repeat$|pushd |pushd |pushd$|until |until |until$|while |while |while$|local |local |local$|case |case |case$|done |done |done$|elif |elif |elif$|else |else |else$|esac |esac |esac$|popd |popd |popd$|then |then |then$|time |time |time$|for |for |for$|end |end |end$|fi |fi |fi$|do |do |do$|in |in |in$|if |if |if$))(?:((?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$))|((?!"|'|\\\\\\n?$)(?:[^!'"<> \\t\\n\\r]+?)))(?:(?= |\\t)|(?:(?=;|\\||&|\\n|\\)|\\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\))))`,name:"meta.statement.command.name.basic.shell"},block_comment:{begin:"(?:(?:\\s*+)(\\/\\*))",beginCaptures:{1:{name:"punctuation.definition.comment.begin.shell"}},end:"\\*\\/",endCaptures:{0:{name:"punctuation.definition.comment.end.shell"}},name:"comment.block.shell"},boolean:{match:"\\b(?:true|false)\\b",name:"constant.language.$0.shell"},case_statement:{begin:"(?:(\\bcase\\b)(?:[ \\t]*+)(.+?)(?:[ \\t]*+)(\\bin\\b))",beginCaptures:{1:{name:"keyword.control.case.shell"},2:{patterns:[{include:"#initial_context"}]},3:{name:"keyword.control.in.shell"}},end:"\\besac\\b",endCaptures:{0:{name:"keyword.control.esac.shell"}},name:"meta.case.shell",patterns:[{include:"#comment"},{captures:{1:{name:"keyword.operator.pattern.case.default.shell"}},match:"(?:[ \\t]*+)(\\* *\\))"},{begin:"(?<!\\))(?!(?:[ \\t]*+)(?:esac\\b|$))",beginCaptures:{},end:"(?:(?=\\besac\\b)|(\\)))",endCaptures:{1:{name:"keyword.operator.pattern.case.shell"}},name:"meta.case.entry.pattern.shell",patterns:[{include:"#case_statement_context"}]},{begin:"(?<=\\))",beginCaptures:{},end:"(?:(;;)|(?=\\besac\\b))",endCaptures:{1:{name:"punctuation.terminator.statement.case.shell"}},name:"meta.case.entry.body.shell",patterns:[{include:"#typical_statements"},{include:"#initial_context"}]}]},case_statement_context:{patterns:[{match:"\\*",name:"variable.language.special.quantifier.star.shell keyword.operator.quantifier.star.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{match:"\\+",name:"variable.language.special.quantifier.plus.shell keyword.operator.quantifier.plus.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{match:"\\?",name:"variable.language.special.quantifier.question.shell keyword.operator.quantifier.question.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{match:"@",name:"variable.language.special.at.shell keyword.operator.at.shell punctuation.definition.regex.at.shell"},{match:"\\|",name:"keyword.operator.orvariable.language.special.or.shell keyword.operator.alternation.ruby.shell punctuation.definition.regex.alternation.shell punctuation.separator.regex.alternation.shell"},{match:"\\\\.",name:"constant.character.escape.shell"},{match:"(?<=\\tin| in| |\\t|;;)\\(",name:"keyword.operator.pattern.case.shell"},{begin:"(?<=\\S)(\\()",beginCaptures:{1:{name:"punctuation.definition.group.shell punctuation.definition.regex.group.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.shell punctuation.definition.regex.group.shell"}},name:"meta.parenthese.shell",patterns:[{include:"#case_statement_context"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.character-class.shell"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.character-class.shell"}},name:"string.regexp.character-class.shell",patterns:[{match:"\\\\.",name:"constant.character.escape.shell"}]},{include:"#string"},{match:"[^) \\t\\n\\[\\?\\*\\|\\@]",name:"string.unquoted.pattern.shell string.regexp.unquoted.shell"}]},command_name_range:{begin:"\\G",beginCaptures:{},end:"(?:(?= |\\t|;|\\||&|$|\\n|\\)|\\`)|(?=<))",endCaptures:{},name:"meta.statement.command.name.shell",patterns:[{match:"(?<!\\w)(?:continue|return|break)(?!\\w)",name:"entity.name.function.call.shell entity.name.command.shell keyword.control.$0.shell"},{match:"(?<!\\w)(?:(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\.)(?!\\/))(?!\\w)(?!-)",name:"entity.name.function.call.shell entity.name.command.shell support.function.builtin.shell"},{include:"#variable"},{captures:{1:{name:"entity.name.function.call.shell entity.name.command.shell"}},match:`(?:(?<!\\w)(?<=\\G|'|"|\\}|\\))([^ \\n\\t\\r"'=;&\\|\`\\)\\{<>]+))`},{begin:`(?:(?:\\G|(?<! |\\t|;|\\||&|\\n|\\{|#))(?:(\\$?)((?:(")|(')))))`,beginCaptures:{1:{name:"meta.statement.command.name.quoted.shell punctuation.definition.string.shell entity.name.function.call.shell entity.name.command.shell"},2:{},3:{name:"meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell"},4:{name:"meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell"}},end:"(?<!\\G)(?<=(?:\\2))",endCaptures:{},patterns:[{include:"#continuation_of_single_quoted_command_name"},{include:"#continuation_of_double_quoted_command_name"}]},{include:"#line_continuation"},{include:"#simple_unquoted"}]},command_statement:{begin:"(?:(?:[ \\t]*+)(?:(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!nocorrect |nocorrect |nocorrect$|readonly |readonly |readonly$|function |function |function$|foreach |foreach |foreach$|coproc |coproc |coproc$|logout |logout |logout$|export |export |export$|select |select |select$|repeat |repeat |repeat$|pushd |pushd |pushd$|until |until |until$|while |while |while$|local |local |local$|case |case |case$|done |done |done$|elif |elif |elif$|else |else |else$|esac |esac |esac$|popd |popd |popd$|then |then |then$|time |time |time$|for |for |for$|end |end |end$|fi |fi |fi$|do |do |do$|in |in |in$|if |if |if$)(?!\\\\\\n?$)))",beginCaptures:{},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.statement.command.shell",patterns:[{include:"#command_name_range"},{include:"#line_continuation"},{include:"#option"},{include:"#argument"},{include:"#string"},{include:"#heredoc"}]},comment:{captures:{1:{name:"comment.line.number-sign.shell meta.shebang.shell"},2:{name:"punctuation.definition.comment.shebang.shell"},3:{name:"comment.line.number-sign.shell"},4:{name:"punctuation.definition.comment.shell"}},match:"(?:(?:^|(?:[ \\t]++))(?:((?:(#!)(?:.*)))|((?:(#)(?:.*)))))"},comments:{patterns:[{include:"#block_comment"},{include:"#line_comment"}]},"compound-command":{patterns:[{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.logical-expression.shell"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical-expression"},{include:"#initial_context"}]},{begin:"(?<=\\s|^){(?=\\s|$)",beginCaptures:{0:{name:"punctuation.definition.group.shell"}},end:"(?<=^|;)\\s*(})",endCaptures:{1:{name:"punctuation.definition.group.shell"}},name:"meta.scope.group.shell",patterns:[{include:"#initial_context"}]}]},continuation_of_double_quoted_command_name:{begin:'(?:\\G(?<="))',beginCaptures:{},contentName:"meta.statement.command.name.continuation string.quoted.double entity.name.function.call entity.name.command",end:'"',endCaptures:{0:{name:"string.quoted.double.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell"}},patterns:[{match:'\\\\[\\$\\n`"\\\\]',name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},continuation_of_single_quoted_command_name:{begin:"(?:\\G(?<='))",beginCaptures:{},contentName:"meta.statement.command.name.continuation string.quoted.single entity.name.function.call entity.name.command",end:"'",endCaptures:{0:{name:"string.quoted.single.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell"}}},custom_command_names:{patterns:[]},custom_commands:{patterns:[]},double_quote_context:{patterns:[{match:'\\\\[\\$`"\\\\\\n]',name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},double_quote_escape_char:{match:'\\\\[\\$`"\\\\\\n]',name:"constant.character.escape.shell"},floating_keyword:{patterns:[{match:"(?<=^|;|&| |\\t)(?:then|elif|else|done|end|do|if|fi)(?= |\\t|;|&|$)",name:"keyword.control.$0.shell"}]},for_statement:{patterns:[{begin:"(?:(\\bfor\\b)(?:(?:[ \\t]*+)((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:[ \\t]*+)(\\bin\\b)))",beginCaptures:{1:{name:"keyword.control.for.shell"},2:{name:"variable.other.for.shell"},3:{name:"keyword.control.in.shell"}},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.for.in.shell",patterns:[{include:"#string"},{include:"#simple_unquoted"},{include:"#normal_context"}]},{begin:"(\\bfor\\b)",beginCaptures:{1:{name:"keyword.control.for.shell"}},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.for.shell",patterns:[{include:"#arithmetic_double"},{include:"#normal_context"}]}]},function_definition:{applyEndPatternLast:1,begin:`(?:[ \\t]*+)(?:(?:(\\bfunction\\b)(?:[ \\t]*+)([^ \\t\\n\\r\\(\\)="']+)(?:(?:(\\()(?:[ \\t]*+)(\\)))?))|(?:([^ \\t\\n\\r\\(\\)="']+)(?:[ \\t]*+)(\\()(?:[ \\t]*+)(\\))))`,beginCaptures:{1:{name:"storage.type.function.shell"},2:{name:"entity.name.function.shell"},3:{name:"punctuation.definition.arguments.shell"},4:{name:"punctuation.definition.arguments.shell"},5:{name:"entity.name.function.shell"},6:{name:"punctuation.definition.arguments.shell"},7:{name:"punctuation.definition.arguments.shell"}},end:"(?<=\\}|\\))",endCaptures:{},name:"meta.function.shell",patterns:[{match:"(?:\\G(?:\\t| |\\n))"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},name:"meta.function.body.shell",patterns:[{include:"#initial_context"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},name:"meta.function.body.shell",patterns:[{include:"#initial_context"}]},{include:"#initial_context"}]},heredoc:{patterns:[{begin:`(?:((?<!<)(?:<<-))(?:[ \\t]*+)("|')(?:[ \\t]*+)([^"']+?)(?=\\s|;|&|<|"|')((?:\\2))(.*))`,beginCaptures:{1:{name:"keyword.operator.heredoc.shell"},2:{name:"punctuation.definition.string.heredoc.quote.shell"},3:{name:"punctuation.definition.string.heredoc.delimiter.shell"},4:{name:"punctuation.definition.string.heredoc.quote.shell"},5:{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.quoted.heredoc.indent.$3",end:"(?:(?:^\\t*)(?:\\3)(?=\\s|;|&|$))",endCaptures:{0:{name:"punctuation.definition.string.heredoc.$0.shell"}},patterns:[]},{begin:`(?:((?<!<)(?:<<)(?!<))(?:[ \\t]*+)("|')(?:[ \\t]*+)([^"']+?)(?=\\s|;|&|<|"|')((?:\\2))(.*))`,beginCaptures:{1:{name:"keyword.operator.heredoc.shell"},2:{name:"punctuation.definition.string.heredoc.quote.shell"},3:{name:"punctuation.definition.string.heredoc.delimiter.shell"},4:{name:"punctuation.definition.string.heredoc.quote.shell"},5:{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.quoted.heredoc.no-indent.$3",end:"(?:^(?:\\3)(?=\\s|;|&|$))",endCaptures:{0:{name:"punctuation.definition.string.heredoc.delimiter.shell"}},patterns:[]},{begin:`(?:((?<!<)(?:<<-))(?:[ \\t]*+)([^"' \\t]+)(?=\\s|;|&|<|"|')(.*))`,beginCaptures:{1:{name:"keyword.operator.heredoc.shell"},2:{name:"punctuation.definition.string.heredoc.delimiter.shell"},3:{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.unquoted.heredoc.indent.$2",end:"(?:(?:^\\t*)(?:\\2)(?=\\s|;|&|$))",endCaptures:{0:{name:"punctuation.definition.string.heredoc.delimiter.shell"}},patterns:[{include:"#double_quote_escape_char"},{include:"#variable"},{include:"#interpolation"}]},{begin:`(?:((?<!<)(?:<<)(?!<))(?:[ \\t]*+)([^"' \\t]+)(?=\\s|;|&|<|"|')(.*))`,beginCaptures:{1:{name:"keyword.operator.heredoc.shell"},2:{name:"punctuation.definition.string.heredoc.delimiter.shell"},3:{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.unquoted.heredoc.no-indent.$2",end:"(?:^(?:\\2)(?=\\s|;|&|$))",endCaptures:{0:{name:"punctuation.definition.string.heredoc.delimiter.shell"}},patterns:[{include:"#double_quote_escape_char"},{include:"#variable"},{include:"#interpolation"}]}]},herestring:{patterns:[{begin:"(<<<)\\s*(('))",beginCaptures:{1:{name:"keyword.operator.herestring.shell"},2:{name:"string.quoted.single.shell"},3:{name:"punctuation.definition.string.begin.shell"}},contentName:"string.quoted.single.shell",end:"(')",endCaptures:{0:{name:"string.quoted.single.shell"},1:{name:"punctuation.definition.string.end.shell"}},name:"meta.herestring.shell"},{begin:'(<<<)\\s*(("))',beginCaptures:{1:{name:"keyword.operator.herestring.shell"},2:{name:"string.quoted.double.shell"},3:{name:"punctuation.definition.string.begin.shell"}},contentName:"string.quoted.double.shell",end:'(")',endCaptures:{0:{name:"string.quoted.double.shell"},1:{name:"punctuation.definition.string.end.shell"}},name:"meta.herestring.shell",patterns:[{include:"#double_quote_context"}]},{captures:{1:{name:"keyword.operator.herestring.shell"},2:{name:"string.unquoted.herestring.shell",patterns:[{include:"#initial_context"}]}},match:"(<<<)\\s*(([^\\s)\\\\]|\\\\.)+)",name:"meta.herestring.shell"}]},initial_context:{patterns:[{include:"#comment"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#logical_expression_double"},{include:"#logical_expression_single"},{include:"#assignment_statement"},{include:"#case_statement"},{include:"#for_statement"},{include:"#loop"},{include:"#function_definition"},{include:"#line_continuation"},{include:"#arithmetic_double"},{include:"#misc_ranges"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#alias_statement"},{include:"#normal_statement"},{include:"#string"},{include:"#support"}]},inline_comment:{captures:{1:{name:"comment.block.shell punctuation.definition.comment.begin.shell"},2:{name:"comment.block.shell"},3:{patterns:[{match:"\\*\\/",name:"comment.block.shell punctuation.definition.comment.end.shell"},{match:"\\*",name:"comment.block.shell"}]}},match:"(\\/\\*)((?:(?:[^\\*]|(?:(?:\\*++)[^\\/]))*+)((?:(?:\\*++)\\/)))"},interpolation:{patterns:[{include:"#arithmetic_dollar"},{include:"#subshell_dollar"},{begin:"`",beginCaptures:{0:{name:"punctuation.definition.evaluation.backticks.shell"}},end:"`",endCaptures:{0:{name:"punctuation.definition.evaluation.backticks.shell"}},name:"string.interpolated.backtick.shell",patterns:[{match:"\\\\[`\\\\$]",name:"constant.character.escape.shell"},{begin:"(?<=\\W)(?=#)(?!#{)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.shell"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.shell"}},end:"(?=`)",name:"comment.line.number-sign.shell"}]},{include:"#initial_context"}]}]},keyword:{patterns:[{match:"(?<=^|;|&|\\s)(then|else|elif|fi|for|in|do|done|select|continue|esac|while|until|return)(?=\\s|;|&|$)",name:"keyword.control.shell"},{match:"(?<=^|;|&|\\s)(?:export|declare|typeset|local|readonly)(?=\\s|;|&|$)",name:"storage.modifier.shell"}]},line_comment:{begin:"(?:\\s*+)(\\/\\/)",beginCaptures:{1:{name:"punctuation.definition.comment.shell"}},end:"(?<=\\n)(?<!\\\\\\n)",endCaptures:{},name:"comment.line.double-slash.shell",patterns:[{include:"#line_continuation_character"}]},line_continuation:{match:"\\\\(?=\\n)",name:"constant.character.escape.line-continuation.shell"},"logical-expression":{patterns:[{include:"#arithmetic_no_dollar"},{comment:"do we want a special rule for ( expr )?",match:"=[=~]?|!=?|<|>|&&|\\|\\|",name:"keyword.operator.logical.shell"},{match:"(?<!\\S)-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])\\b",name:"keyword.operator.logical.shell"}]},logical_expression_context:{patterns:[{include:"#regex_comparison"},{include:"#arithmetic_no_dollar"},{include:"#logical-expression"},{include:"#logical_expression_single"},{include:"#logical_expression_double"},{include:"#comment"},{include:"#boolean"},{include:"#redirect_number"},{include:"#numeric_literal"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#support"}]},logical_expression_double:{begin:"\\[\\[",beginCaptures:{0:{name:"punctuation.definition.logical-expression.shell"}},end:"\\]\\]",endCaptures:{0:{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical_expression_context"}]},logical_expression_single:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.logical-expression.shell"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical_expression_context"}]},loop:{patterns:[{begin:"(?<=^|;|&|\\s)(for)\\s+(.+?)\\s+(in)(?=\\s|;|&|$)",beginCaptures:{1:{name:"keyword.control.shell"},2:{name:"variable.other.loop.shell",patterns:[{include:"#string"}]},3:{name:"keyword.control.shell"}},end:"(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))",endCaptures:{0:{name:"keyword.control.shell"}},name:"meta.scope.for-in-loop.shell",patterns:[{include:"#initial_context"}]},{begin:"(?<=^|;|&|\\s)(while|until)(?=\\s|;|&|$)",beginCaptures:{1:{name:"keyword.control.shell"}},end:"(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))",endCaptures:{0:{name:"keyword.control.shell"}},name:"meta.scope.while-loop.shell",patterns:[{include:"#initial_context"}]},{begin:"(?<=^|;|&|\\s)(select)\\s+((?:[^\\s\\\\]|\\\\.)+)(?=\\s|;|&|$)",beginCaptures:{1:{name:"keyword.control.shell"},2:{name:"variable.other.loop.shell"}},end:"(?<=^|;|&|\\s)(done)(?=\\s|;|&|$|\\))",endCaptures:{1:{name:"keyword.control.shell"}},name:"meta.scope.select-block.shell",patterns:[{include:"#initial_context"}]},{begin:"(?<=^|;|&|\\s)if(?=\\s|;|&|$)",beginCaptures:{0:{name:"keyword.control.if.shell"}},end:"(?<=^|;|&|\\s)fi(?=\\s|;|&|$)",endCaptures:{0:{name:"keyword.control.fi.shell"}},name:"meta.scope.if-block.shell",patterns:[{include:"#initial_context"}]}]},math:{patterns:[{include:"#variable"},{match:"\\+{1,2}|-{1,2}|!|~|\\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|^|\\|{1,2}|&{1,2}|\\?|\\:|,|=|[*/%+\\-&^|]=|<<=|>>=",name:"keyword.operator.arithmetic.shell"},{match:"0[xX][0-9A-Fa-f]+",name:"constant.numeric.hex.shell"},{match:";",name:"punctuation.separator.semicolon.range"},{match:"0\\d+",name:"constant.numeric.octal.shell"},{match:"\\d{1,2}#[0-9a-zA-Z@_]+",name:"constant.numeric.other.shell"},{match:"\\d+",name:"constant.numeric.integer.shell"},{match:"(?<!\\w)(?:[a-zA-Z_0-9]+)(?!\\w)",name:"variable.other.normal.shell"}]},math_operators:{patterns:[{match:"\\+{1,2}|-{1,2}|!|~|\\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|^|\\|{1,2}|&{1,2}|\\?|\\:|,|=|[*/%+\\-&^|]=|<<=|>>=",name:"keyword.operator.arithmetic.shell"},{match:"0[xX][0-9A-Fa-f]+",name:"constant.numeric.hex.shell"},{match:"0\\d+",name:"constant.numeric.octal.shell"},{match:"\\d{1,2}#[0-9a-zA-Z@_]+",name:"constant.numeric.other.shell"},{match:"\\d+",name:"constant.numeric.integer.shell"}]},misc_ranges:{patterns:[{include:"#logical_expression_single"},{include:"#logical_expression_double"},{include:"#subshell_dollar"},{begin:"(?<![^ \\t])({)",beginCaptures:{1:{name:"punctuation.definition.group.shell"}},end:"}",endCaptures:{0:{name:"punctuation.definition.group.shell"}},name:"meta.scope.group.shell",patterns:[{include:"#initial_context"}]}]},modified_assignment_statement:{begin:"(?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$)",beginCaptures:{0:{name:"storage.modifier.$0.shell"}},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.statement.shell meta.expression.assignment.modified.shell",patterns:[{match:"(?<!\\w)-\\w+\\b",name:"string.unquoted.argument.shell constant.other.option.shell"},{include:"#array_value"},{captures:{1:{name:"variable.other.assignment.shell"},2:{name:"punctuation.definition.array.access.shell"},3:{name:"variable.other.assignment.shell"},4:{name:"constant.numeric.shell constant.numeric.integer.shell"},5:{name:"punctuation.definition.array.access.shell"},6:{name:"keyword.operator.assignment.shell"},7:{name:"keyword.operator.assignment.compound.shell"},8:{name:"keyword.operator.assignment.compound.shell"},9:{name:"constant.numeric.shell constant.numeric.hex.shell"},10:{name:"constant.numeric.shell constant.numeric.octal.shell"},11:{name:"constant.numeric.shell constant.numeric.other.shell"},12:{name:"constant.numeric.shell constant.numeric.decimal.shell"},13:{name:"constant.numeric.shell constant.numeric.version.shell"},14:{name:"constant.numeric.shell constant.numeric.integer.shell"}},match:"(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?)(?:(?:(?:(\\=)|(\\+\\=))|(\\-\\=))?)(?:(?:(?<==| |\\t|^|\\{|\\(|\\[)(?:(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\\d+))|(\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\d+(?:\\.\\d+)))|(-?\\d+(?:\\.\\d+)+))|(-?\\d+))(?= |\\t|$|\\}|\\)|;))?))"},{include:"#normal_context"}]},modifiers:{match:"(?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$)",name:"storage.modifier.$0.shell"},normal_assignment_statement:{begin:"(?:[ \\t]*+)(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?))(?:(?:(\\=)|(\\+\\=))|(\\-\\=))",beginCaptures:{1:{name:"variable.other.assignment.shell"},2:{name:"punctuation.definition.array.access.shell"},3:{name:"variable.other.assignment.shell"},4:{name:"constant.numeric.shell constant.numeric.integer.shell"},5:{name:"punctuation.definition.array.access.shell"},6:{name:"keyword.operator.assignment.shell"},7:{name:"keyword.operator.assignment.compound.shell"},8:{name:"keyword.operator.assignment.compound.shell"}},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.expression.assignment.shell",patterns:[{include:"#comment"},{include:"#string"},{include:"#normal_assignment_statement"},{begin:"(?<= |\\t)(?! |\\t|\\w+=)",beginCaptures:{},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.statement.command.env.shell",patterns:[{include:"#command_name_range"},{include:"#line_continuation"},{include:"#option"},{include:"#argument"},{include:"#string"}]},{include:"#simple_unquoted"},{include:"#normal_context"}]},normal_context:{patterns:[{include:"#comment"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#misc_ranges"},{include:"#boolean"},{include:"#redirect_number"},{include:"#numeric_literal"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#support"},{include:"#parenthese"}]},normal_statement:{begin:"(?:(?!^[ \\t]*+$)(?:(?<=^until | until |\\tuntil |^while | while |\\twhile |^elif | elif |\\telif |^else | else |\\telse |^then | then |\\tthen |^do | do |\\tdo |^if | if |\\tif )|(?<=(?:^|;|\\||&|!|\\(|\\{|\\`)))(?:[ \\t]*+)(?!nocorrect\\W|nocorrect\\$|function\\W|function\\$|foreach\\W|foreach\\$|repeat\\W|repeat\\$|logout\\W|logout\\$|coproc\\W|coproc\\$|select\\W|select\\$|while\\W|while\\$|pushd\\W|pushd\\$|until\\W|until\\$|case\\W|case\\$|done\\W|done\\$|elif\\W|elif\\$|else\\W|else\\$|esac\\W|esac\\$|popd\\W|popd\\$|then\\W|then\\$|time\\W|time\\$|for\\W|for\\$|end\\W|end\\$|fi\\W|fi\\$|do\\W|do\\$|in\\W|in\\$|if\\W|if\\$))",beginCaptures:{},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.statement.shell",patterns:[{include:"#typical_statements"}]},normal_statement_seperator:{captures:{1:{name:"punctuation.terminator.statement.semicolon.shell"},2:{name:"punctuation.separator.statement.and.shell"},3:{name:"punctuation.separator.statement.or.shell"},4:{name:"punctuation.separator.statement.background.shell"}},match:"(?:(?:(?:(;)|(&&))|(\\|\\|))|(&))"},numeric_literal:{captures:{1:{name:"constant.numeric.shell constant.numeric.hex.shell"},2:{name:"constant.numeric.shell constant.numeric.octal.shell"},3:{name:"constant.numeric.shell constant.numeric.other.shell"},4:{name:"constant.numeric.shell constant.numeric.decimal.shell"},5:{name:"constant.numeric.shell constant.numeric.version.shell"},6:{name:"constant.numeric.shell constant.numeric.integer.shell"}},match:"(?<==| |\\t|^|\\{|\\(|\\[)(?:(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\\d+))|(\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\d+(?:\\.\\d+)))|(-?\\d+(?:\\.\\d+)+))|(-?\\d+))(?= |\\t|$|\\}|\\)|;)"},option:{begin:"(?:(?:[ \\t]++)(-)((?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))))",beginCaptures:{1:{name:"string.unquoted.argument.shell constant.other.option.dash.shell"},2:{name:"string.unquoted.argument.shell constant.other.option.shell"}},contentName:"string.unquoted.argument constant.other.option",end:"(?:(?=[ \\t])|(?:(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)))",endCaptures:{},patterns:[{include:"#option_context"}]},option_context:{patterns:[{include:"#misc_ranges"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#support"}]},parenthese:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parenthese.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parenthese.shell"}},name:"meta.parenthese.group.shell",patterns:[{include:"#initial_context"}]}]},pathname:{patterns:[{match:"(?<=\\s|:|=|^)~",name:"keyword.operator.tilde.shell"},{match:"\\*|\\?",name:"keyword.operator.glob.shell"},{begin:"([?*+@!])(\\()",beginCaptures:{1:{name:"keyword.operator.extglob.shell"},2:{name:"punctuation.definition.extglob.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.extglob.shell"}},name:"meta.structure.extglob.shell",patterns:[{include:"#initial_context"}]}]},pipeline:{patterns:[{match:"(?<=^|;|&|\\s)(time)(?=\\s|;|&|$)",name:"keyword.other.shell"},{match:"[|!]",name:"keyword.operator.pipe.shell"}]},redirect_fix:{captures:{1:{name:"keyword.operator.redirect.shell"},2:{name:"string.unquoted.argument.shell"}},match:"(?:(>>?)(?:[ \\t]*+)([^ \\t\\n>&;<>\\(\\)\\$`\\\\\"'<\\|]+))"},redirect_number:{captures:{1:{name:"keyword.operator.redirect.stdout.shell"},2:{name:"keyword.operator.redirect.stderr.shell"},3:{name:"keyword.operator.redirect.$3.shell"}},match:"(?<=[ \\t])(?:(?:(1)|(2)|(\\d+))(?=>))"},redirection:{patterns:[{begin:"[><]\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.string.end.shell"}},name:"string.interpolated.process-substitution.shell",patterns:[{include:"#initial_context"}]},{match:"(?<![<>])(&>|\\d*>&\\d*|\\d*(>>|>|<)|\\d*<&|\\d*<>)(?![<>])",name:"keyword.operator.redirect.shell"}]},regex_comparison:{match:"\\=~",name:"keyword.operator.logical.regex.shell"},regexp:{patterns:[{match:"(?:.+)"}]},simple_options:{captures:{0:{patterns:[{captures:{1:{name:"string.unquoted.argument.shell constant.other.option.dash.shell"},2:{name:"string.unquoted.argument.shell constant.other.option.shell"}},match:"(?:[ \\t]++)(\\-)(\\w+)"}]}},match:"(?:(?:[ \\t]++)\\-(?:\\w+))*"},simple_unquoted:{match:"[^ \\t\\n>&;<>\\(\\)\\$`\\\\\"'<\\|]",name:"string.unquoted.shell"},special_expansion:{match:"!|:[-=?]?|\\*|@|##|#|%%|%|\\/",name:"keyword.operator.expansion.shell"},start_of_command:{match:"(?:(?:[ \\t]*+)(?:(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!nocorrect |nocorrect |nocorrect$|readonly |readonly |readonly$|function |function |function$|foreach |foreach |foreach$|coproc |coproc |coproc$|logout |logout |logout$|export |export |export$|select |select |select$|repeat |repeat |repeat$|pushd |pushd |pushd$|until |until |until$|while |while |while$|local |local |local$|case |case |case$|done |done |done$|elif |elif |elif$|else |else |else$|esac |esac |esac$|popd |popd |popd$|then |then |then$|time |time |time$|for |for |for$|end |end |end$|fi |fi |fi$|do |do |do$|in |in |in$|if |if |if$)(?!\\\\\\n?$)))"},string:{patterns:[{match:"\\\\.",name:"constant.character.escape.shell"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.shell"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.single.shell"},{begin:'\\$?"',beginCaptures:{0:{name:"punctuation.definition.string.begin.shell"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.double.shell",patterns:[{match:'\\\\[\\$\\n`"\\\\]',name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},{begin:"\\$'",beginCaptures:{0:{name:"punctuation.definition.string.begin.shell"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.single.dollar.shell",patterns:[{match:"\\\\(?:a|b|e|f|n|r|t|v|\\\\|')",name:"constant.character.escape.ansi-c.shell"},{match:'\\\\[0-9]{3}"',name:"constant.character.escape.octal.shell"},{match:'\\\\x[0-9a-fA-F]{2}"',name:"constant.character.escape.hex.shell"},{match:'\\\\c."',name:"constant.character.escape.control-char.shell"}]}]},subshell_dollar:{patterns:[{begin:"(?:\\$\\()",beginCaptures:{0:{name:"punctuation.definition.subshell.single.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.subshell.single.shell"}},name:"meta.scope.subshell",patterns:[{include:"#parenthese"},{include:"#initial_context"}]}]},support:{patterns:[{match:"(?<=^|;|&|\\s)(?::|\\.)(?=\\s|;|&|$)",name:"support.function.builtin.shell"}]},typical_statements:{patterns:[{include:"#assignment_statement"},{include:"#case_statement"},{include:"#for_statement"},{include:"#while_statement"},{include:"#function_definition"},{include:"#command_statement"},{include:"#line_continuation"},{include:"#arithmetic_double"},{include:"#normal_context"}]},variable:{patterns:[{captures:{1:{name:"punctuation.definition.variable.shell variable.parameter.positional.all.shell"},2:{name:"variable.parameter.positional.all.shell"}},match:"(?:(\\$)(\\@(?!\\w)))"},{captures:{1:{name:"punctuation.definition.variable.shell variable.parameter.positional.shell"},2:{name:"variable.parameter.positional.shell"}},match:"(?:(\\$)([0-9](?!\\w)))"},{captures:{1:{name:"punctuation.definition.variable.shell variable.language.special.shell"},2:{name:"variable.language.special.shell"}},match:"(?:(\\$)([-*#?$!0_](?!\\w)))"},{begin:"(?:(\\$)(\\{)(?:[ \\t]*+)(?=\\d))",beginCaptures:{1:{name:"punctuation.definition.variable.shell variable.parameter.positional.shell"},2:{name:"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell variable.parameter.positional.shell"}},contentName:"meta.parameter-expansion",end:"\\}",endCaptures:{0:{name:"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell variable.parameter.positional.shell"}},patterns:[{include:"#special_expansion"},{include:"#array_access_inline"},{match:"[0-9]+",name:"variable.parameter.positional.shell"},{match:"(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w)",name:"variable.other.normal.shell"},{include:"#variable"},{include:"#string"}]},{begin:"(?:(\\$)(\\{))",beginCaptures:{1:{name:"punctuation.definition.variable.shell"},2:{name:"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell"}},contentName:"meta.parameter-expansion",end:"\\}",endCaptures:{0:{name:"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell"}},patterns:[{include:"#special_expansion"},{include:"#array_access_inline"},{match:"(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w)",name:"variable.other.normal.shell"},{include:"#variable"},{include:"#string"}]},{captures:{1:{name:"punctuation.definition.variable.shell variable.other.normal.shell"},2:{name:"variable.other.normal.shell"}},match:"(?:(\\$)((?:\\w+)(?!\\w)))"}]},while_statement:{patterns:[{begin:"(\\bwhile\\b)",beginCaptures:{1:{name:"keyword.control.while.shell"}},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.while.shell",patterns:[{include:"#line_continuation"},{include:"#math_operators"},{include:"#option"},{include:"#simple_unquoted"},{include:"#normal_context"},{include:"#string"}]}]}},scopeName:"source.shell",aliases:["bash","sh","shell","zsh"]});var n=[e];export{n as default}; diff --git a/assets/chunks/shellsession.D2P9pGgM.js b/assets/chunks/shellsession.D2P9pGgM.js new file mode 100644 index 000000000..496cdda0b --- /dev/null +++ b/assets/chunks/shellsession.D2P9pGgM.js @@ -0,0 +1 @@ +import s from"./shellscript.BZfs-ost.js";const e=Object.freeze({displayName:"Shell Session",fileTypes:["sh-session"],name:"shellsession",patterns:[{captures:{1:{name:"entity.other.prompt-prefix.shell-session"},2:{name:"punctuation.separator.prompt.shell-session"},3:{name:"source.shell",patterns:[{include:"source.shell"}]}},match:"(?x) ^ (?: ( (?:\\(\\S+\\)\\s*)? (?: sh\\S*? | \\w+\\S+[@:]\\S+(?:\\s+\\S+)? | \\[\\S+?[@:][^\\n]+?\\].*? ) ) \\s* )? ( [>$#%❯➜] | \\p{Greek} ) \\s+ (.*) $"},{match:"^.+$",name:"meta.output.shell-session"}],scopeName:"text.shell-session",embeddedLangs:["shellscript"],aliases:["console"]});var t=[...s,e];export{t as default}; diff --git a/assets/chunks/slack-dark.C7oZ9nno.js b/assets/chunks/slack-dark.C7oZ9nno.js new file mode 100644 index 000000000..bd11ae4b7 --- /dev/null +++ b/assets/chunks/slack-dark.C7oZ9nno.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.background":"#222222","activityBarBadge.background":"#1D978D","button.background":"#0077B5","button.foreground":"#FFF","button.hoverBackground":"#005076","debugExceptionWidget.background":"#141414","debugExceptionWidget.border":"#FFF","debugToolBar.background":"#141414","editor.background":"#222222","editor.foreground":"#E6E6E6","editor.inactiveSelectionBackground":"#3a3d41","editor.lineHighlightBackground":"#141414","editor.lineHighlightBorder":"#141414","editor.selectionHighlightBackground":"#add6ff26","editorIndentGuide.activeBackground":"#707070","editorIndentGuide.background":"#404040","editorLink.activeForeground":"#0077B5","editorSuggestWidget.selectedBackground":"#0077B5","extensionButton.prominentBackground":"#0077B5","extensionButton.prominentForeground":"#FFF","extensionButton.prominentHoverBackground":"#005076",focusBorder:"#0077B5","gitDecoration.addedResourceForeground":"#ECB22E","gitDecoration.conflictingResourceForeground":"#FFF","gitDecoration.deletedResourceForeground":"#FFF","gitDecoration.ignoredResourceForeground":"#877583","gitDecoration.modifiedResourceForeground":"#ECB22E","gitDecoration.untrackedResourceForeground":"#ECB22E","input.placeholderForeground":"#7A7A7A","list.activeSelectionBackground":"#222222","list.dropBackground":"#383b3d","list.focusBackground":"#0077B5","list.hoverBackground":"#222222","menu.background":"#252526","menu.foreground":"#E6E6E6","notificationLink.foreground":"#0077B5","settings.numberInputBackground":"#292929","settings.textInputBackground":"#292929","sideBarSectionHeader.background":"#222222","sideBarTitle.foreground":"#E6E6E6","statusBar.background":"#222222","statusBar.debuggingBackground":"#1D978D","statusBar.noFolderBackground":"#141414","textLink.activeForeground":"#0077B5","textLink.foreground":"#0077B5","titleBar.activeBackground":"#222222","titleBar.activeForeground":"#E6E6E6","titleBar.inactiveBackground":"#222222","titleBar.inactiveForeground":"#7A7A7A"},displayName:"Slack Dark",name:"slack-dark",tokenColors:[{scope:["meta.embedded","source.groovy.embedded"],settings:{foreground:"#D4D4D4"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#6A9955"}},{scope:"constant.language",settings:{foreground:"#569cd6"}},{scope:["constant.numeric"],settings:{foreground:"#b5cea8"}},{scope:"constant.regexp",settings:{foreground:"#646695"}},{scope:"entity.name.tag",settings:{foreground:"#569cd6"}},{scope:"entity.name.tag.css",settings:{foreground:"#d7ba7d"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9cdcfe"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.attribute.scss","entity.other.attribute-name.scss"],settings:{foreground:"#d7ba7d"}},{scope:"invalid",settings:{foreground:"#f44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.inserted",settings:{foreground:"#b5cea8"}},{scope:"markup.deleted",settings:{foreground:"#ce9178"}},{scope:"markup.changed",settings:{foreground:"#569cd6"}},{scope:"punctuation.definition.quote.begin.markdown",settings:{foreground:"#6A9955"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#6796e6"}},{scope:"markup.inline.raw",settings:{foreground:"#ce9178"}},{scope:"punctuation.definition.tag",settings:{foreground:"#808080"}},{scope:"meta.preprocessor",settings:{foreground:"#569cd6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#ce9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#b5cea8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9cdcfe"}},{scope:"meta.diff.header",settings:{foreground:"#569cd6"}},{scope:"storage",settings:{foreground:"#569cd6"}},{scope:"storage.type",settings:{foreground:"#569cd6"}},{scope:"storage.modifier",settings:{foreground:"#569cd6"}},{scope:"string",settings:{foreground:"#ce9178"}},{scope:"string.tag",settings:{foreground:"#ce9178"}},{scope:"string.value",settings:{foreground:"#ce9178"}},{scope:"string.regexp",settings:{foreground:"#d16969"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569cd6"}},{scope:["meta.template.expression"],settings:{foreground:"#d4d4d4"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#9cdcfe"}},{scope:"keyword",settings:{foreground:"#569cd6"}},{scope:"keyword.control",settings:{foreground:"#569cd6"}},{scope:"keyword.operator",settings:{foreground:"#d4d4d4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.instanceof","keyword.operator.logical.python"],settings:{foreground:"#569cd6"}},{scope:"keyword.other.unit",settings:{foreground:"#b5cea8"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#569cd6"}},{scope:"support.function.git-rebase",settings:{foreground:"#9cdcfe"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#b5cea8"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#d4d4d4"}},{scope:"variable.language",settings:{foreground:"#569cd6"}},{scope:["entity.name.function","support.function","support.constant.handlebars"],settings:{foreground:"#DCDCAA"}},{scope:["meta.return-type","support.class","support.type","entity.name.type","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#4EC9B0"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#4EC9B0"}},{scope:"keyword.control",settings:{foreground:"#C586C0"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable"],settings:{foreground:"#9CDCFE"}},{scope:["meta.object-literal.key"],settings:{foreground:"#9CDCFE"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#CE9178"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#CE9178"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#d16969"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#DCDCAA"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#d7ba7d"}},{scope:"constant.character",settings:{foreground:"#569cd6"}},{scope:"constant.character.escape",settings:{foreground:"#d7ba7d"}},{scope:"token.info-token",settings:{foreground:"#6796e6"}},{scope:"token.warn-token",settings:{foreground:"#cd9731"}},{scope:"token.error-token",settings:{foreground:"#f44747"}},{scope:"token.debug-token",settings:{foreground:"#b267e6"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/slack-ochin.hXH8Gyq8.js b/assets/chunks/slack-ochin.hXH8Gyq8.js new file mode 100644 index 000000000..f201bee9a --- /dev/null +++ b/assets/chunks/slack-ochin.hXH8Gyq8.js @@ -0,0 +1 @@ +var o=Object.freeze({colors:{"activityBar.background":"#161F26","activityBar.dropBackground":"#FFF","activityBar.foreground":"#FFF","activityBarBadge.background":"#8AE773","activityBarBadge.foreground":"#FFF","badge.background":"#8AE773","breadcrumb.focusForeground":"#475663","breadcrumb.foreground":"#161F26","button.background":"#475663","button.foreground":"#FFF","button.hoverBackground":"#161F26","debugExceptionWidget.background":"#AED4FB","debugExceptionWidget.border":"#161F26","debugToolBar.background":"#161F26","dropdown.background":"#FFF","dropdown.border":"#DCDEDF","dropdown.foreground":"#DCDEDF","dropdown.listBackground":"#FFF","editor.background":"#FFF","editor.findMatchBackground":"#AED4FB","editor.foreground":"#000","editor.lineHighlightBackground":"#EEEEEE","editor.selectionBackground":"#AED4FB","editor.wordHighlightBackground":"#AED4FB","editor.wordHighlightStrongBackground":"#EEEEEE","editorActiveLineNumber.foreground":"#475663","editorGroup.emptyBackground":"#2D3E4C","editorGroup.focusedEmptyBorder":"#2D3E4C","editorGroupHeader.tabsBackground":"#2D3E4C","editorHint.border":"#F9F9F9","editorHint.foreground":"#F9F9F9","editorIndentGuide.activeBackground":"#dbdbdb","editorIndentGuide.background":"#F3F3F3","editorLineNumber.foreground":"#b9b9b9","editorMarkerNavigation.background":"#F9F9F9","editorMarkerNavigationError.background":"#F44C5E","editorMarkerNavigationInfo.background":"#6182b8","editorMarkerNavigationWarning.background":"#F6B555","editorPane.background":"#2D3E4C","editorSuggestWidget.foreground":"#2D3E4C","editorSuggestWidget.highlightForeground":"#2D3E4C","editorSuggestWidget.selectedBackground":"#b9b9b9","editorWidget.background":"#F9F9F9","editorWidget.border":"#dbdbdb","extensionButton.prominentBackground":"#475663","extensionButton.prominentForeground":"#F6F6F6","extensionButton.prominentHoverBackground":"#161F26",focusBorder:"#161F26",foreground:"#616161","gitDecoration.addedResourceForeground":"#ECB22E","gitDecoration.conflictingResourceForeground":"#FFF","gitDecoration.deletedResourceForeground":"#FFF","gitDecoration.ignoredResourceForeground":"#877583","gitDecoration.modifiedResourceForeground":"#ECB22E","gitDecoration.untrackedResourceForeground":"#ECB22E","input.background":"#FFF","input.border":"#161F26","input.foreground":"#000","input.placeholderForeground":"#a0a0a0","inputOption.activeBorder":"#3E313C","inputValidation.errorBackground":"#F44C5E","inputValidation.errorForeground":"#FFF","inputValidation.infoBackground":"#6182b8","inputValidation.infoForeground":"#FFF","inputValidation.warningBackground":"#F6B555","inputValidation.warningForeground":"#000","list.activeSelectionBackground":"#5899C5","list.activeSelectionForeground":"#fff","list.focusBackground":"#d5e1ea","list.focusForeground":"#fff","list.highlightForeground":"#2D3E4C","list.hoverBackground":"#d5e1ea","list.hoverForeground":"#fff","list.inactiveFocusBackground":"#161F26","list.inactiveSelectionBackground":"#5899C5","list.inactiveSelectionForeground":"#fff","list.invalidItemForeground":"#fff","menu.background":"#161F26","menu.foreground":"#F9FAFA","menu.separatorBackground":"#F9FAFA","notificationCenter.border":"#161F26","notificationCenterHeader.foreground":"#FFF","notificationLink.foreground":"#FFF","notificationToast.border":"#161F26","notifications.background":"#161F26","notifications.border":"#161F26","notifications.foreground":"#FFF","panel.border":"#2D3E4C","panelTitle.activeForeground":"#161F26","progressBar.background":"#8AE773","scrollbar.shadow":"#ffffff00","scrollbarSlider.activeBackground":"#161F267e","scrollbarSlider.background":"#161F267e","scrollbarSlider.hoverBackground":"#161F267e","settings.dropdownBorder":"#161F26","settings.dropdownForeground":"#161F26","settings.headerForeground":"#161F26","sideBar.background":"#2D3E4C","sideBar.foreground":"#DCDEDF","sideBarSectionHeader.background":"#161F26","sideBarSectionHeader.foreground":"#FFF","sideBarTitle.foreground":"#FFF","statusBar.background":"#5899C5","statusBar.debuggingBackground":"#8AE773","statusBar.foreground":"#FFF","statusBar.noFolderBackground":"#161F26","tab.activeBackground":"#FFF","tab.activeForeground":"#000","tab.border":"#F3F3F3","tab.inactiveBackground":"#F3F3F3","tab.inactiveForeground":"#686868","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#6182b8","terminal.ansiBrightBlack":"#90a4ae","terminal.ansiBrightBlue":"#6182b8","terminal.ansiBrightCyan":"#39adb5","terminal.ansiBrightGreen":"#91b859","terminal.ansiBrightMagenta":"#7c4dff","terminal.ansiBrightRed":"#e53935","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#ffb62c","terminal.ansiCyan":"#39adb5","terminal.ansiGreen":"#91b859","terminal.ansiMagenta":"#7c4dff","terminal.ansiRed":"#e53935","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#ffb62c","terminal.border":"#2D3E4C","terminal.foreground":"#161F26","terminal.selectionBackground":"#0006","textPreformat.foreground":"#161F26","titleBar.activeBackground":"#2D3E4C","titleBar.activeForeground":"#FFF","titleBar.border":"#2D3E4C","titleBar.inactiveBackground":"#161F26","titleBar.inactiveForeground":"#685C66","welcomePage.buttonBackground":"#F3F3F3","welcomePage.buttonHoverBackground":"#ECECEC","widget.shadow":"#161F2694"},displayName:"Slack Ochin",name:"slack-ochin",tokenColors:[{settings:{foreground:"#002339"}},{scope:["meta.paragraph.markdown","string.other.link.description.title.markdown"],settings:{foreground:"#110000"}},{scope:["entity.name.section.markdown","punctuation.definition.heading.markdown"],settings:{foreground:"#034c7c"}},{scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","markup.quote.markdown"],settings:{foreground:"#00AC8F"}},{scope:["markup.quote.markdown"],settings:{fontStyle:"italic",foreground:"#003494"}},{scope:["markup.bold.markdown","punctuation.definition.bold.markdown"],settings:{fontStyle:"bold",foreground:"#4e76b5"}},{scope:["markup.italic.markdown","punctuation.definition.italic.markdown"],settings:{fontStyle:"italic",foreground:"#C792EA"}},{scope:["markup.inline.raw.string.markdown","markup.fenced_code.block.markdown"],settings:{fontStyle:"italic",foreground:"#0460b1"}},{scope:["punctuation.definition.metadata.markdown"],settings:{foreground:"#00AC8F"}},{scope:["markup.underline.link.image.markdown","markup.underline.link.markdown"],settings:{foreground:"#924205"}},{scope:"comment",settings:{fontStyle:"italic",foreground:"#357b42"}},{scope:"string",settings:{foreground:"#a44185"}},{scope:"constant.numeric",settings:{foreground:"#174781"}},{scope:"constant",settings:{foreground:"#174781"}},{scope:"language.method",settings:{foreground:"#174781"}},{scope:["constant.character","constant.other"],settings:{foreground:"#174781"}},{scope:"variable",settings:{fontStyle:"",foreground:"#2f86d2"}},{scope:"variable.language.this",settings:{fontStyle:"",foreground:"#000000"}},{scope:"keyword",settings:{fontStyle:"",foreground:"#7b30d0"}},{scope:"storage",settings:{fontStyle:"",foreground:"#da5221"}},{scope:"storage.type",settings:{fontStyle:"",foreground:"#0991b6"}},{scope:"entity.name.class",settings:{foreground:"#1172c7"}},{scope:"entity.other.inherited-class",settings:{fontStyle:"",foreground:"#b02767"}},{scope:"entity.name.function",settings:{fontStyle:"",foreground:"#7eb233"}},{scope:"variable.parameter",settings:{fontStyle:"",foreground:"#b1108e"}},{scope:"entity.name.tag",settings:{fontStyle:"",foreground:"#0444ac"}},{scope:"text.html.basic",settings:{fontStyle:"",foreground:"#0071ce"}},{scope:"entity.name.type",settings:{foreground:"#0444ac"}},{scope:"entity.other.attribute-name",settings:{fontStyle:"italic",foreground:"#df8618"}},{scope:"support.function",settings:{fontStyle:"",foreground:"#1ab394"}},{scope:"support.constant",settings:{fontStyle:"",foreground:"#174781"}},{scope:["support.type","support.class"],settings:{foreground:"#dc3eb7"}},{scope:"support.other.variable",settings:{foreground:"#224555"}},{scope:"invalid",settings:{fontStyle:" italic bold underline",foreground:"#207bb8"}},{scope:"invalid.deprecated",settings:{fontStyle:" bold italic underline",foreground:"#207bb8"}},{scope:"source.json support",settings:{foreground:"#6dbdfa"}},{scope:["source.json string","source.json punctuation.definition.string"],settings:{foreground:"#00820f"}},{scope:"markup.list",settings:{foreground:"#207bb8"}},{scope:["markup.heading punctuation.definition.heading","entity.name.section"],settings:{fontStyle:"",foreground:"#4FB4D8"}},{scope:["text.html.markdown meta.paragraph meta.link.inline","text.html.markdown meta.paragraph meta.link.inline punctuation.definition.string.begin.markdown","text.html.markdown meta.paragraph meta.link.inline punctuation.definition.string.end.markdown"],settings:{foreground:"#87429A"}},{scope:"markup.quote",settings:{foreground:"#87429A"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#08134A"}},{scope:["markup.italic","punctuation.definition.italic"],settings:{fontStyle:"italic",foreground:"#174781"}},{scope:"meta.link",settings:{foreground:"#87429A"}}],type:"light"});export{o as default}; diff --git a/assets/chunks/smalltalk.DSsji4Hu.js b/assets/chunks/smalltalk.DSsji4Hu.js new file mode 100644 index 000000000..123167e80 --- /dev/null +++ b/assets/chunks/smalltalk.DSsji4Hu.js @@ -0,0 +1 @@ +const a=Object.freeze({displayName:"Smalltalk",fileTypes:["st"],foldingStartMarker:"\\[",foldingStopMarker:"^\\s*\\]|^\\s\\]",name:"smalltalk",patterns:[{match:"\\$.",name:"constant.character.smalltalk"},{match:"\\b(class)\\b",name:"storage.type.$1.smalltalk"},{match:"\\b(extend|super|self)\\b",name:"storage.modifier.$1.smalltalk"},{match:"\\b(yourself|new|Smalltalk)\\b",name:"keyword.control.$1.smalltalk"},{match:":=",name:"keyword.operator.assignment.smalltalk"},{comment:"Parse the variable declaration like: |a b c|",match:"/^:\\w*\\s*\\|/",name:"constant.other.block.smalltalk"},{captures:{1:{name:"punctuation.definition.instance-variables.begin.smalltalk"},2:{patterns:[{match:"\\w+",name:"support.type.variable.declaration.smalltalk"}]},3:{name:"punctuation.definition.instance-variables.end.smalltalk"}},match:"(\\|)(\\s*\\w[\\w ]*)(\\|)"},{captures:{1:{patterns:[{match:":\\w+",name:"entity.name.function.block.smalltalk"}]}},comment:"Parse the blocks like: [ :a :b | ...... ]",match:"\\[((\\s+|:\\w+)*)\\|"},{include:"#numeric"},{match:"<(?!<|=)|>(?!<|=|>)|<=|>=|=|==|~=|~~|>>|\\^",name:"keyword.operator.comparison.smalltalk"},{match:"(\\*|\\+|\\-|/|\\\\)",name:"keyword.operator.arithmetic.smalltalk"},{match:"(?<=[ \\t])!+|\\bnot\\b|&|\\band\\b|\\||\\bor\\b",name:"keyword.operator.logical.smalltalk"},{comment:"Fake reserved word -> main Smalltalk messages",match:"(?<!\\.)\\b(ensure|resume|retry|signal)\\b(?![?!])",name:"keyword.control.smalltalk"},{comment:"Fake conditionals. Smalltalk Methods.",match:"ifCurtailed:|ifTrue:|ifFalse:|whileFalse:|whileTrue:",name:"keyword.control.conditionals.smalltalk"},{captures:{1:{name:"entity.other.inherited-class.smalltalk"},3:{name:"keyword.control.smalltalk"},4:{name:"entity.name.type.class.smalltalk"}},match:"(\\w+)(\\s+(subclass:))\\s*(\\w*)",name:"meta.class.smalltalk"},{begin:'"',beginCaptures:[{name:"punctuation.definition.comment.begin.smalltalk"}],end:'"',endCaptures:[{name:"punctuation.definition.comment.end.smalltalk"}],name:"comment.block.smalltalk"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.smalltalk"},{match:"\\b(nil)\\b",name:"constant.language.nil.smalltalk"},{captures:{1:{name:"punctuation.definition.constant.smalltalk"}},comment:"messages/methods",match:"(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)",name:"constant.other.messages.smalltalk"},{captures:{1:{name:"punctuation.definition.constant.smalltalk"}},comment:"symbols",match:"(#)[a-zA-Z_][a-zA-Z0-9_:]*",name:"constant.other.symbol.smalltalk"},{begin:"#\\[",beginCaptures:[{name:"punctuation.definition.constant.begin.smalltalk"}],end:"\\]",endCaptures:[{name:"punctuation.definition.constant.end.smalltalk"}],name:"meta.array.byte.smalltalk",patterns:[{match:"[0-9]+(r[a-zA-Z0-9]+)?",name:"constant.numeric.integer.smalltalk"},{match:"[^\\s\\]]+",name:"invalid.illegal.character-not-allowed-here.smalltalk"}]},{begin:"#\\(",beginCaptures:[{name:"punctuation.definition.constant.begin.smalltalk"}],comment:"Array Constructor",end:"\\)",endCaptures:[{name:"punctuation.definition.constant.end.smalltalk"}],name:"constant.other.array.smalltalk"},{begin:"'",beginCaptures:[{name:"punctuation.definition.string.begin.smalltalk"}],end:"'",endCaptures:[{name:"punctuation.definition.string.end.smalltalk"}],name:"string.quoted.single.smalltalk"},{match:"\\b[A-Z]\\w*\\b",name:"variable.other.constant.smalltalk"}],repository:{numeric:{patterns:[{match:"(?<!\\w)[0-9]+\\.[0-9]+s[0-9]*",name:"constant.numeric.float.scaled.smalltalk"},{match:"(?<!\\w)[0-9]+\\.[0-9]+([edq]-?[0-9]+)?",name:"constant.numeric.float.smalltalk"},{match:"(?<!\\w)-?[0-9]+r[a-zA-Z0-9]+",name:"constant.numeric.integer.radix.smalltalk"},{match:"(?<!\\w)-?[0-9]+([edq]-?[0-9]+)?",name:"constant.numeric.integer.smalltalk"}]}},scopeName:"source.smalltalk"});var t=[a];export{t as default}; diff --git a/assets/chunks/snazzy-light.CA9nliXM.js b/assets/chunks/snazzy-light.CA9nliXM.js new file mode 100644 index 000000000..6854a48f8 --- /dev/null +++ b/assets/chunks/snazzy-light.CA9nliXM.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.background":"#E7E8E6","activityBar.foreground":"#2DAE58","activityBar.inactiveForeground":"#68696888","activityBarBadge.background":"#09A1ED","badge.background":"#09A1ED","badge.foreground":"#ffffff","button.background":"#2DAE58","debugExceptionWidget.background":"#FFAEAC33","debugExceptionWidget.border":"#FF5C57","debugToolBar.border":"#E9EAEB","diffEditor.insertedTextBackground":"#2DAE5824","diffEditor.removedTextBackground":"#FFAEAC44","dropdown.border":"#E9EAEB","editor.background":"#FAFBFC","editor.findMatchBackground":"#00E6E06A","editor.findMatchHighlightBackground":"#00E6E02A","editor.findRangeHighlightBackground":"#F5B90011","editor.focusedStackFrameHighlightBackground":"#2DAE5822","editor.foreground":"#565869","editor.hoverHighlightBackground":"#00E6E018","editor.rangeHighlightBackground":"#F5B90033","editor.selectionBackground":"#2DAE5822","editor.snippetTabstopHighlightBackground":"#ADB1C23A","editor.stackFrameHighlightBackground":"#F5B90033","editor.wordHighlightBackground":"#ADB1C23A","editorError.foreground":"#FF5C56","editorGroup.emptyBackground":"#F3F4F5","editorGutter.addedBackground":"#2DAE58","editorGutter.deletedBackground":"#FF5C57","editorGutter.modifiedBackground":"#00A39FAA","editorInlayHint.background":"#E9EAEB","editorInlayHint.foreground":"#565869","editorLineNumber.activeForeground":"#35CF68","editorLineNumber.foreground":"#9194A2aa","editorLink.activeForeground":"#35CF68","editorOverviewRuler.addedForeground":"#2DAE58","editorOverviewRuler.deletedForeground":"#FF5C57","editorOverviewRuler.errorForeground":"#FF5C56","editorOverviewRuler.findMatchForeground":"#13BBB7AA","editorOverviewRuler.modifiedForeground":"#00A39FAA","editorOverviewRuler.warningForeground":"#CF9C00","editorOverviewRuler.wordHighlightForeground":"#ADB1C288","editorOverviewRuler.wordHighlightStrongForeground":"#35CF68","editorWarning.foreground":"#CF9C00","editorWhitespace.foreground":"#ADB1C255","extensionButton.prominentBackground":"#2DAE58","extensionButton.prominentHoverBackground":"#238744",focusBorder:"#09A1ED",foreground:"#686968","gitDecoration.modifiedResourceForeground":"#00A39F","gitDecoration.untrackedResourceForeground":"#2DAE58","input.border":"#E9EAEB","list.activeSelectionBackground":"#09A1ED","list.activeSelectionForeground":"#ffffff","list.errorForeground":"#FF5C56","list.focusBackground":"#BCE7FC99","list.focusForeground":"#11658F","list.hoverBackground":"#E9EAEB","list.inactiveSelectionBackground":"#89B5CB33","list.warningForeground":"#B38700","menu.background":"#FAFBFC","menu.selectionBackground":"#E9EAEB","menu.selectionForeground":"#686968","menubar.selectionBackground":"#E9EAEB","menubar.selectionForeground":"#686968","merge.currentContentBackground":"#35CF6833","merge.currentHeaderBackground":"#35CF6866","merge.incomingContentBackground":"#14B1FF33","merge.incomingHeaderBackground":"#14B1FF77","peekView.border":"#09A1ED","peekViewEditor.background":"#14B1FF08","peekViewEditor.matchHighlightBackground":"#F5B90088","peekViewEditor.matchHighlightBorder":"#F5B900","peekViewEditorStickyScroll.background":"#EDF4FB","peekViewResult.matchHighlightBackground":"#F5B90088","peekViewResult.selectionBackground":"#09A1ED","peekViewResult.selectionForeground":"#FFFFFF","peekViewTitle.background":"#09A1ED11","selection.background":"#2DAE5844","settings.modifiedItemIndicator":"#13BBB7","sideBar.background":"#F3F4F5","sideBar.border":"#DEDFE0","sideBarSectionHeader.background":"#E9EAEB","sideBarSectionHeader.border":"#DEDFE0","statusBar.background":"#2DAE58","statusBar.debuggingBackground":"#13BBB7","statusBar.debuggingBorder":"#00A39F","statusBar.noFolderBackground":"#565869","statusBarItem.remoteBackground":"#238744","tab.activeBorderTop":"#2DAE58","terminal.ansiBlack":"#565869","terminal.ansiBlue":"#09A1ED","terminal.ansiBrightBlack":"#75798F","terminal.ansiBrightBlue":"#14B1FF","terminal.ansiBrightCyan":"#13BBB7","terminal.ansiBrightGreen":"#35CF68","terminal.ansiBrightMagenta":"#FF94D2","terminal.ansiBrightRed":"#FFAEAC","terminal.ansiBrightWhite":"#FFFFFF","terminal.ansiBrightYellow":"#F5B900","terminal.ansiCyan":"#13BBB7","terminal.ansiGreen":"#2DAE58","terminal.ansiMagenta":"#F767BB","terminal.ansiRed":"#FF5C57","terminal.ansiWhite":"#FAFBF9","terminal.ansiYellow":"#CF9C00","titleBar.activeBackground":"#F3F4F5"},displayName:"Snazzy Light",name:"snazzy-light",tokenColors:[{scope:"invalid.illegal",settings:{foreground:"#FF5C56"}},{scope:["meta.object-literal.key","meta.object-literal.key constant.character.escape","meta.object-literal string","meta.object-literal string constant.character.escape","support.type.property-name","support.type.property-name constant.character.escape"],settings:{foreground:"#11658F"}},{scope:["keyword","storage","meta.class storage.type","keyword.operator.expression.import","keyword.operator.new","keyword.operator.expression.delete"],settings:{foreground:"#F767BB"}},{scope:["support.type","meta.type.annotation entity.name.type","new.expr meta.type.parameters entity.name.type","storage.type.primitive","storage.type.built-in.primitive","meta.function.parameter storage.type"],settings:{foreground:"#2DAE58"}},{scope:["storage.type.annotation"],settings:{foreground:"#C25193"}},{scope:"keyword.other.unit",settings:{foreground:"#FF5C57CC"}},{scope:["constant.language","support.constant","variable.language"],settings:{foreground:"#2DAE58"}},{scope:["variable","support.variable"],settings:{foreground:"#565869"}},{scope:"variable.language.this",settings:{foreground:"#13BBB7"}},{scope:["entity.name.function","support.function"],settings:{foreground:"#09A1ED"}},{scope:["entity.name.function.decorator"],settings:{foreground:"#11658F"}},{scope:["meta.class entity.name.type","new.expr entity.name.type","entity.other.inherited-class","support.class"],settings:{foreground:"#13BBB7"}},{scope:["keyword.preprocessor.pragma","keyword.control.directive.include","keyword.other.preprocessor"],settings:{foreground:"#11658F"}},{scope:"entity.name.exception",settings:{foreground:"#FF5C56"}},{scope:"entity.name.section",settings:{}},{scope:["constant.numeric"],settings:{foreground:"#FF5C57"}},{scope:["constant","constant.character"],settings:{foreground:"#2DAE58"}},{scope:"string",settings:{foreground:"#CF9C00"}},{scope:"string",settings:{foreground:"#CF9C00"}},{scope:"constant.character.escape",settings:{foreground:"#F5B900"}},{scope:["string.regexp","string.regexp constant.character.escape"],settings:{foreground:"#13BBB7"}},{scope:["keyword.operator.quantifier.regexp","keyword.operator.negation.regexp","keyword.operator.or.regexp","string.regexp punctuation","string.regexp keyword","string.regexp keyword.control","string.regexp constant","variable.other.regexp"],settings:{foreground:"#00A39F"}},{scope:["string.regexp keyword.other"],settings:{foreground:"#00A39F88"}},{scope:"constant.other.symbol",settings:{foreground:"#CF9C00"}},{scope:["comment","punctuation.definition.comment"],settings:{foreground:"#ADB1C2"}},{scope:"comment.block.preprocessor",settings:{fontStyle:"",foreground:"#9194A2"}},{scope:"comment.block.documentation entity.name.type",settings:{foreground:"#2DAE58"}},{scope:["comment.block.documentation storage","comment.block.documentation keyword.other","meta.class comment.block.documentation storage.type"],settings:{foreground:"#9194A2"}},{scope:["comment.block.documentation variable"],settings:{foreground:"#C25193"}},{scope:["punctuation"],settings:{foreground:"#ADB1C2"}},{scope:["keyword.operator","keyword.other.arrow","keyword.control.@"],settings:{foreground:"#ADB1C2"}},{scope:["meta.tag.metadata.doctype.html entity.name.tag","meta.tag.metadata.doctype.html entity.other.attribute-name.html","meta.tag.sgml.doctype","meta.tag.sgml.doctype string","meta.tag.sgml.doctype entity.name.tag","meta.tag.sgml punctuation.definition.tag.html"],settings:{foreground:"#9194A2"}},{scope:["meta.tag","punctuation.definition.tag.html","punctuation.definition.tag.begin.html","punctuation.definition.tag.end.html"],settings:{foreground:"#ADB1C2"}},{scope:["entity.name.tag"],settings:{foreground:"#13BBB7"}},{scope:["meta.tag entity.other.attribute-name","entity.other.attribute-name.html"],settings:{foreground:"#FF8380"}},{scope:["constant.character.entity","punctuation.definition.entity"],settings:{foreground:"#CF9C00"}},{scope:["source.css"],settings:{foreground:"#ADB1C2"}},{scope:["meta.selector","meta.selector entity","meta.selector entity punctuation","source.css entity.name.tag"],settings:{foreground:"#F767BB"}},{scope:["keyword.control.at-rule","keyword.control.at-rule punctuation.definition.keyword"],settings:{foreground:"#C25193"}},{scope:"source.css variable",settings:{foreground:"#11658F"}},{scope:["source.css meta.property-name","source.css support.type.property-name"],settings:{foreground:"#565869"}},{scope:["source.css support.type.vendored.property-name"],settings:{foreground:"#565869AA"}},{scope:["meta.property-value","support.constant.property-value"],settings:{foreground:"#13BBB7"}},{scope:["source.css support.constant"],settings:{foreground:"#2DAE58"}},{scope:["punctuation.definition.entity.css","keyword.operator.combinator.css"],settings:{foreground:"#FF82CBBB"}},{scope:["source.css support.function"],settings:{foreground:"#09A1ED"}},{scope:"keyword.other.important",settings:{foreground:"#238744"}},{scope:["source.css.scss"],settings:{foreground:"#F767BB"}},{scope:["source.css.scss entity.other.attribute-name.class.css","source.css.scss entity.other.attribute-name.id.css"],settings:{foreground:"#F767BB"}},{scope:["entity.name.tag.reference.scss"],settings:{foreground:"#C25193"}},{scope:["source.css.scss meta.at-rule keyword","source.css.scss meta.at-rule keyword punctuation","source.css.scss meta.at-rule operator.logical","keyword.control.content.scss","keyword.control.return.scss","keyword.control.return.scss punctuation.definition.keyword"],settings:{foreground:"#C25193"}},{scope:["meta.at-rule.mixin.scss","meta.at-rule.include.scss","source.css.scss meta.at-rule.if","source.css.scss meta.at-rule.else","source.css.scss meta.at-rule.each","source.css.scss meta.at-rule variable.parameter"],settings:{foreground:"#ADB1C2"}},{scope:["source.css.less entity.other.attribute-name.class.css"],settings:{foreground:"#F767BB"}},{scope:"source.stylus meta.brace.curly.css",settings:{foreground:"#ADB1C2"}},{scope:["source.stylus entity.other.attribute-name.class","source.stylus entity.other.attribute-name.id","source.stylus entity.name.tag"],settings:{foreground:"#F767BB"}},{scope:["source.stylus support.type.property-name"],settings:{foreground:"#565869"}},{scope:["source.stylus variable"],settings:{foreground:"#11658F"}},{scope:"markup.changed",settings:{foreground:"#888888"}},{scope:"markup.deleted",settings:{foreground:"#888888"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.error",settings:{foreground:"#FF5C56"}},{scope:"markup.inserted",settings:{foreground:"#888888"}},{scope:"meta.link",settings:{foreground:"#CF9C00"}},{scope:"string.other.link.title.markdown",settings:{foreground:"#09A1ED"}},{scope:["markup.output","markup.raw"],settings:{foreground:"#999999"}},{scope:"markup.prompt",settings:{foreground:"#999999"}},{scope:"markup.heading",settings:{foreground:"#2DAE58"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.traceback",settings:{foreground:"#FF5C56"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.quote",settings:{foreground:"#777985"}},{scope:["markup.bold","markup.italic"],settings:{foreground:"#13BBB7"}},{scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#F767BB"}},{scope:["meta.brace.round","meta.brace.square","storage.type.function.arrow"],settings:{foreground:"#ADB1C2"}},{scope:["constant.language.import-export-all","meta.import keyword.control.default"],settings:{foreground:"#C25193"}},{scope:["support.function.js"],settings:{foreground:"#11658F"}},{scope:"string.regexp.js",settings:{foreground:"#13BBB7"}},{scope:["variable.language.super","support.type.object.module.js"],settings:{foreground:"#F767BB"}},{scope:"meta.jsx.children",settings:{foreground:"#686968"}},{scope:"entity.name.tag.yaml",settings:{foreground:"#11658F"}},{scope:"variable.other.alias.yaml",settings:{foreground:"#2DAE58"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#75798F"}},{scope:["meta.use.php entity.other.alias.php"],settings:{foreground:"#13BBB7"}},{scope:["source.php support.function.construct","source.php support.function.var"],settings:{foreground:"#11658F"}},{scope:["storage.modifier.extends.php","source.php keyword.other","storage.modifier.php"],settings:{foreground:"#F767BB"}},{scope:["meta.class.body.php storage.type.php"],settings:{foreground:"#F767BB"}},{scope:["storage.type.php","meta.class.body.php meta.function-call.php storage.type.php","meta.class.body.php meta.function.php storage.type.php"],settings:{foreground:"#2DAE58"}},{scope:["source.php keyword.other.DML"],settings:{foreground:"#D94E4A"}},{scope:["source.sql.embedded.php keyword.operator"],settings:{foreground:"#2DAE58"}},{scope:["source.ini keyword","source.toml keyword","source.env variable"],settings:{foreground:"#11658F"}},{scope:["source.ini entity.name.section","source.toml entity.other.attribute-name"],settings:{foreground:"#F767BB"}},{scope:["source.go storage.type"],settings:{foreground:"#2DAE58"}},{scope:["keyword.import.go","keyword.package.go"],settings:{foreground:"#FF5C56"}},{scope:["source.reason variable.language string"],settings:{foreground:"#565869"}},{scope:["source.reason support.type","source.reason constant.language","source.reason constant.language constant.numeric","source.reason support.type string.regexp"],settings:{foreground:"#2DAE58"}},{scope:["source.reason keyword.operator keyword.control","source.reason keyword.control.less","source.reason keyword.control.flow"],settings:{foreground:"#ADB1C2"}},{scope:["source.reason string.regexp"],settings:{foreground:"#CF9C00"}},{scope:["source.reason support.property-value"],settings:{foreground:"#11658F"}},{scope:["source.rust support.function.core.rust"],settings:{foreground:"#11658F"}},{scope:["source.rust storage.type.core.rust","source.rust storage.class.std"],settings:{foreground:"#2DAE58"}},{scope:["source.rust entity.name.type.rust"],settings:{foreground:"#13BBB7"}},{scope:["storage.type.function.coffee"],settings:{foreground:"#ADB1C2"}},{scope:["keyword.type.cs","storage.type.cs"],settings:{foreground:"#2DAE58"}},{scope:["entity.name.type.namespace.cs"],settings:{foreground:"#13BBB7"}},{scope:"meta.diff.header",settings:{foreground:"#11658F"}},{scope:["markup.inserted.diff"],settings:{foreground:"#2DAE58"}},{scope:["markup.deleted.diff"],settings:{foreground:"#FF5C56"}},{scope:["meta.diff.range","meta.diff.index","meta.separator"],settings:{foreground:"#09A1ED"}},{scope:"source.makefile variable",settings:{foreground:"#11658F"}},{scope:["keyword.control.protocol-specification.objc"],settings:{foreground:"#F767BB"}},{scope:["meta.parens storage.type.objc","meta.return-type.objc support.class","meta.return-type.objc storage.type.objc"],settings:{foreground:"#2DAE58"}},{scope:["source.sql keyword"],settings:{foreground:"#11658F"}},{scope:["keyword.other.special-method.dockerfile"],settings:{foreground:"#09A1ED"}},{scope:"constant.other.symbol.elixir",settings:{foreground:"#11658F"}},{scope:["storage.type.elm","support.module.elm"],settings:{foreground:"#13BBB7"}},{scope:["source.elm keyword.other"],settings:{foreground:"#ADB1C2"}},{scope:["source.erlang entity.name.type.class"],settings:{foreground:"#13BBB7"}},{scope:["variable.other.field.erlang"],settings:{foreground:"#11658F"}},{scope:["source.erlang constant.other.symbol"],settings:{foreground:"#2DAE58"}},{scope:["storage.type.haskell"],settings:{foreground:"#2DAE58"}},{scope:["meta.declaration.class.haskell storage.type.haskell","meta.declaration.instance.haskell storage.type.haskell"],settings:{foreground:"#13BBB7"}},{scope:["meta.preprocessor.haskell"],settings:{foreground:"#75798F"}},{scope:["source.haskell keyword.control"],settings:{foreground:"#F767BB"}},{scope:["tag.end.latte","tag.begin.latte"],settings:{foreground:"#ADB1C2"}},{scope:"source.po keyword.control",settings:{foreground:"#11658F"}},{scope:"source.po storage.type",settings:{foreground:"#9194A2"}},{scope:"constant.language.po",settings:{foreground:"#13BBB7"}},{scope:"meta.header.po string",settings:{foreground:"#FF8380"}},{scope:"source.po meta.header.po",settings:{foreground:"#ADB1C2"}},{scope:["source.ocaml markup.underline"],settings:{fontStyle:""}},{scope:["source.ocaml punctuation.definition.tag emphasis","source.ocaml entity.name.class constant.numeric","source.ocaml support.type"],settings:{foreground:"#F767BB"}},{scope:["source.ocaml constant.numeric entity.other.attribute-name"],settings:{foreground:"#13BBB7"}},{scope:["source.ocaml comment meta.separator"],settings:{foreground:"#ADB1C2"}},{scope:["source.ocaml support.type strong","source.ocaml keyword.control strong"],settings:{foreground:"#ADB1C2"}},{scope:["source.ocaml support.constant.property-value"],settings:{foreground:"#11658F"}},{scope:["source.scala entity.name.class"],settings:{foreground:"#13BBB7"}},{scope:["storage.type.scala"],settings:{foreground:"#2DAE58"}},{scope:["variable.parameter.scala"],settings:{foreground:"#11658F"}},{scope:["meta.bracket.scala","meta.colon.scala"],settings:{foreground:"#ADB1C2"}},{scope:["meta.metadata.simple.clojure"],settings:{foreground:"#ADB1C2"}},{scope:["meta.metadata.simple.clojure meta.symbol"],settings:{foreground:"#13BBB7"}},{scope:["source.r keyword.other"],settings:{foreground:"#ADB1C2"}},{scope:["source.svelte meta.block.ts entity.name.label"],settings:{foreground:"#11658F"}},{scope:["keyword.operator.word.applescript"],settings:{foreground:"#F767BB"}},{scope:["meta.function-call.livescript"],settings:{foreground:"#09A1ED"}},{scope:["variable.language.self.lua"],settings:{foreground:"#13BBB7"}},{scope:["entity.name.type.class.swift","meta.inheritance-clause.swift","meta.import.swift entity.name.type"],settings:{foreground:"#13BBB7"}},{scope:["source.swift punctuation.section.embedded"],settings:{foreground:"#B38700"}},{scope:["variable.parameter.function.swift entity.name.function.swift"],settings:{foreground:"#565869"}},{scope:"meta.function-call.twig",settings:{foreground:"#565869"}},{scope:"string.unquoted.tag-string.django",settings:{foreground:"#565869"}},{scope:["entity.tag.tagbraces.django","entity.tag.filter-pipe.django"],settings:{foreground:"#ADB1C2"}},{scope:["meta.section.attributes.haml constant.language","meta.section.attributes.plain.haml constant.other.symbol"],settings:{foreground:"#FF8380"}},{scope:["meta.prolog.haml"],settings:{foreground:"#9194A2"}},{scope:["support.constant.handlebars"],settings:{foreground:"#ADB1C2"}},{scope:"text.log log.constant",settings:{foreground:"#C25193"}},{scope:["source.c string constant.other.placeholder","source.cpp string constant.other.placeholder"],settings:{foreground:"#B38700"}},{scope:"constant.other.key.groovy",settings:{foreground:"#11658F"}},{scope:"storage.type.groovy",settings:{foreground:"#13BBB7"}},{scope:"meta.definition.variable.groovy storage.type.groovy",settings:{foreground:"#2DAE58"}},{scope:"storage.modifier.import.groovy",settings:{foreground:"#CF9C00"}},{scope:["entity.other.attribute-name.class.pug","entity.other.attribute-name.id.pug"],settings:{foreground:"#13BBB7"}},{scope:["constant.name.attribute.tag.pug"],settings:{foreground:"#ADB1C2"}},{scope:"entity.name.tag.style.html",settings:{foreground:"#13BBB7"}},{scope:"entity.name.type.wasm",settings:{foreground:"#2DAE58"}}],type:"light"});export{e as default}; diff --git a/assets/chunks/solarized-dark.C86elO-m.js b/assets/chunks/solarized-dark.C86elO-m.js new file mode 100644 index 000000000..8abecae33 --- /dev/null +++ b/assets/chunks/solarized-dark.C86elO-m.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.background":"#003847","badge.background":"#047aa6","button.background":"#2AA19899","debugExceptionWidget.background":"#00212B","debugExceptionWidget.border":"#AB395B","debugToolBar.background":"#00212B","dropdown.background":"#00212B","dropdown.border":"#2AA19899","editor.background":"#002B36","editor.foreground":"#839496","editor.lineHighlightBackground":"#073642","editor.selectionBackground":"#274642","editor.selectionHighlightBackground":"#005A6FAA","editor.wordHighlightBackground":"#004454AA","editor.wordHighlightStrongBackground":"#005A6FAA","editorBracketHighlight.foreground1":"#cdcdcdff","editorBracketHighlight.foreground2":"#b58900ff","editorBracketHighlight.foreground3":"#d33682ff","editorCursor.foreground":"#D30102","editorGroup.border":"#00212B","editorGroup.dropBackground":"#2AA19844","editorGroupHeader.tabsBackground":"#004052","editorHoverWidget.background":"#004052","editorIndentGuide.activeBackground":"#C3E1E180","editorIndentGuide.background":"#93A1A180","editorLineNumber.activeForeground":"#949494","editorMarkerNavigationError.background":"#AB395B","editorMarkerNavigationWarning.background":"#5B7E7A","editorWhitespace.foreground":"#93A1A180","editorWidget.background":"#00212B",errorForeground:"#ffeaea",focusBorder:"#2AA19899","input.background":"#003847","input.foreground":"#93A1A1","input.placeholderForeground":"#93A1A1AA","inputOption.activeBorder":"#2AA19899","inputValidation.errorBackground":"#571b26","inputValidation.errorBorder":"#a92049","inputValidation.infoBackground":"#052730","inputValidation.infoBorder":"#363b5f","inputValidation.warningBackground":"#5d5938","inputValidation.warningBorder":"#9d8a5e","list.activeSelectionBackground":"#005A6F","list.dropBackground":"#00445488","list.highlightForeground":"#1ebcc5","list.hoverBackground":"#004454AA","list.inactiveSelectionBackground":"#00445488","minimap.selectionHighlight":"#274642","panel.border":"#2b2b4a","peekView.border":"#2b2b4a","peekViewEditor.background":"#10192c","peekViewEditor.matchHighlightBackground":"#7744AA40","peekViewResult.background":"#00212B","peekViewTitle.background":"#00212B","pickerGroup.border":"#2AA19899","pickerGroup.foreground":"#2AA19899","ports.iconRunningProcessForeground":"#369432","progressBar.background":"#047aa6","quickInputList.focusBackground":"#005A6F","selection.background":"#2AA19899","sideBar.background":"#00212B","sideBarTitle.foreground":"#93A1A1","statusBar.background":"#00212B","statusBar.debuggingBackground":"#00212B","statusBar.foreground":"#93A1A1","statusBar.noFolderBackground":"#00212B","statusBarItem.prominentBackground":"#003847","statusBarItem.prominentHoverBackground":"#003847","statusBarItem.remoteBackground":"#2AA19899","tab.activeBackground":"#002B37","tab.activeForeground":"#d6dbdb","tab.border":"#003847","tab.inactiveBackground":"#004052","tab.inactiveForeground":"#93A1A1","tab.lastPinnedBorder":"#2AA19844","terminal.ansiBlack":"#073642","terminal.ansiBlue":"#268bd2","terminal.ansiBrightBlack":"#002b36","terminal.ansiBrightBlue":"#839496","terminal.ansiBrightCyan":"#93a1a1","terminal.ansiBrightGreen":"#586e75","terminal.ansiBrightMagenta":"#6c71c4","terminal.ansiBrightRed":"#cb4b16","terminal.ansiBrightWhite":"#fdf6e3","terminal.ansiBrightYellow":"#657b83","terminal.ansiCyan":"#2aa198","terminal.ansiGreen":"#859900","terminal.ansiMagenta":"#d33682","terminal.ansiRed":"#dc322f","terminal.ansiWhite":"#eee8d5","terminal.ansiYellow":"#b58900","titleBar.activeBackground":"#002C39"},displayName:"Solarized Dark",name:"solarized-dark",semanticHighlighting:!0,tokenColors:[{settings:{foreground:"#839496"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#839496"}},{scope:"comment",settings:{fontStyle:"italic",foreground:"#586E75"}},{scope:"string",settings:{foreground:"#2AA198"}},{scope:"string.regexp",settings:{foreground:"#DC322F"}},{scope:"constant.numeric",settings:{foreground:"#D33682"}},{scope:["variable.language","variable.other"],settings:{foreground:"#268BD2"}},{scope:"keyword",settings:{foreground:"#859900"}},{scope:"storage",settings:{fontStyle:"bold",foreground:"#93A1A1"}},{scope:["entity.name.class","entity.name.type","entity.name.namespace","entity.name.scope-resolution"],settings:{fontStyle:"",foreground:"#CB4B16"}},{scope:"entity.name.function",settings:{foreground:"#268BD2"}},{scope:"punctuation.definition.variable",settings:{foreground:"#859900"}},{scope:["punctuation.section.embedded.begin","punctuation.section.embedded.end"],settings:{foreground:"#DC322F"}},{scope:["constant.language","meta.preprocessor"],settings:{foreground:"#B58900"}},{scope:["support.function.construct","keyword.other.new"],settings:{foreground:"#CB4B16"}},{scope:["constant.character","constant.other"],settings:{foreground:"#CB4B16"}},{scope:"entity.other.inherited-class",settings:{foreground:"#6C71C4"}},{scope:"variable.parameter",settings:{}},{scope:"entity.name.tag",settings:{foreground:"#268BD2"}},{scope:"punctuation.definition.tag",settings:{foreground:"#586E75"}},{scope:"entity.other.attribute-name",settings:{foreground:"#93A1A1"}},{scope:"support.function",settings:{foreground:"#268BD2"}},{scope:"punctuation.separator.continuation",settings:{foreground:"#DC322F"}},{scope:["support.constant","support.variable"],settings:{}},{scope:["support.type","support.class"],settings:{foreground:"#859900"}},{scope:"support.type.exception",settings:{foreground:"#CB4B16"}},{scope:"support.other.variable",settings:{}},{scope:"invalid",settings:{foreground:"#DC322F"}},{scope:["meta.diff","meta.diff.header"],settings:{fontStyle:"italic",foreground:"#268BD2"}},{scope:"markup.deleted",settings:{fontStyle:"",foreground:"#DC322F"}},{scope:"markup.changed",settings:{fontStyle:"",foreground:"#CB4B16"}},{scope:"markup.inserted",settings:{foreground:"#859900"}},{scope:"markup.quote",settings:{foreground:"#859900"}},{scope:"markup.list",settings:{foreground:"#B58900"}},{scope:["markup.bold","markup.italic"],settings:{foreground:"#D33682"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#2AA198"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#268BD2"}},{scope:"markup.heading.setext",settings:{fontStyle:"",foreground:"#268BD2"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/solarized-light.xPNGhBYe.js b/assets/chunks/solarized-light.xPNGhBYe.js new file mode 100644 index 000000000..76197f377 --- /dev/null +++ b/assets/chunks/solarized-light.xPNGhBYe.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.background":"#DDD6C1","activityBar.foreground":"#584c27","activityBarBadge.background":"#B58900","badge.background":"#B58900AA","button.background":"#AC9D57","debugExceptionWidget.background":"#DDD6C1","debugExceptionWidget.border":"#AB395B","debugToolBar.background":"#DDD6C1","dropdown.background":"#EEE8D5","dropdown.border":"#D3AF86","editor.background":"#FDF6E3","editor.foreground":"#657B83","editor.lineHighlightBackground":"#EEE8D5","editor.selectionBackground":"#EEE8D5","editorCursor.foreground":"#657B83","editorGroup.border":"#DDD6C1","editorGroup.dropBackground":"#DDD6C1AA","editorGroupHeader.tabsBackground":"#D9D2C2","editorHoverWidget.background":"#CCC4B0","editorIndentGuide.activeBackground":"#081E2580","editorIndentGuide.background":"#586E7580","editorLineNumber.activeForeground":"#567983","editorWhitespace.foreground":"#586E7580","editorWidget.background":"#EEE8D5","extensionButton.prominentBackground":"#b58900","extensionButton.prominentHoverBackground":"#584c27aa",focusBorder:"#b49471","input.background":"#DDD6C1","input.foreground":"#586E75","input.placeholderForeground":"#586E75AA","inputOption.activeBorder":"#D3AF86","list.activeSelectionBackground":"#DFCA88","list.activeSelectionForeground":"#6C6C6C","list.highlightForeground":"#B58900","list.hoverBackground":"#DFCA8844","list.inactiveSelectionBackground":"#D1CBB8","minimap.selectionHighlight":"#EEE8D5","notebook.cellEditorBackground":"#F7F0E0","panel.border":"#DDD6C1","peekView.border":"#B58900","peekViewEditor.background":"#FFFBF2","peekViewEditor.matchHighlightBackground":"#7744AA40","peekViewResult.background":"#EEE8D5","peekViewTitle.background":"#EEE8D5","pickerGroup.border":"#2AA19899","pickerGroup.foreground":"#2AA19899","ports.iconRunningProcessForeground":"#2AA19899","progressBar.background":"#B58900","quickInputList.focusBackground":"#DFCA8866","selection.background":"#878b9180","sideBar.background":"#EEE8D5","sideBarTitle.foreground":"#586E75","statusBar.background":"#EEE8D5","statusBar.debuggingBackground":"#EEE8D5","statusBar.foreground":"#586E75","statusBar.noFolderBackground":"#EEE8D5","statusBarItem.prominentBackground":"#DDD6C1","statusBarItem.prominentHoverBackground":"#DDD6C199","statusBarItem.remoteBackground":"#AC9D57","tab.activeBackground":"#FDF6E3","tab.activeModifiedBorder":"#cb4b16","tab.border":"#DDD6C1","tab.inactiveBackground":"#D3CBB7","tab.inactiveForeground":"#586E75","tab.lastPinnedBorder":"#FDF6E3","terminal.ansiBlack":"#073642","terminal.ansiBlue":"#268bd2","terminal.ansiBrightBlack":"#002b36","terminal.ansiBrightBlue":"#839496","terminal.ansiBrightCyan":"#93a1a1","terminal.ansiBrightGreen":"#586e75","terminal.ansiBrightMagenta":"#6c71c4","terminal.ansiBrightRed":"#cb4b16","terminal.ansiBrightWhite":"#fdf6e3","terminal.ansiBrightYellow":"#657b83","terminal.ansiCyan":"#2aa198","terminal.ansiGreen":"#859900","terminal.ansiMagenta":"#d33682","terminal.ansiRed":"#dc322f","terminal.ansiWhite":"#eee8d5","terminal.ansiYellow":"#b58900","terminal.background":"#FDF6E3","titleBar.activeBackground":"#EEE8D5","walkThrough.embeddedEditorBackground":"#00000014"},displayName:"Solarized Light",name:"solarized-light",semanticHighlighting:!0,tokenColors:[{settings:{foreground:"#657B83"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#657B83"}},{scope:"comment",settings:{fontStyle:"italic",foreground:"#93A1A1"}},{scope:"string",settings:{foreground:"#2AA198"}},{scope:"string.regexp",settings:{foreground:"#DC322F"}},{scope:"constant.numeric",settings:{foreground:"#D33682"}},{scope:["variable.language","variable.other"],settings:{foreground:"#268BD2"}},{scope:"keyword",settings:{foreground:"#859900"}},{scope:"storage",settings:{fontStyle:"bold",foreground:"#586E75"}},{scope:["entity.name.class","entity.name.type","entity.name.namespace","entity.name.scope-resolution"],settings:{fontStyle:"",foreground:"#CB4B16"}},{scope:"entity.name.function",settings:{foreground:"#268BD2"}},{scope:"punctuation.definition.variable",settings:{foreground:"#859900"}},{scope:["punctuation.section.embedded.begin","punctuation.section.embedded.end"],settings:{foreground:"#DC322F"}},{scope:["constant.language","meta.preprocessor"],settings:{foreground:"#B58900"}},{scope:["support.function.construct","keyword.other.new"],settings:{foreground:"#CB4B16"}},{scope:["constant.character","constant.other"],settings:{foreground:"#CB4B16"}},{scope:"entity.other.inherited-class",settings:{foreground:"#6C71C4"}},{scope:"variable.parameter",settings:{}},{scope:"entity.name.tag",settings:{foreground:"#268BD2"}},{scope:"punctuation.definition.tag",settings:{foreground:"#93A1A1"}},{scope:"entity.other.attribute-name",settings:{foreground:"#93A1A1"}},{scope:"support.function",settings:{foreground:"#268BD2"}},{scope:"punctuation.separator.continuation",settings:{foreground:"#DC322F"}},{scope:["support.constant","support.variable"],settings:{}},{scope:["support.type","support.class"],settings:{foreground:"#859900"}},{scope:"support.type.exception",settings:{foreground:"#CB4B16"}},{scope:"support.other.variable",settings:{}},{scope:"invalid",settings:{foreground:"#DC322F"}},{scope:["meta.diff","meta.diff.header"],settings:{fontStyle:"italic",foreground:"#268BD2"}},{scope:"markup.deleted",settings:{fontStyle:"",foreground:"#DC322F"}},{scope:"markup.changed",settings:{fontStyle:"",foreground:"#CB4B16"}},{scope:"markup.inserted",settings:{foreground:"#859900"}},{scope:"markup.quote",settings:{foreground:"#859900"}},{scope:"markup.list",settings:{foreground:"#B58900"}},{scope:["markup.bold","markup.italic"],settings:{foreground:"#D33682"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#2AA198"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#268BD2"}},{scope:"markup.heading.setext",settings:{fontStyle:"",foreground:"#268BD2"}}],type:"light"});export{e as default}; diff --git a/assets/chunks/solidity.CThH5sBG.js b/assets/chunks/solidity.CThH5sBG.js new file mode 100644 index 000000000..dacc6361e --- /dev/null +++ b/assets/chunks/solidity.CThH5sBG.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Solidity",fileTypes:["sol"],name:"solidity",patterns:[{include:"#natspec"},{include:"#declaration-userType"},{include:"#comment"},{include:"#operator"},{include:"#global"},{include:"#control"},{include:"#constant"},{include:"#primitive"},{include:"#type-primitive"},{include:"#type-modifier-extended-scope"},{include:"#declaration"},{include:"#function-call"},{include:"#assembly"},{include:"#punctuation"}],repository:{assembly:{patterns:[{match:"\\b(assembly)\\b",name:"keyword.control.assembly"},{match:"\\b(let)\\b",name:"storage.type.assembly"}]},comment:{patterns:[{include:"#comment-line"},{include:"#comment-block"}]},"comment-block":{begin:"/\\*",end:"\\*/",name:"comment.block",patterns:[{include:"#comment-todo"}]},"comment-line":{begin:"(?<!tp:)//",end:"$",name:"comment.line",patterns:[{include:"#comment-todo"}]},"comment-todo":{match:"(?i)\\b(FIXME|TODO|CHANGED|XXX|IDEA|HACK|NOTE|REVIEW|NB|BUG|QUESTION|COMBAK|TEMP|SUPPRESS|LINT|\\w+-disable|\\w+-suppress)\\b(?-i)",name:"keyword.comment.todo"},constant:{patterns:[{include:"#constant-boolean"},{include:"#constant-time"},{include:"#constant-currency"}]},"constant-boolean":{match:"\\b(true|false)\\b",name:"constant.language.boolean"},"constant-currency":{match:"\\b(ether|wei|gwei|finney|szabo)\\b",name:"constant.language.currency"},"constant-time":{match:"\\b(seconds|minutes|hours|days|weeks|years)\\b",name:"constant.language.time"},control:{patterns:[{include:"#control-flow"},{include:"#control-using"},{include:"#control-import"},{include:"#control-pragma"},{include:"#control-underscore"},{include:"#control-unchecked"},{include:"#control-other"}]},"control-flow":{patterns:[{match:"\\b(if|else|for|while|do|break|continue|try|catch|finally|throw|return|global)\\b",name:"keyword.control.flow"},{begin:"\\b(returns)\\b",beginCaptures:{1:{name:"keyword.control.flow.return"}},end:"(?=\\))",patterns:[{include:"#declaration-function-parameters"}]}]},"control-import":{patterns:[{begin:"\\b(import)\\b",beginCaptures:{1:{name:"keyword.control.import"}},end:"(?=\\;)",patterns:[{begin:"((?=\\{))",end:"((?=\\}))",patterns:[{match:"\\b(\\w+)\\b",name:"entity.name.type.interface"}]},{match:"\\b(from)\\b",name:"keyword.control.import.from"},{include:"#string"},{include:"#punctuation"}]},{match:"\\b(import)\\b",name:"keyword.control.import"}]},"control-other":{match:"\\b(new|delete|emit)\\b",name:"keyword.control"},"control-pragma":{captures:{1:{name:"keyword.control.pragma"},2:{name:"entity.name.tag.pragma"},3:{name:"constant.other.pragma"}},match:"\\b(pragma)(?:\\s+([A-Za-z_]\\w+)\\s+([^\\s]+))?\\b"},"control-unchecked":{match:"\\b(unchecked)\\b",name:"keyword.control.unchecked"},"control-underscore":{match:"\\b(_)\\b",name:"constant.other.underscore"},"control-using":{patterns:[{captures:{1:{name:"keyword.control.using"},2:{name:"entity.name.type.library"},3:{name:"keyword.control.for"},4:{name:"entity.name.type"}},match:"\\b(using)\\b\\s+\\b([A-Za-z\\d_]+)\\b\\s+\\b(for)\\b\\s+\\b([A-Za-z\\d_]+)"},{match:"\\b(using)\\b",name:"keyword.control.using"}]},declaration:{patterns:[{include:"#declaration-contract"},{include:"#declaration-userType"},{include:"#declaration-interface"},{include:"#declaration-library"},{include:"#declaration-function"},{include:"#declaration-modifier"},{include:"#declaration-constructor"},{include:"#declaration-event"},{include:"#declaration-storage"},{include:"#declaration-error"}]},"declaration-constructor":{patterns:[{begin:"\\b(constructor)\\b",beginCaptures:{1:{name:"storage.type.constructor"}},end:"(?=\\{)",patterns:[{begin:"\\G\\s*(?=\\()",end:"(?=\\))",patterns:[{include:"#declaration-function-parameters"}]},{begin:"(?<=\\))",end:"(?=\\{)",patterns:[{include:"#type-modifier-access"},{include:"#function-call"}]}]},{captures:{1:{name:"storage.type.constructor"}},match:"\\b(constructor)\\b"}]},"declaration-contract":{patterns:[{begin:"\\b(contract)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b\\s+",beginCaptures:{1:{name:"storage.type.contract"},2:{name:"entity.name.type.contract"},3:{name:"storage.modifier.is"}},end:"(?=\\{)",patterns:[{match:"\\b(\\w+)\\b",name:"entity.name.type.contract.extend"}]},{captures:{1:{name:"storage.type.contract"},2:{name:"entity.name.type.contract"}},match:"\\b(contract)(\\s+([A-Za-z_]\\w*))?\\b"}]},"declaration-enum":{patterns:[{begin:"\\b(enum)\\s+(\\w+)\\b",beginCaptures:{1:{name:"storage.type.enum"},2:{name:"entity.name.type.enum"}},end:"(?=\\})",patterns:[{match:"\\b(\\w+)\\b",name:"variable.other.enummember"},{include:"#punctuation"},{include:"#comment"}]},{captures:{1:{name:"storage.type.enum"},3:{name:"entity.name.type.enum"}},match:"\\b(enum)(\\s+([A-Za-z_]\\w*))?\\b"}]},"declaration-error":{captures:{1:{name:"storage.type.error"},3:{name:"entity.name.type.error"}},match:"\\b(error)(\\s+([A-Za-z_]\\w*))?\\b"},"declaration-event":{patterns:[{begin:"\\b(event)\\b(?:\\s+(\\w+)\\b)?",beginCaptures:{1:{name:"storage.type.event"},2:{name:"entity.name.type.event"}},end:"(?=\\))",patterns:[{include:"#type-primitive"},{captures:{1:{name:"storage.type.modifier.indexed"},2:{name:"variable.parameter.event"}},match:"\\b(?:(indexed)\\s)?(\\w+)(?:,\\s*|)"},{include:"#punctuation"}]},{captures:{1:{name:"storage.type.event"},3:{name:"entity.name.type.event"}},match:"\\b(event)(\\s+([A-Za-z_]\\w*))?\\b"}]},"declaration-function":{patterns:[{begin:"\\b(function)\\s+(\\w+)\\b",beginCaptures:{1:{name:"storage.type.function"},2:{name:"entity.name.function"}},end:"(?=\\{|;)",patterns:[{include:"#natspec"},{include:"#global"},{include:"#declaration-function-parameters"},{include:"#type-modifier-access"},{include:"#type-modifier-payable"},{include:"#type-modifier-immutable"},{include:"#type-modifier-extended-scope"},{include:"#control-flow"},{include:"#function-call"},{include:"#modifier-call"},{include:"#punctuation"}]},{captures:{1:{name:"storage.type.function"},2:{name:"entity.name.function"}},match:"\\b(function)\\s+([A-Za-z_]\\w*)\\b"}]},"declaration-function-parameters":{begin:"\\G\\s*(?=\\()",end:"(?=\\))",patterns:[{include:"#type-primitive"},{include:"#type-modifier-extended-scope"},{captures:{1:{name:"storage.type.struct"}},match:"\\b([A-Z]\\w*)\\b"},{include:"#variable"},{include:"#punctuation"},{include:"#comment"}]},"declaration-interface":{patterns:[{begin:"\\b(interface)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b\\s+",beginCaptures:{1:{name:"storage.type.interface"},2:{name:"entity.name.type.interface"},3:{name:"storage.modifier.is"}},end:"(?=\\{)",patterns:[{match:"\\b(\\w+)\\b",name:"entity.name.type.interface.extend"}]},{captures:{1:{name:"storage.type.interface"},2:{name:"entity.name.type.interface"}},match:"\\b(interface)(\\s+([A-Za-z_]\\w*))?\\b"}]},"declaration-library":{captures:{1:{name:"storage.type.library"},3:{name:"entity.name.type.library"}},match:"\\b(library)(\\s+([A-Za-z_]\\w*))?\\b"},"declaration-modifier":{patterns:[{begin:"\\b(modifier)\\b\\s*(\\w+)",beginCaptures:{1:{name:"storage.type.function.modifier"},2:{name:"entity.name.function.modifier"}},end:"(?=\\{)",patterns:[{include:"#declaration-function-parameters"},{begin:"(?<=\\))",end:"(?=\\{)",patterns:[{include:"#declaration-function-parameters"},{include:"#type-modifier-access"},{include:"#type-modifier-payable"},{include:"#type-modifier-immutable"},{include:"#type-modifier-extended-scope"},{include:"#function-call"},{include:"#modifier-call"},{include:"#control-flow"}]}]},{captures:{1:{name:"storage.type.modifier"},3:{name:"entity.name.function"}},match:"\\b(modifier)(\\s+([A-Za-z_]\\w*))?\\b"}]},"declaration-storage":{patterns:[{include:"#declaration-storage-mapping"},{include:"#declaration-struct"},{include:"#declaration-enum"},{include:"#declaration-storage-field"}]},"declaration-storage-field":{patterns:[{include:"#comment"},{include:"#control"},{include:"#type-primitive"},{include:"#type-modifier-access"},{include:"#type-modifier-immutable"},{include:"#type-modifier-extend-scope"},{include:"#type-modifier-payable"},{include:"#type-modifier-constant"},{include:"#primitive"},{include:"#constant"},{include:"#operator"},{include:"#punctuation"}]},"declaration-storage-mapping":{patterns:[{begin:"\\b(mapping)\\b",beginCaptures:{1:{name:"storage.type.mapping"}},end:"(?=\\))",patterns:[{include:"#declaration-storage-mapping"},{include:"#type-primitive"},{include:"#punctuation"},{include:"#operator"}]},{match:"\\b(mapping)\\b",name:"storage.type.mapping"}]},"declaration-struct":{patterns:[{captures:{1:{name:"storage.type.struct"},3:{name:"entity.name.type.struct"}},match:"\\b(struct)(\\s+([A-Za-z_]\\w*))?\\b"},{begin:"\\b(struct)\\b\\s*(\\w+)?\\b\\s*(?=\\{)",beginCaptures:{1:{name:"storage.type.struct"},2:{name:"entity.name.type.struct"}},end:"(?=\\})",patterns:[{include:"#type-primitive"},{include:"#variable"},{include:"#punctuation"},{include:"#comment"}]}]},"declaration-userType":{captures:{1:{name:"storage.type.userType"},2:{name:"entity.name.type.userType"},3:{name:"storage.modifier.is"}},match:"\\b(type)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b"},"function-call":{captures:{1:{name:"entity.name.function"},2:{name:"punctuation.parameters.begin"}},match:"\\b([A-Za-z_]\\w*)\\s*(\\()"},global:{patterns:[{include:"#global-variables"},{include:"#global-functions"}]},"global-functions":{patterns:[{match:"\\b(require|assert|revert)\\b",name:"keyword.control.exceptions"},{match:"\\b(selfdestruct|suicide)\\b",name:"keyword.control.contract"},{match:"\\b(addmod|mulmod|keccak256|sha256|sha3|ripemd160|ecrecover)\\b",name:"support.function.math"},{match:"\\b(unicode)\\b",name:"support.function.string"},{match:"\\b(blockhash|gasleft)\\b",name:"variable.language.transaction"},{match:"\\b(type)\\b",name:"variable.language.type"}]},"global-variables":{patterns:[{match:"\\b(this)\\b",name:"variable.language.this"},{match:"\\b(super)\\b",name:"variable.language.super"},{match:"\\b(abi)\\b",name:"variable.language.builtin.abi"},{match:"\\b(msg\\.sender|msg|block|tx|now)\\b",name:"variable.language.transaction"},{match:"\\b(tx\\.origin|tx\\.gasprice|msg\\.data|msg\\.sig|msg\\.value)\\b",name:"variable.language.transaction"}]},"modifier-call":{patterns:[{include:"#function-call"},{match:"\\b(\\w+)\\b",name:"entity.name.function.modifier"}]},natspec:{patterns:[{begin:"/\\*\\*",end:"\\*/",name:"comment.block.documentation",patterns:[{include:"#natspec-tags"}]},{begin:"///",end:"$",name:"comment.block.documentation",patterns:[{include:"#natspec-tags"}]}]},"natspec-tag-author":{match:"(@author)\\b",name:"storage.type.author.natspec"},"natspec-tag-custom":{match:"(@custom:\\w*)\\b",name:"storage.type.dev.natspec"},"natspec-tag-dev":{match:"(@dev)\\b",name:"storage.type.dev.natspec"},"natspec-tag-inheritdoc":{match:"(@inheritdoc)\\b",name:"storage.type.author.natspec"},"natspec-tag-notice":{match:"(@notice)\\b",name:"storage.type.dev.natspec"},"natspec-tag-param":{captures:{1:{name:"storage.type.param.natspec"},3:{name:"variable.other.natspec"}},match:"(@param)(\\s+([A-Za-z_]\\w*))?\\b"},"natspec-tag-return":{captures:{1:{name:"storage.type.return.natspec"},3:{name:"variable.other.natspec"}},match:"(@return)(\\s+([A-Za-z_]\\w*))?\\b"},"natspec-tag-title":{match:"(@title)\\b",name:"storage.type.title.natspec"},"natspec-tags":{patterns:[{include:"#comment-todo"},{include:"#natspec-tag-title"},{include:"#natspec-tag-author"},{include:"#natspec-tag-notice"},{include:"#natspec-tag-dev"},{include:"#natspec-tag-param"},{include:"#natspec-tag-return"},{include:"#natspec-tag-custom"},{include:"#natspec-tag-inheritdoc"}]},number:{patterns:[{include:"#number-decimal"},{include:"#number-hex"},{include:"#number-scientific"}]},"number-decimal":{match:"\\b([0-9_]+(\\.[0-9_]+)?)\\b",name:"constant.numeric.decimal"},"number-hex":{match:"\\b(0[xX][a-fA-F0-9]+)\\b",name:"constant.numeric.hexadecimal"},"number-scientific":{match:"\\b(?:0\\.(?:0[0-9]|[0-9][0-9_]?)|[0-9][0-9_]*(?:\\.\\d{1,2})?)(?:e[+-]?[0-9_]+)?",name:"constant.numeric.scientific"},operator:{patterns:[{include:"#operator-logic"},{include:"#operator-mapping"},{include:"#operator-arithmetic"},{include:"#operator-binary"},{include:"#operator-assignment"}]},"operator-arithmetic":{match:"(\\+|\\-|\\/|\\*)",name:"keyword.operator.arithmetic"},"operator-assignment":{match:"(\\:?=)",name:"keyword.operator.assignment"},"operator-binary":{match:"(\\^|\\&|\\||<<|>>)",name:"keyword.operator.binary"},"operator-logic":{match:"(==|\\!=|<(?!<)|<=|>(?!>)|>=|\\&\\&|\\|\\||\\:(?!=)|\\?|\\!)",name:"keyword.operator.logic"},"operator-mapping":{match:"(=>)",name:"keyword.operator.mapping"},primitive:{patterns:[{include:"#number-decimal"},{include:"#number-hex"},{include:"#number-scientific"},{include:"#string"}]},punctuation:{patterns:[{match:";",name:"punctuation.terminator.statement"},{match:"\\.",name:"punctuation.accessor"},{match:",",name:"punctuation.separator"},{match:"\\{",name:"punctuation.brace.curly.begin"},{match:"\\}",name:"punctuation.brace.curly.end"},{match:"\\[",name:"punctuation.brace.square.begin"},{match:"\\]",name:"punctuation.brace.square.end"},{match:"\\(",name:"punctuation.parameters.begin"},{match:"\\)",name:"punctuation.parameters.end"}]},string:{patterns:[{match:'\\"(?:\\\\"|[^\\"])*\\"',name:"string.quoted.double"},{match:"\\'(?:\\\\'|[^\\'])*\\'",name:"string.quoted.single"}]},"type-modifier-access":{match:"\\b(internal|external|private|public)\\b",name:"storage.type.modifier.access"},"type-modifier-constant":{match:"\\b(constant)\\b",name:"storage.type.modifier.readonly"},"type-modifier-extended-scope":{match:"\\b(pure|view|inherited|indexed|storage|memory|virtual|calldata|override|abstract)\\b",name:"storage.type.modifier.extendedscope"},"type-modifier-immutable":{match:"\\b(immutable)\\b",name:"storage.type.modifier.readonly"},"type-modifier-payable":{match:"\\b(nonpayable|payable)\\b",name:"storage.type.modifier.payable"},"type-primitive":{patterns:[{begin:"\\b(address|string\\d*|bytes\\d*|int\\d*|uint\\d*|bool|hash\\d*)\\b(?:\\[\\])(\\()",beginCaptures:{1:{name:"support.type.primitive"}},end:"(\\))",patterns:[{include:"#primitive"},{include:"#punctuation"},{include:"#global"},{include:"#variable"}]},{match:"\\b(address|string\\d*|bytes\\d*|int\\d*|uint\\d*|bool|hash\\d*)\\b",name:"support.type.primitive"}]},variable:{patterns:[{captures:{1:{name:"variable.parameter.function"}},match:"\\b(\\_\\w+)\\b"},{captures:{1:{name:"support.variable.property"}},match:"(?:\\.)(\\w+)\\b"},{captures:{1:{name:"variable.parameter.other"}},match:"\\b(\\w+)\\b"}]}},scopeName:"source.solidity"});var t=[e];export{t as default}; diff --git a/assets/chunks/sparql.DJ46LgWq.js b/assets/chunks/sparql.DJ46LgWq.js new file mode 100644 index 000000000..ebe12efb9 --- /dev/null +++ b/assets/chunks/sparql.DJ46LgWq.js @@ -0,0 +1 @@ +import e from"./turtle.C15OxdQ5.js";const s=Object.freeze({displayName:"SPARQL",fileTypes:["rq","sparql","sq"],name:"sparql",patterns:[{include:"source.turtle"},{include:"#query-keyword-operators"},{include:"#functions"},{include:"#variables"},{include:"#expression-operators"}],repository:{"expression-operators":{match:"(?:\\|\\||&&|=|!=|<|>|<=|>=|\\*|/|\\+|-|\\||\\^|\\?|\\!)",name:"support.class.sparql"},functions:{match:"\\b(?i:concat|regex|asc|desc|bound|isiri|isuri|isblank|isliteral|isnumeric|str|lang|datatype|sameterm|langmatches|avg|count|group_concat|separator|max|min|sample|sum|iri|uri|bnode|strdt|uuid|struuid|strlang|strlen|substr|ucase|lcase|strstarts|strends|contains|strbefore|strafter|encode_for_uri|replace|abs|round|ceil|floor|rand|now|year|month|day|hours|minutes|seconds|timezone|tz|md5|sha1|sha256|sha384|sha512|coalesce|if)\\b",name:"support.function.sparql"},"query-keyword-operators":{match:"\\b(?i:define|select|distinct|reduced|from|named|construct|ask|describe|where|graph|having|bind|as|filter|optional|union|order|by|group|limit|offset|values|insert data|delete data|with|delete|insert|clear|silent|default|all|create|drop|copy|move|add|to|using|service|not exists|exists|not in|in|minus|load)\\b",name:"keyword.control.sparql"},variables:{match:"(?<!\\w)[?$]\\w+",name:"constant.variable.sparql.turtle"}},scopeName:"source.sparql",embeddedLangs:["turtle"]});var a=[...e,s];export{a as default}; diff --git a/assets/chunks/splunk.6XBPEST2.js b/assets/chunks/splunk.6XBPEST2.js new file mode 100644 index 000000000..9bbefed90 --- /dev/null +++ b/assets/chunks/splunk.6XBPEST2.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Splunk Query Language",fileTypes:["splunk","spl"],name:"splunk",patterns:[{comment:"Splunk Built-in functions",match:"(?<=(\\||\\[))([\\s]*)\\b(abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|append|appendcols|appendpipe|arules|associate|audit|autoregress|bucket|bucketdir|chart|cluster|collect|concurrency|contingency|convert|correlate|crawl|datamodel|dbinspect|dbxquery|dbxlookup|dedup|delete|delta|diff|dispatch|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|file|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geostats|head|highlight|history|input|inputcsv|inputlookup|iplocation|join|kmeans|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|metadata|metasearch|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\\b(?=[\\s])",name:"support.class.splunk_search"},{comment:"Splunk Eval functions",match:"\\b(abs|acos|acosh|asin|asinh|atan|atan2|atanh|case|cidrmatch|ceiling|coalesce|commands|cos|cosh|exact|exp|floor|hypot|if|in|isbool|isint|isnotnull|isnull|isnum|isstr|len|like|ln|log|lower|ltrim|match|max|md5|min|mvappend|mvcount|mvdedup|mvfilter|mvfind|mvindex|mvjoin|mvrange|mvsort|mvzip|now|null|nullif|pi|pow|printf|random|relative_time|replace|round|rtrim|searchmatch|sha1|sha256|sha512|sigfig|sin|sinh|spath|split|sqrt|strftime|strptime|substr|tan|tanh|time|tonumber|tostring|trim|typeof|upper|urldecode|validate)(?=\\()\\b",name:"support.function.splunk_search"},{comment:"Splunk Transforming functions",match:"\\b(avg|count|distinct_count|estdc|estdc_error|eval|max|mean|median|min|mode|percentile|range|stdev|stdevp|sum|sumsq|var|varp|first|last|list|values|earliest|earliest_time|latest|latest_time|per_day|per_hour|per_minute|per_second|rate)\\b",name:"support.function.splunk_search"},{comment:"Splunk Macro Names",match:"(?<=\\`)[\\w]+(?=\\(|\\`)",name:"entity.name.function.splunk_search"},{comment:"Digits",match:"\\b(\\d+)\\b",name:"constant.numeric.splunk_search"},{comment:"Escape Characters",match:"(\\\\\\\\|\\\\\\||\\\\\\*|\\\\\\=)",name:"contant.character.escape.splunk_search"},{comment:"Splunk Operators",match:"(\\|,)",name:"keyword.operator.splunk_search"},{comment:"Splunk Language Constants",match:"(?i)\\b(as|by|or|and|over|where|output|outputnew)\\b|(?-i)\\b(NOT|true|false)\\b",name:"constant.language.splunk_search"},{comment:"Splunk Macro Parameters",match:'(?<=\\(|,|[^=]\\s{300})([^\\(\\)\\",=]+)(?=\\)|,)',name:"variable.parameter.splunk_search"},{comment:"Splunk Variables",match:"([\\w\\.]+)(\\[\\]|\\{\\})?([\\s]*)(?=\\=)",name:"variable.splunk_search"},{comment:"Comparison or assignment",match:"=",name:"keyword.operator.splunk_search"},{begin:'(?<!\\\\)"',end:'(?<!\\\\)"',name:"string.quoted.double.splunk_search"},{begin:"(?<!\\\\)'",end:"(?<!\\\\)'",name:"string.quoted.single.splunk_search"},{begin:'query=\\"',end:'(?<!\\\\)"',name:"meta.embedded.block.sql"},{begin:"(?<!\\\\)```",end:"(?<!\\\\)```",name:"comment.block.splunk_search"},{begin:"`comment\\(",end:"\\)`",name:"comment.block.splunk_search"}],scopeName:"source.splunk_search",aliases:["spl"]});var a=[e];export{a as default}; diff --git a/assets/chunks/sql.DbK06e1c.js b/assets/chunks/sql.DbK06e1c.js new file mode 100644 index 000000000..9cfb80132 --- /dev/null +++ b/assets/chunks/sql.DbK06e1c.js @@ -0,0 +1,21 @@ +const e=Object.freeze({displayName:"SQL",name:"sql",patterns:[{match:"((?<!@)@)\\b(\\w+)\\b",name:"text.variable"},{match:"(\\[)[^\\]]*(\\])",name:"text.bracketed"},{include:"#comments"},{captures:{1:{name:"keyword.other.create.sql"},2:{name:"keyword.other.sql"},5:{name:"entity.name.function.sql"}},match:"(?i:^\\s*(create(?:\\s+or\\s+replace)?)\\s+(aggregate|conversion|database|domain|function|group|(unique\\s+)?index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)(['\"`]?)(\\w+)\\4",name:"meta.create.sql"},{captures:{1:{name:"keyword.other.create.sql"},2:{name:"keyword.other.sql"}},match:"(?i:^\\s*(drop)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view))",name:"meta.drop.sql"},{captures:{1:{name:"keyword.other.create.sql"},2:{name:"keyword.other.table.sql"},3:{name:"entity.name.function.sql"},4:{name:"keyword.other.cascade.sql"}},match:"(?i:\\s*(drop)\\s+(table)\\s+(\\w+)(\\s+cascade)?\\b)",name:"meta.drop.sql"},{captures:{1:{name:"keyword.other.create.sql"},2:{name:"keyword.other.table.sql"}},match:"(?i:^\\s*(alter)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|proc(edure)?|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)",name:"meta.alter.sql"},{captures:{1:{name:"storage.type.sql"},2:{name:"storage.type.sql"},3:{name:"constant.numeric.sql"},4:{name:"storage.type.sql"},5:{name:"constant.numeric.sql"},6:{name:"storage.type.sql"},7:{name:"constant.numeric.sql"},8:{name:"constant.numeric.sql"},9:{name:"storage.type.sql"},10:{name:"constant.numeric.sql"},11:{name:"storage.type.sql"},12:{name:"storage.type.sql"},13:{name:"storage.type.sql"},14:{name:"constant.numeric.sql"},15:{name:"storage.type.sql"}},match:`(?xi) + + +\\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\\sprecision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|sysdate|text)\\b + + +|\\b(bit\\svarying|character\\s(?:varying)?|tinyint|var\\schar|float|interval)\\((\\d+)\\) + + +|\\b(char|number|varchar\\d?)\\b(?:\\((\\d+)\\))? + + +|\\b(numeric|decimal)\\b(?:\\((\\d+),(\\d+)\\))? + + +|\\b(times?)\\b(?:\\((\\d+)\\))?(\\swith(?:out)?\\stime\\szone\\b)? + + +|\\b(timestamp)(?:(s|tz))?\\b(?:\\((\\d+)\\))?(\\s(with|without)\\stime\\szone\\b)? + +`},{match:"(?i:\\b((?:primary|foreign)\\s+key|references|on\\sdelete(\\s+cascade)?|nocheck|check|constraint|collate|default)\\b)",name:"storage.modifier.sql"},{match:"\\b\\d+\\b",name:"constant.numeric.sql"},{match:"(?i:\\b(select(\\s+(all|distinct))?|insert\\s+(ignore\\s+)?into|update|delete|from|set|where|group\\s+by|or|like|and|union(\\s+all)?|having|order\\s+by|limit|cross\\s+join|join|straight_join|(inner|(left|right|full)(\\s+outer)?)\\s+join|natural(\\s+(inner|(left|right|full)(\\s+outer)?))?\\s+join)\\b)",name:"keyword.other.DML.sql"},{match:"(?i:\\b(on|off|((is\\s+)?not\\s+)?null)\\b)",name:"keyword.other.DDL.create.II.sql"},{match:"(?i:\\bvalues\\b)",name:"keyword.other.DML.II.sql"},{match:"(?i:\\b(begin(\\s+work)?|start\\s+transaction|commit(\\s+work)?|rollback(\\s+work)?)\\b)",name:"keyword.other.LUW.sql"},{match:"(?i:\\b(grant(\\swith\\sgrant\\soption)?|revoke)\\b)",name:"keyword.other.authorization.sql"},{match:"(?i:\\bin\\b)",name:"keyword.other.data-integrity.sql"},{match:"(?i:^\\s*(comment\\s+on\\s+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\\s+.*?\\s+(is)\\s+)",name:"keyword.other.object-comments.sql"},{match:"(?i)\\bAS\\b",name:"keyword.other.alias.sql"},{match:"(?i)\\b(DESC|ASC)\\b",name:"keyword.other.order.sql"},{match:"\\*",name:"keyword.operator.star.sql"},{match:"[!<>]?=|<>|<|>",name:"keyword.operator.comparison.sql"},{match:"-|\\+|/",name:"keyword.operator.math.sql"},{match:"\\|\\|",name:"keyword.operator.concatenator.sql"},{captures:{1:{name:"support.function.aggregate.sql"}},match:"(?i)\\b(approx_count_distinct|approx_percentile_cont|approx_percentile_disc|avg|checksum_agg|count|count_big|group|grouping|grouping_id|max|min|sum|stdev|stdevp|var|varp)\\b\\s*\\("},{captures:{1:{name:"support.function.analytic.sql"}},match:"(?i)\\b(cume_dist|first_value|lag|last_value|lead|percent_rank|percentile_cont|percentile_disc)\\b\\s*\\("},{captures:{1:{name:"support.function.bitmanipulation.sql"}},match:"(?i)\\b(bit_count|get_bit|left_shift|right_shift|set_bit)\\b\\s*\\("},{captures:{1:{name:"support.function.conversion.sql"}},match:"(?i)\\b(cast|convert|parse|try_cast|try_convert|try_parse)\\b\\s*\\("},{captures:{1:{name:"support.function.collation.sql"}},match:"(?i)\\b(collationproperty|tertiary_weights)\\b\\s*\\("},{captures:{1:{name:"support.function.cryptographic.sql"}},match:"(?i)\\b(asymkey_id|asymkeyproperty|certproperty|cert_id|crypt_gen_random|decryptbyasymkey|decryptbycert|decryptbykey|decryptbykeyautoasymkey|decryptbykeyautocert|decryptbypassphrase|encryptbyasymkey|encryptbycert|encryptbykey|encryptbypassphrase|hashbytes|is_objectsigned|key_guid|key_id|key_name|signbyasymkey|signbycert|symkeyproperty|verifysignedbycert|verifysignedbyasymkey)\\b\\s*\\("},{captures:{1:{name:"support.function.cursor.sql"}},match:"(?i)\\b(cursor_status)\\b\\s*\\("},{captures:{1:{name:"support.function.datetime.sql"}},match:"(?i)\\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|datetrunc|eomonth|switchoffset|todatetimeoffset|isdate|date_bucket)\\b\\s*\\("},{captures:{1:{name:"support.function.datatype.sql"}},match:"(?i)\\b(datalength|ident_current|ident_incr|ident_seed|identity|sql_variant_property)\\b\\s*\\("},{captures:{1:{name:"support.function.expression.sql"}},match:"(?i)\\b(coalesce|nullif)\\b\\s*\\("},{captures:{1:{name:"support.function.globalvar.sql"}},match:"(?<!@)@@(?i)\\b(cursor_rows|connections|cpu_busy|datefirst|dbts|error|fetch_status|identity|idle|io_busy|langid|language|lock_timeout|max_connections|max_precision|nestlevel|options|packet_errors|pack_received|pack_sent|procid|remserver|rowcount|servername|servicename|spid|textsize|timeticks|total_errors|total_read|total_write|trancount|version)\\b\\s*\\("},{captures:{1:{name:"support.function.json.sql"}},match:"(?i)\\b(json|isjson|json_object|json_array|json_value|json_query|json_modify|json_path_exists)\\b\\s*\\("},{captures:{1:{name:"support.function.logical.sql"}},match:"(?i)\\b(choose|iif|greatest|least)\\b\\s*\\("},{captures:{1:{name:"support.function.mathematical.sql"}},match:"(?i)\\b(abs|acos|asin|atan|atn2|ceiling|cos|cot|degrees|exp|floor|log|log10|pi|power|radians|rand|round|sign|sin|sqrt|square|tan)\\b\\s*\\("},{captures:{1:{name:"support.function.metadata.sql"}},match:"(?i)\\b(app_name|applock_mode|applock_test|assemblyproperty|col_length|col_name|columnproperty|database_principal_id|databasepropertyex|db_id|db_name|file_id|file_idex|file_name|filegroup_id|filegroup_name|filegroupproperty|fileproperty|fulltextcatalogproperty|fulltextserviceproperty|index_col|indexkey_property|indexproperty|object_definition|object_id|object_name|object_schema_name|objectproperty|objectpropertyex|original_db_name|parsename|schema_id|schema_name|scope_identity|serverproperty|stats_date|type_id|type_name|typeproperty)\\b\\s*\\("},{captures:{1:{name:"support.function.ranking.sql"}},match:"(?i)\\b(rank|dense_rank|ntile|row_number)\\b\\s*\\("},{captures:{1:{name:"support.function.rowset.sql"}},match:"(?i)\\b(generate_series|opendatasource|openjson|openrowset|openquery|openxml|predict|string_split)\\b\\s*\\("},{captures:{1:{name:"support.function.security.sql"}},match:"(?i)\\b(certencoded|certprivatekey|current_user|database_principal_id|has_perms_by_name|is_member|is_rolemember|is_srvrolemember|original_login|permissions|pwdcompare|pwdencrypt|schema_id|schema_name|session_user|suser_id|suser_sid|suser_sname|system_user|suser_name|user_id|user_name)\\b\\s*\\("},{captures:{1:{name:"support.function.string.sql"}},match:"(?i)\\b(ascii|char|charindex|concat|difference|format|left|len|lower|ltrim|nchar|nodes|patindex|quotename|replace|replicate|reverse|right|rtrim|soundex|space|str|string_agg|string_escape|string_split|stuff|substring|translate|trim|unicode|upper)\\b\\s*\\("},{captures:{1:{name:"support.function.system.sql"}},match:"(?i)\\b(binary_checksum|checksum|compress|connectionproperty|context_info|current_request_id|current_transaction_id|decompress|error_line|error_message|error_number|error_procedure|error_severity|error_state|formatmessage|get_filestream_transaction_context|getansinull|host_id|host_name|isnull|isnumeric|min_active_rowversion|newid|newsequentialid|rowcount_big|session_context|session_id|xact_state)\\b\\s*\\("},{captures:{1:{name:"support.function.textimage.sql"}},match:"(?i)\\b(patindex|textptr|textvalid)\\b\\s*\\("},{captures:{1:{name:"constant.other.database-name.sql"},2:{name:"constant.other.table-name.sql"}},match:"(\\w+?)\\.(\\w+)"},{include:"#strings"},{include:"#regexps"},{match:"\\b(?i)(abort|abort_after_wait|absent|absolute|accent_sensitivity|acceptable_cursopt|acp|action|activation|add|address|admin|aes_128|aes_192|aes_256|affinity|after|aggregate|algorithm|all_constraints|all_errormsgs|all_indexes|all_levels|all_results|allow_connections|allow_dup_row|allow_encrypted_value_modifications|allow_page_locks|allow_row_locks|allow_snapshot_isolation|alter|altercolumn|always|anonymous|ansi_defaults|ansi_null_default|ansi_null_dflt_off|ansi_null_dflt_on|ansi_nulls|ansi_padding|ansi_warnings|appdomain|append|application|apply|arithabort|arithignore|array|assembly|asymmetric|asynchronous_commit|at|atan2|atomic|attach|attach_force_rebuild_log|attach_rebuild_log|audit|auth_realm|authentication|auto|auto_cleanup|auto_close|auto_create_statistics|auto_drop|auto_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup|backup_priority|base64|basic|batches|batchsize|before|between|bigint|binary|binding|bit|block|blockers|blocksize|bmk|both|break|broker|broker_instance|bucket_count|buffer|buffercount|bulk_logged|by|call|caller|card|case|catalog|catch|cert|certificate|change_retention|change_tracking|change_tracking_context|changes|char|character|character_set|check_expiration|check_policy|checkconstraints|checkindex|checkpoint|checksum|cleanup_policy|clear|clear_port|close|clustered|codepage|collection|column_encryption_key|column_master_key|columnstore|columnstore_archive|colv_80_to_100|colv_100_to_80|commit_differential_base|committed|compatibility_level|compress_all_row_groups|compression|compression_delay|concat_null_yields_null|concatenate|configuration|connect|connection|containment|continue|continue_after_error|contract|contract_name|control|conversation|conversation_group_id|conversation_handle|copy|copy_only|count_rows|counter|create(\\\\s+or\\\\s+alter)?|credential|cross|cryptographic|cryptographic_provider|cube|cursor|cursor_close_on_commit|cursor_default|data|data_compression|data_flush_interval_seconds|data_mirroring|data_purity|data_source|database|database_name|database_snapshot|datafiletype|date_correlation_optimization|date|datefirst|dateformat|date_format|datetime|datetime2|datetimeoffset|day(s)?|db_chaining|dbid|dbidexec|dbo_only|deadlock_priority|deallocate|dec|decimal|declare|decrypt|decrypt_a|decryption|default_database|default_fulltext_language|default_language|default_logon_domain|default_schema|definition|delay|delayed_durability|delimitedtext|density_vector|dependent|des|description|desired_state|desx|differential|digest|disable|disable_broker|disable_def_cnst_chk|disabled|disk|distinct|distributed|distribution|drop|drop_existing|dts_buffers|dump|durability|dynamic|edition|elements|else|emergency|empty|enable|enable_broker|enabled|encoding|encrypted|encrypted_value|encryption|encryption_type|end|endpoint|endpoint_url|enhancedintegrity|entry|error_broker_conversations|errorfile|estimateonly|event|except|exec|executable|execute|exists|expand|expiredate|expiry_date|explicit|external|external_access|failover|failover_mode|failure_condition_level|fast|fast_forward|fastfirstrow|federated_service_account|fetch|field_terminator|fieldterminator|file|filelistonly|filegroup|filegrowth|filename|filestream|filestream_log|filestream_on|filetable|file_format|filter|first_row|fips_flagger|fire_triggers|first|firstrow|float|flush_interval_seconds|fmtonly|following|for|force|force_failover_allow_data_loss|force_service_allow_data_loss|forced|forceplan|formatfile|format_options|format_type|formsof|forward_only|free_cursors|free_exec_context|fullscan|fulltext|fulltextall|fulltextkey|function|generated|get|geography|geometry|global|go|goto|governor|guid|hadoop|hardening|hash|hashed|header_limit|headeronly|health_check_timeout|hidden|hierarchyid|histogram|histogram_steps|hits_cursors|hits_exec_context|hour(s)?|http|identity|identity_value|if|ifnull|ignore|ignore_constraints|ignore_dup_key|ignore_dup_row|ignore_triggers|image|immediate|implicit_transactions|include|include_null_values|incremental|index|inflectional|init|initiator|insensitive|insert|instead|int|integer|integrated|intersect|intermediate|interval_length_minutes|into|inuse_cursors|inuse_exec_context|io|is|isabout|iso_week|isolation|job_tracker_location|json|keep|keep_nulls|keep_replication|keepdefaults|keepfixed|keepidentity|keepnulls|kerberos|key|key_path|key_source|key_store_provider_name|keyset|kill|kilobytes_per_batch|labelonly|langid|language|last|lastrow|leading|legacy_cardinality_estimation|length|level|lifetime|lineage_80_to_100|lineage_100_to_80|listener_ip|listener_port|load|loadhistory|lob_compaction|local|local_service_name|locate|location|lock_escalation|lock_timeout|lockres|log|login|login_type|loop|manual|mark_in_use_for_removal|masked|master|match|matched|max_queue_readers|max_duration|max_outstanding_io_per_volume|maxdop|maxerrors|maxlength|maxtransfersize|max_plans_per_query|max_storage_size_mb|mediadescription|medianame|mediapassword|memogroup|memory_optimized|merge|message|message_forward_size|message_forwarding|microsecond|millisecond|minute(s)?|mirror_address|misses_cursors|misses_exec_context|mixed|modify|money|month|move|multi_user|must_change|name|namespace|nanosecond|native|native_compilation|nchar|ncharacter|nested_triggers|never|new_account|new_broker|newname|next|no|no_browsetable|no_checksum|no_compression|no_infomsgs|no_triggers|no_truncate|nocount|noexec|noexpand|noformat|noinit|nolock|nonatomic|nonclustered|nondurable|none|norecompute|norecovery|noreset|norewind|noskip|not|notification|nounload|now|nowait|ntext|ntlm|nulls|numeric|numeric_roundabort|nvarchar|object|objid|oem|offline|old_account|online|operation_mode|open|openjson|optimistic|option|orc|out|outer|output|over|override|owner|ownership|pad_index|page|page_checksum|page_verify|pagecount|paglock|param|parameter_sniffing|parameter_type_expansion|parameterization|parquet|parseonly|partial|partition|partner|password|path|pause|percentage|permission_set|persisted|period|physical_only|plan_forcing_mode|policy|pool|population|ports|preceding|precision|predicate|presume_abort|primary|primary_role|print|prior|priority |priority_level|private|proc(edure)?|procedure_name|profile|provider|quarter|query_capture_mode|query_governor_cost_limit|query_optimizer_hotfixes|query_store|queue|quoted_identifier|raiserror|range|raw|rcfile|rc2|rc4|rc4_128|rdbms|read_committed_snapshot|read|read_only|read_write|readcommitted|readcommittedlock|readonly|readpast|readuncommitted|readwrite|real|rebuild|receive|recmodel_70backcomp|recompile|reconfigure|recovery|recursive|recursive_triggers|redo_queue|reject_sample_value|reject_type|reject_value|relative|remote|remote_data_archive|remote_proc_transactions|remote_service_name|remove|removed_cursors|removed_exec_context|reorganize|repeat|repeatable|repeatableread|replace|replica|replicated|replnick_100_to_80|replnickarray_80_to_100|replnickarray_100_to_80|required|required_cursopt|resample|reset|resource|resource_manager_location|respect|restart|restore|restricted_user|resume|retaindays|retention|return|revert|rewind|rewindonly|returns|robust|role|rollup|root|round_robin|route|row|rowdump|rowguidcol|rowlock|row_terminator|rows|rows_per_batch|rowsets_only|rowterminator|rowversion|rsa_1024|rsa_2048|rsa_3072|rsa_4096|rsa_512|safe|safety|sample|save|scalar|schema|schemabinding|scoped|scroll|scroll_locks|sddl|second|secexpr|seconds|secondary|secondary_only|secondary_role|secret|security|securityaudit|selective|self|send|sent|sequence|serde_method|serializable|server|service|service_broker|service_name|service_objective|session_timeout|session|sessions|seterror|setopts|sets|shard_map_manager|shard_map_name|sharded|shared_memory|shortest_path|show_statistics|showplan_all|showplan_text|showplan_xml|showplan_xml_with_recompile|shrinkdb|shutdown|sid|signature|simple|single_blob|single_clob|single_nclob|single_user|singleton|site|size|size_based_cleanup_mode|skip|smalldatetime|smallint|smallmoney|snapshot|snapshot_import|snapshotrestorephase|soap|softnuma|sort_in_tempdb|sorted_data|sorted_data_reorg|spatial|sql|sql_bigint|sql_binary|sql_bit|sql_char|sql_date|sql_decimal|sql_double|sql_float|sql_guid|sql_handle|sql_longvarbinary|sql_longvarchar|sql_numeric|sql_real|sql_smallint|sql_time|sql_timestamp|sql_tinyint|sql_tsi_day|sql_tsi_frac_second|sql_tsi_hour|sql_tsi_minute|sql_tsi_month|sql_tsi_quarter|sql_tsi_second|sql_tsi_week|sql_tsi_year|sql_type_date|sql_type_time|sql_type_timestamp|sql_varbinary|sql_varchar|sql_variant|sql_wchar|sql_wlongvarchar|ssl|ssl_port|standard|standby|start|start_date|started|stat_header|state|statement|static|statistics|statistics_incremental|statistics_norecompute|statistics_only|statman|stats|stats_stream|status|stop|stop_on_error|stopat|stopatmark|stopbeforemark|stoplist|stopped|string_delimiter|subject|supplemental_logging|supported|suspend|symmetric|synchronous_commit|synonym|sysname|system|system_time|system_versioning|table|tableresults|tablock|tablockx|take|tape|target|target_index|target_partition|target_recovery_time|tcp|temporal_history_retention|text|textimage_on|then|thesaurus|throw|time|timeout|timestamp|tinyint|to|top|torn_page_detection|track_columns_updated|trailing|tran|transaction|transfer|transform_noise_words|triple_des|triple_des_3key|truncate|trustworthy|try|tsql|two_digit_year_cutoff|type|type_desc|type_warning|tzoffset|uid|unbounded|uncommitted|unique|uniqueidentifier|unlimited|unload|unlock|unsafe|updlock|url|use|useplan|useroptions|use_type_default|using|utcdatetime|valid_xml|validation|value|values|varbinary|varchar|verbose|verifyonly|version|view_metadata|virtual_device|visiblity|wait_at_low_priority|waitfor|webmethod|week|weekday|weight|well_formed_xml|when|while|widechar|widechar_ansi|widenative|window|windows|with|within|within group|witness|without|without_array_wrapper|workload|wsdl|xact_abort|xlock|xml|xmlschema|xquery|xsinil|year|zone)\\b",name:"keyword.other.sql"},{captures:{1:{name:"punctuation.section.scope.begin.sql"},2:{name:"punctuation.section.scope.end.sql"}},comment:"Allow for special ↩ behavior",match:"(\\()(\\))",name:"meta.block.sql"}],repository:{"comment-block":{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.sql"}},end:"\\*/",name:"comment.block",patterns:[{include:"#comment-block"}]},comments:{patterns:[{begin:"(^[ \\t]+)?(?=--)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.sql"}},end:"(?!\\G)",patterns:[{begin:"--",beginCaptures:{0:{name:"punctuation.definition.comment.sql"}},end:"\\n",name:"comment.line.double-dash.sql"}]},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.sql"}},end:"(?!\\G)",patterns:[]},{include:"#comment-block"}]},regexps:{patterns:[{begin:"/(?=\\S.*/)",beginCaptures:{0:{name:"punctuation.definition.string.begin.sql"}},end:"/",endCaptures:{0:{name:"punctuation.definition.string.end.sql"}},name:"string.regexp.sql",patterns:[{include:"#string_interpolation"},{match:"\\\\/",name:"constant.character.escape.slash.sql"}]},{begin:"%r\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.sql"}},comment:"We should probably handle nested bracket pairs!?! -- Allan",end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.sql"}},name:"string.regexp.modr.sql",patterns:[{include:"#string_interpolation"}]}]},string_escape:{match:"\\\\.",name:"constant.character.escape.sql"},string_interpolation:{captures:{1:{name:"punctuation.definition.string.begin.sql"},3:{name:"punctuation.definition.string.end.sql"}},match:"(#\\{)([^\\}]*)(\\})",name:"string.interpolated.sql"},strings:{patterns:[{captures:{2:{name:"punctuation.definition.string.begin.sql"},3:{name:"punctuation.definition.string.end.sql"}},comment:"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",match:"(N)?(')[^']*(')",name:"string.quoted.single.sql"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.sql"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.single.sql",patterns:[{include:"#string_escape"}]},{captures:{1:{name:"punctuation.definition.string.begin.sql"},2:{name:"punctuation.definition.string.end.sql"}},comment:"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",match:"(`)[^`\\\\]*(`)",name:"string.quoted.other.backtick.sql"},{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.sql"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.other.backtick.sql",patterns:[{include:"#string_escape"}]},{captures:{1:{name:"punctuation.definition.string.begin.sql"},2:{name:"punctuation.definition.string.end.sql"}},comment:"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",match:'(")[^"#]*(")',name:"string.quoted.double.sql"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.sql"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.double.sql",patterns:[{include:"#string_interpolation"}]},{begin:"%\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.sql"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.sql"}},name:"string.other.quoted.brackets.sql",patterns:[{include:"#string_interpolation"}]}]}},scopeName:"source.sql"});var t=[e];export{t as default}; diff --git a/assets/chunks/ssh-config.BH1M7C1g.js b/assets/chunks/ssh-config.BH1M7C1g.js new file mode 100644 index 000000000..6660a2883 --- /dev/null +++ b/assets/chunks/ssh-config.BH1M7C1g.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"SSH Config",fileTypes:["ssh_config",".ssh/config","sshd_config"],name:"ssh-config",patterns:[{match:"\\b(A(cceptEnv|dd(ressFamily|KeysToAgent)|llow(AgentForwarding|Groups|StreamLocalForwarding|TcpForwarding|Users)|uth(enticationMethods|orized((Keys(Command(User)?|File)|Principals(Command(User)?|File)))))|B(anner|atchMode|ind(Address|Interface))|C(anonical(Domains|ize(FallbackLocal|Hostname|MaxDots|PermittedCNAMEs))|ertificateFile|hallengeResponseAuthentication|heckHostIP|hrootDirectory|iphers?|learAllForwardings|ientAlive(CountMax|Interval)|ompression(Level)?|onnect(Timeout|ionAttempts)|ontrolMaster|ontrolPath|ontrolPersist)|D(eny(Groups|Users)|isableForwarding|ynamicForward)|E(nableSSHKeysign|scapeChar|xitOnForwardFailure|xposeAuthInfo)|F(ingerprintHash|orceCommand|orward(Agent|X11(Timeout|Trusted)?))|G(atewayPorts|SSAPI(Authentication|CleanupCredentials|ClientIdentity|DelegateCredentials|KeyExchange|RenewalForcesRekey|ServerIdentity|StrictAcceptorCheck|TrustDns)|atewayPorts|lobalKnownHostsFile)|H(ashKnownHosts|ost(based(AcceptedKeyTypes|Authentication|KeyTypes|UsesNameFromPacketOnly)|Certificate|Key(Agent|Algorithms|Alias)?|Name))|I(dentit(iesOnly|y(Agent|File))|gnore(Rhosts|Unknown|UserKnownHosts)|nclude|PQoS)|K(bdInteractive(Authentication|Devices)|erberos(Authentication|GetAFSToken|OrLocalPasswd|TicketCleanup)|exAlgorithms)|L(istenAddress|ocal(Command|Forward)|oginGraceTime|ogLevel)|M(ACs|atch|ax(AuthTries|Sessions|Startups))|N(oHostAuthenticationForLocalhost|umberOfPasswordPrompts)|P(KCS11Provider|asswordAuthentication|ermit(EmptyPasswords|LocalCommand|Open|RootLogin|TTY|Tunnel|User(Environment|RC))|idFile|ort|referredAuthentications|rint(LastLog|Motd)|rotocol|roxy(Command|Jump|UseFdpass)|ubkey(AcceptedKeyTypes|Authentication))|R(Domain|SAAuthentication|ekeyLimit|emote(Command|Forward)|equestTTY|evoked(HostKeys|Keys)|hostsRSAAuthentication)|S(endEnv|erverAlive(CountMax|Interval)|treamLocalBind(Mask|Unlink)|trict(HostKeyChecking|Modes)|ubsystem|yslogFacility)|T(CPKeepAlive|rustedUserCAKeys|unnel(Device)?)|U(pdateHostKeys|se(BlacklistedKeys|DNS|Keychain|PAM|PrivilegedPort|r(KnownHostsFile)?))|V(erifyHostKeyDNS|ersionAddendum|isualHostKey)|X(11(DisplayOffset|Forwarding|UseLocalhost)|AuthLocation))\\b",name:"keyword.other.ssh-config"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ssh-config"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.ssh-config"}},end:"\\n",name:"comment.line.number-sign.ssh-config"}]},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ssh-config"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.ssh-config"}},end:"\\n",name:"comment.line.double-slash.ssh-config"}]},{captures:{1:{name:"storage.type.ssh-config"},2:{name:"entity.name.section.ssh-config"},3:{name:"meta.toc-list.ssh-config"}},match:"(?:^| |\\t)(Host)\\s+((.*))$"},{match:"\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b",name:"constant.numeric.ssh-config"},{match:"\\b[0-9]+\\b",name:"constant.numeric.ssh-config"},{match:"\\b(yes|no)\\b",name:"constant.language.ssh-config"},{match:"\\b[A-Z_]+\\b",name:"constant.language.ssh-config"}],scopeName:"source.ssh-config"});var n=[e];export{n as default}; diff --git a/assets/chunks/stata.DCIeX9IZ.js b/assets/chunks/stata.DCIeX9IZ.js new file mode 100644 index 000000000..6eede8fe4 --- /dev/null +++ b/assets/chunks/stata.DCIeX9IZ.js @@ -0,0 +1,3 @@ +import t from"./sql.DbK06e1c.js";const e=Object.freeze({displayName:"Stata",fileTypes:["do","ado","mata"],foldingStartMarker:"\\{\\s*$",foldingStopMarker:"^\\s*\\}",name:"stata",patterns:[{include:"#ascii-regex-functions"},{include:"#unicode-regex-functions"},{include:"#constants"},{include:"#functions"},{include:"#comments"},{include:"#subscripts"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{include:"#builtin_variables"},{include:"#macro-commands"},{comment:"keywords that delimit flow conditionals",match:"\\b(if|else if|else)\\b",name:"keyword.control.conditional.stata"},{captures:{1:{name:"storage.type.scalar.stata"}},match:"^\\s*(sca(lar|la|l)?(\\s+de(fine|fin|fi|f)?)?)\\s+(?!(drop|dir?|l(ist|is|i)?)\\s+)"},{begin:"\\b(mer(ge|g)?)\\s+(1|m|n)(:)(1|m|n)",beginCaptures:{1:{name:"keyword.control.flow.stata"},3:{patterns:[{include:"#constants"},{match:"m|n",name:""}]},4:{name:"punctuation.separator.key-value"},5:{patterns:[{include:"#constants"},{match:"m|n",name:""}]}},end:"using",patterns:[{include:"#builtin_variables"},{include:"#macro-local"},{include:"#macro-global"},{include:"#comments"}]},{captures:{1:{name:"keyword.control.flow.stata"},2:{patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},3:{name:"keyword.control.flow.stata"}},match:"\\b(foreach)\\s+((?!in|of).+)\\s+(in|of var(list|lis|li|l)?|of new(list|lis|li|l)?|of num(list|lis|li|l)?)\\b"},{begin:"\\b(foreach)\\s+((?!in|of).+)\\s+(of loc(al|a)?|of glo(bal|ba|b)?)\\b\\s*",beginCaptures:{1:{name:"keyword.control.flow.stata"},2:{patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},3:{name:"keyword.control.flow.stata"}},end:"(?=\\s*\\{)",patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(forvalues|forvalue|forvalu|forval|forva|forv)\\s*",beginCaptures:{1:{name:"keyword.control.flow.stata"}},end:"\\s*(=)\\s*([^\\{]+)\\s*|(?=\\n)",endCaptures:{1:{name:"keyword.operator.assignment.stata"},2:{patterns:[{include:"#constants"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"}]}},patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{comment:"keywords that delimit loops",match:"\\b(while|continue)\\b",name:"keyword.control.flow.stata"},{captures:{1:{name:"keyword.other.stata"}},comment:"keywords that haven't fit into other groups (yet).",match:"\\b(as|ass|asse|asser|assert)\\b"},{comment:"prefixes that require a colon",match:"\\b(by(sort|sor|so|s)?|statsby|rolling|bootstrap|jackknife|permute|simulate|svy|mi est(imate|imat|ima|im|i)?|nestreg|stepwise|xi|fp|mfp|vers(ion|io|i)?)\\b",name:"storage.type.function.stata"},{comment:"prefixes that don't need a colon",match:"\\b(qui(etly|etl|et|e)?|n(oisily|oisil|oisi|ois|oi|o)?|cap(ture|tur|tu|t)?)\\b:?",name:"keyword.control.flow.stata"},{captures:{1:{name:"storage.type.function.stata"},3:{name:"storage.type.function.stata"},7:{name:"entity.name.function.stata"}},match:"\\s*(pr(ogram|ogra|ogr|og|o)?)\\s+((di(r)?|drop|l(ist|is|i)?)\\s+)([\\w&&[^0-9]]\\w{0,31})"},{begin:"^\\s*(pr(ogram|ogra|ogr|og|o)?)\\s+(de(fine|fin|fi|f)?\\s+)?",beginCaptures:{1:{name:"storage.type.function.stata"},3:{name:"storage.type.function.stata"}},end:"(?=,|\\n|/)",patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"entity.name.function.stata"},{match:"[^A-za-z_0-9,\\n/ ]+",name:"invalid.illegal.name.stata"}]},{captures:{1:"keyword.functions.data.stata.test"},match:"\\b(form(at|a)?)\\s*([\\w&&[^0-9]]\\w{0,31})*\\s*(%)(-)?(0)?([0-9]+)(.)([0-9]+)(e|f|g)(c)?"},{include:"#braces-with-error"},{begin:"(?=syntax)",end:"\\n",patterns:[{begin:"syntax",beginCaptures:{0:{name:"keyword.functions.program.stata"}},comment:"color before the comma",end:"(?=,|\\n)",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{match:"\\[",name:"punctuation.definition.parameters.begin.stata"},{match:"\\]",name:"punctuation.definition.parameters.end.stata"},{match:"\\b(varlist|varname|newvarlist|newvarname|namelist|name|anything)\\b",name:"entity.name.type.class.stata"},{captures:{2:{name:"entity.name.type.class.stata"},3:{name:"keyword.operator.arithmetic.stata"}},match:"\\b((if|in|using|fweight|aweight|pweight|iweight))\\b(/)?"},{captures:{1:{name:"keyword.operator.arithmetic.stata"},2:{name:"entity.name.type.class.stata"}},match:"(/)?(exp)"},{include:"#constants"},{include:"#operators"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"}]},{begin:",",beginCaptures:{0:{name:"punctuation.definition.variable.begin.stata"}},comment:"things to color after the comma",end:"(?=\\n)",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{begin:"([^\\s\\[\\]]+)(\\()",beginCaptures:{1:{comment:"these are the names that become macros",patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},2:{name:"keyword.operator.parentheses.stata"}},comment:"color options with parentheses",end:"\\)",endCaptures:{0:{name:"keyword.operator.parentheses.stata"}},patterns:[{captures:{0:{name:"support.type.stata"}},comment:"the first word is often a type",match:"\\b(integer|intege|integ|inte|int|real|string|strin|stri|str)\\b"},{include:"#constants"},{include:"#operators"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"}]},{include:"#macro-local-identifiers"},{include:"#constants"},{include:"#operators"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"}]}]},{captures:{1:{name:"keyword.functions.data.stata"}},comment:"one-word commands",match:"\\b(sa(v|ve)|saveold|destring|tostring|u(se|s)?|note(s)?|form(at|a)?)\\b"},{comment:"programming commands",match:"\\b(exit|end)\\b",name:"keyword.functions.data.stata"},{captures:{1:{name:"keyword.functions.data.stata"},2:{patterns:[{include:"#macro-local"}]},4:{name:"invalid.illegal.name.stata"},5:{name:"keyword.operator.assignment.stata"}},match:"\\b(replace)\\s+([^=]+)\\s*((==)|(=))"},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"support.type.stata"},5:{patterns:[{include:"#reserved-names"},{include:"#macro-local"}]},7:{name:"invalid.illegal.name.stata"},8:{name:"keyword.operator.assignment.stata"}},match:"\\b(g(enerate|enerat|enera|ener|ene|en|e)?|egen)\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\s+)?([^=\\s]+)\\s*((==)|(=))"},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"support.type.stata"}},match:"\\b(set ty(pe|p)?)\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)?\\s+)\\b"},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"keyword.functions.data.stata"},6:{name:"punctuation.definition.string.begin.stata"},7:{patterns:[{include:"#string-compound"},{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"},{match:"[^`\\$]{81,}",name:"invalid.illegal.name.stata"},{match:".",name:"string.quoted.double.compound.stata"}]},8:{name:"punctuation.definition.string.begin.stata"}},match:'\\b(la(bel|be|b)?)\\s+(var(iable|iabl|iab|ia|i)?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(`")(.+)("\')'},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"keyword.functions.data.stata"},6:{name:"punctuation.definition.string.begin.stata"},7:{patterns:[{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"},{match:"[^`\\$]{81,}",name:"invalid.illegal.name.stata"},{match:".",name:"string.quoted.double.stata"}]},8:{name:"punctuation.definition.string.begin.stata"}},match:'\\b(la(bel|be|b)?)\\s+(var(iable|iabl|iab|ia|i)?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(")(.+)(")'},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"keyword.functions.data.stata"}},match:"\\b(la(bel|be|b)?)\\s+(da(ta|t)?|var(iable|iabl|iab|ia|i)?|de(f|fi|fin|fine)?|val(ues|ue|u)?|di(r)?|l(ist|is|i)?|copy|drop|save|lang(uage|uag|ua|u)?)\\b"},{begin:"\\b(drop|keep)\\b(?!\\s+(if|in)\\b)",beginCaptures:{1:{name:"keyword.functions.data.stata"}},end:"\\n",patterns:[{match:"\\b(if|in)\\b",name:"invalid.illegal.name.stata"},{include:"#comments"},{include:"#macro-local"},{include:"#macro-global"},{include:"#operators"}]},{captures:{1:{name:"keyword.functions.data.stata"},2:{name:"keyword.functions.data.stata"}},match:"\\b(drop|keep)\\s+(if|in)\\b"},{begin:"^\\s*mata:?\\s*$",comment:"won't match single-line Mata statements",end:"^\\s*end\\s*$\\n?",name:"meta.embedded.block.mata",patterns:[{match:"(?<![^$\\s])(version|pragma|if|else|for|while|do|break|continue|goto|return)(?=\\s)",name:"keyword.control.mata"},{captures:{1:{name:"storage.type.eltype.mata"},4:{name:"storage.type.orgtype.mata"}},match:"\\b(transmorphic|string|numeric|real|complex|(pointer(\\([^)]+\\))?))\\s+(matrix|vector|rowvector|colvector|scalar)\\b",name:"storage.type.mata"},{comment:"need to end with whitespace character here or last group doesn't match",match:"\\b(transmorphic|string|numeric|real|complex|(pointer(\\([^)]+\\))?))\\s",name:"storage.type.eltype.mata"},{match:"\\b(matrix|vector|rowvector|colvector|scalar)\\b",name:"storage.type.orgtype.mata"},{match:"\\!|\\+\\+|\\-\\-|\\&|\\'|\\?|\\\\|\\:\\:|\\,|\\.\\.|\\||\\=|\\=\\=|\\>\\=|\\<\\=|\\<|\\>|\\!\\=|\\#|\\+|\\-|\\*|\\^|\\/",name:"keyword.operator.mata"},{include:"$self"}]},{begin:"\\b(odbc)\\b",beginCaptures:{0:{name:"keyword.control.flow.stata"}},end:"\\n",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{begin:'(exec?)(\\(")',beginCaptures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"}},end:'"\\)',endCaptures:{0:{name:"punctuation.definition.parameters.end.stata"}},patterns:[{include:"source.sql"}]},{include:"$self"}]},{include:"#commands-other"}],repository:{"ascii-regex-character-class":{patterns:[{match:"\\\\[\\*\\+\\?\\-\\.\\^\\$\\|\\[\\]\\(\\)\\\\]",name:"constant.character.escape.backslash.stata"},{match:"\\.",name:"constant.character.character-class.stata"},{match:"\\\\.",name:"illegal.invalid.character-class.stata"},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.stata"},2:{name:"keyword.operator.negation.stata"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.stata"}},name:"constant.other.character-class.set.stata",patterns:[{include:"#ascii-regex-character-class"},{captures:{2:{name:"constant.character.escape.backslash.stata"},4:{name:"constant.character.escape.backslash.stata"}},match:"((\\\\.)|.)\\-((\\\\.)|[^\\]])",name:"constant.other.character-class.range.stata"}]}]},"ascii-regex-functions":{patterns:[{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#ascii-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"invalid.illegal.punctuation.stata"},9:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexm with regular quotes i.e. " ',match:`\\b(regexm)(\\()([^,]+)(,)\\s*(")([^"]+)("(')?)\\s*(\\))`},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#ascii-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"punctuation.definition.parameters.end.stata"}},comment:"color regexm with compound quotes",match:'\\b(regexm)(\\()([^,]+)(,)\\s*(`")([^"]+)("\')\\s*(\\))'},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#ascii-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"invalid.illegal.punctuation.stata"},9:{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},10:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexr with regular quotes i.e. " ',match:`\\b(regexr)(\\()([^,]+)(,)\\s*(")([^"]+)("(')?)\\s*([^\\)]*)(\\))`},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#ascii-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},9:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexr with compound quotes i.e. `"text"\' ',match:'\\b(regexr)(\\()([^,]+)(,)\\s*(`")([^"]+)("\')\\s*([^\\)]*)(\\))'}]},"ascii-regex-internals":{patterns:[{match:"\\^",name:"keyword.control.anchor.stata"},{comment:"matched when not a global, but must be ascii",match:"\\$(?![a-zA-Z_\\{])",name:"keyword.control.anchor.stata"},{match:"[\\?\\+\\*]",name:"keyword.control.quantifier.stata"},{match:"\\|",name:"keyword.control.or.stata"},{begin:"(\\()(?=\\?|\\*|\\+)",beginCaptures:{1:{name:"keyword.operator.group.stata"}},contentName:"invalid.illegal.regexm.stata",end:"\\)",endCaptures:{0:{name:"keyword.operator.group.stata"}}},{begin:"(\\()",beginCaptures:{1:{name:"keyword.operator.group.stata"}},end:"(\\))",endCaptures:{1:{name:"keyword.operator.group.stata"}},patterns:[{include:"#ascii-regex-internals"}]},{include:"#ascii-regex-character-class"},{include:"#macro-local"},{include:"#macro-global"},{comment:"NOTE: Error if I have .+ No idea why but it works fine it seems with just .",match:".",name:"string.quoted.stata"}]},"braces-with-error":{patterns:[{begin:"(\\{)\\s*([^\\n]*)(?=\\n)",beginCaptures:{1:{name:"keyword.control.block.begin.stata"},2:{patterns:[{include:"#comments"},{match:"[^\\n]+",name:"illegal.invalid.name.stata"}]}},comment:"correct with nothing else on the line but whitespace; before and after; before; after; correct",end:'^\\s*(\\})\\s*$|^\\s*([^\\*"\\}]+)\\s+(\\})\\s*([^\\*"\\}/\\n]+)|^\\s*([^"\\*\\}]+)\\s+(\\})|\\s*(\\})\\s*([^"\\*\\}/\\n]+)|(\\})$',endCaptures:{1:{name:"keyword.control.block.end.stata"},2:{name:"invalid.illegal.name.stata"},3:{name:"keyword.control.block.end.stata"},4:{name:"invalid.illegal.name.stata"},5:{name:"invalid.illegal.name.stata"},6:{name:"keyword.control.block.end.stata"},7:{name:"keyword.control.block.end.stata"},8:{name:"invalid.illegal.name.stata"},9:{name:"keyword.control.block.end.stata"}},patterns:[{include:"$self"}]}]},"braces-without-error":{patterns:[{begin:"\\{",beginCaptures:{0:{name:"keyword.control.block.begin.stata"}},end:"\\}",endCaptures:{0:{name:"keyword.control.block.end.stata"}}}]},builtin_types:{patterns:[{match:"\\b(byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\b",name:"support.type.stata"}]},builtin_variables:{patterns:[{match:"\\b(_b|_coef|_cons|_n|_N|_rc|_se)\\b",name:"variable.object.stata"}]},"commands-other":{patterns:[{comment:"Add on commands",match:"\\b(reghdfe|ivreghdfe|ivreg2|outreg|gcollapse|gcontract|gegen|gisid|glevelsof|gquantiles)\\b",name:"keyword.control.flow.stata"},{comment:"Built in commands",match:"\\b(about|ac|acprplot|ado|adopath|adoupdate|alpha|ameans|an|ano|anov|anova|anova_terms|anovadef|aorder|ap|app|appe|appen|append|arch|arch_dr|arch_estat|arch_p|archlm|areg|areg_p|args|arima|arima_dr|arima_estat|arima_p|asmprobit|asmprobit_estat|asmprobit_lf|asmprobit_mfx__dlg|asmprobit_p|avplot|avplots|bcskew0|bgodfrey|binreg|bip0_lf|biplot|bipp_lf|bipr_lf|bipr_p|biprobit|bitest|bitesti|bitowt|blogit|bmemsize|boot|bootsamp|boxco_l|boxco_p|boxcox|boxcox_p|bprobit|br|break|brier|bro|brow|brows|browse|brr|brrstat|bs|bsampl_w|bsample|bsqreg|bstat|bstrap|ca|ca_estat|ca_p|cabiplot|camat|canon|canon_estat|canon_p|caprojection|cat|cc|cchart|cci|cd|censobs_table|centile|cf|char|chdir|checkdlgfiles|checkestimationsample|checkhlpfiles|checksum|chelp|ci|cii|cl|class|classutil|clear|cli|clis|clist|clog|clog_lf|clog_p|clogi|clogi_sw|clogit|clogit_lf|clogit_p|clogitp|clogl_sw|cloglog|clonevar|clslistarray|cluster|cluster_measures|cluster_stop|cluster_tree|cluster_tree_8|clustermat|cmdlog|cnr|cnre|cnreg|cnreg_p|cnreg_sw|cnsreg|codebook|collaps4|collapse|colormult_nb|colormult_nw|compare|compress|conf|confi|confir|confirm|conren|cons|const|constr|constra|constrai|constrain|constraint|contract|copy|copyright|copysource|cor|corc|corr|corr2data|corr_anti|corr_kmo|corr_smc|corre|correl|correla|correlat|correlate|corrgram|cou|coun|count|cprplot|crc|cret|cretu|cretur|creturn|cross|cs|cscript|cscript_log|csi|ct|ct_is|ctset|ctst_st|cttost|cumsp|cumul|cusum|cutil|d|datasig|datasign|datasigna|datasignat|datasignatu|datasignatur|datasignature|datetof|db|dbeta|de|dec|deco|decod|decode|deff|des|desc|descr|descri|describ|describe|dfbeta|dfgls|dfuller|di|di_g|dir|dirstats|dis|discard|disp|disp_res|disp_s|displ|displa|display|do|doe|doed|doedi|doedit|dotplot|dprobit|drawnorm|ds|ds_util|dstdize|duplicates|durbina|dwstat|dydx|ed|edi|edit|eivreg|emdef|en|enc|enco|encod|encode|eq|erase|ereg|ereg_lf|ereg_p|ereg_sw|ereghet|ereghet_glf|ereghet_glf_sh|ereghet_gp|ereghet_ilf|ereghet_ilf_sh|ereghet_ip|eret|eretu|eretur|ereturn|err|erro|error|est|est_cfexist|est_cfname|est_clickable|est_expand|est_hold|est_table|est_unhold|est_unholdok|estat|estat_default|estat_summ|estat_vce_only|esti|estimates|etodow|etof|etomdy|expand|expandcl|fac|fact|facto|factor|factor_estat|factor_p|factor_pca_rotated|factor_rotate|factormat|fcast|fcast_compute|fcast_graph|fdades|fdadesc|fdadescr|fdadescri|fdadescrib|fdadescribe|fdasav|fdasave|fdause|fh_st|file|filefilter|fillin|find_hlp_file|findfile|findit|fit|fl|fli|flis|flist|fpredict|frac_adj|frac_chk|frac_cox|frac_ddp|frac_dis|frac_dv|frac_in|frac_mun|frac_pp|frac_pq|frac_pv|frac_wgt|frac_xo|fracgen|fracplot|fracpoly|fracpred|fron_ex|fron_hn|fron_p|fron_tn|fron_tn2|frontier|ftodate|ftoe|ftomdy|ftowdate|gamhet_glf|gamhet_gp|gamhet_ilf|gamhet_ip|gamma|gamma_d2|gamma_p|gamma_sw|gammahet|gdi_hexagon|gdi_spokes|genrank|genstd|genvmean|gettoken|gladder|glim_l01|glim_l02|glim_l03|glim_l04|glim_l05|glim_l06|glim_l07|glim_l08|glim_l09|glim_l10|glim_l11|glim_l12|glim_lf|glim_mu|glim_nw1|glim_nw2|glim_nw3|glim_p|glim_v1|glim_v2|glim_v3|glim_v4|glim_v5|glim_v6|glim_v7|glm|glm_p|glm_sw|glmpred|glogit|glogit_p|gmeans|gnbre_lf|gnbreg|gnbreg_p|gomp_lf|gompe_sw|gomper_p|gompertz|gompertzhet|gomphet_glf|gomphet_glf_sh|gomphet_gp|gomphet_ilf|gomphet_ilf_sh|gomphet_ip|gphdot|gphpen|gphprint|gprefs|gprobi_p|gprobit|gr|gr7|gr_copy|gr_current|gr_db|gr_describe|gr_dir|gr_draw|gr_draw_replay|gr_drop|gr_edit|gr_editviewopts|gr_example|gr_example2|gr_export|gr_print|gr_qscheme|gr_query|gr_read|gr_rename|gr_replay|gr_save|gr_set|gr_setscheme|gr_table|gr_undo|gr_use|graph|grebar|greigen|grmeanby|gs_fileinfo|gs_filetype|gs_graphinfo|gs_stat|gsort|gwood|h|hareg|hausman|haver|he|heck_d2|heckma_p|heckman|heckp_lf|heckpr_p|heckprob|hel|help|hereg|hetpr_lf|hetpr_p|hetprob|hettest|hexdump|hilite|hist|histogram|hlogit|hlu|hmeans|hotel|hotelling|hprobit|hreg|hsearch|icd9|icd9_ff|icd9p|iis|impute|imtest|inbase|include|inf|infi|infil|infile|infix|inp|inpu|input|ins|insheet|insp|inspe|inspec|inspect|integ|inten|intreg|intreg_p|intrg2_ll|intrg_ll|intrg_ll2|ipolate|iqreg|ir|irf|irf_create|irfm|iri|is_svy|is_svysum|isid|istdize|ivprobit|ivprobit_p|ivreg|ivreg_footnote|ivtob_lf|ivtobit|ivtobit_p|jacknife|jknife|jkstat|joinby|kalarma1|kap|kapmeier|kappa|kapwgt|kdensity|ksm|ksmirnov|ktau|kwallis|labelbook|ladder|levelsof|leverage|lfit|lfit_p|li|lincom|line|linktest|lis|list|lloghet_glf|lloghet_glf_sh|lloghet_gp|lloghet_ilf|lloghet_ilf_sh|lloghet_ip|llogi_sw|llogis_p|llogist|llogistic|llogistichet|lnorm_lf|lnorm_sw|lnorma_p|lnormal|lnormalhet|lnormhet_glf|lnormhet_glf_sh|lnormhet_gp|lnormhet_ilf|lnormhet_ilf_sh|lnormhet_ip|lnskew0|loadingplot|(?<!\\.)log|logi|logis_lf|logistic|logistic_p|logit|logit_estat|logit_p|loglogs|logrank|loneway|lookfor|lookup|lowess|lpredict|lrecomp|lroc|lrtest|ls|lsens|lsens_x|lstat|ltable|ltriang|lv|lvr2plot|m|ma|mac|macr|macro|makecns|man|manova|manovatest|mantel|mark|markin|markout|marksample|mat|mat_capp|mat_order|mat_put_rr|mat_rapp|mata|mata_clear|mata_describe|mata_drop|mata_matdescribe|mata_matsave|mata_matuse|mata_memory|mata_mlib|mata_mosave|mata_rename|mata_which|matalabel|matcproc|matlist|matname|matr|matri|matrix|matrix_input__dlg|matstrik|mcc|mcci|md0_|md1_|md1debug_|md2_|md2debug_|mds|mds_estat|mds_p|mdsconfig|mdslong|mdsmat|mdsshepard|mdytoe|mdytof|me_derd|mean|means|median|memory|memsize|mfp|mfx|mhelp|mhodds|minbound|mixed_ll|mixed_ll_reparm|mkassert|mkdir|mkmat|mkspline|ml|ml_adjs|ml_bhhhs|ml_c_d|ml_check|ml_clear|ml_cnt|ml_debug|ml_defd|ml_e0|ml_e0_bfgs|ml_e0_cycle|ml_e0_dfp|ml_e0i|ml_e1|ml_e1_bfgs|ml_e1_bhhh|ml_e1_cycle|ml_e1_dfp|ml_e2|ml_e2_cycle|ml_ebfg0|ml_ebfr0|ml_ebfr1|ml_ebh0q|ml_ebhh0|ml_ebhr0|ml_ebr0i|ml_ecr0i|ml_edfp0|ml_edfr0|ml_edfr1|ml_edr0i|ml_eds|ml_eer0i|ml_egr0i|ml_elf|ml_elf_bfgs|ml_elf_bhhh|ml_elf_cycle|ml_elf_dfp|ml_elfi|ml_elfs|ml_enr0i|ml_enrr0|ml_erdu0|ml_erdu0_bfgs|ml_erdu0_bhhh|ml_erdu0_bhhhq|ml_erdu0_cycle|ml_erdu0_dfp|ml_erdu0_nrbfgs|ml_exde|ml_footnote|ml_geqnr|ml_grad0|ml_graph|ml_hbhhh|ml_hd0|ml_hold|ml_init|ml_inv|ml_log|ml_max|ml_mlout|ml_mlout_8|ml_model|ml_nb0|ml_opt|ml_p|ml_plot|ml_query|ml_rdgrd|ml_repor|ml_s_e|ml_score|ml_searc|ml_technique|ml_unhold|mleval|mlf_|mlmatbysum|mlmatsum|mlog|mlogi|mlogit|mlogit_footnote|mlogit_p|mlopts|mlsum|mlvecsum|mnl0_|mor|more|mov|move|mprobit|mprobit_lf|mprobit_p|mrdu0_|mrdu1_|mvdecode|mvencode|mvreg|mvreg_estat|nbreg|nbreg_al|nbreg_lf|nbreg_p|nbreg_sw|nestreg|net|newey|newey_p|news|nl|nlcom|nlcom_p|nlexp2|nlexp2a|nlexp3|nlgom3|nlgom4|nlinit|nllog3|nllog4|nlog_rd|nlogit|nlogit_p|nlogitgen|nlogittree|nlpred|nobreak|notes_dlg|nptrend|numlabel|numlist|old_ver|olo|olog|ologi|ologi_sw|ologit|ologit_p|ologitp|on|one|onew|onewa|oneway|op_colnm|op_comp|op_diff|op_inv|op_str|opr|opro|oprob|oprob_sw|oprobi|oprobi_p|oprobit|oprobitp|opts_exclusive|order|orthog|orthpoly|ou|out|outf|outfi|outfil|outfile|outs|outsh|outshe|outshee|outsheet|ovtest|pac|palette|parse_dissim|pause|pca|pca_display|pca_estat|pca_p|pca_rotate|pcamat|pchart|pchi|pcorr|pctile|pentium|pergram|personal|peto_st|pkcollapse|pkcross|pkequiv|pkexamine|pkshape|pksumm|plugin|pnorm|poisgof|poiss_lf|poiss_sw|poisso_p|poisson|poisson_estat|post|postclose|postfile|postutil|pperron|prais|prais_e|prais_e2|prais_p|predict|predictnl|preserve|print|prob|probi|probit|probit_estat|probit_p|proc_time|procoverlay|procrustes|procrustes_estat|procrustes_p|profiler|prop|proportion|prtest|prtesti|pwcorr|pwd|qs|qby|qbys|qchi|qladder|qnorm|qqplot|qreg|qreg_c|qreg_p|qreg_sw|qu|quadchk|quantile|que|quer|query|range|ranksum|ratio|rchart|rcof|recast|recode|reg|reg3|reg3_p|regdw|regr|regre|regre_p2|regres|regres_p|regress|regress_estat|regriv_p|remap|ren|rena|renam|rename|renpfix|repeat|reshape|restore|ret|retu|retur|return|rmdir|robvar|roccomp|rocf_lf|rocfit|rocgold|rocplot|roctab|rologit|rologit_p|rot|rota|rotat|rotate|rotatemat|rreg|rreg_p|ru|run|runtest|rvfplot|rvpplot|safesum|sample|sampsi|savedresults|sc|scatter|scm_mine|sco|scob_lf|scob_p|scobi_sw|scobit|scor|score|scoreplot|scoreplot_help|scree|screeplot|screeplot_help|sdtest|sdtesti|se|search|separate|seperate|serrbar|serset|set|set_defaults|sfrancia|sh|she|shel|shell|shewhart|signestimationsample|signrank|signtest|simul|sktest|sleep|slogit|slogit_d2|slogit_p|smooth|snapspan|so|sor|sort|spearman|spikeplot|spikeplt|spline_x|split|sqreg|sqreg_p|sret|sretu|sretur|sreturn|ssc|st|st_ct|st_hc|st_hcd|st_hcd_sh|st_is|st_issys|st_note|st_promo|st_set|st_show|st_smpl|st_subid|stack|stbase|stci|stcox|stcox_estat|stcox_fr|stcox_fr_ll|stcox_p|stcox_sw|stcoxkm|stcstat|stcurv|stcurve|stdes|stem|stepwise|stfill|stgen|stir|stjoin|stmc|stmh|stphplot|stphtest|stptime|strate|streg|streg_sw|streset|sts|stset|stsplit|stsum|sttocc|sttoct|stvary|su|suest|sum|summ|summa|summar|summari|summariz|summarize|sunflower|sureg|survcurv|survsum|svar|svar_p|svmat|svy_disp|svy_dreg|svy_est|svy_est_7|svy_estat|svy_get|svy_gnbreg_p|svy_head|svy_header|svy_heckman_p|svy_heckprob_p|svy_intreg_p|svy_ivreg_p|svy_logistic_p|svy_logit_p|svy_mlogit_p|svy_nbreg_p|svy_ologit_p|svy_oprobit_p|svy_poisson_p|svy_probit_p|svy_regress_p|svy_sub|svy_sub_7|svy_x|svy_x_7|svy_x_p|svydes|svygen|svygnbreg|svyheckman|svyheckprob|svyintreg|svyintrg|svyivreg|svylc|svylog_p|svylogit|svymarkout|svymean|svymlog|svymlogit|svynbreg|svyolog|svyologit|svyoprob|svyoprobit|svyopts|svypois|svypoisson|svyprobit|svyprobt|svyprop|svyratio|svyreg|svyreg_p|svyregress|svyset|svytab|svytest|svytotal|sw|swilk|symmetry|symmi|symplot|sysdescribe|sysdir|sysuse|szroeter|ta|tab|tab1|tab2|tab_or|tabd|tabdi|tabdis|tabdisp|tabi|table|tabodds|tabstat|tabu|tabul|tabula|tabulat|tabulate|te|tes|test|testnl|testparm|teststd|tetrachoric|time_it|timer|tis|tob|tobi|tobit|tobit_p|tobit_sw|token|tokeni|tokeniz|tokenize|total|translate|translator|transmap|treat_ll|treatr_p|treatreg|trim|trnb_cons|trnb_mean|trpoiss_d2|trunc_ll|truncr_p|truncreg|tsappend|tset|tsfill|tsline|tsline_ex|tsreport|tsrevar|tsrline|tsset|tssmooth|tsunab|ttest|ttesti|tut_chk|tut_wait|tutorial|tw|tware_st|two|twoway|twoway__fpfit_serset|twoway__function_gen|twoway__histogram_gen|twoway__ipoint_serset|twoway__ipoints_serset|twoway__kdensity_gen|twoway__lfit_serset|twoway__normgen_gen|twoway__pci_serset|twoway__qfit_serset|twoway__scatteri_serset|twoway__sunflower_gen|twoway_ksm_serset|ty|typ|type|typeof|unab|unabbrev|unabcmd|update|uselabel|var|var_mkcompanion|var_p|varbasic|varfcast|vargranger|varirf|varirf_add|varirf_cgraph|varirf_create|varirf_ctable|varirf_describe|varirf_dir|varirf_drop|varirf_erase|varirf_graph|varirf_ograph|varirf_rename|varirf_set|varirf_table|varlmar|varnorm|varsoc|varstable|varstable_w|varstable_w2|varwle|vec|vec_fevd|vec_mkphi|vec_p|vec_p_w|vecirf_create|veclmar|veclmar_w|vecnorm|vecnorm_w|vecrank|vecstable|verinst|vers|versi|versio|version|view|viewsource|vif|vwls|wdatetof|webdescribe|webseek|webuse|wh|whelp|whi|which|wilc_st|wilcoxon|win|wind|windo|window|winexec|wntestb|wntestq|xchart|xcorr|xi|xmlsav|xmlsave|xmluse|xpose|xsh|xshe|xshel|xshell|xt_iis|xt_tis|xtab_p|xtabond|xtbin_p|xtclog|xtcloglog|xtcloglog_d2|xtcloglog_pa_p|xtcloglog_re_p|xtcnt_p|xtcorr|xtdata|xtdes|xtfront_p|xtfrontier|xtgee|xtgee_elink|xtgee_estat|xtgee_makeivar|xtgee_p|xtgee_plink|xtgls|xtgls_p|xthaus|xthausman|xtht_p|xthtaylor|xtile|xtint_p|xtintreg|xtintreg_d2|xtintreg_p|xtivreg|xtline|xtline_ex|xtlogit|xtlogit_d2|xtlogit_fe_p|xtlogit_pa_p|xtlogit_re_p|xtmixed|xtmixed_estat|xtmixed_p|xtnb_fe|xtnb_lf|xtnbreg|xtnbreg_pa_p|xtnbreg_refe_p|xtpcse|xtpcse_p|xtpois|xtpoisson|xtpoisson_d2|xtpoisson_pa_p|xtpoisson_refe_p|xtpred|xtprobit|xtprobit_d2|xtprobit_re_p|xtps_fe|xtps_lf|xtps_ren|xtps_ren_8|xtrar_p|xtrc|xtrc_p|xtrchh|xtrefe_p|yx|yxview__barlike_draw|yxview_area_draw|yxview_bar_draw|yxview_dot_draw|yxview_dropline_draw|yxview_function_draw|yxview_iarrow_draw|yxview_ilabels_draw|yxview_normal_draw|yxview_pcarrow_draw|yxview_pcbarrow_draw|yxview_pccapsym_draw|yxview_pcscatter_draw|yxview_pcspike_draw|yxview_rarea_draw|yxview_rbar_draw|yxview_rbarm_draw|yxview_rcap_draw|yxview_rcapsym_draw|yxview_rconnected_draw|yxview_rline_draw|yxview_rscatter_draw|yxview_rspike_draw|yxview_spike_draw|yxview_sunflower_draw|zap_s|zinb|zinb_llf|zinb_plf|zip|zip_llf|zip_p|zip_plf|zt_ct_5|zt_hc_5|zt_hcd_5|zt_is_5|zt_iss_5|zt_sho_5|zt_smp_5|ztnb|ztnb_p|ztp|ztp_p|prtab|prchange|eststo|estout|esttab|estadd|estpost|ivregress|xtreg|xtreg_be|xtreg_fe|xtreg_ml|xtreg_pa_p|xtreg_re|xtregar|xtrere_p|xtset|xtsf_ll|xtsf_llti|xtsum|xttab|xttest0|xttobit|xttobit_p|xttrans)\\b",name:"keyword.control.flow.stata"}]},comments:{patterns:[{include:"#comments-double-slash"},{include:"#comments-star"},{include:"#comments-block"},{include:"#comments-triple-slash"}]},"comments-block":{patterns:[{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.stata"}},end:"(\\*/\\s+\\*[^\\n]*)|(\\*/(?!\\*))",endCaptures:{0:{name:"punctuation.definition.comment.end.stata"}},name:"comment.block.stata",patterns:[{comment:"this ends and restarts a comment block. but need to catch this so that it doesn't start _another_ level of comment blocks",match:"\\*/\\*"},{include:"#docblockr-comment"},{include:"#comments-block"},{include:"#docstring"}]}]},"comments-double-slash":{patterns:[{begin:"(^//|(?<=\\s)//)(?!/)",captures:{0:{name:"punctuation.definition.comment.stata"}},end:"(?=\\n)",name:"comment.line.double-slash.stata",patterns:[{include:"#docblockr-comment"}]}]},"comments-star":{patterns:[{begin:"^\\s*(\\*)",captures:{0:{name:"punctuation.definition.comment.stata"}},comment:"TODO! need to except out the occasion that a * comes after a /// on the previous line. May be easiest to join with the comment.line.triple-slash.stata below",end:"(?=\\n)",name:"comment.line.star.stata",patterns:[{include:"#docblockr-comment"},{begin:"///",end:"\\n",name:"comment.line-continuation.stata"},{include:"#comments"}]}]},"comments-triple-slash":{patterns:[{begin:"(^///|(?<=\\s)///)",captures:{0:{name:"punctuation.definition.comment.stata"}},end:"(?=\\n)",name:"comment.line.triple-slash.stata",patterns:[{include:"#docblockr-comment"}]}]},constants:{patterns:[{include:"#factorvariables"},{match:"\\b(?i:(\\d+\\.\\d*(e[\\-\\+]?\\d+)?))(?=[^a-zA-Z_])",name:"constant.numeric.float.stata"},{match:"(?<=[^0-9a-zA-Z_])(?i:(\\.\\d+(e[\\-\\+]?\\d+)?))",name:"constant.numeric.float.stata"},{match:"\\b(?i:(\\d+e[\\-\\+]?\\d+))",name:"constant.numeric.float.stata"},{match:"\\b(\\d+)\\b",name:"constant.numeric.integer.decimal.stata"},{match:"(?<![\\w])(\\.(?![\\./]))(?![\\w])",name:"constant.language.missing.stata"},{match:"\\b_all\\b",name:"constant.language.allvars.stata"}]},"docblockr-comment":{patterns:[{captures:{1:{name:"invalid.illegal.name.stata"}},match:"(?<!\\w)(@(error|ERROR|Error))\\b"},{captures:{1:{name:"keyword.docblockr.stata"}},match:"(?<!\\w)(@\\w+)\\b"}]},docstring:{patterns:[{begin:"'''",beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:"'''",endCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},name:"string.quoted.docstring.stata"},{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},name:"string.quoted.docstring.stata"}]},factorvariables:{patterns:[{match:"\\b(i|c|o)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])",name:"constant.language.factorvars.stata"},{captures:{0:{name:"constant.language.factorvars.stata"},3:{patterns:[{include:"#constants"}]}},match:"\\b(i?b)((\\d+)|n)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])"},{captures:{0:{name:"constant.language.factorvars.stata"},2:{name:"keyword.operator.parentheses.stata"},3:{patterns:[{include:"#constants"},{include:"#operators"}]},4:{name:"keyword.operator.parentheses.stata"}},match:"\\b(i?b)(\\()(#\\d+|first|last|freq)(\\))\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])"},{captures:{0:{name:"constant.language.factorvars.stata"},2:{patterns:[{include:"#constants"}]}},match:"\\b(i?o?)(\\d+)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])"},{captures:{1:{name:"constant.language.factorvars.stata"},2:{name:"keyword.operator.parentheses.stata"},3:{patterns:[{include:"$self"}]},4:{name:"keyword.operator.parentheses.stata"},5:{name:"constant.language.factorvars.stata"}},match:"\\b(i?o?)(\\()(.*?)(\\))(\\.)(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])"}]},functions:{patterns:[{begin:"\\b((abbrev|abs|acos|acosh|asin|asinh|atan|atan2|atanh|autocode|betaden|binomial|binomialp|binomialtail|binormalbofd|byteorder|c|cauchy|cauchyden|cauchytail|Cdhms|ceil|char|chi2|chi2den|chi2tail|Chms|cholesky|chop|clip|clock|Clock|cloglog|Cmdyhms|cofC|Cofc|cofd|Cofd|coleqnumb|collatorlocale|collatorversion|colnfreeparms|colnumb|colsof|comb|cond|corr|cos|cosh|daily|date|day|det|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|dhms|diag|diag0cnt|digamma|dofb|dofc|dofC|dofh|dofm|dofq|dofw|dofy|dow|doy|dunnettprob|e|el|epsdouble|epsfloat|exp|exponential|exponentialden|exponentialtail|F|Fden|fileexists|fileread|filereaderror|filewrite|float|floor|fmtwidth|Ftail|gammaden|gammap|gammaptail|get|hadamard|halfyear|halfyearly|hh|hhC|hms|hofd|hours|hypergeometric|hypergeometricp|I|ibeta|ibetatail|igaussian|igaussianden|igaussiantail|indexnot|inlist|inrange|int|inv|invbinomial|invbinomialtail|invcauchy|invcauchytail|invchi2|invchi2tail|invcloglog|invdunnettprob|invexponential|invexponentialtail|invF|invFtail|invgammap|invgammaptail|invibeta|invibetatail|invigaussian|invigaussiantail|invlaplace|invlaplacetail|invlogistic|invlogistictail|invlogit|invnbinomial|invnbinomialtail|invnchi2|invnchi2tail|invnF|invnFtail|invnibeta|invnormal|invnt|invnttail|invpoisson|invpoissontail|invsym|invt|invttail|invtukeyprob|invweibull|invweibullph|invweibullphtail|invweibulltail|irecode|issymmetric|itrim|J|laplace|laplaceden|laplacetail|length|ln|lncauchyden|lnfactorial|lngamma|lnigammaden|lnigaussianden|lniwishartden|lnlaplaceden|lnmvnormalden|lnnormal|lnnormalden|lnwishartden|log|log10|logistic|logisticden|logistictail|logit|lower|ltrim|matmissing|matrix|matuniform|max|maxbyte|maxdouble|maxfloat|maxint|maxlong|mdy|mdyhms|mi|min|minbyte|mindouble|minfloat|minint|minlong|minutes|missing|mm|mmC|mod|mofd|month|monthly|mreldif|msofhours|msofminutes|msofseconds|nbetaden|nbinomial|nbinomialp|nbinomialtail|nchi2|nchi2den|nchi2tail|nF|nFden|nFtail|nibeta|normal|normalden|npnchi2|npnF|npnt|nt|ntden|nttail|nullmat|plural|poisson|poissonp|poissontail|proper|qofd|quarter|quarterly|r|rbeta|rbinomial|rcauchy|rchi2|real|recode|regexs|reldif|replay|return|reverse|rexponential|rgamma|rhypergeometric|rigaussian|rlaplace|rlogistic|rnbinomial|rnormal|round|roweqnumb|rownfreeparms|rownumb|rowsof|rpoisson|rt|rtrim|runiform|runiformint|rweibull|rweibullph|s|scalar|seconds|sign|sin|sinh|smallestdouble|soundex|sqrt|ss|ssC|string|stritrim|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrpos|strrtrim|strtoname|strtrim|strupper|subinstr|subinword|substr|sum|sweep|t|tan|tanh|tc|tC|td|tden|th|tin|tm|tobytes|tq|trace|trigamma|trim|trunc|ttail|tukeyprob|tw|twithin|uchar|udstrlen|udsubstr|uisdigit|uisletter|upper|ustrcompare|ustrcompareex|ustrfix|ustrfrom|ustrinvalidcnt|ustrleft|ustrlen|ustrlower|ustrltrim|ustrnormalize|ustrpos|ustrregexs|ustrreverse|ustrright|ustrrpos|ustrrtrim|ustrsortkey|ustrsortkeyex|ustrtitle|ustrto|ustrtohex|ustrtoname|ustrtrim|ustrunescape|ustrupper|ustrword|ustrwordcount|usubinstr|usubstr|vec|vecdiag|week|weekly|weibull|weibullden|weibullph|weibullphden|weibullphtail|weibulltail|wofd|word|wordbreaklocale|wordcount|year|yearly|yh|ym|yofd|yq|yw)|([\\w&&[^0-9]]\\w{0,31}))(\\()",beginCaptures:{2:{name:"support.function.builtin.stata"},3:{name:"support.function.custom.stata"},4:{name:"punctuation.definition.parameters.begin.stata"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.stata"}},patterns:[{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{begin:"\\(",beginCaptures:{0:{name:"keyword.operator.parentheses.stata"}},end:"\\)",endCaptures:{0:{name:"keyword.operator.parentheses.stata"}},patterns:[{include:"#ascii-regex-functions"},{include:"#unicode-regex-functions"},{include:"#functions"},{include:"#subscripts"},{include:"#constants"},{include:"#comments"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{include:"#builtin_variables"},{include:"#macro-commands"},{include:"#braces-without-error"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"}]},{include:"#ascii-regex-functions"},{include:"#unicode-regex-functions"},{include:"#functions"},{include:"#subscripts"},{include:"#constants"},{include:"#comments"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{include:"#builtin_variables"},{include:"#macro-commands"},{include:"#braces-without-error"}]}]},"macro-commands":{patterns:[{begin:"\\b(loc(al|a)?)\\s+([\\w'`\\$\\(\\)\\{\\}]+)\\s*(?=:|=)",beginCaptures:{1:{name:"keyword.macro.stata"},3:{patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]}},end:"\\n",patterns:[{begin:"=",beginCaptures:{0:{name:"keyword.operator.arithmetic.stata"}},end:"(?=\\n)",patterns:[{include:"$self"}]},{begin:":",beginCaptures:{0:{name:"keyword.operator.arithmetic.stata"}},end:"(?=\\n)",patterns:[{include:"#macro-extended-functions"}]}]},{begin:"\\b(gl(obal|oba|ob|o)?)\\s+(?=[\\w`\\$])",beginCaptures:{1:{name:"keyword.macro.stata"}},end:'(\\})|(?=\\"|\\s|\\n|/|,|=)',patterns:[{include:"#reserved-names"},{match:"[\\w&&[^0-9_]]\\w{0,31}",name:"entity.name.type.class.stata"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(loc(al|a)?)\\s+(\\+\\+|\\-\\-)?(?=[\\w`\\$])",beginCaptures:{1:{name:"keyword.macro.stata"},3:{name:"keyword.operator.arithmetic.stata"}},end:'(?=\\"|\\s|\\n|/|,|=)',patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(tempvar|tempname|tempfile)\\s*(?=\\s)",beginCaptures:{1:{name:"keyword.macro.stata"}},end:"\\n",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(ma(cro|cr|c)?)\\s+(drop|l(ist|is|i)?)\\s*(?=\\s)",beginCaptures:{0:{name:"keyword.macro.stata"}},end:"\\n",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{match:"\\*",name:"keyword.operator.arithmetic.stata"},{include:"#constants"},{include:"#macro-global"},{include:"#macro-local"},{include:"#comments"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-extended-functions":{patterns:[{match:"\\b(properties)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(t(ype|yp|y)?|f(ormat|orma|orm|or|o)?|val(ue|u)?\\s+l(able|abl|ab|a)?|var(iable|iabl|iab|ia|i)?\\s+l(abel|abe|ab|a)?|data\\s+l(able|abl|ab|a)?|sort(edby|edb|ed|e)?|lab(el|e)?|maxlength|constraint|char)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(permname)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(adosubdir|dir|files?|dirs?|other|sysdir)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(env(ironment|ironmen|ironme|ironm|iron|iro|ir|i)?)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(all\\s+(globals|scalars|matrices)|((numeric|string)\\s+scalars))\\b",name:"keyword.macro.extendedfcn.stata"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},2:{name:"keyword.macro.extendedfcn.stata"},3:{name:"entity.name.type.class.stata"}},match:"\\b(list)\\s+(uniq|dups|sort|clean|retok(enize|eniz|eni|en|e)?|sizeof)\\s+(\\w{1,32})"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},2:{name:"entity.name.type.class.stata"},3:{name:"keyword.operator.list.stata"},4:{name:"entity.name.type.class.stata"}},match:"\\b(list)\\s+(\\w{1,32})\\s+(\\||&|\\-|===|==|in)\\s+(\\w{1,32})"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},2:{name:"punctuation.definition.string.begin.stata"},3:{name:"string.quoted.double.stata"},4:{name:"punctuation.definition.string.end.stata"},5:{name:"keyword.macro.extendedfcn.stata"},6:{name:"entity.name.type.class.stata"}},match:'\\b(list\\s+posof)\\s+(")(\\w+)(")\\s+(in)\\s+(\\w{1,32})'},{match:"\\b(rown(ames|ame|am|a)?|coln(ames|ame|am|a)?|rowf(ullnames|ullname|ullnam|ullna|ulln|ull|ul|u)?|colf(ullnames|ullname|ullnam|ullna|ulln|ull|ul|u)?|roweq?|coleq?|rownumb|colnumb|roweqnumb|coleqnumb|rownfreeparms|colnfreeparms|rownlfs|colnlfs|rowsof|colsof|rowvarlist|colvarlist|rowlfnames|collfnames)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(tsnorm)\\b",name:"keyword.macro.extendedfcn.stata"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},7:{patterns:[{include:"#macro-local"},{include:"#macro-global"}]}},match:"\\b((copy|(ud|u)?strlen)\\s+(loc(al|a)?|gl(obal|oba|ob|o)?))\\s+([^']+)"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"}},match:"\\b(word\\s+count)"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},2:{patterns:[{include:"#macro-local"},{include:"#constants"}]},3:{name:"keyword.macro.extendedfcn.stata"}},match:"(word|piece)\\s+([\\s`'\\w]+)\\s+(of)"},{begin:"\\b(subinstr\\s+(loc(al|a)?|gl(obal|oba|ob|o)?))\\s+(\\w{1,32})",beginCaptures:{1:{name:"keyword.macro.extendedfcn.stata"},5:{name:"entity.name.type.class.stata"}},end:"(?=//|\\n)",patterns:[{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{name:"keyword.macro.extendedfcn.stata"},4:{name:"entity.name.type.class.stata"},5:{name:"punctuation.definition.parameters.end.stata"}},match:"(count|coun|cou|co|c)(\\()(local|loca|loc|global|globa|glob|glo|gl)\\s+(\\w{1,32})(\\))"}]},{include:"#comments"},{include:"#macro-local"},{include:"#macro-global"},{include:"$self"}]},"macro-global":{patterns:[{begin:"(\\$)(\\{)",beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{include:"#comments-block"},{begin:"[^\\w]",end:"\\n|(?=})",name:"comment.line.stata"},{match:"\\w{1,32}",name:"entity.name.type.class.stata"}]},{begin:"\\$",beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:"(?!\\w)",endCaptures:{1:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"[\\w&&[^0-9_]]\\w{0,31}|_\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-global-escaped":{patterns:[{begin:"(\\\\\\$)(\\\\\\{)?",beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:'(\\\\\\})|(?=\\"|\\s|\\n|/|,)',endCaptures:{1:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"[\\w&&[^0-9_]]\\w{0,31}|_\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-local":{patterns:[{begin:"(`)(=)",beginCaptures:{1:{name:"punctuation.definition.string.begin.stata"},2:{name:"keyword.operator.comparison.stata"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"$self"}]},{begin:"(`)(:)",beginCaptures:{1:{name:"punctuation.definition.string.begin.stata"},2:{name:"keyword.operator.comparison.stata"}},contentName:"meta.macro-extended-function.stata",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-extended-functions"},{include:"#constants"},{include:"#string-compound"},{include:"#string-regular"}]},{begin:"(`)(macval)(\\()",beginCaptures:{1:{name:"punctuation.definition.string.begin.stata"},2:{name:"support.function.builtin.stata"},3:{name:"punctuation.definition.parameters.begin.stata"}},contentName:"meta.macro-extended-function.stata",end:"(\\))(')",endCaptures:{1:{name:"punctuation.definition.parameters.begin.stata"},2:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]},{begin:'`(?!")',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{match:"\\+\\+|\\-\\-",name:"keyword.operator.arithmetic.stata"},{include:"#macro-local"},{include:"#macro-global"},{include:"#comments-block"},{begin:"[^\\w]",end:"\\n|(?=')",name:"comment.line.stata"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-local-escaped":{patterns:[{begin:'\\\\`(?!")',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},comment:"appropriately color macros that have embedded escaped `,', and $ characters for lazy evaluation",end:"\\\\'|'",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-local-identifiers":{patterns:[{match:"[^\\w'`\\$\\(\\)\\s]",name:"invalid.illegal.name.stata"},{match:"\\w{32,}",name:"invalid.illegal.name.stata"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]},operators:{patterns:[{comment:"++ and -- must come first to support ligatures",match:"\\+\\+|\\-\\-|\\+|\\-|\\*|\\^",name:"keyword.operator.arithmetic.stata"},{comment:"match division operator but not path separator",match:"(?<![\\w.&&[^0-9]])/(?![\\w.&&[^0-9]]|$)",name:"keyword.operator.arithmetic.stata"},{comment:"match division operator but not path separator",match:"(?<![\\w.&&[^0-9]])\\\\(?![\\w.&&[^0-9]]|$)",name:"keyword.operator.matrix.addrow.stata"},{match:"\\|\\|",name:"keyword.operator.graphcombine.stata"},{match:"\\&|\\|",name:"keyword.operator.logical.stata"},{match:"(?:<=|>=|:=|==|!=|~=|<|>|=|!!|!)",name:"keyword.operator.comparison.stata"},{match:"\\(|\\)",name:"keyword.operator.parentheses.stata"},{match:"(##|#)",name:"keyword.operator.factor-variables.stata"},{match:"%",name:"keyword.operator.format.stata"},{match:":",name:"punctuation.separator.key-value"},{match:"\\[",name:"punctuation.definition.parameters.begin.stata"},{match:"\\]",name:"punctuation.definition.parameters.end.stata"},{match:",",name:"punctuation.definition.variable.begin.stata"},{match:";",name:"keyword.operator.delimiter.stata"}]},"reserved-names":{patterns:[{match:"\\b(_all|_b|byte|_coef|_cons|double|float|if|in|int|long|_n|_N|_pi|_pred|_rc|_skip|str[0-9]+|strL|using|with)\\b",name:"invalid.illegal.name.stata"},{match:"[^\\w'`\\$\\(\\)\\s]",name:"invalid.illegal.name.stata"},{match:"[0-9][\\w]{31,}",name:"invalid.illegal.name.stata"},{match:"\\w{33,}",name:"invalid.illegal.name.stata"}]},"string-compound":{patterns:[{begin:'`"',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:`"'|(?= +)`,endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},name:"string.quoted.double.compound.stata",patterns:[{comment:'This must come before #string-regular and #string-compound to accurately color `"""\' in strings',match:'"',name:"string.quoted.double.compound.stata"},{comment:"see https://github.com/kylebarron/language-stata/issues/53",match:"```(?=[^']*\")",name:"meta.markdown.code.block.stata"},{include:"#string-regular"},{include:"#string-compound"},{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"}]}]},"string-regular":{patterns:[{begin:'(?<!`)"',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:`(")(')?|(?= +)`,endCaptures:{1:{name:"punctuation.definition.string.end.stata"},2:{name:"invalid.illegal.punctuation.stata"}},name:"string.quoted.double.stata",patterns:[{comment:"see https://github.com/kylebarron/language-stata/issues/53",match:"```(?=[^']*\")",name:"meta.markdown.code.block.stata"},{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"}]}]},subscripts:{patterns:[{begin:"(?<=[\\w'])(\\[)",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.stata"}},comment:"highlight expressions, like [_n], when using subscripts on a variable",end:"(\\])",endCaptures:{1:{name:"punctuation.definition.parameters.end.stata"}},name:"meta.subscripts.stata",patterns:[{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"},{include:"#operators"},{include:"#constants"},{include:"#functions"}]}]},"unicode-regex-character-class":{patterns:[{match:"\\\\[wWsSdD]|\\.",name:"constant.character.character-class.stata"},{match:"\\\\.",name:"constant.character.escape.backslash.stata"},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.stata"},2:{name:"keyword.operator.negation.stata"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.stata"}},name:"constant.other.character-class.set.stata",patterns:[{include:"#unicode-regex-character-class"},{captures:{2:{name:"constant.character.escape.backslash.stata"},4:{name:"constant.character.escape.backslash.stata"}},match:"((\\\\.)|.)\\-((\\\\.)|[^\\]])",name:"constant.other.character-class.range.stata"}]}]},"unicode-regex-functions":{patterns:[{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#unicode-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"invalid.illegal.punctuation.stata"},9:{patterns:[{include:"#constants"},{match:",",name:"punctuation.definition.variable.begin.stata"}]},10:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexm with regular quotes i.e. " ',match:`\\b(ustrregexm)(\\()([^,]+)(,)\\s*(")([^"]+)("(')?)([,0-9\\s]*)?\\s*(\\))`},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#unicode-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{patterns:[{include:"#constants"},{match:",",name:"punctuation.definition.variable.begin.stata"}]},9:{name:"punctuation.definition.parameters.end.stata"}},comment:"color regexm with compound quotes",match:'\\b(ustrregexm)(\\()([^,]+)(,)\\s*(`")([^"]+)("\')([,0-9\\s]*)?\\s*(\\))'},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#unicode-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"invalid.illegal.punctuation.stata"},9:{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"},{include:"#constants"}]},10:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexr with regular quotes i.e. " ',match:`\\b(ustrregexrf|ustrregexra)(\\()([^,]+)(,)\\s*(")([^"]+)("(')?)\\s*([^\\)]*)(\\))`},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#unicode-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"},{include:"#constants"}]},9:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexr with compound quotes i.e. `"text"\' ',match:'\\b(ustrregexrf|ustrregexra)(\\()([^,]+)(,)\\s*(`")([^"]+)("\')\\s*([^\\)]*)(\\))'}]},"unicode-regex-internals":{patterns:[{match:"\\\\[bBAZzG]|\\^",name:"keyword.control.anchor.stata"},{comment:"matched when not a global",match:"\\$(?![[\\w&&[^0-9_]][\\w]{0,31}|_[\\w]{1,31}\\{])",name:"keyword.control.anchor.stata"},{match:"\\\\[1-9][0-9]?",name:"keyword.other.back-reference.stata"},{match:"[?+*][?+]?|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.stata"},{match:"\\|",name:"keyword.operator.or.stata"},{begin:"\\((?!\\?\\#|\\?=|\\?!|\\?<=|\\?<!)",end:"\\)",name:"keyword.operator.group.stata",patterns:[{include:"#unicode-regex-internals"}]},{begin:"\\(\\?\\#",end:"\\)",name:"comment.block.stata"},{comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",match:"(?<=^|\\s)#\\s[[a-zA-Z0-9,. \\t?!-:][^\\x{00}-\\x{7F}]]*$",name:"comment.line.number-sign.stata"},{match:"\\(\\?[iLmsux]+\\)",name:"keyword.other.option-toggle.stata"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))",beginCaptures:{1:{name:"keyword.operator.group.stata"},2:{name:"punctuation.definition.group.assertion.stata"},3:{name:"keyword.assertion.look-ahead.stata"},4:{name:"keyword.assertion.negative-look-ahead.stata"},5:{name:"keyword.assertion.look-behind.stata"},6:{name:"keyword.assertion.negative-look-behind.stata"}},end:"(\\))",endCaptures:{1:{name:"keyword.operator.group.stata"}},name:"meta.group.assertion.stata",patterns:[{include:"#unicode-regex-internals"}]},{begin:"(\\()(\\?\\(([1-9][0-9]?|[a-zA-Z_][a-zA-Z_0-9]*)\\))",beginCaptures:{1:{name:"punctuation.definition.group.stata"},2:{name:"punctuation.definition.group.assertion.conditional.stata"},3:{name:"entity.name.section.back-reference.stata"}},comment:"we can make this more sophisticated to match the | character that separates yes-pattern from no-pattern, but it's not really necessary.",end:"(\\))",name:"meta.group.assertion.conditional.stata",patterns:[{include:"#unicode-regex-internals"}]},{include:"#unicode-regex-character-class"},{include:"#macro-local"},{include:"#macro-global"},{comment:"NOTE: Error if I have .+ No idea why but it works fine it seems with just .",match:".",name:"string.quoted.stata"}]}},scopeName:"source.stata",embeddedLangs:["sql"]});var n=[...t,e];export{n as default}; diff --git a/assets/chunks/stylus.DSrLtGYv.js b/assets/chunks/stylus.DSrLtGYv.js new file mode 100644 index 000000000..caa1a3e0b --- /dev/null +++ b/assets/chunks/stylus.DSrLtGYv.js @@ -0,0 +1,15 @@ +const e=Object.freeze({displayName:"Stylus",fileTypes:["styl","stylus","css.styl","css.stylus"],name:"stylus",patterns:[{include:"#comment"},{include:"#at_rule"},{include:"#language_keywords"},{include:"#language_constants"},{include:"#variable_declaration"},{include:"#function"},{include:"#selector"},{include:"#declaration"},{captures:{1:{name:"punctuation.section.property-list.begin.css"},2:{name:"punctuation.section.property-list.end.css"}},match:"(\\{)(\\})",name:"meta.brace.curly.css"},{match:"\\{|\\}",name:"meta.brace.curly.css"},{include:"#numeric"},{include:"#string"},{include:"#operator"}],repository:{at_rule:{patterns:[{begin:"\\s*((@)(import|require))\\b\\s*",beginCaptures:{1:{name:"keyword.control.at-rule.import.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},end:"\\s*((?=;|$|\\n))",endCaptures:{1:{name:"punctuation.terminator.rule.css"}},name:"meta.at-rule.import.css",patterns:[{include:"#string"}]},{begin:"\\s*((@)(extend[s]?)\\b)\\s*",beginCaptures:{1:{name:"keyword.control.at-rule.extend.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},end:"\\s*((?=;|$|\\n))",endCaptures:{1:{name:"punctuation.terminator.rule.css"}},name:"meta.at-rule.extend.css",patterns:[{include:"#selector"}]},{captures:{1:{name:"keyword.control.at-rule.fontface.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},match:"^\\s*((@)font-face)\\b",name:"meta.at-rule.fontface.stylus"},{captures:{1:{name:"keyword.control.at-rule.css.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},match:"^\\s*((@)css)\\b",name:"meta.at-rule.css.stylus"},{begin:"\\s*((@)charset)\\b\\s*",beginCaptures:{1:{name:"keyword.control.at-rule.charset.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},end:"\\s*((?=;|$|\\n))",name:"meta.at-rule.charset.stylus",patterns:[{include:"#string"}]},{begin:"\\s*((@)keyframes)\\b\\s+([a-zA-Z_-][a-zA-Z0-9_-]*)",beginCaptures:{1:{name:"keyword.control.at-rule.keyframes.stylus"},2:{name:"punctuation.definition.keyword.stylus"},3:{name:"entity.name.function.keyframe.stylus"}},end:"\\s*((?=\\{|$|\\n))",name:"meta.at-rule.keyframes.stylus"},{begin:"(?=(\\b(\\d+%|from\\b|to\\b)))",end:"(?=(\\{|\\n))",name:"meta.at-rule.keyframes.stylus",patterns:[{match:"(\\b(\\d+%|from\\b|to\\b))",name:"entity.other.attribute-name.stylus"}]},{captures:{1:{name:"keyword.control.at-rule.media.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},match:"^\\s*((@)media)\\b",name:"meta.at-rule.media.stylus"},{match:"(?:(?=\\w)(?<![\\w-]))(width|scan|resolution|orientation|monochrome|min-width|min-resolution|min-monochrome|min-height|min-device-width|min-device-height|min-device-aspect-ratio|min-color-index|min-color|min-aspect-ratio|max-width|max-resolution|max-monochrome|max-height|max-device-width|max-device-height|max-device-aspect-ratio|max-color-index|max-color|max-aspect-ratio|height|grid|device-width|device-height|device-aspect-ratio|color-index|color|aspect-ratio)(?:(?<=\\w)(?![\\w-]))",name:"support.type.property-name.media-feature.media.css"},{match:"(?:(?=\\w)(?<![\\w-]))(tv|tty|screen|projection|print|handheld|embossed|braille|aural|all)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.media-type.media.css"},{match:"(?:(?=\\w)(?<![\\w-]))(portrait|landscape)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.property-value.media-property.media.css"}]},char_escape:{match:"\\\\(.)",name:"constant.character.escape.stylus"},color:{patterns:[{begin:"\\b(rgb|rgba|hsl|hsla)(\\()",beginCaptures:{1:{name:"support.function.color.css"},2:{name:"punctuation.section.function.css"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.css"}},name:"meta.function.color.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{include:"#property_variable"}]},{captures:{1:{name:"punctuation.definition.constant.css"}},match:"(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b",name:"constant.other.color.rgb-value.css"},{comment:"http://www.w3.org/TR/CSS21/syndata.html#value-def-color",match:"\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b",name:"support.constant.color.w3c-standard-color-name.css"},{comment:"http://www.w3.org/TR/css3-color/#svg-color",match:"\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\b",name:"support.constant.color.w3c-extended-color-name.css"}]},comment:{patterns:[{include:"#comment_block"},{include:"#comment_line"}]},comment_block:{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.css"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.css"}},name:"comment.block.css"},comment_line:{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.stylus"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.stylus"}},end:"(?=\\n)",name:"comment.line.double-slash.stylus"}]},declaration:{begin:"((?<=^)[^\\S\\n]+)|((?<=;)[^\\S\\n]*)|((?<=\\{)[^\\S\\n]*)",end:"(?=\\n)|(;)|(?=\\})|(\\n)",endCaptures:{2:{name:"punctuation.terminator.rule.css"}},name:"meta.property-list.css",patterns:[{match:`(?x) (?<![\\w-]) +-- +(?:[-a-zA-Z_] | [^\\x00-\\x7F]) +(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] +|\\\\(?:[0-9a-fA-F]{1,6}|.) +)*`,name:"variable.css"},{include:"#language_keywords"},{include:"#language_constants"},{match:"(?:(?<=^)[^\\S\\n]+(\\n))"},{captures:{1:{name:"support.type.property-name.css"},2:{name:"punctuation.separator.key-value.css"},3:{name:"variable.section.css"}},match:"\\G\\s*(counter-reset|counter-increment)(?:(:)|[^\\S\\n])[^\\S\\n]*([a-zA-Z_-][a-zA-Z0-9_-]*)",name:"meta.property.counter.css"},{begin:"\\G\\s*(filter)(?:(:)|[^\\S\\n])[^\\S\\n]*",beginCaptures:{1:{name:"support.type.property-name.css"},2:{name:"punctuation.separator.key-value.css"}},end:"(?=\\n|;|\\}|$)",name:"meta.property.filter.css",patterns:[{include:"#function"},{include:"#property_values"}]},{include:"#property"},{include:"#interpolation"},{include:"$self"}]},font_name:{match:"(\\b(?i:arial|century|comic|courier|cursive|fantasy|futura|garamond|georgia|helvetica|impact|lucida|monospace|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif)\\b)",name:"support.constant.font-name.css"},function:{begin:"(?=[a-zA-Z_-][a-zA-Z0-9_-]*\\()",end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.css"}},patterns:[{begin:"(format|url|local)(\\()",beginCaptures:{1:{name:"support.function.misc.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.css",patterns:[{match:"(?<=\\()[^\\)\\s]*(?=\\))",name:"string.css"},{include:"#string"},{include:"#variable"},{include:"#operator"},{match:"\\s*"}]},{captures:{1:{name:"support.function.misc.counter.css"},2:{name:"punctuation.section.function.css"},3:{name:"variable.section.css"}},match:"(counter)(\\()([a-zA-Z_-][a-zA-Z0-9_-]*)(?=\\))",name:"meta.function.misc.counter.css"},{begin:"(counters)(\\()",beginCaptures:{1:{name:"support.function.misc.counters.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.counters.css",patterns:[{match:"\\G[a-zA-Z_-][a-zA-Z0-9_-]*",name:"variable.section.css"},{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#string"},{include:"#interpolation"}]},{begin:"(attr)(\\()",beginCaptures:{1:{name:"support.function.misc.attr.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.attr.css",patterns:[{match:"\\G[a-zA-Z_-][a-zA-Z0-9_-]*",name:"entity.other.attribute-name.attribute.css"},{match:"(?<=[a-zA-Z0-9_-])\\s*\\b(string|color|url|integer|number|length|em|ex|px|rem|vw|vh|vmin|vmax|mm|cm|in|pt|pc|angle|deg|grad|rad|time|s|ms|frequency|Hz|kHz|%)\\b",name:"support.type.attr.css"},{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#string"},{include:"#interpolation"}]},{begin:"(calc)(\\()",beginCaptures:{1:{name:"support.function.misc.calc.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.calc.css",patterns:[{include:"#property_values"}]},{begin:"(cubic-bezier)(\\()",beginCaptures:{1:{name:"support.function.timing.cubic-bezier.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.timing.cubic-bezier.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{include:"#interpolation"}]},{begin:"(steps)(\\()",beginCaptures:{1:{name:"support.function.timing.steps.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.timing.steps.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{match:"\\b(start|end)\\b",name:"support.constant.timing.steps.direction.css"},{include:"#interpolation"}]},{begin:"(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(\\()",beginCaptures:{1:{name:"support.function.gradient.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.gradient.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{include:"#color"},{match:"\\b(to|bottom|right|left|top|circle|ellipse|center|closest-side|closest-corner|farthest-side|farthest-corner|at)\\b",name:"support.constant.gradient.css"},{include:"#interpolation"}]},{begin:"(blur|brightness|contrast|grayscale|hue-rotate|invert|opacity|saturate|sepia)(\\()",beginCaptures:{1:{name:"support.function.filter.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.filter.css",patterns:[{include:"#numeric"},{include:"#property_variable"},{include:"#interpolation"}]},{begin:"(drop-shadow)(\\()",beginCaptures:{1:{name:"support.function.filter.drop-shadow.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.filter.drop-shadow.css",patterns:[{include:"#numeric"},{include:"#color"},{include:"#property_variable"},{include:"#interpolation"}]},{begin:"(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(\\()",beginCaptures:{1:{name:"support.function.transform.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.transform.css",patterns:[{include:"#numeric"},{include:"#property_variable"},{include:"#interpolation"}]},{match:"(url|local|format|counter|counters|attr|calc)(?=\\()",name:"support.function.misc.css"},{match:"(cubic-bezier|steps)(?=\\()",name:"support.function.timing.css"},{match:"(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(?=\\()",name:"support.function.gradient.css"},{match:"(blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)(?=\\()",name:"support.function.filter.css"},{match:"(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(?=\\()",name:"support.function.transform.css"},{begin:"([a-zA-Z_-][a-zA-Z0-9_-]*)(\\()",beginCaptures:{1:{name:"entity.name.function.stylus"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.stylus",patterns:[{match:`(?x) +-- +(?:[-a-zA-Z_] | [^\\x00-\\x7F]) +(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] +|\\\\(?:[0-9a-fA-F]{1,6}|.) +)*`,name:"variable.argument.stylus"},{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#interpolation"},{include:"#property_values"}]},{match:"\\(",name:"punctuation.section.function.css"}]},interpolation:{begin:"(?:(\\{)[^\\S\\n]*)(?=[^;=]*[^\\S\\n]*\\})",beginCaptures:{1:{name:"meta.brace.curly"}},end:"(?:[^\\S\\n]*(\\}))|\\n|$",endCaptures:{1:{name:"meta.brace.curly"}},name:"meta.interpolation.stylus",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#string"},{include:"#operator"}]},language_constants:{match:"\\b(true|false|null)\\b",name:"constant.language.stylus"},language_keywords:{patterns:[{match:"(\\b|\\s)(return|else|for|unless|if|else)\\b",name:"keyword.control.stylus"},{match:"(\\b|\\s)(!important|in|is defined|is a)\\b",name:"keyword.other.stylus"},{match:"\\barguments\\b",name:"variable.language.stylus"}]},numeric:{patterns:[{captures:{1:{name:"keyword.other.unit.css"}},match:"(?x) (?<!\\w|-)(?:(?:-|\\+)?(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+)) ((?:px|pt|ch|cm|mm|in|r?em|ex|pc|deg|g?rad|dpi|dpcm|dppx|fr|ms|s|turn|vh|vmax|vmin|vw)\\b|%)?",name:"constant.numeric.css"}]},operator:{patterns:[{match:"((?:\\?|:|!|~|\\+|(\\s-\\s)|(?:\\*)?\\*|\\/|%|(\\.)?\\.\\.|<|>|(?:=|:|\\?|\\+|-|\\*|\\/|%|<|>)?=|!=)|\\b(?:in|is(?:nt)?|(?<!:)not|or|and)\\b)",name:"keyword.operator.stylus"},{include:"#char_escape"}]},property:{begin:`(?x:\\G\\s*(?: +(-webkit-[-A-Za-z]+|-moz-[-A-Za-z]+|-o-[-A-Za-z]+|-ms-[-A-Za-z]+|-khtml-[-A-Za-z]+|zoom|z-index|y|x|wrap|word-wrap|word-spacing|word-break|word|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|variant|user-select|up|unicode-bidi|unicode-range|unicode|trim|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform|touch-action|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-transform|text-shadow|text-replace|text-rendering|text-overflow|text-outline|text-justify|text-indent|text-height|text-emphasis|text-decoration|text-align-last|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|style-type|style-position|style-image|style|string-set|stretch|stress|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak|span|spacing|space-collapse|space|sizing|size-adjust|size|shadow|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-align|ruby|rows|rotation-point|rotation|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resize|reset|replace|repeat|rendering-intent|rate|radius|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|pack|overhang|overflow-y|overflow-x|overflow-style|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|order|opacity|offset|numeral|new|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|model|mix-blend-mode|min-width|min-height|min|max-width|max-height|max|marquee-style|marquee-speed|marquee-play-count|marquee-direction|marquee|marks|mark-before|mark-after|mark|margin-top|margin-right|margin-left|margin-bottom|margin|mask-image|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-height|line-break|level|letter-spacing|length|left-width|left-style|left-color|left|label|justify-content|justify|iteration-count|inline-box-align|initial-value|initial-size|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-resolution|image-orientation|image|icon|hyphens|hyphenate-resource|hyphenate-lines|hyphenate-character|hyphenate-before|hyphenate-after|hyphenate|height|header|hanging-punctuation|gap|grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-start|grid-row|grid-row-end|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows|row-gap|gap|font-kerning|font-language-override|font-weight|font-variant-caps|font-variant|font-style|font-synthesis|font-stretch|font-size-adjust|font-size|font-family|font|float-offset|float|flex-wrap|flex-shrink|flex-grow|flex-group|flex-flow|flex-direction|flex-basis|flex|fit-position|fit|fill|filter|family|empty-cells|emphasis|elevation|duration|drop-initial-value|drop-initial-size|drop-initial-before-align|drop-initial-before-adjust|drop-initial-after-align|drop-initial-after-adjust|drop|down|dominant-baseline|display-role|display-model|display|direction|delay|decoration-break|decoration|cursor|cue-before|cue-after|cue|crop|counter-reset|counter-increment|counter|count|content|columns|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|column-break-before|column-break-after|column|color-profile|color|collapse|clip|clear|character|caption-side|break-inside|break-before|break-after|break|box-sizing|box-shadow|box-pack|box-orient|box-ordinal-group|box-lines|box-flex-group|box-flex|box-direction|box-decoration-break|box-align|box|bottom-width|bottom-style|bottom-right-radius|bottom-left-radius|bottom-color|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-length|border-left-width|border-left-style|border-left-color|border-left|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|bookmark-target|bookmark-level|bookmark-label|bookmark|binding|bidi|before|baseline-shift|baseline|balance|background-blend-mode|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-break|background-attachment|background|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-duration|animation-direction|animation-delay|animation-fill-mode|animation|alignment-baseline|alignment-adjust|alignment|align-self|align-last|align-items|align-content|align|after|adjust|will-change)| +(writing-mode|text-anchor|stroke-width|stroke-opacity|stroke-miterlimit|stroke-linejoin|stroke-linecap|stroke-dashoffset|stroke-dasharray|stroke|stop-opacity|stop-color|shape-rendering|marker-start|marker-mid|marker-end|lighting-color|kerning|image-rendering|glyph-orientation-vertical|glyph-orientation-horizontal|flood-opacity|flood-color|fill-rule|fill-opacity|fill|enable-background|color-rendering|color-interpolation-filters|color-interpolation|clip-rule|clip-path)| +([a-zA-Z_-][a-zA-Z0-9_-]*) +)(?!([^\\S\\n]*&)|([^\\S\\n]*\\{))(?=:|([^\\S\\n]+[^\\s])))`,beginCaptures:{1:{name:"support.type.property-name.css"},2:{name:"support.type.property-name.svg.css"},3:{name:"support.function.mixin.stylus"}},end:"(;)|(?=\\n|\\}|$)",endCaptures:{1:{name:"punctuation.terminator.rule.css"}},patterns:[{include:"#property_value"}]},property_value:{begin:"\\G(?:(:)|(\\s))(\\s*)(?!&)",beginCaptures:{1:{name:"punctuation.separator.key-value.css"},2:{name:"punctuation.separator.key-value.css"}},end:"(?=\\n|;|\\})",endCaptures:{1:{name:"punctuation.terminator.rule.css"}},name:"meta.property-value.css",patterns:[{include:"#property_values"},{match:"[^\\n]+?"}]},property_values:{patterns:[{include:"#function"},{include:"#comment"},{include:"#language_keywords"},{include:"#language_constants"},{match:"(?:(?=\\w)(?<![\\w-]))(wrap-reverse|wrap|whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|unicase|underline|ultra-expanded|ultra-condensed|transparent|transform|top|titling-caps|thin|thick|text-top|text-bottom|text|tb-rl|table-row-group|table-row|table-header-group|table-footer-group|table-column-group|table-column|table-cell|table|sw-resize|super|strict|stretch|step-start|step-end|static|square|space-between|space-around|space|solid|soft-light|small-caps|separate|semi-expanded|semi-condensed|se-resize|scroll|screen|saturation|s-resize|running|rtl|row-reverse|row-resize|row|round|right|ridge|reverse|repeat-y|repeat-x|repeat|relative|progressive|progress|pre-wrap|pre-line|pre|pointer|petite-caps|paused|pan-x|pan-left|pan-right|pan-y|pan-up|pan-down|padding-box|overline|overlay|outside|outset|optimizeSpeed|optimizeLegibility|opacity|oblique|nw-resize|nowrap|not-allowed|normal|none|no-repeat|no-drop|newspaper|ne-resize|n-resize|multiply|move|middle|medium|max-height|manipulation|main-size|luminosity|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|local|list-item|linear(?!-)|line-through|line-edge|line|lighter|lighten|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline-block|inline|inherit|infinite|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|hue|horizontal|hidden|help|hard-light|hand|groove|geometricPrecision|forwards|flex-start|flex-end|flex|fixed|extra-expanded|extra-condensed|expanded|exclusion|ellipsis|ease-out|ease-in-out|ease-in|ease|e-resize|double|dotted|distribute-space|distribute-letter|distribute-all-lines|distribute|disc|disabled|difference|default|decimal|dashed|darken|currentColor|crosshair|cover|content-box|contain|condensed|column-reverse|column|color-dodge|color-burn|color|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|border-box|bolder|bold|block|bidi-override|below|baseline|balance|backwards|auto|antialiased|always|alternate-reverse|alternate|all-small-caps|all-scroll|all-petite-caps|all|absolute)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.property-value.css"},{match:"(?:(?=\\w)(?<![\\w-]))(start|sRGB|square|round|optimizeSpeed|optimizeQuality|nonzero|miter|middle|linearRGB|geometricPrecision |evenodd |end |crispEdges|butt|bevel)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.property-value.svg.css"},{include:"#font_name"},{include:"#numeric"},{include:"#color"},{include:"#string"},{match:"\\!\\s*important",name:"keyword.other.important.css"},{include:"#operator"},{include:"#stylus_keywords"},{include:"#property_variable"}]},property_variable:{patterns:[{include:"#variable"},{match:"(?<!^)(\\@[a-zA-Z_-][a-zA-Z0-9_-]*)",name:"variable.property.stylus"}]},selector:{patterns:[{match:"(?:(?=\\w)(?<![\\w-]))(a|abbr|acronym|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|main|map|mark|math|menu|menuitem|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|rb|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video|wbr)(?:(?<=\\w)(?![\\w-]))",name:"entity.name.tag.css"},{match:"(?:(?=\\w)(?<![\\w-]))(vkern|view|use|tspan|tref|title|textPath|text|symbol|switch|svg|style|stop|set|script|rect|radialGradient|polyline|polygon|pattern|path|mpath|missing-glyph|metadata|mask|marker|linearGradient|line|image|hkern|glyphRef|glyph|g|foreignObject|font-face-uri|font-face-src|font-face-name|font-face-format|font-face|font|filter|feTurbulence|feTile|feSpotLight|feSpecularLighting|fePointLight|feOffset|feMorphology|feMergeNode|feMerge|feImage|feGaussianBlur|feFuncR|feFuncG|feFuncB|feFuncA|feFlood|feDistantLight|feDisplacementMap|feDiffuseLighting|feConvolveMatrix|feComposite|feComponentTransfer|feColorMatrix|feBlend|ellipse|desc|defs|cursor|color-profile|clipPath|circle|animateTransform|animateMotion|animateColor|animate|altGlyphItem|altGlyphDef|altGlyph|a)(?:(?<=\\w)(?![\\w-]))",name:"entity.name.tag.svg.css"},{match:"\\s*(\\,)\\s*",name:"meta.selector.stylus"},{match:"\\*",name:"meta.selector.stylus"},{captures:{2:{name:"entity.other.attribute-name.parent-selector-suffix.stylus"}},match:"\\s*(\\&)([a-zA-Z0-9_-]+)\\s*",name:"meta.selector.stylus"},{match:"\\s*(\\&)\\s*",name:"meta.selector.stylus"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(\\.)[a-zA-Z0-9_-]+",name:"entity.other.attribute-name.class.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(#)[a-zA-Z][a-zA-Z0-9_-]*",name:"entity.other.attribute-name.id.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(:+)(after|before|content|first-letter|first-line|host|(-(moz|webkit|ms)-)?selection)\\b",name:"entity.other.attribute-name.pseudo-element.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(:)((first|last)-child|(first|last|only)-of-type|empty|root|target|first|left|right)\\b",name:"entity.other.attribute-name.pseudo-class.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(:)(checked|enabled|default|disabled|indeterminate|invalid|optional|required|valid)\\b",name:"entity.other.attribute-name.pseudo-class.ui-state.css"},{begin:"((:)not)(\\()",beginCaptures:{1:{name:"entity.other.attribute-name.pseudo-class.css"},2:{name:"punctuation.definition.entity.css"},3:{name:"punctuation.section.function.css"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.function.css"}},patterns:[{include:"#selector"}]},{captures:{1:{name:"entity.other.attribute-name.pseudo-class.css"},2:{name:"punctuation.definition.entity.css"},3:{name:"punctuation.section.function.css"},4:{name:"constant.numeric.css"},5:{name:"punctuation.section.function.css"}},match:"((:)nth-(?:(?:last-)?child|(?:last-)?of-type))(\\()(\\-?(?:\\d+n?|n)(?:\\+\\d+)?|even|odd)(\\))"},{captures:{1:{name:"entity.other.attribute-name.pseudo-class.css"},2:{name:"puncutation.definition.entity.css"},3:{name:"punctuation.section.function.css"},4:{name:"constant.language.css"},5:{name:"punctuation.section.function.css"}},match:"((:)dir)\\s*(?:(\\()(ltr|rtl)?(\\)))?"},{captures:{1:{name:"entity.other.attribute-name.pseudo-class.css"},2:{name:"puncutation.definition.entity.css"},3:{name:"punctuation.section.function.css"},4:{name:"constant.language.css"},6:{name:"punctuation.section.function.css"}},match:"((:)lang)\\s*(?:(\\()(\\w+(-\\w+)?)?(\\)))?"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(:)(active|hover|link|visited|focus)\\b",name:"entity.other.attribute-name.pseudo-class.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(::)(shadow)\\b",name:"entity.other.attribute-name.pseudo-class.css"},{captures:{1:{name:"punctuation.definition.entity.css"},2:{name:"entity.other.attribute-name.attribute.css"},3:{name:"punctuation.separator.operator.css"},4:{name:"string.unquoted.attribute-value.css"},5:{name:"string.quoted.double.attribute-value.css"},6:{name:"punctuation.definition.string.begin.css"},7:{name:"punctuation.definition.string.end.css"},8:{name:"punctuation.definition.entity.css"}},match:`(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])`,name:"meta.attribute-selector.css"},{include:"#interpolation"},{include:"#variable"}]},string:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.css"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.css"}},name:"string.quoted.double.css",patterns:[{match:"\\\\([a-fA-F0-9]{1,6}|.)",name:"constant.character.escape.css"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.css"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.css"}},name:"string.quoted.single.css",patterns:[{match:"\\\\([a-fA-F0-9]{1,6}|.)",name:"constant.character.escape.css"}]}]},variable:{match:"(\\$[a-zA-Z_-][a-zA-Z0-9_-]*)",name:"variable.stylus"},variable_declaration:{begin:"^[^\\S\\n]*(\\$?[a-zA-Z_-][a-zA-Z0-9_-]*)[^\\S\\n]*(\\=|\\?\\=|\\:\\=)",beginCaptures:{1:{name:"variable.stylus"},2:{name:"keyword.operator.stylus"}},end:"(\\n)|(;)|(?=\\})",endCaptures:{2:{name:"punctuation.terminator.rule.css"}},patterns:[{include:"#property_values"}]}},scopeName:"source.stylus",aliases:["styl"]});var t=[e];export{t as default}; diff --git a/assets/chunks/svelte.CpQM5Shq.js b/assets/chunks/svelte.CpQM5Shq.js new file mode 100644 index 000000000..aab95fe4f --- /dev/null +++ b/assets/chunks/svelte.CpQM5Shq.js @@ -0,0 +1 @@ +import e from"./javascript.Dch3xQiY.js";import t from"./typescript.DC8MraHL.js";import n from"./coffee.t_LrLW_f.js";import s from"./stylus.DSrLtGYv.js";import a from"./sass.CMDmr8et.js";import i from"./css.CbYhyuC0.js";import r from"./scss.Dr-_CcBd.js";import c from"./less.Du6_OKDb.js";import l from"./postcss.DXT9h7v2.js";import m from"./pug.BWq4yR4F.js";import o from"./markdown.BdfWgkoX.js";import"./html.CuK0VrWf.js";const d=Object.freeze({displayName:"Svelte",fileTypes:["svelte"],injections:{"L:(meta.script.svelte | meta.style.svelte) (meta.lang.js | meta.lang.javascript) - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.js",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.js"}]}]},"L:(meta.script.svelte | meta.style.svelte) (meta.lang.ts | meta.lang.typescript) - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.ts",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.ts"}]}]},"L:(meta.script.svelte | meta.style.svelte) meta.lang.coffee - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.coffee",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.coffee"}]}]},"L:(source.ts, source.js, source.coffee)":{patterns:[{match:`(?<![_$./'"[:alnum:]])\\$(?=[_[:alpha:]][_$[:alnum:]]*)`,name:"punctuation.definition.variable.svelte"},{match:`(?<![_$./'"[:alnum:]])(\\$\\$)(?=props|restProps|slots)`,name:"punctuation.definition.variable.svelte"}]},"L:meta.script.svelte - meta.lang - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.js",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.js"}]}]},"L:meta.style.svelte - meta.lang - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.css",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.css"}]}]},"L:meta.style.svelte meta.lang.css - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.css",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.css"}]}]},"L:meta.style.svelte meta.lang.less - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.css.less",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.css.less"}]}]},"L:meta.style.svelte meta.lang.postcss - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.css.postcss",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.css.postcss"}]}]},"L:meta.style.svelte meta.lang.sass - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.sass",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.sass"}]}]},"L:meta.style.svelte meta.lang.scss - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.css.scss",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.css.scss"}]}]},"L:meta.style.svelte meta.lang.stylus - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.stylus",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.stylus"}]}]},"L:meta.template.svelte - meta.lang - (meta source)":{patterns:[{begin:"(?<=>)\\s",end:"(?=</template)",patterns:[{include:"#scope"}]}]},"L:meta.template.svelte meta.lang.pug - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"text.pug",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"text.pug"}]}]}},name:"svelte",patterns:[{include:"#scope"}],repository:{attributes:{patterns:[{include:"#attributes-directives"},{include:"#attributes-keyvalue"},{include:"#attributes-interpolated"}]},"attributes-directives":{begin:"(?<!<)(on|use|bind|transition|in|out|animate|let|class|style)(:)(?:((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*(?=\\s*=))|((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*))((\\|\\w+)*)",beginCaptures:{1:{patterns:[{include:"#attributes-directives-keywords"}]},2:{name:"punctuation.definition.keyword.svelte"},3:{patterns:[{include:"#attributes-directives-types-assigned"}]},4:{patterns:[{include:"#attributes-directives-types"}]},5:{patterns:[{match:"\\w+",name:"support.function.svelte"},{match:"\\|",name:"punctuation.separator.svelte"}]}},end:"(?=\\s*+[^=\\s])",name:"meta.directive.$1.svelte",patterns:[{begin:"=",beginCaptures:{0:{name:"punctuation.separator.key-value.svelte"}},end:"(?<=[^\\s=])(?!\\s*=)|(?=/?>)",patterns:[{include:"#attributes-value"}]}]},"attributes-directives-keywords":{patterns:[{match:"on|use|bind",name:"keyword.control.svelte"},{match:"transition|in|out|animate",name:"keyword.other.animation.svelte"},{match:"let",name:"storage.type.svelte"},{match:"class|style",name:"entity.other.attribute-name.svelte"}]},"attributes-directives-types":{patterns:[{match:"(?<=(on):).*$",name:"entity.name.type.svelte"},{match:"(?<=(bind):).*$",name:"variable.parameter.svelte"},{match:"(?<=(use|transition|in|out|animate):).*$",name:"variable.function.svelte"},{match:"(?<=(let|class|style):).*$",name:"variable.parameter.svelte"}]},"attributes-directives-types-assigned":{patterns:[{match:"(?<=(bind):)this$",name:"variable.language.svelte"},{match:"(?<=(bind):).*$",name:"entity.name.type.svelte"},{match:"(?<=(class):).*$",name:"entity.other.attribute-name.class.svelte"},{match:"(?<=(style):).*$",name:"support.type.property-name.svelte"},{include:"#attributes-directives-types"}]},"attributes-generics":{begin:`(generics)(=)(["'])`,beginCaptures:{1:{name:"entity.other.attribute-name.svelte"},2:{name:"punctuation.separator.key-value.svelte"},3:{name:"punctuation.definition.string.begin.svelte"}},contentName:"meta.embedded.expression.svelte source.ts",end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.svelte"}},patterns:[{include:"#type-parameters"}]},"attributes-interpolated":{begin:"(?<!:|=)\\s*({)",captures:{1:{name:"entity.other.attribute-name.svelte"}},contentName:"meta.embedded.expression.svelte source.ts",end:"(\\})",patterns:[{include:"source.ts"}]},"attributes-keyvalue":{begin:"((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*)",beginCaptures:{0:{patterns:[{match:"--.*",name:"support.type.property-name.svelte"},{match:".*",name:"entity.other.attribute-name.svelte"}]}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.svelte",patterns:[{begin:"=",beginCaptures:{0:{name:"punctuation.separator.key-value.svelte"}},end:"(?<=[^\\s=])(?!\\s*=)|(?=/?>)",patterns:[{include:"#attributes-value"}]}]},"attributes-value":{patterns:[{include:"#interpolation"},{captures:{1:{name:"punctuation.definition.string.begin.svelte"},2:{name:"constant.numeric.decimal.svelte"},3:{name:"punctuation.definition.string.end.svelte"},4:{name:"constant.numeric.decimal.svelte"}},match:`(?:(['"])([0-9._]+[\\w%]{,4})(\\1))|(?:([0-9._]+[\\w%]{,4})(?=\\s|/?>))`},{match:"([^\\s\"'=<>`/]|/(?!>))+",name:"string.unquoted.svelte",patterns:[{include:"#interpolation"}]},{begin:`(['"])`,beginCaptures:{0:{name:"punctuation.definition.string.begin.svelte"}},end:"\\1",endCaptures:{0:{name:"punctuation.definition.string.end.svelte"}},name:"string.quoted.svelte",patterns:[{include:"#interpolation"}]}]},comments:{begin:"<!--",captures:{0:{name:"punctuation.definition.comment.svelte"}},end:"-->",name:"comment.block.svelte",patterns:[{begin:"(@)(component)",beginCaptures:{1:{name:"punctuation.definition.keyword.svelte"},2:{name:"storage.type.class.component.svelte keyword.declaration.class.component.svelte"}},contentName:"comment.block.documentation.svelte",end:"(?=-->)",patterns:[{captures:{0:{patterns:[{include:"text.html.markdown"}]}},match:".*?(?=-->)"},{include:"text.html.markdown"}]},{match:"\\G-?>|<!--(?!>)|<!-(?=-->)|--!>",name:"invalid.illegal.characters-not-allowed-here.svelte"}]},destructuring:{patterns:[{begin:"(?={)",end:"(?<=})",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts#object-binding-pattern"}]},{begin:"(?=\\[)",end:"(?<=\\])",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts#array-binding-pattern"}]}]},"destructuring-const":{patterns:[{begin:"(?={)",end:"(?<=})",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts#object-binding-pattern-const"}]},{begin:"(?=\\[)",end:"(?<=\\])",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts#array-binding-pattern-const"}]}]},interpolation:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.svelte"}},contentName:"meta.embedded.expression.svelte source.ts",end:"\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.svelte"}},patterns:[{begin:"\\G\\s*(?={)",end:"(?<=})",patterns:[{include:"source.ts#object-literal"}]},{include:"source.ts"}]}]},scope:{patterns:[{include:"#comments"},{include:"#special-tags"},{include:"#tags"},{include:"#interpolation"},{begin:"(?<=>|})",end:"(?=<|{)",name:"text.svelte"}]},"special-tags":{patterns:[{include:"#special-tags-void"},{include:"#special-tags-block-begin"},{include:"#special-tags-block-end"}]},"special-tags-block-begin":{begin:"({)\\s*(#([a-z]*))",beginCaptures:{1:{name:"punctuation.definition.block.begin.svelte"},2:{patterns:[{include:"#special-tags-keywords"}]}},end:"(})",endCaptures:{0:{name:"punctuation.definition.block.end.svelte"}},name:"meta.special.$3.svelte meta.special.start.svelte",patterns:[{include:"#special-tags-modes"}]},"special-tags-block-end":{begin:"({)\\s*(/([a-z]*))",beginCaptures:{1:{name:"punctuation.definition.block.begin.svelte"},2:{patterns:[{include:"#special-tags-keywords"}]}},end:"(})",endCaptures:{1:{name:"punctuation.definition.block.end.svelte"}},name:"meta.special.$3.svelte meta.special.end.svelte"},"special-tags-keywords":{captures:{1:{name:"punctuation.definition.keyword.svelte"},2:{patterns:[{match:"if|else\\s+if|else",name:"keyword.control.conditional.svelte"},{match:"each|key",name:"keyword.control.svelte"},{match:"await|then|catch",name:"keyword.control.flow.svelte"},{match:"snippet",name:"keyword.control.svelte"},{match:"html",name:"keyword.other.svelte"},{match:"render",name:"keyword.other.svelte"},{match:"debug",name:"keyword.other.debugger.svelte"},{match:"const",name:"storage.type.svelte"}]}},match:"([#@/:])(else\\s+if|[a-z]*)"},"special-tags-modes":{patterns:[{begin:"(?<=(if|key|then|catch|snippet|html|render).*?)\\G",end:"(?=})",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]},{begin:"(?<=const.*?)\\G",end:"(?=})",patterns:[{include:"#destructuring-const"},{begin:"\\G\\s*([_$[:alpha:]][_$[:alnum:]]+)\\s*",beginCaptures:{1:{name:"variable.other.constant.svelte"}},end:"(?=\\=)"},{begin:"(?=\\=)",end:"(?=})",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]}]},{begin:"(?<=each.*?)\\G",end:"(?=})",patterns:[{begin:"\\G\\s*?(?=\\S)",contentName:"meta.embedded.expression.svelte source.ts",end:"(?=(?:^\\s*|\\s+)(as))",patterns:[{include:"source.ts"}]},{begin:"(as)",beginCaptures:{1:{name:"keyword.control.as.svelte"}},end:"(?=})",patterns:[{include:"#destructuring"},{begin:"\\(",captures:{0:{name:"meta.brace.round.svelte"}},contentName:"meta.embedded.expression.svelte source.ts",end:"\\)|(?=})",patterns:[{include:"source.ts"}]},{captures:{1:{name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]}},match:"(\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*)"},{match:",",name:"punctuation.separator.svelte"}]}]},{begin:"(?<=await.*?)\\G",end:"(?=})",patterns:[{begin:"\\G\\s*?(?=\\S)",contentName:"meta.embedded.expression.svelte source.ts",end:"\\s+(then)|(?=})",endCaptures:{1:{name:"keyword.control.flow.svelte"}},patterns:[{include:"source.ts"}]},{begin:"(?<=then\\b)",contentName:"meta.embedded.expression.svelte source.ts",end:"(?=})",patterns:[{include:"source.ts"}]}]},{begin:"(?<=debug.*?)\\G",end:"(?=})",patterns:[{captures:{0:{name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]}},match:"[_$[:alpha:]][_$[:alnum:]]*"},{match:",",name:"punctuation.separator.svelte"}]}]},"special-tags-void":{begin:"({)\\s*((?:[@:])(else\\s+if|[a-z]*))",beginCaptures:{1:{name:"punctuation.definition.block.begin.svelte"},2:{patterns:[{include:"#special-tags-keywords"}]}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.end.svelte"}},name:"meta.special.$3.svelte",patterns:[{include:"#special-tags-modes"}]},tags:{patterns:[{include:"#tags-lang"},{include:"#tags-void"},{include:"#tags-general-end"},{include:"#tags-general-start"}]},"tags-end-node":{captures:{1:{name:"meta.tag.end.svelte punctuation.definition.tag.begin.svelte"},2:{name:"meta.tag.end.svelte",patterns:[{include:"#tags-name"}]},3:{name:"meta.tag.end.svelte punctuation.definition.tag.end.svelte"},4:{name:"meta.tag.start.svelte punctuation.definition.tag.end.svelte"}},match:"(</)(.*?)\\s*(>)|(/>)"},"tags-general-end":{begin:"(</)([^/\\s>]*)",beginCaptures:{1:{name:"meta.tag.end.svelte punctuation.definition.tag.begin.svelte"},2:{name:"meta.tag.end.svelte",patterns:[{include:"#tags-name"}]}},end:"(>)",endCaptures:{1:{name:"meta.tag.end.svelte punctuation.definition.tag.end.svelte"}},name:"meta.scope.tag.$2.svelte"},"tags-general-start":{begin:"(<)([^/\\s>/]*)",beginCaptures:{0:{patterns:[{include:"#tags-start-node"}]}},end:"(/?>)",endCaptures:{1:{name:"meta.tag.start.svelte punctuation.definition.tag.end.svelte"}},name:"meta.scope.tag.$2.svelte",patterns:[{include:"#tags-start-attributes"}]},"tags-lang":{begin:"<(script|style|template)",beginCaptures:{0:{patterns:[{include:"#tags-start-node"}]}},end:"</\\1\\s*>|/>",endCaptures:{0:{patterns:[{include:"#tags-end-node"}]}},name:"meta.$1.svelte",patterns:[{begin:`\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['"]|)(?:text/)?(\\w+)\\2)`,end:"(?=</|/>)",name:"meta.lang.$3.svelte",patterns:[{include:"#tags-lang-start-attributes"}]},{include:"#tags-lang-start-attributes"}]},"tags-lang-start-attributes":{begin:"\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.svelte"}},name:"meta.tag.start.svelte",patterns:[{include:"#attributes-generics"},{include:"#attributes"}]},"tags-name":{patterns:[{captures:{1:{name:"keyword.control.svelte"},2:{name:"punctuation.definition.keyword.svelte"},3:{name:"entity.name.tag.svelte"}},match:"(svelte)(:)([a-z][\\w0-9:-]*)"},{match:"slot",name:"keyword.control.svelte"},{match:"[A-Z][a-zA-Z0-9_]*",name:"support.class.component.svelte"},{match:"[a-z][\\w0-9:]*-[\\w0-9:-]*",name:"meta.tag.custom.svelte entity.name.tag.svelte"},{match:"[a-z][\\w0-9:-]*",name:"entity.name.tag.svelte"}]},"tags-start-attributes":{begin:"\\G",end:"(?=/?>)",name:"meta.tag.start.svelte",patterns:[{include:"#attributes"}]},"tags-start-node":{captures:{1:{name:"punctuation.definition.tag.begin.svelte"},2:{patterns:[{include:"#tags-name"}]}},match:"(<)([^/\\s>/]*)",name:"meta.tag.start.svelte"},"tags-void":{begin:"(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.svelte"},2:{name:"entity.name.tag.svelte"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.begin.svelte"}},name:"meta.tag.void.svelte",patterns:[{include:"#attributes"}]},"type-parameters":{name:"meta.type.parameters.ts",patterns:[{include:"source.ts#comment"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"},{include:"source.ts#type"},{include:"source.ts#punctuation-comma"},{match:"(=)(?!>)",name:"keyword.operator.assignment.ts"}]}},scopeName:"source.svelte",embeddedLangs:["javascript","typescript","coffee","stylus","sass","css","scss","less","postcss","pug","markdown"]});var x=[...e,...t,...n,...s,...a,...i,...r,...c,...l,...m,...o,d];export{x as default}; diff --git a/assets/chunks/swift.Dez-Qvcc.js b/assets/chunks/swift.Dez-Qvcc.js new file mode 100644 index 000000000..3e481465d --- /dev/null +++ b/assets/chunks/swift.Dez-Qvcc.js @@ -0,0 +1,544 @@ +const e=Object.freeze({displayName:"Swift",name:"swift",patterns:[{include:"#root"}],repository:{"async-throws":{captures:{1:{name:"invalid.illegal.await-must-precede-throws.swift"},2:{name:"storage.modifier.exception.swift"},3:{name:"storage.modifier.async.swift"}},match:"\\b(?:(throws\\s+async|rethrows\\s+async)|(throws|rethrows)|(async))\\b"},attributes:{patterns:[{begin:"((@)available)(\\()",beginCaptures:{1:{name:"storage.modifier.attribute.swift"},2:{name:"punctuation.definition.attribute.swift"},3:{name:"punctuation.definition.arguments.begin.swift"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},name:"meta.attribute.available.swift",patterns:[{captures:{1:{name:"keyword.other.platform.os.swift"},2:{name:"constant.numeric.swift"}},match:"\\b(swift|(?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))?"},{begin:"\\b(introduced|deprecated|obsoleted)\\s*(:)\\s*",beginCaptures:{1:{name:"keyword.other.swift"},2:{name:"punctuation.separator.key-value.swift"}},end:"(?!\\G)",patterns:[{match:"\\b[0-9]+(?:\\.[0-9]+)*\\b",name:"constant.numeric.swift"}]},{begin:'\\b(message|renamed)\\s*(:)\\s*(?=")',beginCaptures:{1:{name:"keyword.other.swift"},2:{name:"punctuation.separator.key-value.swift"}},end:"(?!\\G)",patterns:[{include:"#literals"}]},{captures:{1:{name:"keyword.other.platform.all.swift"},2:{name:"keyword.other.swift"},3:{name:"invalid.illegal.character-not-allowed-here.swift"}},match:"(?:(\\*)|\\b(deprecated|unavailable|noasync)\\b)\\s*(.*?)(?=[,)])"}]},{begin:"((@)objc)(\\()",beginCaptures:{1:{name:"storage.modifier.attribute.swift"},2:{name:"punctuation.definition.attribute.swift"},3:{name:"punctuation.definition.arguments.begin.swift"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},name:"meta.attribute.objc.swift",patterns:[{captures:{1:{name:"invalid.illegal.missing-colon-after-selector-piece.swift"}},match:"\\w*(?::(?:\\w*:)*(\\w*))?",name:"entity.name.function.swift"}]},{begin:"(@)(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)",beginCaptures:{0:{name:"storage.modifier.attribute.swift"},1:{name:"punctuation.definition.attribute.swift"},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"}},comment:"any other attribute",end:"(?!\\G\\()",name:"meta.attribute.swift",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.arguments.begin.swift"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},name:"meta.arguments.attribute.swift",patterns:[{include:"#expressions"}]}]}]},"builtin-functions":{patterns:[{comment:"Member functions in the standard library in Swift 3 which may be used with trailing closures and no parentheses",match:"(?<=\\.)(?:s(?:ort(?:ed)?|plit)|contains|index|partition|f(?:i(?:lter|rst)|orEach|latMap)|with(?:MutableCharacters|CString|U(?:nsafe(?:Mutable(?:BufferPointer|Pointer(?:s|To(?:Header|Elements)))|BufferPointer)|TF8Buffer))|m(?:in|a(?:p|x)))(?=\\s*[({])\\b",name:"support.function.swift"},{comment:"Member functions in the standard library in Swift 3",match:"(?<=\\.)(?:s(?:ymmetricDifference|t(?:oreBytes|arts|ride)|ortInPlace|u(?:ccessor|ffix|btract(?:ing|InPlace|WithOverflow)?)|quareRoot|amePosition)|h(?:oldsUnique(?:Reference|OrPinnedReference)|as(?:Suffix|Prefix))|ne(?:gate(?:d)?|xt)|c(?:o(?:untByEnumerating|py(?:Bytes)?)|lamp(?:ed)?|reate)|t(?:o(?:IntMax|Opaque|UIntMax)|ake(?:RetainedValue|UnretainedValue)|r(?:uncatingRemainder|a(?:nscodedLength|ilSurrogate)))|i(?:s(?:MutableAndUniquelyReferenced(?:OrPinned)?|S(?:trictSu(?:perset(?:Of)?|bset(?:Of)?)|u(?:perset(?:Of)?|bset(?:Of)?))|Continuation|T(?:otallyOrdered|railSurrogate)|Disjoint(?:With)?|Unique(?:Reference|lyReferenced(?:OrPinned)?)|Equal|Le(?:ss(?:ThanOrEqualTo)?|adSurrogate))|n(?:sert(?:ContentsOf)?|tersect(?:ion|InPlace)?|itialize(?:Memory|From)?|dex(?:Of|ForKey)))|o(?:verlaps|bjectAt)|d(?:i(?:stance(?:To)?|vide(?:d|WithOverflow)?)|e(?:s(?:cendant|troy)|code(?:CString)?|initialize|alloc(?:ate(?:Capacity)?)?)|rop(?:First|Last))|u(?:n(?:ion(?:InPlace)?|derestimateCount|wrappedOrError)|p(?:date(?:Value)?|percased))|join(?:ed|WithSeparator)|p(?:op(?:First|Last)|ass(?:Retained|Unretained)|re(?:decessor|fix))|e(?:scape(?:d)?|n(?:code|umerate(?:d)?)|lementsEqual|xclusiveOr(?:InPlace)?)|f(?:orm(?:Remainder|S(?:ymmetricDifference|quareRoot)|TruncatingRemainder|In(?:tersection|dex)|Union)|latten|rom(?:CString(?:RepairingIllFormedUTF8)?|Opaque))|w(?:i(?:thMemoryRebound|dth)|rite(?:To)?)|l(?:o(?:wercased|ad)|e(?:adSurrogate|xicographical(?:Compare|lyPrecedes)))|a(?:ss(?:ign(?:BackwardFrom|From)?|umingMemoryBound)|d(?:d(?:ing(?:Product)?|Product|WithOverflow)?|vanced(?:By)?)|utorelease|ppend(?:ContentsOf)?|lloc(?:ate)?|bs)|r(?:ound(?:ed)?|e(?:serveCapacity|tain|duce|place(?:Range|Subrange)?|verse(?:d)?|quest(?:NativeBuffer|UniqueMutableBackingBuffer)|lease|m(?:ove(?:Range|Subrange|Value(?:ForKey)?|First|Last|A(?:tIndex|ll))?|ainder(?:WithOverflow)?)))|ge(?:nerate|t(?:Objects|Element))|m(?:in(?:imum(?:Magnitude)?|Element)|ove(?:Initialize(?:Memory|BackwardFrom|From)?|Assign(?:From)?)?|ultipl(?:y(?:WithOverflow)?|ied)|easure|a(?:ke(?:Iterator|Description)|x(?:imum(?:Magnitude)?|Element)))|bindMemory)(?=\\s*\\()",name:"support.function.swift"},{comment:"Member functions in the standard library in Swift 2 only",match:"(?<=\\.)(?:s(?:uperclassMirror|amePositionIn|tartsWith)|nextObject|c(?:haracterAtIndex|o(?:untByEnumeratingWithState|pyWithZone)|ustom(?:Mirror|PlaygroundQuickLook))|is(?:EmptyInput|ASCII)|object(?:Enumerator|ForKey|AtIndex)|join|put|keyEnumerator|withUnsafeMutablePointerToValue|length|getMirror|m(?:oveInitializeAssignFrom|ember))(?=\\s*\\()",name:"support.function.swift"}]},"builtin-global-functions":{patterns:[{begin:"\\b(type)(\\()\\s*(of)(:)",beginCaptures:{1:{name:"support.function.dynamic-type.swift"},2:{name:"punctuation.definition.arguments.begin.swift"},3:{name:"support.variable.parameter.swift"},4:{name:"punctuation.separator.argument-label.begin.swift"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},patterns:[{include:"#expressions"}]},{comment:"Global functions available in Swift 3 which may be used with trailing closures and no parentheses",match:"\\b(?:anyGenerator|autoreleasepool)(?=\\s*[({])\\b",name:"support.function.swift"},{comment:"Global functions available in Swift 3",match:"\\b(?:s(?:tride(?:of(?:Value)?)?|izeof(?:Value)?|equence|wap)|numericCast|transcode|is(?:UniquelyReferenced(?:NonObjC)?|KnownUniquelyReferenced)|zip|d(?:ump|ebugPrint)|unsafe(?:BitCast|Downcast|Unwrap|Address(?:Of)?)|pr(?:int|econdition(?:Failure)?)|fatalError|with(?:Unsafe(?:MutablePointer|Pointer)|ExtendedLifetime|VaList)|a(?:ssert(?:ionFailure)?|lignof(?:Value)?|bs)|re(?:peatElement|adLine)|getVaList|m(?:in|ax))(?=\\s*\\()",name:"support.function.swift"},{comment:"Global functions available in Swift 2 only",match:"\\b(?:s(?:ort|uffix|pli(?:ce|t))|insert|overlaps|d(?:istance|rop(?:First|Last))|join|prefix|extend|withUnsafe(?:MutablePointers|Pointers)|lazy|advance|re(?:flect|move(?:Range|Last|A(?:tIndex|ll))))(?=\\s*\\()",name:"support.function.swift"}]},"builtin-properties":{patterns:[{comment:"The simpler (?<=\\bProcess\\.|\\bCommandLine\\.) breaks VS Code / Atom, see https://github.com/textmate/swift.tmbundle/issues/29",match:"(?<=^Process\\.|\\WProcess\\.|^CommandLine\\.|\\WCommandLine\\.)(arguments|argc|unsafeArgv)",name:"support.variable.swift"},{comment:"Properties in the standard library in Swift 3",match:"(?<=\\.)(?:s(?:t(?:artIndex|ri(?:ngValue|de))|i(?:ze|gn(?:BitIndex|ificand(?:Bit(?:Count|Pattern)|Width)?|alingNaN)?)|u(?:perclassMirror|mmary|bscriptBaseAddress))|h(?:eader|as(?:hValue|PointerRepresentation))|n(?:ulTerminatedUTF8|ext(?:Down|Up)|a(?:n|tiveOwner))|c(?:haracters|ount(?:TrailingZeros)?|ustom(?:Mirror|PlaygroundQuickLook)|apacity)|i(?:s(?:S(?:ign(?:Minus|aling(?:NaN)?)|ubnormal)|N(?:ormal|aN)|Canonical|Infinite|Zero|Empty|Finite|ASCII)|n(?:dices|finity)|dentity)|owner|de(?:scription|bugDescription)|u(?:n(?:safelyUnwrapped|icodeScalar(?:s)?|derestimatedCount)|tf(?:16|8(?:Start|C(?:String|odeUnitCount))?)|intValue|ppercaseString|lp(?:OfOne)?)|p(?:i|ointee)|e(?:ndIndex|lements|xponent(?:Bit(?:Count|Pattern))?)|value(?:s)?|keys|quietNaN|f(?:irst(?:ElementAddress(?:IfContiguous)?)?|loatingPointClass)|l(?:ittleEndian|owercaseString|eastNo(?:nzeroMagnitude|rmalMagnitude)|a(?:st|zy))|a(?:l(?:ignment|l(?:ocatedElementCount|Zeros))|rray(?:PropertyIsNativeTypeChecked)?)|ra(?:dix|wValue)|greatestFiniteMagnitude|m(?:in|emory|ax)|b(?:yteS(?:ize|wapped)|i(?:nade|tPattern|gEndian)|uffer|ase(?:Address)?))\\b",name:"support.variable.swift"},{comment:"Properties in the standard library in Swift 2 only",match:"(?<=\\.)(?:boolValue|disposition|end|objectIdentifier|quickLookObject|start|valueType)\\b",name:"support.variable.swift"},{comment:"Enum cases in the standard library - note that there is some overlap between these and the properties",match:"(?<=\\.)(?:s(?:calarValue|i(?:ze|gnalingNaN)|o(?:und|me)|uppressed|prite|et)|n(?:one|egative(?:Subnormal|Normal|Infinity|Zero))|c(?:ol(?:or|lection)|ustomized)|t(?:o(?:NearestOr(?:Even|AwayFromZero)|wardZero)|uple|ext)|i(?:nt|mage)|optional|d(?:ictionary|o(?:uble|wn))|u(?:Int|p|rl)|p(?:o(?:sitive(?:Subnormal|Normal|Infinity|Zero)|int)|lus)|e(?:rror|mptyInput)|view|quietNaN|float|a(?:ttributedString|wayFromZero)|r(?:ectangle|ange)|generated|minus|b(?:ool|ezierPath))\\b",name:"support.variable.swift"}]},"builtin-types":{comment:"Types provided in the standard library",patterns:[{include:"#builtin-types-builtin-class-type"},{include:"#builtin-types-builtin-enum-type"},{include:"#builtin-types-builtin-protocol-type"},{include:"#builtin-types-builtin-struct-type"},{include:"#builtin-types-builtin-typealias"},{match:"\\bAny\\b",name:"support.type.any.swift"}]},"builtin-types-builtin-class-type":{comment:"Builtin class types",match:"\\b(Managed(Buffer|ProtoBuffer)|NonObjectiveCBase|AnyGenerator)\\b",name:"support.class.swift"},"builtin-types-builtin-enum-type":{patterns:[{comment:"CommandLine is an enum, but it acts like a constant",match:"\\b(?:CommandLine|Process(?=\\.))\\b",name:"support.constant.swift"},{comment:"The return type of a function that never returns",match:"\\bNever\\b",name:"support.constant.never.swift"},{comment:"Enum types in the standard library in Swift 3",match:"\\b(?:ImplicitlyUnwrappedOptional|Representation|MemoryLayout|FloatingPointClassification|SetIndexRepresentation|SetIteratorRepresentation|FloatingPointRoundingRule|UnicodeDecodingResult|Optional|DictionaryIndexRepresentation|AncestorRepresentation|DisplayStyle|PlaygroundQuickLook|Never|FloatingPointSign|Bit|DictionaryIteratorRepresentation)\\b",name:"support.type.swift"},{comment:"Enum types in the standard library in Swift 2 only",match:"\\b(?:MirrorDisposition|QuickLookObject)\\b",name:"support.type.swift"}]},"builtin-types-builtin-protocol-type":{patterns:[{comment:"Protocols in the standard library in Swift 3",match:"\\b(?:Ra(?:n(?:domAccess(?:Collection|Indexable)|geReplaceable(?:Collection|Indexable))|wRepresentable)|M(?:irrorPath|utable(?:Collection|Indexable))|Bi(?:naryFloatingPoint|twiseOperations|directional(?:Collection|Indexable))|S(?:tr(?:ideable|eamable)|igned(?:Number|Integer)|e(?:tAlgebra|quence))|Hashable|C(?:o(?:llection|mparable)|ustom(?:Reflectable|StringConvertible|DebugStringConvertible|PlaygroundQuickLookable|LeafReflectable)|VarArg)|TextOutputStream|I(?:n(?:teger(?:Arithmetic)?|dexable(?:Base)?)|teratorProtocol)|OptionSet|Un(?:signedInteger|icodeCodec)|E(?:quatable|rror|xpressibleBy(?:BooleanLiteral|String(?:Interpolation|Literal)|NilLiteral|IntegerLiteral|DictionaryLiteral|UnicodeScalarLiteral|ExtendedGraphemeClusterLiteral|FloatLiteral|ArrayLiteral))|FloatingPoint|L(?:osslessStringConvertible|azy(?:SequenceProtocol|CollectionProtocol))|A(?:nyObject|bsoluteValuable))\\b",name:"support.type.swift"},{comment:"Protocols in the standard library in Swift 2 only",match:"\\b(?:Ran(?:domAccessIndexType|geReplaceableCollectionType)|GeneratorType|M(?:irror(?:Type|PathType)|utable(?:Sliceable|CollectionType))|B(?:i(?:twiseOperationsType|directionalIndexType)|oolean(?:Type|LiteralConvertible))|S(?:tring(?:InterpolationConvertible|LiteralConvertible)|i(?:nkType|gned(?:NumberType|IntegerType))|e(?:tAlgebraType|quenceType)|liceable)|NilLiteralConvertible|C(?:ollectionType|VarArgType)|Inte(?:rvalType|ger(?:Type|LiteralConvertible|ArithmeticType))|O(?:utputStreamType|ptionSetType)|DictionaryLiteralConvertible|Un(?:signedIntegerType|icode(?:ScalarLiteralConvertible|CodecType))|E(?:rrorType|xten(?:sibleCollectionType|dedGraphemeClusterLiteralConvertible))|F(?:orwardIndexType|loat(?:ingPointType|LiteralConvertible))|A(?:nyCollectionType|rrayLiteralConvertible))\\b",name:"support.type.swift"}]},"builtin-types-builtin-struct-type":{patterns:[{comment:"Structs in the standard library in Swift 3",match:"\\b(?:R(?:e(?:peat(?:ed)?|versed(?:RandomAccess(?:Collection|Index)|Collection|Index))|an(?:domAccessSlice|ge(?:Replaceable(?:RandomAccessSlice|BidirectionalSlice|Slice)|Generator)?))|Generator(?:Sequence|OfOne)|M(?:irror|utable(?:Ran(?:domAccessSlice|geReplaceable(?:RandomAccessSlice|BidirectionalSlice|Slice))|BidirectionalSlice|Slice)|anagedBufferPointer)|B(?:idirectionalSlice|ool)|S(?:t(?:aticString|ri(?:ng|deT(?:hrough(?:Generator|Iterator)?|o(?:Generator|Iterator)?)))|et(?:I(?:ndex|terator))?|lice)|HalfOpenInterval|C(?:haracter(?:View)?|o(?:ntiguousArray|untable(?:Range|ClosedRange)|llectionOfOne)|OpaquePointer|losed(?:Range(?:I(?:ndex|terator))?|Interval)|VaListPointer)|I(?:n(?:t(?:16|8|32|64)?|d(?:ices|ex(?:ing(?:Generator|Iterator))?))|terator(?:Sequence|OverOne)?)|Zip2(?:Sequence|Iterator)|O(?:paquePointer|bjectIdentifier)|D(?:ictionary(?:I(?:ndex|terator)|Literal)?|ouble|efault(?:RandomAccessIndices|BidirectionalIndices|Indices))|U(?:n(?:safe(?:RawPointer|Mutable(?:RawPointer|BufferPointer|Pointer)|BufferPointer(?:Generator|Iterator)?|Pointer)|icodeScalar(?:View)?|foldSequence|managed)|TF(?:16(?:View)?|8(?:View)?|32)|Int(?:16|8|32|64)?)|Join(?:Generator|ed(?:Sequence|Iterator))|PermutationGenerator|E(?:numerate(?:Generator|Sequence|d(?:Sequence|Iterator))|mpty(?:Generator|Collection|Iterator))|Fl(?:oat(?:80)?|atten(?:Generator|BidirectionalCollection(?:Index)?|Sequence|Collection(?:Index)?|Iterator))|L(?:egacyChildren|azy(?:RandomAccessCollection|Map(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Collection|Iterator)|BidirectionalCollection|Sequence|Collection|Filter(?:Generator|BidirectionalCollection|Sequence|Collection|I(?:ndex|terator))))|A(?:ny(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Hashable|Collection|I(?:ndex|terator))|utoreleasingUnsafeMutablePointer|rray(?:Slice)?))\\b",name:"support.type.swift"},{comment:"Structs in the standard library in Swift 2 only",match:"\\b(?:R(?:everse(?:RandomAccess(?:Collection|Index)|Collection|Index)|awByte)|Map(?:Generator|Sequence|Collection)|S(?:inkOf|etGenerator)|Zip2Generator|DictionaryGenerator|Filter(?:Generator|Sequence|Collection(?:Index)?)|LazyForwardCollection|Any(?:RandomAccessIndex|BidirectionalIndex|Forward(?:Collection|Index)))\\b",name:"support.type.swift"}]},"builtin-types-builtin-typealias":{patterns:[{comment:"Typealiases in the standard library in Swift 3",match:"\\b(?:Raw(?:Significand|Exponent|Value)|B(?:ooleanLiteralType|uffer|ase)|S(?:t(?:orage|r(?:i(?:ngLiteralType|de)|eam(?:1|2)))|ubSequence)|NativeBuffer|C(?:hild(?:ren)?|Bool|S(?:hort|ignedChar)|odeUnit|Char(?:16|32)?|Int|Double|Unsigned(?:Short|Char|Int|Long(?:Long)?)|Float|WideChar|Long(?:Long)?)|I(?:n(?:t(?:Max|egerLiteralType)|d(?:ices|ex(?:Distance)?))|terator)|Distance|U(?:n(?:icodeScalar(?:Type|Index|View|LiteralType)|foldFirstSequence)|TF(?:16(?:Index|View)|8Index)|IntMax)|E(?:lement(?:s)?|x(?:tendedGraphemeCluster(?:Type|LiteralType)|ponent))|V(?:oid|alue)|Key|Float(?:32|LiteralType|64)|AnyClass)\\b",name:"support.type.swift"},{comment:"Typealiases in the standard library in Swift 2 only",match:"\\b(?:Generator|PlaygroundQuickLook|UWord|Word)\\b",name:"support.type.swift"}]},"code-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.scope.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.scope.end.swift"}},patterns:[{include:"$self"}]},comments:{patterns:[{captures:{1:{name:"punctuation.definition.comment.swift"}},match:"\\A^(#!).*$\\n?",name:"comment.line.number-sign.swift"},{begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.begin.swift"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.swift"}},name:"comment.block.documentation.swift",patterns:[{include:"#comments-nested"}]},{begin:"/\\*:",beginCaptures:{0:{name:"punctuation.definition.comment.begin.swift"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.swift"}},name:"comment.block.documentation.playground.swift",patterns:[{include:"#comments-nested"}]},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.swift"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.swift"}},name:"comment.block.swift",patterns:[{include:"#comments-nested"}]},{match:"\\*/",name:"invalid.illegal.unexpected-end-of-block-comment.swift"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.swift"}},end:"(?!\\G)",patterns:[{begin:"///",beginCaptures:{0:{name:"punctuation.definition.comment.swift"}},end:"$",name:"comment.line.triple-slash.documentation.swift"},{begin:"//:",beginCaptures:{0:{name:"punctuation.definition.comment.swift"}},end:"$",name:"comment.line.double-slash.documentation.swift"},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.swift"}},end:"$",name:"comment.line.double-slash.swift"}]}]},"comments-nested":{begin:"/\\*",end:"\\*/",patterns:[{include:"#comments-nested"}]},"compiler-control":{patterns:[{begin:"^\\s*(#)(if|elseif)\\s+(false)\\b.*?(?=$|//|/\\*)",beginCaptures:{0:{name:"meta.preprocessor.conditional.swift"},1:{name:"punctuation.definition.preprocessor.swift"},2:{name:"keyword.control.import.preprocessor.conditional.swift"},3:{name:"constant.language.boolean.swift"}},contentName:"comment.block.preprocessor.swift",end:"(?=^\\s*(#(elseif|else|endif)\\b))"},{begin:"^\\s*(#)(if|elseif)\\s+",captures:{1:{name:"punctuation.definition.preprocessor.swift"},2:{name:"keyword.control.import.preprocessor.conditional.swift"}},end:"(?=\\s*(?://|/\\*))|$",name:"meta.preprocessor.conditional.swift",patterns:[{match:"(&&|\\|\\|)",name:"keyword.operator.logical.swift"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.swift"},{captures:{1:{name:"keyword.other.condition.swift"},2:{name:"punctuation.definition.parameters.begin.swift"},3:{name:"support.constant.platform.architecture.swift"},4:{name:"punctuation.definition.parameters.end.swift"}},match:"\\b(arch)\\s*(\\()\\s*(?:(arm|arm64|powerpc64|powerpc64le|i386|x86_64|s390x)|\\w+)\\s*(\\))"},{captures:{1:{name:"keyword.other.condition.swift"},2:{name:"punctuation.definition.parameters.begin.swift"},3:{name:"support.constant.platform.os.swift"},4:{name:"punctuation.definition.parameters.end.swift"}},match:"\\b(os)\\s*(\\()\\s*(?:(macOS|OSX|iOS|tvOS|watchOS|Android|Linux|FreeBSD|Windows|PS4)|\\w+)\\s*(\\))"},{captures:{1:{name:"keyword.other.condition.swift"},2:{name:"punctuation.definition.parameters.begin.swift"},3:{name:"entity.name.type.module.swift"},4:{name:"punctuation.definition.parameters.end.swift"}},match:"\\b(canImport)\\s*(\\()([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(\\))"},{begin:"\\b(targetEnvironment)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.condition.swift"},2:{name:"punctuation.definition.parameters.begin.swift"}},end:"(\\))|$",endCaptures:{1:{name:"punctuation.definition.parameters.end.swift"}},patterns:[{match:"\\b(simulator|UIKitForMac)\\b",name:"support.constant.platform.environment.swift"}]},{begin:"\\b(swift|compiler)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.condition.swift"},2:{name:"punctuation.definition.parameters.begin.swift"}},end:"(\\))|$",endCaptures:{1:{name:"punctuation.definition.parameters.end.swift"}},patterns:[{match:">=|<",name:"keyword.operator.comparison.swift"},{match:"\\b[0-9]+(?:\\.[0-9]+)*\\b",name:"constant.numeric.swift"}]}]},{captures:{1:{name:"punctuation.definition.preprocessor.swift"},2:{name:"keyword.control.import.preprocessor.conditional.swift"},3:{patterns:[{match:"\\S+",name:"invalid.illegal.character-not-allowed-here.swift"}]}},match:"^\\s*(#)(else|endif)(.*?)(?=$|//|/\\*)",name:"meta.preprocessor.conditional.swift"},{captures:{1:{name:"punctuation.definition.preprocessor.swift"},2:{name:"keyword.control.import.preprocessor.sourcelocation.swift"},4:{name:"punctuation.definition.parameters.begin.swift"},5:{patterns:[{begin:'(file)\\s*(:)\\s*(?=")',beginCaptures:{1:{name:"support.variable.parameter.swift"},2:{name:"punctuation.separator.key-value.swift"}},end:"(?!\\G)",patterns:[{include:"#literals"}]},{captures:{1:{name:"support.variable.parameter.swift"},2:{name:"punctuation.separator.key-value.swift"},3:{name:"constant.numeric.integer.swift"}},match:"(line)\\s*(:)\\s*([0-9]+)"},{match:",",name:"punctuation.separator.parameters.swift"},{match:"\\S+",name:"invalid.illegal.character-not-allowed-here.swift"}]},6:{name:"punctuation.definition.parameters.begin.swift"},7:{patterns:[{match:"\\S+",name:"invalid.illegal.character-not-allowed-here.swift"}]}},match:"^\\s*(#)(sourceLocation)((\\()([^)]*)(\\)))(.*?)(?=$|//|/\\*)",name:"meta.preprocessor.sourcelocation.swift"}]},conditionals:{patterns:[{begin:"(?<!\\.)\\b(if|guard|switch|for)\\b",beginCaptures:{1:{patterns:[{include:"#keywords"}]}},end:"(?=\\{)",patterns:[{include:"#expressions-without-trailing-closures"}]},{begin:"(?<!\\.)\\b(while)\\b",beginCaptures:{1:{patterns:[{include:"#keywords"}]}},comment:"while can be the end of a repeat-while statement so doesn't necessarily have braces after it",end:"(?=\\{)|$",patterns:[{include:"#expressions-without-trailing-closures"}]}]},declarations:{patterns:[{include:"#declarations-function"},{include:"#declarations-function-initializer"},{include:"#declarations-function-subscript"},{include:"#declarations-typed-variable-declaration"},{include:"#declarations-import"},{include:"#declarations-operator"},{include:"#declarations-precedencegroup"},{include:"#declarations-protocol"},{include:"#declarations-type"},{include:"#declarations-extension"},{include:"#declarations-typealias"},{include:"#declarations-macro"}]},"declarations-available-types":{patterns:[{include:"#comments"},{include:"#builtin-types"},{include:"#attributes"},{match:"\\basync\\b",name:"storage.modifier.async.swift"},{match:"\\b(?:throws|rethrows)\\b",name:"storage.modifier.exception.swift"},{match:"\\bsome\\b",name:"keyword.other.operator.type.opaque.swift"},{match:"\\bany\\b",name:"keyword.other.operator.type.existential.swift"},{match:"\\b(?:repeat|each)\\b",name:"keyword.control.loop.swift"},{match:"\\b(?:inout|isolated|borrowing|consuming)\\b",name:"storage.modifier.swift"},{match:"\\bSelf\\b",name:"variable.language.swift"},{captures:{1:{name:"keyword.operator.type.function.swift"}},match:"(?<![/=\\-+!*%<>&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])"},{captures:{1:{name:"keyword.operator.type.composition.swift"}},comment:"Swift 3: A & B",match:"(?<![/=\\-+!*%<>&|\\^~.])(&)(?![/=\\-+!*%<>&|\\^~.])"},{match:"[?!]",name:"keyword.operator.type.optional.swift"},{match:"\\.\\.\\.",name:"keyword.operator.function.variadic-parameter.swift"},{comment:"Swift 2: protocol<A, B>",match:"\\bprotocol\\b",name:"keyword.other.type.composition.swift"},{match:"(?<=\\.)(?:Protocol|Type)\\b",name:"keyword.other.type.metatype.swift"},{include:"#declarations-available-types-tuple-type"},{include:"#declarations-available-types-collection-type"},{include:"#declarations-generic-argument-clause"}]},"declarations-available-types-collection-type":{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.collection-type.begin.swift"}},comment:"array and dictionary types [Value] and [Key: Value]",end:"\\]|(?=[>){}])",endCaptures:{0:{name:"punctuation.section.collection-type.end.swift"}},patterns:[{include:"#declarations-available-types"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.key-value.swift"}},end:"(?=\\]|[>){}])",patterns:[{match:":",name:"invalid.illegal.extra-colon-in-dictionary-type.swift"},{include:"#declarations-available-types"}]}]},"declarations-available-types-tuple-type":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.tuple-type.begin.swift"}},end:"\\)|(?=[>\\]{}])",endCaptures:{0:{name:"punctuation.section.tuple-type.end.swift"}},patterns:[{include:"#declarations-available-types"}]},"declarations-extension":{begin:"\\b(extension)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))",beginCaptures:{1:{name:"storage.type.$1.swift"},2:{name:"entity.name.type.swift",patterns:[{include:"#declarations-available-types"}]},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})",name:"meta.definition.type.$1.swift",patterns:[{include:"#comments"},{comment:"SE-0143: Conditional Conformances",include:"#declarations-generic-where-clause"},{include:"#declarations-inheritance-clause"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.type.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.type.end.swift"}},name:"meta.definition.type.body.swift",patterns:[{include:"$self"}]}]},"declarations-function":{begin:`(?x) +\\b +(func) +\\s+ +( +(?<q>\`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>) +| (?: +( +(?<oph> +[/=\\-+!*%<>&|^~?] +| [\\x{00A1}-\\x{00A7}] +| [\\x{00A9}\\x{00AB}] +| [\\x{00AC}\\x{00AE}] +| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}] +| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}] +| [\\x{2030}-\\x{203E}] +| [\\x{2041}-\\x{2053}] +| [\\x{2055}-\\x{205E}] +| [\\x{2190}-\\x{23FF}] +| [\\x{2500}-\\x{2775}] +| [\\x{2794}-\\x{2BFF}] +| [\\x{2E00}-\\x{2E7F}] +| [\\x{3001}-\\x{3003}] +| [\\x{3008}-\\x{3030}] +) +( +\\g<oph> +| (?<opc> +[\\x{0300}-\\x{036F}] +| [\\x{1DC0}-\\x{1DFF}] +| [\\x{20D0}-\\x{20FF}] +| [\\x{FE00}-\\x{FE0F}] +| [\\x{FE20}-\\x{FE2F}] +| [\\x{E0100}-\\x{E01EF}] +) +)* +) +| ( \\. ( \\g<oph> | \\g<opc> | \\. )+ ) +) +) +\\s* +(?=\\(|<)`,beginCaptures:{1:{name:"storage.type.function.swift"},2:{name:"entity.name.function.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})|$(?# functions in protocol declarations or generated interfaces have no body)",name:"meta.definition.function.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{include:"#declarations-parameter-clause"},{include:"#declarations-function-result"},{include:"#async-throws"},{comment:"Swift 3: generic constraints after the parameters and return type",include:"#declarations-generic-where-clause"},{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.section.function.begin.swift"}},end:"(\\})",endCaptures:{1:{name:"punctuation.section.function.end.swift"}},name:"meta.definition.function.body.swift",patterns:[{include:"$self"}]}]},"declarations-function-initializer":{begin:"(?<!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|<)",beginCaptures:{1:{name:"storage.type.function.swift",patterns:[{match:"(?<=[?!])[?!]+",name:"invalid.illegal.character-not-allowed-here.swift"}]}},end:"(?<=\\})|$",name:"meta.definition.function.initializer.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{include:"#declarations-parameter-clause"},{include:"#async-throws"},{comment:"Swift 3: generic constraints after the parameters and return type",include:"#declarations-generic-where-clause"},{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.section.function.begin.swift"}},end:"(\\})",endCaptures:{1:{name:"punctuation.section.function.end.swift"}},name:"meta.definition.function.body.swift",patterns:[{include:"$self"}]}]},"declarations-function-result":{begin:"(?<![/=\\-+!*%<>&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])\\s*",beginCaptures:{1:{name:"keyword.operator.function-result.swift"}},end:"(?!\\G)(?=\\{|\\bwhere\\b|;|=)|$",name:"meta.function-result.swift",patterns:[{include:"#declarations-available-types"}]},"declarations-function-subscript":{begin:"(?<!\\.)\\b(subscript)\\s*(?=\\(|<)",beginCaptures:{1:{name:"storage.type.function.swift"}},end:"(?<=\\})|$",name:"meta.definition.function.subscript.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{include:"#declarations-parameter-clause"},{include:"#declarations-function-result"},{include:"#async-throws"},{include:"#declarations-generic-where-clause"},{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.section.function.begin.swift"}},end:"(\\})",endCaptures:{1:{name:"punctuation.section.function.end.swift"}},name:"meta.definition.function.body.swift",patterns:[{include:"$self"}]}]},"declarations-generic-argument-clause":{begin:"<",beginCaptures:{0:{name:"punctuation.separator.generic-argument-clause.begin.swift"}},end:">|(?=[)\\]{}])",endCaptures:{0:{name:"punctuation.separator.generic-argument-clause.end.swift"}},name:"meta.generic-argument-clause.swift",patterns:[{include:"#declarations-available-types"}]},"declarations-generic-parameter-clause":{begin:"<",beginCaptures:{0:{name:"punctuation.separator.generic-parameter-clause.begin.swift"}},end:">|(?=[^\\w\\d:<>\\s,=&`])(?# characters besides these are never valid in a generic param list -- even if it's not really a valid clause, we should stop trying to parse it if we see one of them.)",endCaptures:{0:{name:"punctuation.separator.generic-parameter-clause.end.swift"}},name:"meta.generic-parameter-clause.swift",patterns:[{include:"#comments"},{comment:"Swift 2: constraints inside the generic param list",include:"#declarations-generic-where-clause"},{match:"\\beach\\b",name:"keyword.control.loop.swift"},{captures:{1:{name:"variable.language.generic-parameter.swift"}},match:"\\b((?!\\d)\\w[\\w\\d]*)\\b"},{match:",",name:"punctuation.separator.generic-parameters.swift"},{begin:"(:)\\s*",beginCaptures:{1:{name:"punctuation.separator.generic-parameter-constraint.swift"}},end:"(?=[,>]|(?!\\G)\\bwhere\\b)",name:"meta.generic-parameter-constraint.swift",patterns:[{begin:"\\G",end:"(?=[,>]|(?!\\G)\\bwhere\\b)",name:"entity.other.inherited-class.swift",patterns:[{include:"#declarations-type-identifier"},{include:"#declarations-type-operators"}]}]}]},"declarations-generic-where-clause":{begin:"\\b(where)\\b\\s*",beginCaptures:{1:{name:"keyword.other.generic-constraint-introducer.swift"}},end:"(?!\\G)$|(?=[>{};\\n]|//|/\\*)",name:"meta.generic-where-clause.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-where-clause-requirement-list"}]},"declarations-generic-where-clause-requirement-list":{begin:"\\G|,\\s*",end:"(?=[,>{};\\n]|//|/\\*)",patterns:[{include:"#comments"},{include:"#constraint"},{include:"#declarations-available-types"},{begin:"(?<![/=\\-+!*%<>&|\\^~.])(==)(?![/=\\-+!*%<>&|\\^~.])",beginCaptures:{1:{name:"keyword.operator.generic-constraint.same-type.swift"}},end:"(?=\\s*[,>{};\\n]|//|/\\*)",name:"meta.generic-where-clause.same-type-requirement.swift",patterns:[{include:"#declarations-available-types"}]},{begin:"(?<![/=\\-+!*%<>&|\\^~.])(:)(?![/=\\-+!*%<>&|\\^~.])",beginCaptures:{1:{name:"keyword.operator.generic-constraint.conforms-to.swift"}},end:"(?=\\s*[,>{};\\n]|//|/\\*)",name:"meta.generic-where-clause.conformance-requirement.swift",patterns:[{begin:"\\G\\s*",contentName:"entity.other.inherited-class.swift",end:"(?=\\s*[,>{};\\n]|//|/\\*)",patterns:[{include:"#declarations-available-types"}]}]}]},"declarations-import":{begin:"(?<!\\.)\\b(import)\\s+",beginCaptures:{1:{name:"keyword.control.import.swift"}},end:"(;)|$\\n?|(?=//|/\\*)",endCaptures:{1:{name:"punctuation.terminator.statement.swift"}},name:"meta.import.swift",patterns:[{begin:"\\G(?!;|$|//|/\\*)(?:(typealias|struct|class|actor|enum|protocol|var|func)\\s+)?",beginCaptures:{1:{name:"storage.modifier.swift"}},end:"(?=;|$|//|/\\*)",patterns:[{captures:{1:{name:"punctuation.definition.identifier.swift"},2:{name:"punctuation.definition.identifier.swift"}},match:`(?x) +(?<=\\G|\\.) +(?<q>\`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)`,name:"entity.name.type.swift"},{match:`(?x) +(?<=\\G|\\.) +\\$[0-9]+`,name:"entity.name.type.swift"},{captures:{1:{patterns:[{match:"\\.",name:"invalid.illegal.dot-not-allowed-here.swift"}]}},match:`(?x) +(?<=\\G|\\.) +(?: +( +(?<oph> +[/=\\-+!*%<>&|^~?] +| [\\x{00A1}-\\x{00A7}] +| [\\x{00A9}\\x{00AB}] +| [\\x{00AC}\\x{00AE}] +| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}] +| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}] +| [\\x{2030}-\\x{203E}] +| [\\x{2041}-\\x{2053}] +| [\\x{2055}-\\x{205E}] +| [\\x{2190}-\\x{23FF}] +| [\\x{2500}-\\x{2775}] +| [\\x{2794}-\\x{2BFF}] +| [\\x{2E00}-\\x{2E7F}] +| [\\x{3001}-\\x{3003}] +| [\\x{3008}-\\x{3030}] +) +( +\\g<oph> +| (?<opc> +[\\x{0300}-\\x{036F}] +| [\\x{1DC0}-\\x{1DFF}] +| [\\x{20D0}-\\x{20FF}] +| [\\x{FE00}-\\x{FE0F}] +| [\\x{FE20}-\\x{FE2F}] +| [\\x{E0100}-\\x{E01EF}] +) +)* +) +| ( \\. ( \\g<oph> | \\g<opc> | \\. )+ ) +) +(?=\\.|;|$|//|/\\*|\\s)`,name:"entity.name.type.swift"},{match:"\\.",name:"punctuation.separator.import.swift"},{begin:"(?!\\s*(;|$|//|/\\*))",end:"(?=\\s*(;|$|//|/\\*))",name:"invalid.illegal.character-not-allowed-here.swift"}]}]},"declarations-inheritance-clause":{begin:"(:)(?=\\s*\\{)|(:)\\s*",beginCaptures:{1:{name:"invalid.illegal.empty-inheritance-clause.swift"},2:{name:"punctuation.separator.inheritance-clause.swift"}},end:"(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)",name:"meta.inheritance-clause.swift",patterns:[{begin:"\\bclass\\b",beginCaptures:{0:{name:"storage.type.class.swift"}},end:"(?=[={}]|(?!\\G)\\bwhere\\b)",patterns:[{include:"#comments"},{include:"#declarations-inheritance-clause-more-types"}]},{begin:"\\G",end:"(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)",patterns:[{include:"#comments"},{include:"#declarations-inheritance-clause-inherited-type"},{include:"#declarations-inheritance-clause-more-types"},{include:"#declarations-type-operators"}]}]},"declarations-inheritance-clause-inherited-type":{begin:"(?=[`\\p{L}_])",end:"(?!\\G)",name:"entity.other.inherited-class.swift",patterns:[{include:"#declarations-type-identifier"}]},"declarations-inheritance-clause-more-types":{begin:",\\s*",end:"(?!\\G)(?!//|/\\*)|(?=[,={}]|(?!\\G)\\bwhere\\b)",name:"meta.inheritance-list.more-types",patterns:[{include:"#comments"},{include:"#declarations-inheritance-clause-inherited-type"},{include:"#declarations-inheritance-clause-more-types"},{include:"#declarations-type-operators"}]},"declarations-macro":{begin:`(?x) +\\b +(macro) +\\s+ +((?<q>\`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)) +\\s* +(?=\\(|<|=)`,beginCaptures:{1:{name:"storage.type.function.swift"},2:{name:"entity.name.function.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"$|(?=;|//|/\\*|\\}|=)",name:"meta.definition.macro.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{include:"#declarations-parameter-clause"},{include:"#declarations-function-result"},{include:"#async-throws"},{comment:"Swift 3: generic constraints after the parameters and return type",include:"#declarations-generic-where-clause"}]},"declarations-operator":{begin:`(?x) +(?: +\\b(prefix|infix|postfix) +\\s+ +)? +\\b +(operator) +\\s+ +( +( +(?<oph> +[/=\\-+!*%<>&|^~?] +| [\\x{00A1}-\\x{00A7}] +| [\\x{00A9}\\x{00AB}] +| [\\x{00AC}\\x{00AE}] +| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}] +| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}] +| [\\x{2030}-\\x{203E}] +| [\\x{2041}-\\x{2053}] +| [\\x{2055}-\\x{205E}] +| [\\x{2190}-\\x{23FF}] +| [\\x{2500}-\\x{2775}] +| [\\x{2794}-\\x{2BFF}] +| [\\x{2E00}-\\x{2E7F}] +| [\\x{3001}-\\x{3003}] +| [\\x{3008}-\\x{3030}] +) +( +\\g<oph> +| \\. +| (?<opc> +[\\x{0300}-\\x{036F}] +| [\\x{1DC0}-\\x{1DFF}] +| [\\x{20D0}-\\x{20FF}] +| [\\x{FE00}-\\x{FE0F}] +| [\\x{FE20}-\\x{FE2F}] +| [\\x{E0100}-\\x{E01EF}] +) +)*+ +) +| ( \\. ( \\g<oph> | \\g<opc> | \\. )++ ) +) +\\s*`,beginCaptures:{1:{name:"storage.modifier.swift"},2:{name:"storage.type.function.operator.swift"},3:{name:"entity.name.function.operator.swift"},4:{comment:"workaround for https://github.com/microsoft/vscode-textmate/issues/140#issuecomment-1793610346",name:"entity.name.function.operator.swift",patterns:[{match:"\\.",name:"invalid.illegal.dot-not-allowed-here.swift"}]}},end:"(;)|$\\n?|(?=//|/\\*)",endCaptures:{1:{name:"punctuation.terminator.statement.swift"}},name:"meta.definition.operator.swift",patterns:[{include:"#declarations-operator-swift2"},{include:"#declarations-operator-swift3"},{match:"((?!$|;|//|/\\*)\\S)+",name:"invalid.illegal.character-not-allowed-here.swift"}]},"declarations-operator-swift2":{begin:"\\G(\\{)",beginCaptures:{1:{name:"punctuation.definition.operator.begin.swift"}},end:"(\\})",endCaptures:{1:{name:"punctuation.definition.operator.end.swift"}},patterns:[{include:"#comments"},{captures:{1:{name:"storage.modifier.swift"},2:{name:"keyword.other.operator.associativity.swift"}},match:"\\b(associativity)\\s+(left|right)\\b"},{captures:{1:{name:"storage.modifier.swift"},2:{name:"constant.numeric.integer.swift"}},match:"\\b(precedence)\\s+([0-9]+)\\b"},{captures:{1:{name:"storage.modifier.swift"}},match:"\\b(assignment)\\b"}]},"declarations-operator-swift3":{captures:{2:{name:"entity.other.inherited-class.swift",patterns:[{include:"#declarations-types-precedencegroup"}]},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},match:"\\G(:)\\s*((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))"},"declarations-parameter-clause":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.swift"}},end:"(\\))(?:\\s*(async)\\b)?",endCaptures:{1:{name:"punctuation.definition.parameters.end.swift"},2:{name:"storage.modifier.async.swift"}},name:"meta.parameter-clause.swift",patterns:[{include:"#declarations-parameter-list"}]},"declarations-parameter-list":{patterns:[{captures:{1:{name:"entity.name.function.swift"},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"variable.parameter.function.swift"},5:{name:"punctuation.definition.identifier.swift"},6:{name:"punctuation.definition.identifier.swift"}},comment:"External parameter labels are considered part of the function name",match:"((?<q1>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q1>))\\s+((?<q2>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q2>))(?=\\s*:)"},{captures:{1:{name:"variable.parameter.function.swift"},2:{name:"entity.name.function.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},comment:"If no external label is given, the name is both the external label and the internal variable name",match:"(((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)))(?=\\s*:)"},{begin:":\\s*(?!\\s)",end:"(?=[,)])",patterns:[{include:"#declarations-available-types"},{match:":",name:"invalid.illegal.extra-colon-in-parameter-list.swift"},{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.swift"}},comment:"a parameter's default value",end:"(?=[,)])",patterns:[{include:"#expressions"}]}]}]},"declarations-precedencegroup":{begin:"\\b(precedencegroup)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(?=\\{)",beginCaptures:{1:{name:"storage.type.precedencegroup.swift"},2:{name:"entity.name.type.precedencegroup.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?!\\G)",name:"meta.definition.precedencegroup.swift",patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.precedencegroup.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.precedencegroup.end.swift"}},patterns:[{include:"#comments"},{captures:{1:{name:"storage.modifier.swift"},2:{name:"entity.other.inherited-class.swift",patterns:[{include:"#declarations-types-precedencegroup"}]},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},match:"\\b(higherThan|lowerThan)\\s*:\\s*((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))"},{captures:{1:{name:"storage.modifier.swift"},2:{name:"keyword.other.operator.associativity.swift"}},match:"\\b(associativity)\\b(?:\\s*:\\s*(right|left|none)\\b)?"},{captures:{1:{name:"storage.modifier.swift"},2:{name:"constant.language.boolean.swift"}},match:"\\b(assignment)\\b(?:\\s*:\\s*(true|false)\\b)?"}]}]},"declarations-protocol":{begin:"\\b(protocol)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))",beginCaptures:{1:{name:"storage.type.$1.swift"},2:{name:"entity.name.type.$1.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})",name:"meta.definition.type.protocol.swift",patterns:[{include:"#comments"},{include:"#declarations-inheritance-clause"},{comment:"SE-0142: Permit where clauses to constrain associated types",include:"#declarations-generic-where-clause"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.type.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.type.end.swift"}},name:"meta.definition.type.body.swift",patterns:[{include:"#declarations-protocol-protocol-method"},{include:"#declarations-protocol-protocol-initializer"},{include:"#declarations-protocol-associated-type"},{include:"$self"}]}]},"declarations-protocol-associated-type":{begin:"\\b(associatedtype)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*",beginCaptures:{1:{name:"keyword.other.declaration-specifier.swift"},2:{name:"variable.language.associatedtype.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?!\\G)$|(?=[;}]|$)",name:"meta.definition.associatedtype.swift",patterns:[{include:"#declarations-inheritance-clause"},{comment:"SE-0142: Permit where clauses to constrain associated types",include:"#declarations-generic-where-clause"},{include:"#declarations-typealias-assignment"}]},"declarations-protocol-protocol-initializer":{begin:"(?<!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|<)",beginCaptures:{1:{name:"storage.type.function.swift",patterns:[{match:"(?<=[?!])[?!]+",name:"invalid.illegal.character-not-allowed-here.swift"}]}},end:"$|(?=;|//|/\\*|\\})",name:"meta.definition.function.initializer.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{include:"#declarations-parameter-clause"},{include:"#async-throws"},{comment:"Swift 3: generic constraints after the parameters and return type",include:"#declarations-generic-where-clause"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.function.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.function.end.swift"}},name:"invalid.illegal.function-body-not-allowed-in-protocol.swift",patterns:[{include:"$self"}]}]},"declarations-protocol-protocol-method":{begin:`(?x) +\\b +(func) +\\s+ +( +(?<q>\`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>) +| (?: +( +(?<oph> +[/=\\-+!*%<>&|^~?] +| [\\x{00A1}-\\x{00A7}] +| [\\x{00A9}\\x{00AB}] +| [\\x{00AC}\\x{00AE}] +| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}] +| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}] +| [\\x{2030}-\\x{203E}] +| [\\x{2041}-\\x{2053}] +| [\\x{2055}-\\x{205E}] +| [\\x{2190}-\\x{23FF}] +| [\\x{2500}-\\x{2775}] +| [\\x{2794}-\\x{2BFF}] +| [\\x{2E00}-\\x{2E7F}] +| [\\x{3001}-\\x{3003}] +| [\\x{3008}-\\x{3030}] +) +( +\\g<oph> +| (?<opc> +[\\x{0300}-\\x{036F}] +| [\\x{1DC0}-\\x{1DFF}] +| [\\x{20D0}-\\x{20FF}] +| [\\x{FE00}-\\x{FE0F}] +| [\\x{FE20}-\\x{FE2F}] +| [\\x{E0100}-\\x{E01EF}] +) +)* +) +| ( \\. ( \\g<oph> | \\g<opc> | \\. )+ ) +) +) +\\s* +(?=\\(|<)`,beginCaptures:{1:{name:"storage.type.function.swift"},2:{name:"entity.name.function.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"$|(?=;|//|/\\*|\\})",name:"meta.definition.function.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{include:"#declarations-parameter-clause"},{include:"#declarations-function-result"},{include:"#async-throws"},{comment:"Swift 3: generic constraints after the parameters and return type",include:"#declarations-generic-where-clause"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.function.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.function.end.swift"}},name:"invalid.illegal.function-body-not-allowed-in-protocol.swift",patterns:[{include:"$self"}]}]},"declarations-type":{patterns:[{begin:"\\b(class(?!\\s+(?:func|var|let)\\b)|struct|actor)\\b\\s*((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))",beginCaptures:{1:{name:"storage.type.$1.swift"},2:{name:"entity.name.type.$1.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})",name:"meta.definition.type.$1.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{comment:"Swift 3: generic constraints after the generic param list",include:"#declarations-generic-where-clause"},{include:"#declarations-inheritance-clause"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.type.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.type.end.swift"}},name:"meta.definition.type.body.swift",patterns:[{include:"$self"}]}]},{include:"#declarations-type-enum"}]},"declarations-type-enum":{begin:"\\b(enum)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))",beginCaptures:{1:{name:"storage.type.$1.swift"},2:{name:"entity.name.type.$1.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})",name:"meta.definition.type.$1.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{comment:"Swift 3: generic constraints after the generic param list",include:"#declarations-generic-where-clause"},{include:"#declarations-inheritance-clause"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.type.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.type.end.swift"}},name:"meta.definition.type.body.swift",patterns:[{include:"#declarations-type-enum-enum-case-clause"},{include:"$self"}]}]},"declarations-type-enum-associated-values":{begin:"\\G\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.swift"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.swift"}},patterns:[{include:"#comments"},{begin:`(?x) +(?:(_)|((?<q1>\`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q1>)) +\\s+ +(((?<q2>\`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q2>)) +\\s*(:)`,beginCaptures:{1:{name:"entity.name.function.swift"},2:{name:"invalid.illegal.distinct-labels-not-allowed.swift"},5:{name:"variable.parameter.function.swift"},7:{name:"punctuation.separator.argument-label.swift"}},end:"(?=[,)\\]])",patterns:[{include:"#declarations-available-types"}]},{begin:"(((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q>))\\s*(:)",beginCaptures:{1:{name:"entity.name.function.swift"},2:{name:"variable.parameter.function.swift"},4:{name:"punctuation.separator.argument-label.swift"}},end:"(?=[,)\\]])",patterns:[{include:"#declarations-available-types"}]},{begin:"(?![,)\\]])(?=\\S)",comment:"an element without a label (i.e. anything else)",end:"(?=[,)\\]])",patterns:[{include:"#declarations-available-types"},{match:":",name:"invalid.illegal.extra-colon-in-parameter-list.swift"}]}]},"declarations-type-enum-enum-case":{begin:"(?x)((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*",beginCaptures:{1:{name:"variable.other.enummember.swift"}},end:"(?<=\\))|(?![=(])",patterns:[{include:"#comments"},{include:"#declarations-type-enum-associated-values"},{include:"#declarations-type-enum-raw-value-assignment"}]},"declarations-type-enum-enum-case-clause":{begin:"\\b(case)\\b\\s*",beginCaptures:{1:{name:"storage.type.enum.case.swift"}},end:"(?=[;}])|(?!\\G)(?!//|/\\*)(?=[^\\s,])",patterns:[{include:"#comments"},{include:"#declarations-type-enum-enum-case"},{include:"#declarations-type-enum-more-cases"}]},"declarations-type-enum-more-cases":{begin:",\\s*",end:"(?!\\G)(?!//|/\\*)(?=[;}]|[^\\s,])",name:"meta.enum-case.more-cases",patterns:[{include:"#comments"},{include:"#declarations-type-enum-enum-case"},{include:"#declarations-type-enum-more-cases"}]},"declarations-type-enum-raw-value-assignment":{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.assignment.swift"}},end:"(?!\\G)",patterns:[{include:"#comments"},{include:"#literals"}]},"declarations-type-identifier":{begin:"((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*",beginCaptures:{1:{name:"meta.type-name.swift",patterns:[{include:"#builtin-types"}]},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"}},end:"(?!<)",patterns:[{begin:"(?=<)",end:"(?!\\G)",patterns:[{include:"#declarations-generic-argument-clause"}]}]},"declarations-type-operators":{patterns:[{captures:{1:{name:"keyword.operator.type.composition.swift"}},comment:"Swift 3: A & B",match:"(?<![/=\\-+!*%<>&|\\^~.])(&)(?![/=\\-+!*%<>&|\\^~.])"},{captures:{1:{name:"keyword.operator.type.requirement-suppression.swift"}},comment:"SE-0390: Noncopyable structs and enums",match:"(?<![/=\\-+!*%<>&|\\^~.])(~)(?![/=\\-+!*%<>&|\\^~.])"}]},"declarations-typealias":{begin:"\\b(typealias)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*",beginCaptures:{1:{name:"keyword.other.declaration-specifier.swift"},2:{name:"entity.name.type.typealias.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?!\\G)$|(?=;|//|/\\*|$)",name:"meta.definition.typealias.swift",patterns:[{begin:"\\G(?=<)",end:"(?!\\G)",patterns:[{include:"#declarations-generic-parameter-clause"}]},{include:"#declarations-typealias-assignment"}]},"declarations-typealias-assignment":{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.assignment.swift"}},end:"(?!\\G)$|(?=;|//|/\\*|$)",patterns:[{include:"#declarations-available-types"}]},"declarations-typed-variable-declaration":{begin:`(?x) +\\b(?:(async)\\s+)?(let|var)\\b\\s+ +(?<q>\`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\\s* +:`,beginCaptures:{1:{name:"storage.modifier.async.swift"},2:{name:"keyword.other.declaration-specifier.swift"}},end:"(?=$|[={])",patterns:[{include:"#declarations-available-types"}]},"declarations-types-precedencegroup":{patterns:[{comment:"Precedence groups in the standard library",match:"\\b(?:BitwiseShift|Assignment|RangeFormation|Casting|Addition|NilCoalescing|Comparison|LogicalConjunction|LogicalDisjunction|Default|Ternary|Multiplication|FunctionArrow)Precedence\\b",name:"support.type.swift"}]},expressions:{comment:"trailing closures need to be parsed before other member references",patterns:[{include:"#expressions-without-trailing-closures-or-member-references"},{include:"#expressions-trailing-closure"},{include:"#member-reference"}]},"expressions-trailing-closure":{patterns:[{captures:{1:{name:"support.function.any-method.swift"},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"}},comment:"foo { body } -- a call with a trailing closure and no argument clause",match:"(#?(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))(?=\\s*\\{)",name:"meta.function-call.trailing-closure-only.swift"},{captures:{1:{name:"support.function.any-method.trailing-closure-label.swift"},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.separator.argument-label.swift"}},comment:"foo: { body } -- labeled-trailing-closure (SE-0279)",match:"((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(:)(?=\\s*\\{)"}]},"expressions-without-trailing-closures":{patterns:[{include:"#expressions-without-trailing-closures-or-member-references"},{include:"#member-references"}]},"expressions-without-trailing-closures-or-member-references":{patterns:[{include:"#comments"},{include:"#code-block"},{include:"#attributes"},{include:"#expressions-without-trailing-closures-or-member-references-closure-parameter"},{include:"#literals"},{include:"#operators"},{include:"#builtin-types"},{include:"#builtin-functions"},{include:"#builtin-global-functions"},{include:"#builtin-properties"},{include:"#expressions-without-trailing-closures-or-member-references-compound-name"},{include:"#conditionals"},{include:"#keywords"},{include:"#expressions-without-trailing-closures-or-member-references-availability-condition"},{include:"#expressions-without-trailing-closures-or-member-references-function-or-macro-call-expression"},{include:"#expressions-without-trailing-closures-or-member-references-macro-expansion"},{include:"#expressions-without-trailing-closures-or-member-references-subscript-expression"},{include:"#expressions-without-trailing-closures-or-member-references-parenthesized-expression"},{match:"\\b_\\b",name:"support.variable.discard-value.swift"}]},"expressions-without-trailing-closures-or-member-references-availability-condition":{begin:"\\B(#(?:un)?available)(\\()",beginCaptures:{1:{name:"support.function.availability-condition.swift"},2:{name:"punctuation.definition.arguments.begin.swift"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},patterns:[{captures:{1:{name:"keyword.other.platform.os.swift"},2:{name:"constant.numeric.swift"}},match:"\\s*\\b((?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))"},{captures:{1:{name:"keyword.other.platform.all.swift"},2:{name:"invalid.illegal.character-not-allowed-here.swift"}},match:"(\\*)\\s*(.*?)(?=[,)])"},{match:"[^\\s,)]+",name:"invalid.illegal.character-not-allowed-here.swift"}]},"expressions-without-trailing-closures-or-member-references-closure-parameter":{match:"\\$[0-9]+",name:"variable.language.closure-parameter.swift"},"expressions-without-trailing-closures-or-member-references-compound-name":{captures:{1:{name:"entity.name.function.compound-name.swift"},2:{name:"punctuation.definition.entity.swift"},3:{name:"punctuation.definition.entity.swift"},4:{patterns:[{captures:{1:{name:"punctuation.definition.entity.swift"},2:{name:"punctuation.definition.entity.swift"}},match:"(?<q>`?)(?!_:)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>):",name:"entity.name.function.compound-name.swift"}]}},comment:"a reference to a function with disambiguating argument labels, such as foo(_:), foo(bar:), etc.",match:`(?x) +((?<q1>\`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q1>)) +\\( +( +( +((?<q2>\`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q2>)) +: +)+ +) +\\)`},"expressions-without-trailing-closures-or-member-references-expression-element-list":{patterns:[{include:"#comments"},{begin:"((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(:)",beginCaptures:{1:{name:"support.function.any-method.swift"},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.separator.argument-label.swift"}},comment:"an element with a label",end:"(?=[,)\\]])",patterns:[{include:"#expressions"}]},{begin:"(?![,)\\]])(?=\\S)",comment:"an element without a label (i.e. anything else)",end:"(?=[,)\\]])",patterns:[{include:"#expressions"}]}]},"expressions-without-trailing-closures-or-member-references-function-or-macro-call-expression":{patterns:[{begin:"(#?(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(\\()",beginCaptures:{1:{name:"support.function.any-method.swift"},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.arguments.begin.swift"}},comment:"foo(args) -- a call whose callee is a highlightable name",end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},name:"meta.function-call.swift",patterns:[{include:"#expressions-without-trailing-closures-or-member-references-expression-element-list"}]},{begin:"(?<=[`\\])}>\\p{L}_\\p{N}\\p{M}])\\s*(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.swift"}},comment:"[Int](args) -- a call whose callee is a more complicated expression",end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},name:"meta.function-call.swift",patterns:[{include:"#expressions-without-trailing-closures-or-member-references-expression-element-list"}]}]},"expressions-without-trailing-closures-or-member-references-macro-expansion":{match:"(#(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))",name:"support.function.any-method.swift"},"expressions-without-trailing-closures-or-member-references-parenthesized-expression":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.tuple.begin.swift"}},comment:'correctly matching closure expressions is too hard (depends on trailing "in") so we just tack on some basics to the end of parenthesized-expression',end:"(\\))\\s*((?:\\b(?:async|throws|rethrows)\\s)*)",endCaptures:{1:{name:"punctuation.section.tuple.end.swift"},2:{patterns:[{match:"\\brethrows\\b",name:"invalid.illegal.rethrows-only-allowed-on-function-declarations.swift"},{include:"#async-throws"}]}},patterns:[{include:"#expressions-without-trailing-closures-or-member-references-expression-element-list"}]},"expressions-without-trailing-closures-or-member-references-subscript-expression":{begin:"(?<=[`\\p{L}_\\p{N}\\p{M}])\\s*(\\[)",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.swift"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},name:"meta.subscript-expression.swift",patterns:[{include:"#expressions-without-trailing-closures-or-member-references-expression-element-list"}]},keywords:{patterns:[{match:"(?<!\\.)\\b(?:if|else|guard|where|switch|case|default|fallthrough)\\b",name:"keyword.control.branch.swift"},{match:"(?<!\\.)\\b(?:continue|break|fallthrough|return)\\b",name:"keyword.control.transfer.swift"},{match:"(?<!\\.)\\b(?:while|for|in|each)\\b",name:"keyword.control.loop.swift"},{match:"\\bany\\b(?=\\s*`?[\\p{L}_])",name:"keyword.other.operator.type.existential.swift"},{captures:{1:{name:"keyword.control.loop.swift"},2:{name:"punctuation.whitespace.trailing.repeat.swift"}},comment:"extra scopes for repeat-while snippet",match:"(?<!\\.)\\b(repeat)\\b(\\s*)"},{match:"(?<!\\.)\\bdefer\\b",name:"keyword.control.defer.swift"},{captures:{1:{name:"invalid.illegal.try-must-precede-await.swift"},2:{name:"keyword.control.await.swift"}},match:"(?<!\\.)\\b(?:(await\\s+try)|(await))\\b"},{match:"(?<!\\.)\\b(?:catch|throw|try)\\b|\\btry[?!]\\B",name:"keyword.control.exception.swift"},{match:"(?<!\\.)\\b(?:throws|rethrows)\\b",name:"storage.modifier.exception.swift"},{captures:{1:{name:"keyword.control.exception.swift"},2:{name:"punctuation.whitespace.trailing.do.swift"}},comment:"extra scopes for do-catch snippet",match:"(?<!\\.)\\b(do)\\b(\\s*)"},{captures:{1:{name:"storage.modifier.async.swift"},2:{name:"keyword.other.declaration-specifier.swift"}},match:"(?<!\\.)\\b(?:(async)\\s+)?(let|var)\\b"},{match:"(?<!\\.)\\b(?:associatedtype|operator|typealias)\\b",name:"keyword.other.declaration-specifier.swift"},{match:"(?<!\\.)\\b(class|enum|extension|precedencegroup|protocol|struct|actor)\\b(?=\\s*`?[\\p{L}_])",name:"storage.type.$1.swift"},{match:"(?<!\\.)\\b(?:inout|static|final|lazy|mutating|nonmutating|optional|indirect|required|override|dynamic|convenience|infix|prefix|postfix|distributed|nonisolated|borrowing|consuming)\\b",name:"storage.modifier.swift"},{match:"\\binit[?!]|\\binit\\b|(?<!\\.)\\b(?:func|deinit|subscript|didSet|get|set|willSet)\\b",name:"storage.type.function.swift"},{match:"(?<!\\.)\\b(?:fileprivate|private|internal|public|open|package)\\b",name:"keyword.other.declaration-specifier.accessibility.swift"},{comment:"matches weak, unowned, unowned(safe), unowned(unsafe)",match:"(?<!\\.)\\bunowned\\((?:safe|unsafe)\\)|(?<!\\.)\\b(?:weak|unowned)\\b",name:"keyword.other.capture-specifier.swift"},{captures:{1:{name:"keyword.other.type.swift"},2:{name:"keyword.other.type.metatype.swift"}},match:"(?<=\\.)(?:(dynamicType|self)|(Protocol|Type))\\b"},{match:"(?<!\\.)\\b(?:super|self|Self)\\b",name:"variable.language.swift"},{match:"\\B(?:#file|#filePath|#fileID|#line|#column|#function|#dsohandle)\\b|\\b(?:__FILE__|__LINE__|__COLUMN__|__FUNCTION__|__DSO_HANDLE__)\\b",name:"support.variable.swift"},{match:"(?<!\\.)\\bimport\\b",name:"keyword.control.import.swift"},{comment:'SE-0366: "consume behaves as a contextual keyword. In order to avoid interfering with existing code that calls functions named consume, the operand to consume must begin with another identifier, and must consist of an identifier or postfix expression"',match:"(?<!\\.)\\bconsume(?=\\s+`?[\\p{L}_])",name:"keyword.control.consume.swift"},{comment:'SE-0377: "copy is a contextual keyword, parsed as an operator if it is immediately followed by an identifier on the same line, like the consume x operator before it"',match:"(?<!\\.)\\bcopy(?=\\s+`?[\\p{L}_])",name:"keyword.control.copy.swift"}]},literals:{patterns:[{include:"#literals-boolean"},{include:"#literals-numeric"},{include:"#literals-string"},{match:"\\bnil\\b",name:"constant.language.nil.swift"},{comment:'object "literals" used in playgrounds',match:"\\B#(colorLiteral|imageLiteral|fileLiteral)\\b",name:"support.function.object-literal.swift"},{match:"\\B#externalMacro\\b",name:"support.function.builtin-macro.swift"},{match:"\\B#keyPath\\b",name:"support.function.key-path.swift"},{begin:"\\B(#selector)(\\()(?:\\s*(getter|setter)\\s*(:))?",beginCaptures:{1:{name:"support.function.selector-reference.swift"},2:{name:"punctuation.definition.arguments.begin.swift"},3:{name:"support.variable.parameter.swift"},4:{name:"punctuation.separator.argument-label.swift"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},patterns:[{include:"#expressions"}]},{include:"#literals-regular-expression-literal"}]},"literals-boolean":{match:"\\b(true|false)\\b",name:"constant.language.boolean.swift"},"literals-numeric":{patterns:[{comment:"0.1, -4_2.5, 6.022e23, 10E-5",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*(?=\\.[0-9]|[eE])(?:\\.[0-9][0-9_]*)?(?:[eE][-+]?[0-9][0-9_]*)?\\b(?!\\.[0-9])",name:"constant.numeric.float.decimal.swift"},{comment:"-0x1.ap2_3, 0x31p-4",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?[pP][-+]?[0-9][0-9_]*\\b(?!\\.[0-9])",name:"constant.numeric.float.hexadecimal.swift"},{comment:"0x1p, 0x1p_2, 0x1.5pa, 0x1.1p+1f, 0x1pz",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?(?:[pP][-+]?\\w*)\\b(?!\\.[0-9])",name:"invalid.illegal.numeric.float.invalid-exponent.swift"},{comment:"0x1.5w (note that 0x1.f may be a valid expression)",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)\\.[0-9][\\w.]*",name:"invalid.illegal.numeric.float.missing-exponent.swift"},{comment:"-.5, .2f (note that 1.-.5 may be a valid expression)",match:"(?<=\\s|^)\\-?\\.[0-9][\\w.]*",name:"invalid.illegal.numeric.float.missing-leading-zero.swift"},{comment:"0b_0_1, 0x_1p+3q",match:"(\\B\\-|\\b)0[box]_[0-9a-fA-F_]*(?:[pPeE][+-]?\\w+)?[\\w.]+",name:"invalid.illegal.numeric.leading-underscore.swift"},{comment:"tuple positional member: not really a numeric literal, but not invalid",match:"(?<=[\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9]+\\b"},{comment:"0b010, 0b1_0",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0b[01][01_]*\\b(?!\\.[0-9])",name:"constant.numeric.integer.binary.swift"},{comment:"0o1, 0o7_3",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0o[0-7][0-7_]*\\b(?!\\.[0-9])",name:"constant.numeric.integer.octal.swift"},{comment:"02, 3_456",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*\\b(?!\\.[0-9])",name:"constant.numeric.integer.decimal.swift"},{comment:"0x4, 0xF_7",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0x[0-9a-fA-F][0-9a-fA-F_]*\\b(?!\\.[0-9])",name:"constant.numeric.integer.hexadecimal.swift"},{match:"(\\B\\-|\\b)[0-9][\\w.]*",name:"invalid.illegal.numeric.other.swift"}]},"literals-regular-expression-literal":{comment:"SE-0354 & SE-0355",patterns:[{begin:"(#+)/\\n",end:"/\\1",name:"string.regexp.block.swift",patterns:[{include:"#literals-regular-expression-literal-regex-guts"},{include:"#literals-regular-expression-literal-line-comment"}]},{captures:{0:{patterns:[{include:"#literals-regular-expression-literal-regex-guts"}]},1:{name:"punctuation.definition.string.begin.regexp.swift"},12:{name:"punctuation.definition.string.end.regexp.swift"},13:{name:"invalid.illegal.returns-not-allowed.regexp"}},comment:`Single-line regular expression literals must be matched all in one go + in order to avoid ambiguities with operators, and to adhere to certain + parsing rules in SE-0354/SE-0355, such as: + - A regex literal will not be parsed if it contains an unbalanced ). + - A regex may end with a space only if it began with an escaped space`,match:`(?x) +(((\\#+)?)/) +(?(3)|(?!/)) +(?(3)|(?!\\s)) +(\\\\\\s)? +(?<guts> +(?> +(?: +\\\\Q +(?:(?!\\\\E)(?!/\\2).)*+ +(?:\\\\E + +| (?(3)|(?<!\\s))(?=/\\2) +) +| \\\\. +| \\(\\?\\#[^)]*\\) +| \\(\\? + +\\{(?<g1>\\{)?+(?<g2>\\{)?+(?<g3>\\{)?+(?<g4>\\{)?+(?<g5>\\{)?+ +.+? +\\}(?(<g1>)\\})(?(<g2>)\\})(?(<g3>)\\})(?(<g4>)\\})(?(<g5>)\\}) +(?:\\[(?!\\d)\\w+\\])? +[X<>]? +\\) +| (?<class>\\[ (?:\\\\. | [^\\[\\]] | \\g<class>)+ \\]) +| \\(\\g<guts>?+\\) +| (?:(?!/\\2)[^()\\[\\\\])+ +)+ +) +)?+ +# may end with a space only if it is an extended literal or contains only a single escaped space +(?(3)|(?(5)(?<!\\s))) +(/\\2) +| \\#+/.+(\\n)`,name:"string.regexp.line.swift"}]},"literals-regular-expression-literal-backreference-or-subpattern":{comment:"These patterns are separated to work around issues like https://github.com/microsoft/vscode-textmate/issues/164",patterns:[{captures:{1:{name:"constant.character.escape.backslash.regexp"},2:{name:"variable.other.group-name.regexp"},3:{name:"keyword.operator.recursion-level.regexp"},4:{name:"constant.numeric.integer.decimal.regexp"},5:{name:"constant.numeric.integer.decimal.regexp"},6:{name:"keyword.operator.recursion-level.regexp"},7:{name:"constant.numeric.integer.decimal.regexp"},8:{name:"constant.character.escape.backslash.regexp"}},comment:"'\\g{' NamedOrNumberRef '}'",match:"(?x)(\\\\g\\{) (?: ((?!\\d)\\w+) (?:([+-])(\\d+))? | ([+-]?\\d+) (?:([+-])(\\d+))? ) (\\})"},{captures:{1:{name:"constant.character.escape.backslash.regexp"},2:{name:"constant.numeric.integer.decimal.regexp"},3:{name:"keyword.operator.recursion-level.regexp"},4:{name:"constant.numeric.integer.decimal.regexp"}},comment:"'\\g' NumberRef",match:"(?x)(\\\\g) ([+-]?\\d+) (?:([+-])(\\d+))?"},{captures:{1:{name:"constant.character.escape.backslash.regexp"},3:{name:"variable.other.group-name.regexp"},4:{name:"keyword.operator.recursion-level.regexp"},5:{name:"constant.numeric.integer.decimal.regexp"},6:{name:"constant.numeric.integer.decimal.regexp"},7:{name:"keyword.operator.recursion-level.regexp"},8:{name:"constant.numeric.integer.decimal.regexp"},9:{name:"constant.character.escape.backslash.regexp"}},comment:`'\\k<' NamedOrNumberRef '>' + "\\k'" NamedOrNumberRef "'" + '\\g<' NamedOrNumberRef '>' + "\\g'" NamedOrNumberRef "'"`,match:"(?x)(\\\\[gk](<)|\\\\[gk]') (?: ((?!\\d)\\w+) (?:([+-])(\\d+))? | ([+-]?\\d+) (?:([+-])(\\d+))? ) ((?(2)>|'))"},{captures:{1:{name:"constant.character.escape.backslash.regexp"},2:{name:"variable.other.group-name.regexp"},3:{name:"keyword.operator.recursion-level.regexp"},4:{name:"constant.numeric.integer.decimal.regexp"},5:{name:"constant.character.escape.backslash.regexp"}},comment:"'\\k{' NamedRef '}'",match:"(?x)(\\\\k\\{) ((?!\\d)\\w+) (?:([+-])(\\d+))? (\\})"},{match:"\\\\[1-9][0-9]+",name:"keyword.other.back-reference.regexp"},{captures:{1:{name:"keyword.other.back-reference.regexp"},2:{name:"variable.other.group-name.regexp"},3:{name:"keyword.operator.recursion-level.regexp"},4:{name:"constant.numeric.integer.decimal.regexp"},5:{name:"keyword.other.back-reference.regexp"}},comment:"'(?P=' NamedRef ')'",match:"(?x)(\\(\\?(?:P[=>]|&)) ((?!\\d)\\w+) (?:([+-])(\\d+))? (\\))"},{match:"\\(\\?R\\)",name:"keyword.other.back-reference.regexp"},{captures:{1:{name:"keyword.other.back-reference.regexp"},2:{name:"constant.numeric.integer.decimal.regexp"},3:{name:"keyword.operator.recursion-level.regexp"},4:{name:"constant.numeric.integer.decimal.regexp"},5:{name:"keyword.other.back-reference.regexp"}},comment:"'(?' NumberRef ')'",match:"(?x)(\\(\\?) ([+-]?\\d+) (?:([+-])(\\d+))? (\\))"}]},"literals-regular-expression-literal-backtracking-directive-or-global-matching-option":{captures:{1:{name:"keyword.control.directive.regexp"},2:{name:"keyword.control.directive.regexp"},3:{name:"keyword.control.directive.regexp"},4:{name:"variable.language.tag.regexp"},5:{name:"keyword.control.directive.regexp"},6:{name:"keyword.operator.assignment.regexp"},7:{name:"constant.numeric.integer.decimal.regexp"},8:{name:"keyword.control.directive.regexp"},9:{name:"keyword.control.directive.regexp"}},match:`(?x) +(\\(\\*) +(?: +(ACCEPT|FAIL|F|MARK(?=:)|(?=:)|COMMIT|PRUNE|SKIP|THEN) +(?:(:)([^)]+))? +| (?:(LIMIT_(?:DEPTH|HEAP|MATCH))(=)(\\d+)) +| ( +CRLF | CR | ANYCRLF | ANY | LF | NUL +| BSR_ANYCRLF | BSR_UNICODE +| NOTEMPTY_ATSTART | NOTEMPTY +| NO_AUTO_POSSESS | NO_DOTSTAR_ANCHOR +| NO_JIT | NO_START_OPT | UTF | UCP +) +) +(\\))`},"literals-regular-expression-literal-callout":{captures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"keyword.control.callout.regexp"},3:{name:"constant.numeric.integer.decimal.regexp"},4:{name:"entity.name.function.callout.regexp"},5:{name:"entity.name.function.callout.regexp"},6:{name:"entity.name.function.callout.regexp"},7:{name:"entity.name.function.callout.regexp"},8:{name:"entity.name.function.callout.regexp"},9:{name:"entity.name.function.callout.regexp"},10:{name:"entity.name.function.callout.regexp"},11:{name:"entity.name.function.callout.regexp"},12:{name:"punctuation.definition.group.regexp"},13:{name:"punctuation.definition.group.regexp"},14:{name:"keyword.control.callout.regexp"},15:{name:"entity.name.function.callout.regexp"},16:{name:"variable.language.tag-name.regexp"},17:{name:"punctuation.definition.group.regexp"},18:{name:"punctuation.definition.group.regexp"},19:{name:"keyword.control.callout.regexp"},26:{name:"variable.language.tag-name.regexp"},27:{name:"keyword.control.callout.regexp"},28:{name:"punctuation.definition.group.regexp"}},match:`(?x) +# PCRECallout +(\\()(?<keyw>\\?C) +(?: +(?<num>\\d+) +| \`(?<name>(?:[^\`]|\`\`)*)\` +| '(?<name>(?:[^']|'')*)' +| "(?<name>(?:[^"]|"")*)" +| \\^(?<name>(?:[^\\^]|\\^\\^)*)\\^ +| %(?<name>(?:[^%]|%%)*)% +| \\#(?<name>(?:[^#]|\\#\\#)*)\\# +| \\$(?<name>(?:[^$]|\\$\\$)*)\\$ +| \\{(?<name>(?:[^}]|\\}\\})*)\\} +)? +(\\)) +# NamedCallout +| (\\()(?<keyw>\\*) +(?<name>(?!\\d)\\w+) +(?:\\[(?<tag>(?!\\d)\\w+)\\])? +(?:\\{ [^,}]+ (?:,[^,}]+)* \\})? +(\\)) +# InterpolatedCallout +| (\\()(?<keyw>\\?) + +(\\{(?<g1>\\{)?+(?<g2>\\{)?+(?<g3>\\{)?+(?<g4>\\{)?+(?<g5>\\{)?+) .+? \\}(?(<g1>)\\})(?(<g2>)\\})(?(<g3>)\\})(?(<g4>)\\})(?(<g5>)\\}) +(?:\\[(?<tag>(?!\\d)\\w+)\\])? +(?<keyw>[X<>]?) +(\\))`,name:"meta.callout.regexp"},"literals-regular-expression-literal-character-properties":{captures:{1:{name:"support.variable.character-property.regexp"},2:{name:"punctuation.definition.character-class.regexp"},3:{name:"support.variable.character-property.regexp"},4:{name:"punctuation.definition.character-class.regexp"}},match:`(?x) +\\\\[pP]\\{ ([\\s\\w-]+(?:=[\\s\\w-]+)?) \\} +| (\\[:) ([\\s\\w-]+(?:=[\\s\\w-]+)?) (:\\])`,name:"constant.other.character-class.set.regexp"},"literals-regular-expression-literal-custom-char-class":{patterns:[{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{include:"#literals-regular-expression-literal-custom-char-class-members"}]}]},"literals-regular-expression-literal-custom-char-class-members":{comment:"TODO: should also include atoms?",patterns:[{comment:"\\b inside a character class represents a backspace",match:"\\\\b",name:"constant.character.escape.backslash.regexp"},{include:"#literals-regular-expression-literal-custom-char-class"},{include:"#literals-regular-expression-literal-quote"},{include:"#literals-regular-expression-literal-set-operators"},{include:"#literals-regular-expression-literal-unicode-scalars"},{include:"#literals-regular-expression-literal-character-properties"}]},"literals-regular-expression-literal-group-option-toggle":{comment:'A matching option sequence may be part of an "isolated group" which has an implicit scope that wraps the remaining elements of the current group',match:`(?x) +\\(\\? +(?: +\\^(?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})* +| (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})+ +| (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})* - (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})* +) +\\)`,name:"keyword.other.option-toggle.regexp"},"literals-regular-expression-literal-group-or-conditional":{patterns:[{begin:"(\\()(\\?~)",beginCaptures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"keyword.control.conditional.absent.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.absent.regexp",patterns:[{include:"#literals-regular-expression-literal-regex-guts"}]},{begin:`(?x) +# KnownConditionalStart +(\\() (?<cond>\\?\\() +(?: +(?<NumberRef> (?<num>[+-]?\\d+)(?:(?<op>[+-])(?<num>\\d+))? ) +| (?<cond>R) \\g<NumberRef>? +| (?<cond>R&) (?<NamedRef> (?<name>(?!\\d)\\w+) (?:(?<op>[+-])(?<num>\\d+))? ) +| (?<cond><) (?:\\g<NamedRef>|\\g<NumberRef>) (?<cond>>) +| (?<cond>') (?:\\g<NamedRef>|\\g<NumberRef>) (?<cond>') +| (?<cond>DEFINE) +| (?<cond>VERSION)(?<compar>>?=)(?<num>\\d+\\.\\d+) +) +(?<cond>\\)) +| (\\()(?<cond>\\?)(?=\\()`,beginCaptures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"keyword.control.conditional.regexp"},4:{name:"constant.numeric.integer.decimal.regexp"},5:{name:"keyword.operator.recursion-level.regexp"},6:{name:"constant.numeric.integer.decimal.regexp"},7:{name:"keyword.control.conditional.regexp"},8:{name:"keyword.control.conditional.regexp"},10:{name:"variable.other.group-name.regexp"},11:{name:"keyword.operator.recursion-level.regexp"},12:{name:"constant.numeric.integer.decimal.regexp"},13:{name:"keyword.control.conditional.regexp"},14:{name:"keyword.control.conditional.regexp"},15:{name:"keyword.control.conditional.regexp"},16:{name:"keyword.control.conditional.regexp"},17:{name:"keyword.control.conditional.regexp"},18:{name:"keyword.control.conditional.regexp"},19:{name:"keyword.operator.comparison.regexp"},20:{name:"constant.numeric.integer.decimal.regexp"},21:{name:"keyword.control.conditional.regexp"},22:{name:"punctuation.definition.group.regexp"},23:{name:"keyword.control.conditional.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.conditional.regexp",patterns:[{include:"#literals-regular-expression-literal-regex-guts"}]},{begin:`(?x) +(\\() +( + +(\\?) +(?: +([:|>=!*] | <[=!*]) + +| P?< (?:((?!\\d)\\w+) (-))? ((?!\\d)\\w+) > +| ' (?:((?!\\d)\\w+) (-))? ((?!\\d)\\w+) ' + +| (?: +\\^(?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})* +| (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})+ +| (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})* - (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})* +): +) + +| \\*( +atomic +|pla|positive_lookahead +|nla|negative_lookahead +|plb|positive_lookbehind +|nlb|negative_lookbehind +|napla|non_atomic_positive_lookahead +|naplb|non_atomic_positive_lookbehind +|sr|script_run +|asr|atomic_script_run +): +)?+`,beginCaptures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"keyword.other.group-options.regexp"},3:{name:"punctuation.definition.group.regexp"},4:{name:"punctuation.definition.group.regexp"},5:{name:"variable.other.group-name.regexp"},6:{name:"keyword.operator.balancing-group.regexp"},7:{name:"variable.other.group-name.regexp"},8:{name:"variable.other.group-name.regexp"},9:{name:"keyword.operator.balancing-group.regexp"},10:{name:"variable.other.group-name.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#literals-regular-expression-literal-regex-guts"}]}]},"literals-regular-expression-literal-line-comment":{captures:{1:{name:"punctuation.definition.comment.regexp"}},match:"(\\#).*$",name:"comment.line.regexp"},"literals-regular-expression-literal-quote":{begin:"\\\\Q",beginCaptures:{0:{name:"constant.character.escape.backslash.regexp"}},end:"\\\\E|(\\n)",endCaptures:{0:{name:"constant.character.escape.backslash.regexp"},1:{name:"invalid.illegal.returns-not-allowed.regexp"}},name:"string.quoted.other.regexp.swift"},"literals-regular-expression-literal-regex-guts":{patterns:[{include:"#literals-regular-expression-literal-quote"},{begin:"\\(\\?\\#",beginCaptures:{0:{name:"punctuation.definition.comment.begin.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.comment.end.regexp"}},name:"comment.block.regexp"},{begin:"<\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.regexp"}},end:"\\}>",endCaptures:{0:{name:"punctuation.section.embedded.end.regexp"}},name:"meta.embedded.expression.regexp"},{include:"#literals-regular-expression-literal-unicode-scalars"},{include:"#literals-regular-expression-literal-character-properties"},{match:"[$^]|\\\\[AbBGyYzZ]|\\\\K",name:"keyword.control.anchor.regexp"},{include:"#literals-regular-expression-literal-backtracking-directive-or-global-matching-option"},{include:"#literals-regular-expression-literal-callout"},{include:"#literals-regular-expression-literal-backreference-or-subpattern"},{match:"\\.|\\\\[CdDhHNORsSvVwWX]",name:"constant.character.character-class.regexp"},{match:"\\\\c.",name:"constant.character.entity.control-character.regexp"},{match:"\\\\[^c]",name:"constant.character.escape.backslash.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{match:"[*+?]",name:"keyword.operator.quantifier.regexp"},{match:"\\{\\s*\\d+\\s*(?:,\\s*\\d*\\s*)?\\}|\\{\\s*,\\s*\\d+\\s*\\}",name:"keyword.operator.quantifier.regexp"},{include:"#literals-regular-expression-literal-custom-char-class"},{include:"#literals-regular-expression-literal-group-option-toggle"},{include:"#literals-regular-expression-literal-group-or-conditional"}]},"literals-regular-expression-literal-set-operators":{patterns:[{match:"&&",name:"keyword.operator.intersection.regexp.swift"},{match:"--",name:"keyword.operator.subtraction.regexp.swift"},{match:"\\~\\~",name:"keyword.operator.symmetric-difference.regexp.swift"}]},"literals-regular-expression-literal-unicode-scalars":{match:`(?x) +\\\\u\\{\\s*(?:[0-9a-fA-F]+\\s*)+\\} +| \\\\u[0-9a-fA-F]{4} +| \\\\x\\{[0-9a-fA-F]+\\} +| \\\\x[0-9a-fA-F]{0,2} +| \\\\U[0-9a-fA-F]{8} +| \\\\o\\{[0-7]+\\} +| \\\\0[0-7]{0,3} +| \\\\N\\{(?:U\\+[0-9a-fA-F]{1,8} | [\\s\\w-]+)\\}`,name:"constant.character.numeric.regexp"},"literals-string":{patterns:[{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.swift"}},comment:"SE-0168: Multi-Line String Literals",end:'"""(#*)',endCaptures:{0:{name:"punctuation.definition.string.end.swift"},1:{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.block.swift",patterns:[{match:'\\G.+(?=""")|\\G.+',name:"invalid.illegal.content-after-opening-delimiter.swift"},{match:"\\\\\\s*\\n",name:"constant.character.escape.newline.swift"},{include:"#literals-string-string-guts"},{comment:'Allow \\("""...""") to appear inside a block string',match:'\\S((?!\\\\\\().)*(?=""")',name:"invalid.illegal.content-before-closing-delimiter.swift"}]},{begin:'#"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.swift"}},end:'"""#(#*)',endCaptures:{0:{name:"punctuation.definition.string.end.swift"},1:{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.block.raw.swift",patterns:[{match:'\\G.+(?=""")|\\G.+',name:"invalid.illegal.content-after-opening-delimiter.swift"},{match:"\\\\#\\s*\\n",name:"constant.character.escape.newline.swift"},{include:"#literals-string-raw-string-guts"},{comment:'Allow \\("""...""") to appear inside a block string',match:'\\S((?!\\\\#\\().)*(?=""")',name:"invalid.illegal.content-before-closing-delimiter.swift"}]},{begin:'(##+)"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.swift"}},end:'"""\\1(#*)',endCaptures:{0:{name:"punctuation.definition.string.end.swift"},1:{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.block.raw.swift",patterns:[{match:'\\G.+(?=""")|\\G.+',name:"invalid.illegal.content-after-opening-delimiter.swift"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.swift"}},end:'"(#*)',endCaptures:{0:{name:"punctuation.definition.string.end.swift"},1:{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.single-line.swift",patterns:[{match:"\\r|\\n",name:"invalid.illegal.returns-not-allowed.swift"},{include:"#literals-string-string-guts"}]},{begin:'(##+)"',beginCaptures:{0:{name:"punctuation.definition.string.begin.raw.swift"}},comment:"SE-0168: raw string literals (more than one #, grammar limitations prevent us from supporting escapes)",end:'"\\1(#*)',endCaptures:{0:{name:"punctuation.definition.string.end.raw.swift"},1:{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.single-line.raw.swift",patterns:[{match:"\\r|\\n",name:"invalid.illegal.returns-not-allowed.swift"}]},{begin:'#"',beginCaptures:{0:{name:"punctuation.definition.string.begin.raw.swift"}},comment:"SE-0168: raw string literals (one #, escapes supported)",end:'"#(#*)',endCaptures:{0:{name:"punctuation.definition.string.end.raw.swift"},1:{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.single-line.raw.swift",patterns:[{match:"\\r|\\n",name:"invalid.illegal.returns-not-allowed.swift"},{include:"#literals-string-raw-string-guts"}]}]},"literals-string-raw-string-guts":{comment:"the same as #string-guts but with # in escapes",patterns:[{match:`\\\\#[0\\\\tnr"']`,name:"constant.character.escape.swift"},{match:"\\\\#u\\{[0-9a-fA-F]{1,8}\\}",name:"constant.character.escape.unicode.swift"},{begin:"\\\\#\\(",beginCaptures:{0:{name:"punctuation.section.embedded.begin.swift"}},contentName:"source.swift",end:"(\\))",endCaptures:{0:{name:"punctuation.section.embedded.end.swift"},1:{name:"source.swift"}},name:"meta.embedded.line.swift",patterns:[{include:"$self"},{begin:"\\(",comment:"Nested parens",end:"\\)"}]},{match:"\\\\#.",name:"invalid.illegal.escape-not-recognized"}]},"literals-string-string-guts":{patterns:[{match:`\\\\[0\\\\tnr"']`,name:"constant.character.escape.swift"},{match:"\\\\u\\{[0-9a-fA-F]{1,8}\\}",name:"constant.character.escape.unicode.swift"},{begin:"\\\\\\(",beginCaptures:{0:{name:"punctuation.section.embedded.begin.swift"}},contentName:"source.swift",end:"(\\))",endCaptures:{0:{name:"punctuation.section.embedded.end.swift"},1:{name:"source.swift"}},name:"meta.embedded.line.swift",patterns:[{include:"$self"},{begin:"\\(",comment:"Nested parens",end:"\\)"}]},{match:"\\\\.",name:"invalid.illegal.escape-not-recognized"}]},"member-reference":{patterns:[{captures:{1:{name:"variable.other.swift"},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"}},match:"(?<=\\.)((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))"}]},operators:{patterns:[{comment:"Type casting",match:"\\b(is\\b|as([!?]\\B|\\b))",name:"keyword.operator.type-casting.swift"},{begin:`(?x) +(?= +(?<oph> +[/=\\-+!*%<>&|^~?] +| [\\x{00A1}-\\x{00A7}] +| [\\x{00A9}\\x{00AB}] +| [\\x{00AC}\\x{00AE}] +| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}] +| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}] +| [\\x{2030}-\\x{203E}] +| [\\x{2041}-\\x{2053}] +| [\\x{2055}-\\x{205E}] +| [\\x{2190}-\\x{23FF}] +| [\\x{2500}-\\x{2775}] +| [\\x{2794}-\\x{2BFF}] +| [\\x{2E00}-\\x{2E7F}] +| [\\x{3001}-\\x{3003}] +| [\\x{3008}-\\x{3030}] +) +| \\. +( +\\g<oph> +| \\. +| [\\x{0300}-\\x{036F}] +| [\\x{1DC0}-\\x{1DFF}] +| [\\x{20D0}-\\x{20FF}] +| [\\x{FE00}-\\x{FE0F}] +| [\\x{FE20}-\\x{FE2F}] +| [\\x{E0100}-\\x{E01EF}] +) +)`,comment:"This rule helps us speed up the matching.",end:"(?!\\G)",patterns:[{captures:{0:{patterns:[{match:"\\G(\\+\\+|\\-\\-)$",name:"keyword.operator.increment-or-decrement.swift"},{match:"\\G(\\+|\\-)$",name:"keyword.operator.arithmetic.unary.swift"},{match:"\\G!$",name:"keyword.operator.logical.not.swift"},{match:"\\G~$",name:"keyword.operator.bitwise.not.swift"},{match:".+",name:"keyword.operator.custom.prefix.swift"}]}},comment:"Prefix unary operator",match:`(?x) +\\G + +(?<=^|[\\s(\\[{,;:]) +( +(?!(//|/\\*|\\*/)) +( +[/=\\-+!*%<>&|^~?] +| [\\x{00A1}-\\x{00A7}] +| [\\x{00A9}\\x{00AB}] +| [\\x{00AC}\\x{00AE}] +| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}] +| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}] +| [\\x{2030}-\\x{203E}] +| [\\x{2041}-\\x{2053}] +| [\\x{2055}-\\x{205E}] +| [\\x{2190}-\\x{23FF}] +| [\\x{2500}-\\x{2775}] +| [\\x{2794}-\\x{2BFF}] +| [\\x{2E00}-\\x{2E7F}] +| [\\x{3001}-\\x{3003}] +| [\\x{3008}-\\x{3030}] + +| [\\x{0300}-\\x{036F}] +| [\\x{1DC0}-\\x{1DFF}] +| [\\x{20D0}-\\x{20FF}] +| [\\x{FE00}-\\x{FE0F}] +| [\\x{FE20}-\\x{FE2F}] +| [\\x{E0100}-\\x{E01EF}] +) +)++ +(?![\\s)\\]},;:]|\\z)`},{captures:{0:{patterns:[{match:"\\G(\\+\\+|\\-\\-)$",name:"keyword.operator.increment-or-decrement.swift"},{match:"\\G!$",name:"keyword.operator.increment-or-decrement.swift"},{match:".+",name:"keyword.operator.custom.postfix.swift"}]}},comment:"Postfix unary operator",match:`(?x) +\\G + +(?<!^|[\\s(\\[{,;:]) +( +(?!(//|/\\*|\\*/)) +( +[/=\\-+!*%<>&|^~?] +| [\\x{00A1}-\\x{00A7}] +| [\\x{00A9}\\x{00AB}] +| [\\x{00AC}\\x{00AE}] +| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}] +| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}] +| [\\x{2030}-\\x{203E}] +| [\\x{2041}-\\x{2053}] +| [\\x{2055}-\\x{205E}] +| [\\x{2190}-\\x{23FF}] +| [\\x{2500}-\\x{2775}] +| [\\x{2794}-\\x{2BFF}] +| [\\x{2E00}-\\x{2E7F}] +| [\\x{3001}-\\x{3003}] +| [\\x{3008}-\\x{3030}] + +| [\\x{0300}-\\x{036F}] +| [\\x{1DC0}-\\x{1DFF}] +| [\\x{20D0}-\\x{20FF}] +| [\\x{FE00}-\\x{FE0F}] +| [\\x{FE20}-\\x{FE2F}] +| [\\x{E0100}-\\x{E01EF}] +) +)++ +(?=[\\s)\\]},;:]|\\z)`},{captures:{0:{patterns:[{match:"\\G=$",name:"keyword.operator.assignment.swift"},{match:"\\G(\\+|\\-|\\*|/|%|<<|>>|&|\\^|\\||&&|\\|\\|)=$",name:"keyword.operator.assignment.compound.swift"},{match:"\\G(\\+|\\-|\\*|/)$",name:"keyword.operator.arithmetic.swift"},{match:"\\G&(\\+|\\-|\\*)$",name:"keyword.operator.arithmetic.overflow.swift"},{match:"\\G%$",name:"keyword.operator.arithmetic.remainder.swift"},{match:"\\G(==|!=|>|<|>=|<=|~=)$",name:"keyword.operator.comparison.swift"},{match:"\\G\\?\\?$",name:"keyword.operator.coalescing.swift"},{match:"\\G(&&|\\|\\|)$",name:"keyword.operator.logical.swift"},{match:"\\G(&|\\||\\^|<<|>>)$",name:"keyword.operator.bitwise.swift"},{match:"\\G(===|!==)$",name:"keyword.operator.bitwise.swift"},{match:"\\G\\?$",name:"keyword.operator.ternary.swift"},{match:".+",name:"keyword.operator.custom.infix.swift"}]}},comment:"Infix operator",match:`(?x) +\\G + +( +(?!(//|/\\*|\\*/)) +( +[/=\\-+!*%<>&|^~?] +| [\\x{00A1}-\\x{00A7}] +| [\\x{00A9}\\x{00AB}] +| [\\x{00AC}\\x{00AE}] +| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}] +| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}] +| [\\x{2030}-\\x{203E}] +| [\\x{2041}-\\x{2053}] +| [\\x{2055}-\\x{205E}] +| [\\x{2190}-\\x{23FF}] +| [\\x{2500}-\\x{2775}] +| [\\x{2794}-\\x{2BFF}] +| [\\x{2E00}-\\x{2E7F}] +| [\\x{3001}-\\x{3003}] +| [\\x{3008}-\\x{3030}] + +| [\\x{0300}-\\x{036F}] +| [\\x{1DC0}-\\x{1DFF}] +| [\\x{20D0}-\\x{20FF}] +| [\\x{FE00}-\\x{FE0F}] +| [\\x{FE20}-\\x{FE2F}] +| [\\x{E0100}-\\x{E01EF}] +) +)++`},{captures:{0:{patterns:[{match:".+",name:"keyword.operator.custom.prefix.dot.swift"}]}},comment:"Dot prefix unary operator",match:`(?x) +\\G + +(?<=^|[\\s(\\[{,;:]) +\\. +( +(?!(//|/\\*|\\*/)) +( +\\. +| [/=\\-+!*%<>&|^~?] +| [\\x{00A1}-\\x{00A7}] +| [\\x{00A9}\\x{00AB}] +| [\\x{00AC}\\x{00AE}] +| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}] +| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}] +| [\\x{2030}-\\x{203E}] +| [\\x{2041}-\\x{2053}] +| [\\x{2055}-\\x{205E}] +| [\\x{2190}-\\x{23FF}] +| [\\x{2500}-\\x{2775}] +| [\\x{2794}-\\x{2BFF}] +| [\\x{2E00}-\\x{2E7F}] +| [\\x{3001}-\\x{3003}] +| [\\x{3008}-\\x{3030}] + +| [\\x{0300}-\\x{036F}] +| [\\x{1DC0}-\\x{1DFF}] +| [\\x{20D0}-\\x{20FF}] +| [\\x{FE00}-\\x{FE0F}] +| [\\x{FE20}-\\x{FE2F}] +| [\\x{E0100}-\\x{E01EF}] +) +)++ +(?![\\s)\\]},;:]|\\z)`},{captures:{0:{patterns:[{match:".+",name:"keyword.operator.custom.postfix.dot.swift"}]}},comment:"Dot postfix unary operator",match:`(?x) +\\G + +(?<!^|[\\s(\\[{,;:]) +\\. +( +(?!(//|/\\*|\\*/)) +( +\\. +| [/=\\-+!*%<>&|^~?] +| [\\x{00A1}-\\x{00A7}] +| [\\x{00A9}\\x{00AB}] +| [\\x{00AC}\\x{00AE}] +| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}] +| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}] +| [\\x{2030}-\\x{203E}] +| [\\x{2041}-\\x{2053}] +| [\\x{2055}-\\x{205E}] +| [\\x{2190}-\\x{23FF}] +| [\\x{2500}-\\x{2775}] +| [\\x{2794}-\\x{2BFF}] +| [\\x{2E00}-\\x{2E7F}] +| [\\x{3001}-\\x{3003}] +| [\\x{3008}-\\x{3030}] + +| [\\x{0300}-\\x{036F}] +| [\\x{1DC0}-\\x{1DFF}] +| [\\x{20D0}-\\x{20FF}] +| [\\x{FE00}-\\x{FE0F}] +| [\\x{FE20}-\\x{FE2F}] +| [\\x{E0100}-\\x{E01EF}] +) +)++ +(?=[\\s)\\]},;:]|\\z)`},{captures:{0:{patterns:[{match:"\\G\\.\\.[.<]$",name:"keyword.operator.range.swift"},{match:".+",name:"keyword.operator.custom.infix.dot.swift"}]}},comment:"Dot infix operator",match:`(?x) +\\G + +\\. +( +(?!(//|/\\*|\\*/)) +( +\\. +| [/=\\-+!*%<>&|^~?] +| [\\x{00A1}-\\x{00A7}] +| [\\x{00A9}\\x{00AB}] +| [\\x{00AC}\\x{00AE}] +| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}] +| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}] +| [\\x{2030}-\\x{203E}] +| [\\x{2041}-\\x{2053}] +| [\\x{2055}-\\x{205E}] +| [\\x{2190}-\\x{23FF}] +| [\\x{2500}-\\x{2775}] +| [\\x{2794}-\\x{2BFF}] +| [\\x{2E00}-\\x{2E7F}] +| [\\x{3001}-\\x{3003}] +| [\\x{3008}-\\x{3030}] + +| [\\x{0300}-\\x{036F}] +| [\\x{1DC0}-\\x{1DFF}] +| [\\x{20D0}-\\x{20FF}] +| [\\x{FE00}-\\x{FE0F}] +| [\\x{FE20}-\\x{FE2F}] +| [\\x{E0100}-\\x{E01EF}] +) +)++`}]},{match:":",name:"keyword.operator.ternary.swift"}]},root:{patterns:[{include:"#compiler-control"},{include:"#declarations"},{include:"#expressions"}]}},scopeName:"source.swift"});var n=[e];export{n as default}; diff --git a/assets/chunks/synthwave-84.BBDuFDsq.js b/assets/chunks/synthwave-84.BBDuFDsq.js new file mode 100644 index 000000000..310e6f967 --- /dev/null +++ b/assets/chunks/synthwave-84.BBDuFDsq.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.background":"#171520","activityBar.dropBackground":"#34294f66","activityBar.foreground":"#ffffffCC","activityBarBadge.background":"#f97e72","activityBarBadge.foreground":"#2a2139","badge.background":"#2a2139","badge.foreground":"#ffffff","breadcrumbPicker.background":"#232530","button.background":"#614D85","debugToolBar.background":"#463465","diffEditor.insertedTextBackground":"#0beb9935","diffEditor.removedTextBackground":"#fe445035","dropdown.background":"#232530","dropdown.listBackground":"#2a2139","editor.background":"#262335","editor.findMatchBackground":"#D18616bb","editor.findMatchHighlightBackground":"#D1861655","editor.findRangeHighlightBackground":"#34294f1a","editor.hoverHighlightBackground":"#463564","editor.lineHighlightBorder":"#7059AB66","editor.rangeHighlightBackground":"#49549539","editor.selectionBackground":"#ffffff20","editor.selectionHighlightBackground":"#ffffff20","editor.wordHighlightBackground":"#34294f88","editor.wordHighlightStrongBackground":"#34294f88","editorBracketMatch.background":"#34294f66","editorBracketMatch.border":"#495495","editorCodeLens.foreground":"#ffffff7c","editorCursor.background":"#241b2f","editorCursor.foreground":"#f97e72","editorError.foreground":"#fe4450","editorGroup.border":"#495495","editorGroup.dropBackground":"#4954954a","editorGroupHeader.tabsBackground":"#241b2f","editorGutter.addedBackground":"#206d4bd6","editorGutter.deletedBackground":"#fa2e46a4","editorGutter.modifiedBackground":"#b893ce8f","editorIndentGuide.activeBackground":"#A148AB80","editorIndentGuide.background":"#444251","editorLineNumber.activeForeground":"#ffffffcc","editorLineNumber.foreground":"#ffffff73","editorOverviewRuler.addedForeground":"#09f7a099","editorOverviewRuler.border":"#34294fb3","editorOverviewRuler.deletedForeground":"#fe445099","editorOverviewRuler.errorForeground":"#fe4450dd","editorOverviewRuler.findMatchForeground":"#D1861699","editorOverviewRuler.modifiedForeground":"#b893ce99","editorOverviewRuler.warningForeground":"#72f1b8cc","editorRuler.foreground":"#A148AB80","editorSuggestWidget.highlightForeground":"#f97e72","editorSuggestWidget.selectedBackground":"#ffffff36","editorWarning.foreground":"#72f1b8cc","editorWidget.background":"#171520DC","editorWidget.border":"#ffffff22","editorWidget.resizeBorder":"#ffffff44",errorForeground:"#fe4450","extensionButton.prominentBackground":"#f97e72","extensionButton.prominentHoverBackground":"#ff7edb",focusBorder:"#1f212b",foreground:"#ffffff","gitDecoration.addedResourceForeground":"#72f1b8cc","gitDecoration.deletedResourceForeground":"#fe4450","gitDecoration.ignoredResourceForeground":"#ffffff59","gitDecoration.modifiedResourceForeground":"#b893ceee","gitDecoration.untrackedResourceForeground":"#72f1b8","input.background":"#2a2139","inputOption.activeBorder":"#ff7edb99","inputValidation.errorBackground":"#fe445080","inputValidation.errorBorder":"#fe445000","list.activeSelectionBackground":"#ffffff20","list.activeSelectionForeground":"#ffffff","list.dropBackground":"#34294f66","list.errorForeground":"#fe4450E6","list.focusBackground":"#ffffff20","list.focusForeground":"#ffffff","list.highlightForeground":"#f97e72","list.hoverBackground":"#37294d99","list.hoverForeground":"#ffffff","list.inactiveFocusBackground":"#2a213999","list.inactiveSelectionBackground":"#ffffff20","list.inactiveSelectionForeground":"#ffffff","list.warningForeground":"#72f1b8bb","menu.background":"#463465","minimapGutter.addedBackground":"#09f7a099","minimapGutter.deletedBackground":"#fe4450","minimapGutter.modifiedBackground":"#b893ce","panelTitle.activeBorder":"#f97e72","peekView.border":"#495495","peekViewEditor.background":"#232530","peekViewEditor.matchHighlightBackground":"#D18616bb","peekViewResult.background":"#232530","peekViewResult.matchHighlightBackground":"#D1861655","peekViewResult.selectionBackground":"#2a213980","peekViewTitle.background":"#232530","pickerGroup.foreground":"#f97e72ea","progressBar.background":"#f97e72","scrollbar.shadow":"#2a2139","scrollbarSlider.activeBackground":"#9d8bca20","scrollbarSlider.background":"#9d8bca30","scrollbarSlider.hoverBackground":"#9d8bca50","selection.background":"#ffffff20","sideBar.background":"#241b2f","sideBar.dropBackground":"#34294f4c","sideBar.foreground":"#ffffff99","sideBarSectionHeader.background":"#241b2f","sideBarSectionHeader.foreground":"#ffffffca","statusBar.background":"#241b2f","statusBar.debuggingBackground":"#f97e72","statusBar.debuggingForeground":"#08080f","statusBar.foreground":"#ffffff80","statusBar.noFolderBackground":"#241b2f","statusBarItem.prominentBackground":"#2a2139","statusBarItem.prominentHoverBackground":"#34294f","tab.activeBorder":"#880088","tab.border":"#241b2f00","tab.inactiveBackground":"#262335","terminal.ansiBlue":"#03edf9","terminal.ansiBrightBlue":"#03edf9","terminal.ansiBrightCyan":"#03edf9","terminal.ansiBrightGreen":"#72f1b8","terminal.ansiBrightMagenta":"#ff7edb","terminal.ansiBrightRed":"#fe4450","terminal.ansiBrightYellow":"#fede5d","terminal.ansiCyan":"#03edf9","terminal.ansiGreen":"#72f1b8","terminal.ansiMagenta":"#ff7edb","terminal.ansiRed":"#fe4450","terminal.ansiYellow":"#f3e70f","terminal.foreground":"#ffffff","terminal.selectionBackground":"#ffffff20","terminalCursor.background":"#ffffff","terminalCursor.foreground":"#03edf9","textLink.activeForeground":"#ff7edb","textLink.foreground":"#f97e72","titleBar.activeBackground":"#241b2f","titleBar.inactiveBackground":"#241b2f","walkThrough.embeddedEditorBackground":"#232530","widget.shadow":"#2a2139"},displayName:"Synthwave '84",name:"synthwave-84",semanticHighlighting:!0,tokenColors:[{scope:["comment","string.quoted.docstring.multi.python","string.quoted.docstring.multi.python punctuation.definition.string.begin.python","string.quoted.docstring.multi.python punctuation.definition.string.end.python"],settings:{fontStyle:"italic",foreground:"#848bbd"}},{scope:["string.quoted","string.template","punctuation.definition.string"],settings:{foreground:"#ff8b39"}},{scope:"string.template meta.embedded.line",settings:{foreground:"#b6b1b1"}},{scope:["variable","entity.name.variable"],settings:{foreground:"#ff7edb"}},{scope:"variable.language",settings:{fontStyle:"bold",foreground:"#fe4450"}},{scope:"variable.parameter",settings:{fontStyle:"italic"}},{scope:["storage.type","storage.modifier"],settings:{foreground:"#fede5d"}},{scope:"constant",settings:{foreground:"#f97e72"}},{scope:"string.regexp",settings:{foreground:"#f97e72"}},{scope:"constant.numeric",settings:{foreground:"#f97e72"}},{scope:"constant.language",settings:{foreground:"#f97e72"}},{scope:"constant.character.escape",settings:{foreground:"#36f9f6"}},{scope:"entity.name",settings:{foreground:"#fe4450"}},{scope:"entity.name.tag",settings:{foreground:"#72f1b8"}},{scope:["punctuation.definition.tag"],settings:{foreground:"#36f9f6"}},{scope:"entity.other.attribute-name",settings:{foreground:"#fede5d"}},{scope:"entity.other.attribute-name.html",settings:{fontStyle:"italic",foreground:"#fede5d"}},{scope:["entity.name.type","meta.attribute.class.html"],settings:{foreground:"#fe4450"}},{scope:"entity.other.inherited-class",settings:{foreground:"#D50"}},{scope:["entity.name.function","variable.function"],settings:{foreground:"#36f9f6"}},{scope:["keyword.control.export.js","keyword.control.import.js"],settings:{foreground:"#72f1b8"}},{scope:["constant.numeric.decimal.js"],settings:{foreground:"#2EE2FA"}},{scope:"keyword",settings:{foreground:"#fede5d"}},{scope:"keyword.control",settings:{foreground:"#fede5d"}},{scope:"keyword.operator",settings:{foreground:"#fede5d"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.logical"],settings:{foreground:"#fede5d"}},{scope:"keyword.other.unit",settings:{foreground:"#f97e72"}},{scope:"support",settings:{foreground:"#fe4450"}},{scope:"support.function",settings:{foreground:"#36f9f6"}},{scope:"support.variable",settings:{foreground:"#ff7edb"}},{scope:["meta.object-literal.key","support.type.property-name"],settings:{foreground:"#ff7edb"}},{scope:"punctuation.separator.key-value",settings:{foreground:"#b6b1b1"}},{scope:"punctuation.section.embedded",settings:{foreground:"#fede5d"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end"],settings:{foreground:"#72f1b8"}},{scope:["support.type.property-name.css","support.type.property-name.json"],settings:{foreground:"#72f1b8"}},{scope:"switch-block.expr.js",settings:{foreground:"#72f1b8"}},{scope:"variable.other.constant.property.js, variable.other.property.js",settings:{foreground:"#2ee2fa"}},{scope:"constant.other.color",settings:{foreground:"#f97e72"}},{scope:"support.constant.font-name",settings:{foreground:"#f97e72"}},{scope:"entity.other.attribute-name.id",settings:{foreground:"#36f9f6"}},{scope:["entity.other.attribute-name.pseudo-element","entity.other.attribute-name.pseudo-class"],settings:{foreground:"#D50"}},{scope:"support.function.misc.css",settings:{foreground:"#fe4450"}},{scope:["markup.heading","entity.name.section"],settings:{foreground:"#ff7edb"}},{scope:["text.html","keyword.operator.assignment"],settings:{foreground:"#ffffffee"}},{scope:"markup.quote",settings:{fontStyle:"italic",foreground:"#b6b1b1cc"}},{scope:"beginning.punctuation.definition.list",settings:{foreground:"#ff7edb"}},{scope:"markup.underline.link",settings:{foreground:"#D50"}},{scope:"string.other.link.description",settings:{foreground:"#f97e72"}},{scope:"meta.function-call.generic.python",settings:{foreground:"#36f9f6"}},{scope:"variable.parameter.function-call.python",settings:{foreground:"#72f1b8"}},{scope:"storage.type.cs",settings:{foreground:"#fe4450"}},{scope:"entity.name.variable.local.cs",settings:{foreground:"#ff7edb"}},{scope:["entity.name.variable.field.cs","entity.name.variable.property.cs"],settings:{foreground:"#ff7edb"}},{scope:"constant.other.placeholder.c",settings:{fontStyle:"italic",foreground:"#72f1b8"}},{scope:["keyword.control.directive.include.c","keyword.control.directive.define.c"],settings:{foreground:"#72f1b8"}},{scope:"storage.modifier.c",settings:{foreground:"#fe4450"}},{scope:"source.cpp keyword.operator",settings:{foreground:"#fede5d"}},{scope:"constant.other.placeholder.cpp",settings:{fontStyle:"italic",foreground:"#72f1b8"}},{scope:["keyword.control.directive.include.cpp","keyword.control.directive.define.cpp"],settings:{foreground:"#72f1b8"}},{scope:"storage.modifier.specifier.const.cpp",settings:{foreground:"#fe4450"}},{scope:["source.elixir support.type.elixir","source.elixir meta.module.elixir entity.name.class.elixir"],settings:{foreground:"#36f9f6"}},{scope:"source.elixir entity.name.function",settings:{foreground:"#72f1b8"}},{scope:["source.elixir constant.other.symbol.elixir","source.elixir constant.other.keywords.elixir"],settings:{foreground:"#36f9f6"}},{scope:"source.elixir punctuation.definition.string",settings:{foreground:"#72f1b8"}},{scope:["source.elixir variable.other.readwrite.module.elixir","source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir"],settings:{foreground:"#72f1b8"}},{scope:"source.elixir .punctuation.binary.elixir",settings:{fontStyle:"italic",foreground:"#ff7edb"}},{scope:["entity.global.clojure"],settings:{fontStyle:"bold",foreground:"#36f9f6"}},{scope:["storage.control.clojure"],settings:{fontStyle:"italic",foreground:"#36f9f6"}},{scope:["meta.metadata.simple.clojure","meta.metadata.map.clojure"],settings:{fontStyle:"italic",foreground:"#fe4450"}},{scope:["meta.quoted-expression.clojure"],settings:{fontStyle:"italic"}},{scope:["meta.symbol.clojure"],settings:{foreground:"#ff7edbff"}},{scope:"source.go",settings:{foreground:"#ff7edbff"}},{scope:"source.go meta.function-call.go",settings:{foreground:"#36f9f6"}},{scope:["source.go keyword.package.go","source.go keyword.import.go","source.go keyword.function.go","source.go keyword.type.go","source.go keyword.const.go","source.go keyword.var.go","source.go keyword.map.go","source.go keyword.channel.go","source.go keyword.control.go"],settings:{foreground:"#fede5d"}},{scope:["source.go storage.type","source.go keyword.struct.go","source.go keyword.interface.go"],settings:{foreground:"#72f1b8"}},{scope:["source.go constant.language.go","source.go constant.other.placeholder.go","source.go variable"],settings:{foreground:"#2EE2FA"}},{scope:["markup.underline.link.markdown","markup.inline.raw.string.markdown"],settings:{fontStyle:"italic",foreground:"#72f1b8"}},{scope:["string.other.link.title.markdown"],settings:{foreground:"#fede5d"}},{scope:["markup.heading.markdown","entity.name.section.markdown"],settings:{fontStyle:"bold",foreground:"#ff7edb"}},{scope:["markup.italic.markdown"],settings:{fontStyle:"italic",foreground:"#2EE2FA"}},{scope:["markup.bold.markdown"],settings:{fontStyle:"bold",foreground:"#2EE2FA"}},{scope:["punctuation.definition.quote.begin.markdown","markup.quote.markdown"],settings:{foreground:"#72f1b8"}},{scope:["source.dart","source.python","source.scala"],settings:{foreground:"#ff7edbff"}},{scope:["string.interpolated.single.dart"],settings:{foreground:"#f97e72"}},{scope:["variable.parameter.dart"],settings:{foreground:"#72f1b8"}},{scope:["constant.numeric.dart"],settings:{foreground:"#2EE2FA"}},{scope:["variable.parameter.scala"],settings:{foreground:"#2EE2FA"}},{scope:["meta.template.expression.scala"],settings:{foreground:"#72f1b8"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/system-verilog.BscxmKrE.js b/assets/chunks/system-verilog.BscxmKrE.js new file mode 100644 index 000000000..a47748267 --- /dev/null +++ b/assets/chunks/system-verilog.BscxmKrE.js @@ -0,0 +1,8 @@ +const e=Object.freeze({displayName:"SystemVerilog",fileTypes:["v","vh","sv","svh"],name:"system-verilog",patterns:[{include:"#comments"},{include:"#strings"},{include:"#typedef-enum-struct-union"},{include:"#typedef"},{include:"#functions"},{include:"#keywords"},{include:"#tables"},{include:"#function-task"},{include:"#module-declaration"},{include:"#class-declaration"},{include:"#enum-struct-union"},{include:"#sequence"},{include:"#all-types"},{include:"#module-parameters"},{include:"#module-no-parameters"},{include:"#port-net-parameter"},{include:"#system-tf"},{include:"#assertion"},{include:"#bind-directive"},{include:"#cast-operator"},{include:"#storage-scope"},{include:"#attributes"},{include:"#imports"},{include:"#operators"},{include:"#constants"},{include:"#identifiers"},{include:"#selects"}],repository:{"all-types":{patterns:[{include:"#built-ins"},{include:"#modifiers"}]},assertion:{captures:{1:{name:"entity.name.goto-label.php"},2:{name:"keyword.operator.systemverilog"},3:{name:"keyword.sva.systemverilog"}},match:"\\b([a-zA-Z_][a-zA-Z0-9_$]*)[ \\t\\r\\n]*(:)[ \\t\\r\\n]*(assert|assume|cover|restrict)\\b"},attributes:{begin:"(?<!@[ \\t\\r\\n]?)\\(\\*",beginCaptures:{0:{name:"punctuation.attribute.rounds.begin"}},end:"\\*\\)",endCaptures:{0:{name:"punctuation.attribute.rounds.end"}},name:"meta.attribute.systemverilog",patterns:[{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"keyword.operator.assignment.systemverilog"}},match:"([a-zA-Z_][a-zA-Z0-9_$]*)(?:[ \\t\\r\\n]*(=)[ \\t\\r\\n]*)?"},{include:"#constants"},{include:"#strings"}]},"base-grammar":{patterns:[{include:"#all-types"},{include:"#comments"},{include:"#operators"},{include:"#constants"},{include:"#strings"},{captures:{1:{name:"storage.type.interface.systemverilog"}},match:"[ \\t\\r\\n]*\\b([a-zA-Z_][a-zA-Z0-9_$]*)[ \\t\\r\\n]+[a-zA-Z_][a-zA-Z0-9_,= \\t\\n]*"},{include:"#storage-scope"}]},"bind-directive":{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"entity.name.type.module.systemverilog"}},match:"[ \\t\\r\\n]*\\b(bind)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$\\.]*)\\b",name:"meta.definition.systemverilog"},"built-ins":{patterns:[{match:"[ \\t\\r\\n]*\\b(bit|logic|reg)\\b",name:"storage.type.vector.systemverilog"},{match:"[ \\t\\r\\n]*\\b(byte|shortint|int|longint|integer|time|genvar)\\b",name:"storage.type.atom.systemverilog"},{match:"[ \\t\\r\\n]*\\b(shortreal|real|realtime)\\b",name:"storage.type.notint.systemverilog"},{match:"[ \\t\\r\\n]*\\b(supply[01]|tri|triand|trior|trireg|tri[01]|uwire|wire|wand|wor)\\b",name:"storage.type.net.systemverilog"},{match:"[ \\t\\r\\n]*\\b(genvar|var|void|signed|unsigned|string|const|process)\\b",name:"storage.type.built-in.systemverilog"},{match:"[ \\t\\r\\n]*\\b(uvm_(?:root|transaction|component|monitor|driver|test|env|object|agent|sequence_base|sequence_item|sequence_state|sequencer|sequencer_base|sequence|component_registry|analysis_imp|analysis_port|analysis_export|config_db|active_passive_enum|phase|verbosity|tlm_analysis_fifo|tlm_fifo|report_server|objection|recorder|domain|reg_field|reg_block|reg|bitstream_t|radix_enum|printer|packer|comparer|scope_stack))\\b",name:"storage.type.uvm.systemverilog"}]},"cast-operator":{captures:{1:{patterns:[{include:"#built-ins"},{include:"#constants"},{match:"[a-zA-Z_][a-zA-Z0-9_$]*",name:"storage.type.user-defined.systemverilog"}]},2:{name:"keyword.operator.cast.systemverilog"}},match:"[ \\t\\r\\n]*([0-9]+|[a-zA-Z_][a-zA-Z0-9_$]*)(')(?=\\()",name:"meta.cast.systemverilog"},"class-declaration":{begin:"[ \\t\\r\\n]*\\b(virtual[ \\t\\r\\n]+)?(class)(?:[ \\t\\r\\n]+(static|automatic))?[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$:]*)(?:[ \\t\\r\\n]+(extends|implements)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$:]*))?",beginCaptures:{1:{name:"storage.modifier.systemverilog"},2:{name:"storage.type.class.systemverilog"},3:{name:"storage.modifier.systemverilog"},4:{name:"entity.name.type.class.systemverilog"},5:{name:"keyword.control.systemverilog"},6:{name:"entity.name.type.class.systemverilog"}},end:";",endCaptures:{0:{name:"punctuation.definition.class.end.systemverilog"}},name:"meta.class.systemverilog",patterns:[{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"entity.name.type.class.systemverilog"},3:{name:"entity.name.type.class.systemverilog"}},match:"[ \\t\\r\\n]+\\b(extends|implements)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$:]*)(?:[ \\t\\r\\n]*,[ \\t\\r\\n]*([a-zA-Z_][a-zA-Z0-9_$:]*))*"},{captures:{1:{name:"storage.type.userdefined.systemverilog"},2:{name:"keyword.operator.param.systemverilog"}},match:"[ \\t\\r\\n]+\\b([a-zA-Z_][a-zA-Z0-9_$]*)[ \\t\\r\\n]*(#)\\(",name:"meta.typedef.class.systemverilog"},{include:"#port-net-parameter"},{include:"#base-grammar"},{include:"#module-binding"},{include:"#identifiers"}]},comments:{patterns:[{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.systemverilog"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.systemverilog"}},name:"comment.block.systemverilog",patterns:[{include:"#fixme-todo"}]},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.systemverilog"}},end:"$\\n?",name:"comment.line.double-slash.systemverilog",patterns:[{include:"#fixme-todo"}]}]},"compiler-directives":{name:"meta.preprocessor.systemverilog",patterns:[{captures:{1:{name:"punctuation.definition.directive.systemverilog"},2:{name:"string.regexp.systemverilog"}},match:"(`)(else|endif|endcelldefine|celldefine|nounconnected_drive|resetall|undefineall|end_keywords|__FILE__|__LINE__)\\b"},{captures:{1:{name:"punctuation.definition.directive.systemverilog"},2:{name:"string.regexp.systemverilog"},3:{name:"variable.other.constant.preprocessor.systemverilog"}},match:"(`)(ifdef|ifndef|elsif|define|undef|pragma)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$]*)\\b"},{captures:{1:{name:"punctuation.definition.directive.systemverilog"},2:{name:"string.regexp.systemverilog"}},match:"(`)(include|timescale|default_nettype|unconnected_drive|line|begin_keywords)\\b"},{begin:"(`)(protected)\\b",beginCaptures:{1:{name:"punctuation.definition.directive.systemverilog"},2:{name:"string.regexp.systemverilog"}},end:"(`)(endprotected)\\b",endCaptures:{1:{name:"punctuation.definition.directive.systemverilog"},2:{name:"string.regexp.systemverilog"}},name:"meta.crypto.systemverilog"},{captures:{1:{name:"punctuation.definition.directive.systemverilog"},2:{name:"variable.other.constant.preprocessor.systemverilog"}},match:"(`)([a-zA-Z_][a-zA-Z0-9_$]*)\\b"}]},constants:{patterns:[{match:"(\\b[1-9][0-9_]*)?'([sS]?[bB][ \\t\\r\\n]*[0-1xXzZ?][0-1_xXzZ?]*|[sS]?[oO][ \\t\\r\\n]*[0-7xXzZ?][0-7_xXzZ?]*|[sS]?[dD][ \\t\\r\\n]*[0-9xXzZ?][0-9_xXzZ?]*|[sS]?[hH][ \\t\\r\\n]*[0-9a-fA-FxXzZ?][0-9a-fA-F_xXzZ?]*)((e|E)(\\+|-)?[0-9]+)?(?!'|\\w)",name:"constant.numeric.systemverilog"},{match:"'[01xXzZ]",name:"constant.numeric.bit.systemverilog"},{match:"\\b(?:\\d[\\d_\\.]*(?<!\\.)(?:e|E)(?:\\+|-)?[0-9]+)\\b",name:"constant.numeric.exp.systemverilog"},{match:"\\b(?:\\d[\\d_\\.]*(?!(?:[\\d\\.]|[ \\t\\r\\n]*(?:e|E|fs|ps|ns|us|ms|s))))\\b",name:"constant.numeric.decimal.systemverilog"},{match:"\\b(?:\\d[\\d\\.]*[ \\t\\r\\n]*(?:fs|ps|ns|us|ms|s))\\b",name:"constant.numeric.time.systemverilog"},{include:"#compiler-directives"},{match:"\\b(?:this|super|null)\\b",name:"constant.language.systemverilog"},{match:"\\b([A-Z][A-Z0-9_]*)\\b",name:"constant.other.net.systemverilog"},{match:"\\b(?<!\\.)([A-Z0-9_]+)(?!\\.)\\b",name:"constant.numeric.parameter.uppercase.systemverilog"},{match:"\\.\\*",name:"keyword.operator.quantifier.regexp"}]},"enum-struct-union":{begin:"[ \\t\\r\\n]*\\b(enum|struct|union(?:[ \\t\\r\\n]+tagged)?|class|interface[ \\t\\r\\n]+class)(?:[ \\t\\r\\n]+(?!packed|signed|unsigned)([a-zA-Z_][a-zA-Z0-9_$]*)?(?:[ \\t\\r\\n]*(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])?))?(?:[ \\t\\r\\n]+(packed))?(?:[ \\t\\r\\n]+(signed|unsigned))?(?=[ \\t\\r\\n]*(?:{|$))",beginCaptures:{1:{name:"keyword.control.systemverilog"},2:{patterns:[{include:"#built-ins"}]},3:{patterns:[{include:"#selects"}]},4:{name:"storage.modifier.systemverilog"},5:{name:"storage.modifier.systemverilog"}},end:"(?<=})[ \\t\\r\\n]*([a-zA-Z_][a-zA-Z0-9_$]*|(?<=^|[ \\t\\r\\n])\\\\[!-~]+(?=$|[ \\t\\r\\n]))(?:[ \\t\\r\\n]*(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])?)[ \\t\\r\\n]*[,;]",endCaptures:{1:{patterns:[{include:"#identifiers"}]},2:{patterns:[{include:"#selects"}]}},name:"meta.enum-struct-union.systemverilog",patterns:[{include:"#keywords"},{include:"#base-grammar"},{include:"#identifiers"}]},"fixme-todo":{patterns:[{match:"(?i:fixme)",name:"invalid.broken.fixme.systemverilog"},{match:"(?i:todo)",name:"invalid.unimplemented.todo.systemverilog"}]},"function-task":{begin:"[ \\t\\r\\n]*(?:\\b(virtual)[ \\t\\r\\n]+)?(?:\\b(function|task)\\b)(?:[ \\t\\r\\n]+\\b(static|automatic)\\b)?",beginCaptures:{1:{name:"storage.modifier.systemverilog"},2:{name:"storage.type.function.systemverilog"},3:{name:"storage.modifier.systemverilog"}},end:";",endCaptures:{0:{name:"punctuation.definition.function.end.systemverilog"}},name:"meta.function.systemverilog",patterns:[{captures:{1:{name:"support.type.scope.systemverilog"},2:{name:"keyword.operator.scope.systemverilog"},3:{patterns:[{include:"#built-ins"},{match:"[a-zA-Z_][a-zA-Z0-9_$]*",name:"storage.type.user-defined.systemverilog"}]},4:{patterns:[{include:"#modifiers"}]},5:{patterns:[{include:"#selects"}]},6:{name:"entity.name.function.systemverilog"}},match:"[ \\t\\r\\n]*(?:\\b([a-zA-Z_][a-zA-Z0-9_$]*)(::))?([a-zA-Z_][a-zA-Z0-9_$]*\\b[ \\t\\r\\n]+)?(?:\\b(signed|unsigned)\\b[ \\t\\r\\n]*)?(?:(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])[ \\t\\r\\n]*)?(?:\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\b[ \\t\\r\\n]*)(?=\\(|;)"},{include:"#keywords"},{include:"#port-net-parameter"},{include:"#base-grammar"},{include:"#identifiers"}]},functions:{match:"[ \\t\\r\\n]*\\b(?!while|for|if|iff|else|case|casex|casez)([a-zA-Z_][a-zA-Z0-9_$]*)(?=[ \\t\\r\\n]*\\()",name:"entity.name.function.systemverilog"},identifiers:{patterns:[{match:"\\b[a-zA-Z_][a-zA-Z0-9_$]*\\b",name:"variable.other.identifier.systemverilog"},{match:"(?<=^|[ \\t\\r\\n])\\\\[!-~]+(?=$|[ \\t\\r\\n])",name:"string.regexp.identifier.systemverilog"}]},imports:{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"support.type.scope.systemverilog"},3:{name:"keyword.operator.scope.systemverilog"},4:{patterns:[{include:"#operators"},{include:"#identifiers"}]}},match:"[ \\t\\r\\n]*\\b(import|export)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$]*|\\*)[ \\t\\r\\n]*(::)[ \\t\\r\\n]*([a-zA-Z_][a-zA-Z0-9_$]*|\\*)[ \\t\\r\\n]*(,|;)",name:"meta.import.systemverilog"},keywords:{patterns:[{captures:{1:{name:"keyword.other.systemverilog"}},match:"[ \\t\\r\\n]*\\b(edge|negedge|posedge|cell|config|defparam|design|disable|endgenerate|endspecify|event|generate|ifnone|incdir|instance|liblist|library|noshowcancelled|pulsestyle_onevent|pulsestyle_ondetect|scalared|showcancelled|specify|specparam|use|vectored)\\b"},{include:"#sv-control"},{include:"#sv-control-begin"},{include:"#sv-control-end"},{include:"#sv-definition"},{include:"#sv-cover-cross"},{include:"#sv-std"},{include:"#sv-option"},{include:"#sv-local"},{include:"#sv-rand"}]},modifiers:{match:"[ \\t\\r\\n]*\\b(?:(?:un)?signed|packed|small|medium|large|supply[01]|strong[01]|pull[01]|weak[01]|highz[01])\\b",name:"storage.modifier.systemverilog"},"module-binding":{begin:"\\.([a-zA-Z_][a-zA-Z0-9_$]*)[ \\t\\r\\n]*\\(",beginCaptures:{1:{name:"support.function.port.systemverilog"}},end:"\\),?",name:"meta.port.binding.systemverilog",patterns:[{include:"#constants"},{include:"#comments"},{include:"#operators"},{include:"#strings"},{include:"#constants"},{include:"#storage-scope"},{include:"#cast-operator"},{include:"#system-tf"},{match:"\\bvirtual\\b",name:"storage.modifier.systemverilog"},{include:"#identifiers"}]},"module-declaration":{begin:"[ \\t\\r\\n]*\\b((?:macro)?module|interface|program|package|modport)[ \\t\\r\\n]+(?:(static|automatic)[ \\t\\r\\n]+)?([a-zA-Z_][a-zA-Z0-9_$]*)\\b",beginCaptures:{1:{name:"keyword.control.systemverilog"},2:{name:"storage.modifier.systemverilog"},3:{name:"entity.name.type.module.systemverilog"}},end:";",endCaptures:{0:{name:"punctuation.definition.module.end.systemverilog"}},name:"meta.module.systemverilog",patterns:[{include:"#parameters"},{include:"#port-net-parameter"},{include:"#imports"},{include:"#base-grammar"},{include:"#system-tf"},{include:"#identifiers"}]},"module-no-parameters":{begin:"[ \\t\\r\\n]*\\b(?:(bind|pullup|pulldown)[ \\t\\r\\n]+(?:([a-zA-Z_][a-zA-Z0-9_$\\.]*)[ \\t\\r\\n]+)?)?((?:\\b(?:and|nand|or|nor|xor|xnor|buf|not|bufif[01]|notif[01]|r?[npc]mos|r?tran|r?tranif[01])\\b|[a-zA-Z_][a-zA-Z0-9_$]*))[ \\t\\r\\n]+(?!intersect|and|or|throughout|within)([a-zA-Z_][a-zA-Z0-9_$]*)(?:[ \\t\\r\\n]*(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])?)[ \\t\\r\\n]*(?=\\(|$)(?!;)",beginCaptures:{1:{name:"keyword.control.systemverilog"},2:{name:"entity.name.type.module.systemverilog"},3:{name:"entity.name.type.module.systemverilog"},4:{name:"variable.other.module.systemverilog"},5:{patterns:[{include:"#selects"}]}},end:"\\)(?:[ \\t\\r\\n]*(;))?",endCaptures:{1:{name:"punctuation.module.instantiation.end.systemverilog"}},name:"meta.module.no_parameters.systemverilog",patterns:[{include:"#module-binding"},{include:"#comments"},{include:"#operators"},{include:"#constants"},{include:"#strings"},{include:"#port-net-parameter"},{match:"\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\b(?=[ \\t\\r\\n]*(\\(|$))",name:"variable.other.module.systemverilog"},{include:"#identifiers"}]},"module-parameters":{begin:"[ \\t\\r\\n]*\\b(?:(bind)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$\\.]*)[ \\t\\r\\n]+)?([a-zA-Z_][a-zA-Z0-9_$]*)[ \\t\\r\\n]+(?!intersect|and|or|throughout|within)(?=#[^#])",beginCaptures:{1:{name:"keyword.control.systemverilog"},2:{name:"entity.name.type.module.systemverilog"},3:{name:"entity.name.type.module.systemverilog"}},end:"\\)(?:[ \\t\\r\\n]*(;))?",endCaptures:{1:{name:"punctuation.module.instantiation.end.systemverilog"}},name:"meta.module.parameters.systemverilog",patterns:[{match:"\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\b(?=[ \\t\\r\\n]*\\()",name:"variable.other.module.systemverilog"},{include:"#module-binding"},{include:"#parameters"},{include:"#comments"},{include:"#operators"},{include:"#constants"},{include:"#strings"},{include:"#port-net-parameter"},{match:"\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\b(?=[ \\t\\r\\n]*$)",name:"variable.other.module.systemverilog"},{include:"#identifiers"}]},operators:{patterns:[{match:"\\+=|-=|/=|\\*=|%=|&=|\\|=|\\^=|>>>=|>>=|<<<=|<<=|<=|=",name:"keyword.operator.assignment.systemverilog"},{match:"\\+\\+",name:"keyword.operator.increment.systemverilog"},{match:"--",name:"keyword.operator.decrement.systemverilog"},{match:"\\+|-|\\*\\*|\\*|/|%",name:"keyword.operator.arithmetic.systemverilog"},{match:"!|&&|\\|\\|",name:"keyword.operator.logical.systemverilog"},{match:"<<<|<<|>>>|>>",name:"keyword.operator.bitwise.shift.systemverilog"},{match:"~&|~\\||~|\\^~|~\\^|&|\\||\\^|{|'{|}|:|\\?",name:"keyword.operator.bitwise.systemverilog"},{match:"<=|<|>=|>|==\\?|!=\\?|===|!==|==|!=",name:"keyword.operator.comparison.systemverilog"},{match:"@|##|#|->|<->",name:"keyword.operator.channel.systemverilog"},{match:"\\b(?:dist|inside|with|intersect|and|or|throughout|within|first_match)\\b|:=|:/|\\|->|\\|=>|->>|\\*>|#-#|#=#|&&&",name:"keyword.operator.logical.systemverilog"}]},parameters:{begin:"[ \\t\\r\\n]*(#)[ \\t\\r\\n]*(\\()",beginCaptures:{1:{name:"keyword.operator.channel.systemverilog"},2:{name:"punctuation.section.parameters.begin"}},end:"(\\))[ \\t\\r\\n]*(?=;|\\(|[a-zA-Z_]|\\\\|$)",endCaptures:{1:{name:"punctuation.section.parameters.end"}},name:"meta.parameters.systemverilog",patterns:[{include:"#port-net-parameter"},{include:"#comments"},{include:"#constants"},{include:"#operators"},{include:"#strings"},{include:"#system-tf"},{include:"#functions"},{match:"\\bvirtual\\b",name:"storage.modifier.systemverilog"},{include:"#module-binding"}]},"port-net-parameter":{patterns:[{captures:{1:{name:"support.type.direction.systemverilog"},2:{name:"storage.type.net.systemverilog"},3:{name:"support.type.scope.systemverilog"},4:{name:"keyword.operator.scope.systemverilog"},5:{patterns:[{include:"#built-ins"},{match:"[a-zA-Z_][a-zA-Z0-9_$]*",name:"storage.type.user-defined.systemverilog"}]},6:{patterns:[{include:"#modifiers"}]},7:{patterns:[{include:"#selects"}]},8:{patterns:[{include:"#constants"},{include:"#identifiers"}]},9:{patterns:[{include:"#selects"}]}},match:",?[ \\t\\r\\n]*(?:\\b(output|input|inout|ref)\\b[ \\t\\r\\n]*)?(?:\\b(localparam|parameter|var|supply[01]|tri|triand|trior|trireg|tri[01]|uwire|wire|wand|wor)\\b[ \\t\\r\\n]*)?(?:\\b([a-zA-Z_][a-zA-Z0-9_$]*)(::))?(?:([a-zA-Z_][a-zA-Z0-9_$]*)\\b[ \\t\\r\\n]*)?(?:\\b(signed|unsigned)\\b[ \\t\\r\\n]*)?(?:(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])[ \\t\\r\\n]*)?(?<!(?<!#)[:&|=+\\-*/%?><^!~\\(][ \\t\\r\\n]*)\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\b[ \\t\\r\\n]*(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])?[ \\t\\r\\n]*(?=,|;|=|\\)|/|$)",name:"meta.port-net-parameter.declaration.systemverilog"}]},selects:{begin:"\\[",beginCaptures:{0:{name:"punctuation.slice.brackets.begin"}},end:"\\]",endCaptures:{0:{name:"punctuation.slice.brackets.end"}},name:"meta.brackets.select.systemverilog",patterns:[{match:"\\$(?![a-z])",name:"constant.language.systemverilog"},{include:"#system-tf"},{include:"#constants"},{include:"#operators"},{include:"#cast-operator"},{include:"#storage-scope"},{match:"[a-zA-Z_][a-zA-Z0-9_$]*",name:"variable.other.identifier.systemverilog"}]},sequence:{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"entity.name.function.systemverilog"}},match:"[ \\t\\r\\n]*\\b(sequence)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$]*)\\b",name:"meta.sequence.systemverilog"},"storage-scope":{captures:{1:{name:"support.type.scope.systemverilog"},2:{name:"keyword.operator.scope.systemverilog"}},match:"\\b([a-zA-Z_][a-zA-Z0-9_$]*)(::)",name:"meta.scope.systemverilog"},strings:{patterns:[{begin:'`?"',beginCaptures:{0:{name:"punctuation.definition.string.begin.systemverilog"}},end:'"`?',endCaptures:{0:{name:"punctuation.definition.string.end.systemverilog"}},name:"string.quoted.double.systemverilog",patterns:[{match:'\\\\(?:[nt\\\\"vfa]|[0-7]{3}|x[0-9a-fA-F]{2})',name:"constant.character.escape.systemverilog"},{match:`(?x)% +(\\d+\\$)? +['\\-+0 +[,;:_]? +((-?\\d+)|\\*(-?\\d+\\$)?)? +(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? +(hh|h|ll|l|j|z|t|L)? +[xXhHdDoObBcClLvVmMpPsStTuUzZeEfFgG%]`,name:"constant.character.format.placeholder.systemverilog"},{match:"%",name:"invalid.illegal.placeholder.systemverilog"},{include:"#fixme-todo"}]},{begin:"(?<=include)[ \\t\\r\\n]*(<)",beginCaptures:{1:{name:"punctuation.definition.string.begin.systemverilog"}},end:">",endCaptures:{0:{name:"punctuation.definition.string.end.systemverilog"}},name:"string.quoted.other.lt-gt.include.systemverilog"}]},"sv-control":{captures:{1:{name:"keyword.control.systemverilog"}},match:"[ \\t\\r\\n]*\\b(initial|always|always_comb|always_ff|always_latch|final|assign|deassign|force|release|wait|forever|repeat|alias|while|for|if|iff|else|case|casex|casez|default|endcase|return|break|continue|do|foreach|clocking|coverpoint|property|bins|binsof|illegal_bins|ignore_bins|randcase|matches|solve|before|expect|cross|ref|srandom|struct|chandle|tagged|extern|throughout|timeprecision|timeunit|priority|type|union|wait_order|triggered|randsequence|context|pure|wildcard|new|forkjoin|unique|unique0|priority)\\b"},"sv-control-begin":{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"punctuation.definition.label.systemverilog"},3:{name:"entity.name.section.systemverilog"}},match:"[ \\t\\r\\n]*\\b(begin|fork)\\b(?:[ \\t\\r\\n]*(:)[ \\t\\r\\n]*([a-zA-Z_][a-zA-Z0-9_$]*))?",name:"meta.item.begin.systemverilog"},"sv-control-end":{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"punctuation.definition.label.systemverilog"},3:{name:"entity.name.section.systemverilog"}},match:"[ \\t\\r\\n]*\\b(end|endmodule|endinterface|endprogram|endchecker|endclass|endpackage|endconfig|endfunction|endtask|endproperty|endsequence|endgroup|endprimitive|endclocking|endgenerate|join|join_any|join_none)\\b(?:[ \\t\\r\\n]*(:)[ \\t\\r\\n]*([a-zA-Z_][a-zA-Z0-9_$]*))?",name:"meta.item.end.systemverilog"},"sv-cover-cross":{captures:{2:{name:"entity.name.type.class.systemverilog"},3:{name:"keyword.operator.other.systemverilog"},4:{name:"keyword.control.systemverilog"}},match:"(([a-zA-Z_][a-zA-Z0-9_$]*)[ \\t\\r\\n]*(:))?[ \\t\\r\\n]*(coverpoint|cross)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$]*)",name:"meta.definition.systemverilog"},"sv-definition":{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"entity.name.type.class.systemverilog"}},match:"[ \\t\\r\\n]*\\b(primitive|package|constraint|interface|covergroup|program)[ \\t\\r\\n]+\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\b",name:"meta.definition.systemverilog"},"sv-local":{captures:{1:{name:"keyword.other.systemverilog"}},match:"[ \\t\\r\\n]*\\b(const|static|protected|virtual|localparam|parameter|local)\\b"},"sv-option":{captures:{1:{name:"keyword.cover.systemverilog"}},match:"[ \\t\\r\\n]*\\b(option)\\."},"sv-rand":{match:"[ \\t\\r\\n]*\\b(?:rand|randc)\\b",name:"storage.type.rand.systemverilog"},"sv-std":{match:"\\b(std)\\b::",name:"support.class.systemverilog"},"system-tf":{match:"\\$[a-zA-Z0-9_$][a-zA-Z0-9_$]*\\b",name:"support.function.systemverilog"},tables:{begin:"[ \\t\\r\\n]*\\b(table)\\b",beginCaptures:{1:{name:"keyword.table.systemverilog.begin"}},end:"[ \\t\\r\\n]*\\b(endtable)\\b",endCaptures:{1:{name:"keyword.table.systemverilog.end"}},name:"meta.table.systemverilog",patterns:[{include:"#comments"},{match:"\\b[01xXbBrRfFpPnN]\\b",name:"constant.language.systemverilog"},{match:"[-*?]",name:"constant.language.systemverilog"},{captures:{1:{name:"constant.language.systemverilog"}},match:"\\(([01xX?]{2})\\)"},{match:":",name:"punctuation.definition.label.systemverilog"},{include:"#operators"},{include:"#constants"},{include:"#strings"},{include:"#identifiers"}]},typedef:{begin:"[ \\t\\r\\n]*\\b(?:(typedef)[ \\t\\r\\n]+)(?:([a-zA-Z_][a-zA-Z0-9_$]*)(?:[ \\t\\r\\n]+\\b(signed|unsigned)\\b)?(?:[ \\t\\r\\n]*(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])?))?(?=[ \\t\\r\\n]*[a-zA-Z_\\\\])",beginCaptures:{1:{name:"keyword.control.systemverilog"},2:{patterns:[{include:"#built-ins"},{match:"\\bvirtual\\b",name:"storage.modifier.systemverilog"}]},3:{patterns:[{include:"#modifiers"}]},4:{patterns:[{include:"#selects"}]}},end:";",endCaptures:{0:{name:"punctuation.definition.typedef.end.systemverilog"}},name:"meta.typedef.systemverilog",patterns:[{include:"#identifiers"},{include:"#selects"}]},"typedef-enum-struct-union":{begin:"[ \\t\\r\\n]*\\b(typedef)[ \\t\\r\\n]+(enum|struct|union(?:[ \\t\\r\\n]+tagged)?|class|interface[ \\t\\r\\n]+class)(?:[ \\t\\r\\n]+(?!packed|signed|unsigned)([a-zA-Z_][a-zA-Z0-9_$]*)?(?:[ \\t\\r\\n]*(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])?))?(?:[ \\t\\r\\n]+(packed))?(?:[ \\t\\r\\n]+(signed|unsigned))?(?=[ \\t\\r\\n]*(?:{|$))",beginCaptures:{1:{name:"keyword.control.systemverilog"},2:{name:"keyword.control.systemverilog"},3:{patterns:[{include:"#built-ins"}]},4:{patterns:[{include:"#selects"}]},5:{name:"storage.modifier.systemverilog"},6:{name:"storage.modifier.systemverilog"}},end:"(?<=})[ \\t\\r\\n]*([a-zA-Z_][a-zA-Z0-9_$]*|(?<=^|[ \\t\\r\\n])\\\\[!-~]+(?=$|[ \\t\\r\\n]))(?:[ \\t\\r\\n]*(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])?)[ \\t\\r\\n]*[,;]",endCaptures:{1:{name:"storage.type.systemverilog"},2:{patterns:[{include:"#selects"}]}},name:"meta.typedef-enum-struct-union.systemverilog",patterns:[{include:"#port-net-parameter"},{include:"#keywords"},{include:"#base-grammar"},{include:"#identifiers"}]}},scopeName:"source.systemverilog"});var t=[e];export{t as default}; diff --git a/assets/chunks/systemd.CuJfdYLG.js b/assets/chunks/systemd.CuJfdYLG.js new file mode 100644 index 000000000..3f793ad4a --- /dev/null +++ b/assets/chunks/systemd.CuJfdYLG.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Systemd Units",name:"systemd",patterns:[{include:"#comments"},{begin:"^\\s*(InaccessableDirectories|InaccessibleDirectories|ReadOnlyDirectories|ReadWriteDirectories|Capabilities|TableId|UseDomainName|IPv6AcceptRouterAdvertisements|SysVStartPriority|StartLimitInterval|RequiresOverridable|RequisiteOverridable|PropagateReloadTo|PropagateReloadFrom|OnFailureIsolate|BindTo)\\s*(=)[ \\t]*",beginCaptures:{1:{name:"invalid.deprecated"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",patterns:[{include:"#comments"},{include:"#variables"},{include:"#quotedString"},{include:"#booleans"},{include:"#timeSpans"},{include:"#sizes"},{include:"#numbers"}]},{begin:"^\\s*(Environment)\\s*(=)[ \\t]*",beginCaptures:{1:{name:"entity.name.tag"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",name:"meta.config-entry.systemd",patterns:[{include:"#comments"},{captures:{1:{name:"variable.parameter"},2:{name:"keyword.operator.assignment"}},match:`(?<=\\G|[\\s"'])([A-Za-z0-9\\_]+)(=)(?=[^\\s"'])`},{include:"#variables"},{include:"#booleans"},{include:"#numbers"}]},{begin:"^\\s*(OnCalendar)\\s*(=)[ \\t]*",beginCaptures:{1:{name:"entity.name.tag"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",name:"meta.config-entry.systemd",patterns:[{include:"#comments"},{include:"#variables"},{include:"#calendarShorthands"},{include:"#numbers"}]},{begin:"^\\s*(CapabilityBoundingSet|AmbientCapabilities|AddCapability|DropCapability)\\s*(=)[ \\t]*",beginCaptures:{1:{name:"entity.name.tag"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",name:"meta.config-entry.systemd",patterns:[{include:"#comments"},{include:"#capabilities"}]},{begin:"^\\s*(Restart)\\s*(=)[ \\t]*",beginCaptures:{1:{name:"entity.name.tag"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",name:"meta.config-entry.systemd",patterns:[{include:"#comments"},{include:"#variables"},{include:"#restartOptions"}]},{begin:"^\\s*(Type)\\s*(=)[ \\t]*",beginCaptures:{1:{name:"entity.name.tag"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",name:"meta.config-entry.systemd",patterns:[{include:"#comments"},{include:"#variables"},{include:"#typeOptions"}]},{begin:"^\\s*(Exec(?:Start(?:Pre|Post)?|Reload|Stop(?:Post)?))\\s*(=)[ \\t]*",beginCaptures:{1:{name:"entity.name.tag"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",name:"meta.config-entry.systemd",patterns:[{include:"#comments"},{include:"#executablePrefixes"},{include:"#variables"},{include:"#quotedString"},{include:"#booleans"},{include:"#numbers"}]},{begin:"^\\s*([\\w\\-\\.]+)\\s*(=)[ \\t]*",beginCaptures:{1:{name:"entity.name.tag"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",name:"meta.config-entry.systemd",patterns:[{include:"#comments"},{include:"#variables"},{include:"#quotedString"},{include:"#booleans"},{include:"#timeSpans"},{include:"#sizes"},{include:"#numbers"}]},{include:"#sections"}],repository:{booleans:{patterns:[{match:"\\b(?<![-\\/\\.])(true|false|on|off|yes|no)(?![-\\/\\.])\\b",name:"constant.language"}]},calendarShorthands:{patterns:[{match:"\\b(?:minute|hour|dai|month|week|quarter|semiannual)ly\\b",name:"constant.language"}]},capabilities:{patterns:[{match:"\\b(?:CAP_(?:AUDIT_CONTROL|AUDIT_READ|AUDIT_WRITE|BLOCK_SUSPEND|BPF|CHECKPOINT_RESTORE|CHOWN|DAC_OVERRIDE|DAC_READ_SEARCH|FOWNER|FSETID|IPC_LOCK|IPC_OWNER|KILL|LEASE|LINUX_IMMUTABLE|MAC_ADMIN|MAC_OVERRIDE|MKNOD|NET_ADMIN|NET_BIND_SERVICE|NET_BROADCAST|NET_RAW|PERFMON|SETFCAP|SETGID|SETPCAP|SETUID|SYS_ADMIN|SYS_BOOT|SYS_CHROOT|SYS_MODULE|SYS_NICE|SYS_PACCT|SYS_PTRACE|SYS_RAWIO|SYS_RESOURCE|SYS_TIME|SYS_TTY_CONFIG|SYSLOG|WAKE_ALARM))\\b",name:"constant.other.systemd"}]},comments:{patterns:[{match:"^\\s*[#;].*\\n",name:"comment.line.number-sign"}]},executablePrefixes:{patterns:[{match:"\\G([@\\-\\:]+(?:\\+|\\!\\!?)?|(?:\\+|\\!\\!?)[@\\-\\:]*)",name:"keyword.operator.prefix.systemd"}]},numbers:{patterns:[{match:"(?<=\\s|=)\\d+(?:\\.\\d+)?(?=[\\s:]|$)",name:"constant.numeric"}]},quotedString:{patterns:[{begin:"(?<=\\G|\\s)'",end:"['\\n]",name:"string.quoted.single",patterns:[{match:`\\\\(?:[abfnrtvs\\\\"'\\n]|x[0-9A-Fa-f]{2}|[0-8]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})`,name:"constant.character.escape"}]},{begin:'(?<=\\G|\\s)"',end:'["\\n]',name:"string.quoted.double",patterns:[{match:`\\\\(?:[abfnrtvs\\\\"'\\n]|x[0-9A-Fa-f]{2}|[0-8]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})`,name:"constant.character.escape"}]}]},restartOptions:{patterns:[{match:"\\b(no|always|on\\-(?:success|failure|abnormal|abort|watchdog))\\b",name:"constant.language"}]},sections:{patterns:[{match:"^\\s*\\[(Address|Automount|BFIFO|BareUDP|BatmanAdvanced|Bond|Bridge|BridgeFDB|BridgeMDB|BridgeVLAN|CAKE|CAN|Container|Content|ControlledDelay|Coredump|D-BUS Service|DHCP|DHCPPrefixDelegation|DHCPServer|DHCPServerStaticLease|DHCPv4|DHCPv6|DHCPv6PrefixDelegation|DeficitRoundRobinScheduler|DeficitRoundRobinSchedulerClass|Distribution|EnhancedTransmissionSelection|Exec|FairQueueing|FairQueueingControlledDelay|Files|FlowQueuePIE|FooOverUDP|GENEVE|GenericRandomEarlyDetection|HeavyHitterFilter|HierarchyTokenBucket|HierarchyTokenBucketClass|Home|IOCost|IPVLAN|IPVTAP|IPoIB|IPv6AcceptRA|IPv6AddressLabel|IPv6PREF64Prefix|IPv6Prefix|IPv6PrefixDelegation|IPv6RoutePrefix|IPv6SendRA|Image|Install|Journal|Kube|L2TP|L2TPSession|LLDP|Link|Login|MACVLAN|MACVTAP|MACsec|MACsecReceiveAssociation|MACsecReceiveChannel|MACsecTransmitAssociation|Manager|Match|Mount|Neighbor|NetDev|Network|NetworkEmulator|NextHop|OOM|Output|PFIFO|PFIFOFast|PFIFOHeadDrop|PIE|PStore|Packages|Partition|Path|Peer|Pod|QDisc|QuickFairQueueing|QuickFairQueueingClass|Remote|Resolve|Route|RoutingPolicyRule|SR-IOV|Scope|Service|Sleep|Socket|Source|StochasticFairBlue|StochasticFairnessQueueing|Swap|Tap|Target|Time|Timer|TokenBucketFilter|TrafficControlQueueingDiscipline|Transfer|TrivialLinkEqualizer|Tun|Tunnel|UKI|Unit|Upload|VLAN|VRF|VXCAN|VXLAN|Volume|WLAN|WireGuard|WireGuardPeer|Xfrm)\\]",name:"entity.name.section"},{match:"\\s*\\[[\\w-]+\\]",name:"entity.name.unknown-section"}]},sizes:{patterns:[{match:"(?<=\\s|=)\\d+(?:\\.\\d+)?[KMGT](?=[\\s:]|$)",name:"constant.numeric"},{match:"(?<==)infinity(?=[\\s:]|$)",name:"constant.numeric"}]},timeSpans:{patterns:[{match:"\\b(?:\\d+(?:[uμ]s(?:ec)?|ms(?:ec)?|s(?:ec|econds?)?|m(?:in|inutes?)?|h(?:r|ours?)?|d(?:ays?)?|w(?:eeks)?|M|months?|y(?:ears?)?)){1,}\\b",name:"constant.numeric"}]},typeOptions:{patterns:[{match:"\\b(?:simple|exec|forking|oneshot|dbus|notify(?:-reload)?|idle|unicast|local|broadcast|anycast|multicast|blackhole|unreachable|prohibit|throw|nat|xresolve|blackhole|unreachable|prohibit|ad-hoc|station|ap(?:-vlan)?|wds|monitor|mesh-point|p2p-(?:client|go|device)|ocb|nan)\\b",name:"constant.language"}]},variables:{patterns:[{captures:{1:{name:"punctuation.definition.variable.systemd"},2:{name:"variable.other"}},match:"(\\$)([A-Za-z0-9\\_]+)\\b"},{captures:{1:{name:"punctuation.definition.variable.systemd"},2:{name:"variable.other"},3:{name:"punctuation.definition.variable.systemd"}},match:"(\\$\\{)([A-Za-z0-9\\_]+)(\\})"},{match:"%%",name:"constant.other.placeholder"},{match:"%[aAbBCEfgGhHiIjJlLmMnNopPsStTuUvVwW]\\b",name:"constant.other.placeholder"}]}},scopeName:"source.systemd"});var n=[e];export{n as default}; diff --git a/assets/chunks/tasl.BxwAa5i0.js b/assets/chunks/tasl.BxwAa5i0.js new file mode 100644 index 000000000..79e75548e --- /dev/null +++ b/assets/chunks/tasl.BxwAa5i0.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Tasl",fileTypes:["tasl"],name:"tasl",patterns:[{include:"#comment"},{include:"#namespace"},{include:"#type"},{include:"#class"},{include:"#edge"}],repository:{class:{begin:"(?:^\\s*)(class)\\b",beginCaptures:{1:{name:"keyword.control.tasl.class"}},end:"$",patterns:[{include:"#key"},{include:"#export"},{include:"#expression"}]},comment:{captures:{1:{name:"punctuation.definition.comment.tasl"}},match:"(#).*$",name:"comment.line.number-sign.tasl"},component:{begin:"->",beginCaptures:{0:{name:"punctuation.separator.tasl.component"}},end:"$",patterns:[{include:"#expression"}]},coproduct:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.block.tasl.coproduct"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.block.tasl.coproduct"}},patterns:[{include:"#comment"},{include:"#term"},{include:"#option"}]},datatype:{match:"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+",name:"string.regexp"},edge:{begin:"(?:^\\s*)(edge)\\b",beginCaptures:{1:{name:"keyword.control.tasl.edge"}},end:"$",patterns:[{include:"#key"},{include:"#export"},{match:"=/",name:"punctuation.separator.tasl.edge.source"},{match:"/=>",name:"punctuation.separator.tasl.edge.target"},{match:"=>",name:"punctuation.separator.tasl.edge"},{include:"#expression"}]},export:{match:"::",name:"keyword.operator.tasl.export"},expression:{patterns:[{include:"#literal"},{include:"#uri"},{include:"#product"},{include:"#coproduct"},{include:"#reference"},{include:"#optional"},{include:"#identifier"}]},identifier:{captures:{1:{name:"variable"}},match:"([a-zA-Z][a-zA-Z0-9]*)\\b"},key:{match:"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+",name:"markup.bold entity.name.class"},literal:{patterns:[{include:"#datatype"}]},namespace:{captures:{1:{name:"keyword.control.tasl.namespace"},2:{patterns:[{include:"#namespaceURI"},{match:"[a-zA-Z][a-zA-Z0-9]*\\b",name:"entity.name"}]}},match:"(?:^\\s*)(namespace)\\b(.*)"},namespaceURI:{match:"[a-z]+:[a-zA-Z0-9-._~:\\/?#\\[\\]@!$&'()*+,;%=]+",name:"markup.underline.link"},option:{begin:"<-",beginCaptures:{0:{name:"punctuation.separator.tasl.option"}},end:"$",patterns:[{include:"#expression"}]},optional:{begin:"\\?",beginCaptures:{0:{name:"keyword.operator"}},end:"$",patterns:[{include:"#expression"}]},product:{begin:"{",beginCaptures:{0:{name:"punctuation.definition.block.tasl.product"}},end:"}",endCaptures:{0:{name:"punctuation.definition.block.tasl.product"}},patterns:[{include:"#comment"},{include:"#term"},{include:"#component"}]},reference:{captures:{1:{name:"markup.bold keyword.operator"},2:{patterns:[{include:"#key"}]}},match:"(\\*)\\s*(.*)"},term:{match:"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+",name:"entity.other.tasl.key"},type:{begin:"(?:^\\s*)(type)\\b",beginCaptures:{1:{name:"keyword.control.tasl.type"}},end:"$",patterns:[{include:"#expression"}]},uri:{match:"<>",name:"variable.other.constant"}},scopeName:"source.tasl"});var n=[e];export{n as default}; diff --git a/assets/chunks/tcl.C_8Fx7bH.js b/assets/chunks/tcl.C_8Fx7bH.js new file mode 100644 index 000000000..3ea06589d --- /dev/null +++ b/assets/chunks/tcl.C_8Fx7bH.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Tcl",fileTypes:["tcl"],foldingStartMarker:"\\{\\s*$",foldingStopMarker:"^\\s*\\}",name:"tcl",patterns:[{begin:"(?<=^|;)\\s*((#))",beginCaptures:{1:{name:"comment.line.number-sign.tcl"},2:{name:"punctuation.definition.comment.tcl"}},contentName:"comment.line.number-sign.tcl",end:"\\n",patterns:[{match:"(\\\\\\\\|\\\\\\n)"}]},{captures:{1:{name:"keyword.control.tcl"}},match:"(?<=^|[\\[{;])\\s*(if|while|for|catch|default|return|break|continue|switch|exit|foreach|try|throw)\\b"},{captures:{1:{name:"keyword.control.tcl"}},match:"(?<=^|})\\s*(then|elseif|else)\\b"},{captures:{1:{name:"keyword.other.tcl"},2:{name:"entity.name.function.tcl"}},match:"(?<=^|{)\\s*(proc)\\s+([^\\s]+)"},{captures:{1:{name:"keyword.other.tcl"}},match:"(?<=^|[\\[{;])\\s*(after|append|array|auto_execok|auto_import|auto_load|auto_mkindex|auto_mkindex_old|auto_qualify|auto_reset|bgerror|binary|cd|clock|close|concat|dde|encoding|eof|error|eval|exec|expr|fblocked|fconfigure|fcopy|file|fileevent|filename|flush|format|gets|glob|global|history|http|incr|info|interp|join|lappend|library|lindex|linsert|list|llength|load|lrange|lreplace|lsearch|lset|lsort|memory|msgcat|namespace|open|package|parray|pid|pkg::create|pkg_mkIndex|proc|puts|pwd|re_syntax|read|registry|rename|resource|scan|seek|set|socket|SafeBase|source|split|string|subst|Tcl|tcl_endOfWord|tcl_findLibrary|tcl_startOfNextWord|tcl_startOfPreviousWord|tcl_wordBreakAfter|tcl_wordBreakBefore|tcltest|tclvars|tell|time|trace|unknown|unset|update|uplevel|upvar|variable|vwait)\\b"},{begin:"(?<=^|[\\[{;])\\s*(regexp|regsub)\\b\\s*",beginCaptures:{1:{name:"keyword.other.tcl"}},comment:"special-case regexp/regsub keyword in order to handle the expression",end:"[\\n;\\]]",patterns:[{match:"\\\\(?:.|\\n)",name:"constant.character.escape.tcl"},{comment:"switch for regexp",match:"-\\w+\\s*"},{applyEndPatternLast:1,begin:"--\\s*",comment:"end of switches",end:"",patterns:[{include:"#regexp"}]},{include:"#regexp"}]},{include:"#escape"},{include:"#variable"},{include:"#operator"},{include:"#numeric"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.tcl"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.tcl"}},name:"string.quoted.double.tcl",patterns:[{include:"#escape"},{include:"#variable"},{include:"#embedded"}]}],repository:{"bare-string":{begin:'(?:^|(?<=\\s))"',comment:"matches a single quote-enclosed word without scoping",end:'"([^\\s\\]]*)',endCaptures:{1:{name:"invalid.illegal.tcl"}},patterns:[{include:"#escape"},{include:"#variable"}]},braces:{begin:"(?:^|(?<=\\s))\\{",comment:"matches a single brace-enclosed word",end:"\\}([^\\s\\]]*)",endCaptures:{1:{name:"invalid.illegal.tcl"}},patterns:[{match:"\\\\[{}\\n]",name:"constant.character.escape.tcl"},{include:"#inner-braces"}]},embedded:{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.embedded.begin.tcl"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.embedded.end.tcl"}},name:"source.tcl.embedded",patterns:[{include:"source.tcl"}]},escape:{match:"\\\\(\\d{1,3}|x[a-fA-F0-9]+|u[a-fA-F0-9]{1,4}|.|\\n)",name:"constant.character.escape.tcl"},"inner-braces":{begin:"\\{",comment:"matches a nested brace in a brace-enclosed word",end:"\\}",patterns:[{match:"\\\\[{}\\n]",name:"constant.character.escape.tcl"},{include:"#inner-braces"}]},numeric:{match:"(?<![a-zA-Z])([+-]?([0-9]*[.])?[0-9]+f?)(?![\\.a-zA-Z])",name:"constant.numeric.tcl"},operator:{match:"(?<= |\\d)(-|\\+|~|&{1,2}|\\|{1,2}|<{1,2}|>{1,2}|\\*{1,2}|!|%|\\/|<=|>=|={1,2}|!=|\\^)(?= |\\d)",name:"keyword.operator.tcl"},regexp:{begin:"(?=\\S)(?![\\n;\\]])",comment:"matches a single word, named as a regexp, then swallows the rest of the command",end:"(?=[\\n;\\]])",patterns:[{begin:"(?=[^ \\t\\n;])",end:"(?=[ \\t\\n;])",name:"string.regexp.tcl",patterns:[{include:"#braces"},{include:"#bare-string"},{include:"#escape"},{include:"#variable"}]},{begin:"[ \\t]",comment:"swallow the rest of the command",end:"(?=[\\n;\\]])",patterns:[{include:"#variable"},{include:"#embedded"},{include:"#escape"},{include:"#braces"},{include:"#string"}]}]},string:{applyEndPatternLast:1,begin:'(?:^|(?<=\\s))(?=")',comment:"matches a single quote-enclosed word with scoping",end:"",name:"string.quoted.double.tcl",patterns:[{include:"#bare-string"}]},variable:{captures:{1:{name:"punctuation.definition.variable.tcl"}},match:"(\\$)((?:[a-zA-Z0-9_]|::)+(\\([^\\)]+\\))?|\\{[^\\}]*\\})",name:"support.function.tcl"}},scopeName:"source.tcl"});var t=[e];export{t as default}; diff --git a/assets/chunks/terraform.DBeuZS66.js b/assets/chunks/terraform.DBeuZS66.js new file mode 100644 index 000000000..99ddc2e85 --- /dev/null +++ b/assets/chunks/terraform.DBeuZS66.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Terraform",fileTypes:["tf","tfvars"],name:"terraform",patterns:[{include:"#comments"},{include:"#attribute_definition"},{include:"#block"},{include:"#expressions"}],repository:{attribute_access:{begin:"\\.(?!\\*)",beginCaptures:{0:{name:"keyword.operator.accessor.hcl"}},comment:"Matches traversal attribute access such as .attr",end:"[[:alpha:]][\\w-]*|\\d*",endCaptures:{0:{patterns:[{comment:"Attribute name",match:"(?!null|false|true)[[:alpha:]][\\w-]*",name:"variable.other.member.hcl"},{comment:"Optional attribute index",match:"\\d+",name:"constant.numeric.integer.hcl"}]}}},attribute_definition:{captures:{1:{name:"punctuation.section.parens.begin.hcl"},2:{name:"variable.other.readwrite.hcl"},3:{name:"punctuation.section.parens.end.hcl"},4:{name:"keyword.operator.assignment.hcl"}},comment:'Identifier "=" with optional parens',match:"(\\()?(\\b(?!null\\b|false\\b|true\\b)[[:alpha:]][[:alnum:]_-]*)(\\))?\\s*(\\=(?!\\=|\\>))\\s*",name:"variable.declaration.hcl"},attribute_splat:{begin:"\\.",beginCaptures:{0:{name:"keyword.operator.accessor.hcl"}},comment:"Legacy attribute-only splat",end:"\\*",endCaptures:{0:{name:"keyword.operator.splat.hcl"}}},block:{begin:'([\\w][\\-\\w]*)([\\s\\"\\-\\w]*)(\\{)',beginCaptures:{1:{patterns:[{comment:"Known block type",match:"\\bdata|check|import|locals|module|output|provider|resource|terraform|variable\\b",name:"entity.name.type.terraform"},{comment:"Unknown block type",match:"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b",name:"entity.name.type.hcl"}]},2:{patterns:[{comment:"Block label",match:'[\\"\\-\\w]+',name:"variable.other.enummember.hcl"}]},3:{name:"punctuation.section.block.begin.hcl"}},comment:'This will match Terraform blocks like `resource "aws_instance" "web" {` or `module {`',end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.hcl"}},name:"meta.block.hcl",patterns:[{include:"#comments"},{include:"#attribute_definition"},{include:"#block"},{include:"#expressions"}]},block_inline_comments:{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.hcl"}},comment:"Inline comments start with the /* sequence and end with the */ sequence, and may have any characters within except the ending sequence. An inline comment is considered equivalent to a whitespace sequence",end:"\\*/",name:"comment.block.hcl"},brackets:{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.brackets.begin.hcl"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.brackets.end.hcl"}},patterns:[{comment:"Splat operator",match:"\\*",name:"keyword.operator.splat.hcl"},{include:"#comma"},{include:"#comments"},{include:"#inline_for_expression"},{include:"#inline_if_expression"},{include:"#expressions"},{include:"#local_identifiers"}]},char_escapes:{comment:"Character Escapes",match:'\\\\[nrt"\\\\]|\\\\u(\\h{8}|\\h{4})',name:"constant.character.escape.hcl"},comma:{comment:"Commas - used in certain expressions",match:"\\,",name:"punctuation.separator.hcl"},comments:{patterns:[{include:"#hash_line_comments"},{include:"#double_slash_line_comments"},{include:"#block_inline_comments"}]},double_slash_line_comments:{begin:"//",captures:{0:{name:"punctuation.definition.comment.hcl"}},comment:"Line comments start with // sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence",end:"$\\n?",name:"comment.line.double-slash.hcl"},expressions:{patterns:[{include:"#literal_values"},{include:"#operators"},{include:"#tuple_for_expression"},{include:"#object_for_expression"},{include:"#brackets"},{include:"#objects"},{include:"#attribute_access"},{include:"#attribute_splat"},{include:"#functions"},{include:"#parens"}]},for_expression_body:{patterns:[{comment:"in keyword",match:"\\bin\\b",name:"keyword.operator.word.hcl"},{comment:"if keyword",match:"\\bif\\b",name:"keyword.control.conditional.hcl"},{match:"\\:",name:"keyword.operator.hcl"},{include:"#expressions"},{include:"#comments"},{include:"#comma"},{include:"#local_identifiers"}]},functions:{begin:"([:\\-\\w]+)(\\()",beginCaptures:{1:{patterns:[{match:"\\b(core::)?(abs|abspath|alltrue|anytrue|base64decode|base64encode|base64gzip|base64sha256|base64sha512|basename|bcrypt|can|ceil|chomp|chunklist|cidrhost|cidrnetmask|cidrsubnet|cidrsubnets|coalesce|coalescelist|compact|concat|contains|csvdecode|dirname|distinct|element|endswith|file|filebase64|filebase64sha256|filebase64sha512|fileexists|filemd5|fileset|filesha1|filesha256|filesha512|flatten|floor|format|formatdate|formatlist|indent|index|join|jsondecode|jsonencode|keys|length|log|lookup|lower|matchkeys|max|md5|merge|min|nonsensitive|one|parseint|pathexpand|plantimestamp|pow|range|regex|regexall|replace|reverse|rsadecrypt|sensitive|setintersection|setproduct|setsubtract|setunion|sha1|sha256|sha512|signum|slice|sort|split|startswith|strcontains|strrev|substr|sum|templatefile|textdecodebase64|textencodebase64|timeadd|timecmp|timestamp|title|tobool|tolist|tomap|tonumber|toset|tostring|transpose|trim|trimprefix|trimspace|trimsuffix|try|upper|urlencode|uuid|uuidv5|values|yamldecode|yamlencode|zipmap)\\b",name:"support.function.builtin.terraform"},{match:"\\bprovider::[[:alpha:]][\\w_-]*::[[:alpha:]][\\w_-]*\\b",name:"support.function.provider.terraform"}]},2:{name:"punctuation.section.parens.begin.hcl"}},comment:"Built-in function calls",end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.hcl"}},name:"meta.function-call.hcl",patterns:[{include:"#comments"},{include:"#expressions"},{include:"#comma"}]},hash_line_comments:{begin:"#",captures:{0:{name:"punctuation.definition.comment.hcl"}},comment:"Line comments start with # sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence",end:"$\\n?",name:"comment.line.number-sign.hcl"},hcl_type_keywords:{comment:"Type keywords known to HCL.",match:"\\b(any|string|number|bool|list|set|map|tuple|object)\\b",name:"storage.type.hcl"},heredoc:{begin:"(\\<\\<\\-?)\\s*(\\w+)\\s*$",beginCaptures:{1:{name:"keyword.operator.heredoc.hcl"},2:{name:"keyword.control.heredoc.hcl"}},comment:"String Heredoc",end:"^\\s*\\2\\s*$",endCaptures:{0:{name:"keyword.control.heredoc.hcl"}},name:"string.unquoted.heredoc.hcl",patterns:[{include:"#string_interpolation"}]},inline_for_expression:{captures:{1:{name:"keyword.control.hcl"},2:{patterns:[{match:"\\=\\>",name:"storage.type.function.hcl"},{include:"#for_expression_body"}]}},match:"(for)\\b(.*)\\n"},inline_if_expression:{begin:"(if)\\b",beginCaptures:{1:{name:"keyword.control.conditional.hcl"}},end:"\\n",patterns:[{include:"#expressions"},{include:"#comments"},{include:"#comma"},{include:"#local_identifiers"}]},language_constants:{comment:"Language Constants",match:"\\b(true|false|null)\\b",name:"constant.language.hcl"},literal_values:{patterns:[{include:"#numeric_literals"},{include:"#language_constants"},{include:"#string_literals"},{include:"#heredoc"},{include:"#hcl_type_keywords"},{include:"#named_value_references"}]},local_identifiers:{comment:"Local Identifiers",match:"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b",name:"variable.other.readwrite.hcl"},named_value_references:{comment:"Constant values available only to Terraform.",match:"\\b(var|local|module|data|path|terraform)\\b",name:"variable.other.readwrite.terraform"},numeric_literals:{patterns:[{captures:{1:{name:"punctuation.separator.exponent.hcl"}},comment:"Integer, no fraction, optional exponent",match:"\\b\\d+([Ee][+-]?)\\d+\\b",name:"constant.numeric.float.hcl"},{captures:{1:{name:"punctuation.separator.decimal.hcl"},2:{name:"punctuation.separator.exponent.hcl"}},comment:"Integer, fraction, optional exponent",match:"\\b\\d+(\\.)\\d+(?:([Ee][+-]?)\\d+)?\\b",name:"constant.numeric.float.hcl"},{comment:"Integers",match:"\\b\\d+\\b",name:"constant.numeric.integer.hcl"}]},object_for_expression:{begin:"(\\{)\\s?(for)\\b",beginCaptures:{1:{name:"punctuation.section.braces.begin.hcl"},2:{name:"keyword.control.hcl"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.braces.end.hcl"}},patterns:[{match:"\\=\\>",name:"storage.type.function.hcl"},{include:"#for_expression_body"}]},object_key_values:{patterns:[{include:"#comments"},{include:"#literal_values"},{include:"#operators"},{include:"#tuple_for_expression"},{include:"#object_for_expression"},{include:"#heredoc"},{include:"#functions"}]},objects:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.braces.begin.hcl"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.braces.end.hcl"}},name:"meta.braces.hcl",patterns:[{include:"#comments"},{include:"#objects"},{include:"#inline_for_expression"},{include:"#inline_if_expression"},{captures:{1:{name:"meta.mapping.key.hcl variable.other.readwrite.hcl"},2:{name:"keyword.operator.assignment.hcl",patterns:[{match:"\\=\\>",name:"storage.type.function.hcl"}]}},comment:"Literal, named object key",match:"\\b((?!null|false|true)[[:alpha:]][[:alnum:]_-]*)\\s*(\\=\\>?)\\s*"},{captures:{0:{patterns:[{include:"#named_value_references"}]},1:{name:"meta.mapping.key.hcl string.quoted.double.hcl"},2:{name:"punctuation.definition.string.begin.hcl"},3:{name:"punctuation.definition.string.end.hcl"},4:{name:"keyword.operator.hcl"}},comment:"String object key",match:'\\b((").*("))\\s*(\\=)\\s*'},{begin:"^\\s*\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.hcl"}},comment:"Computed object key (any expression between parens)",end:"(\\))\\s*(=|:)\\s*",endCaptures:{1:{name:"punctuation.section.parens.end.hcl"},2:{name:"keyword.operator.hcl"}},name:"meta.mapping.key.hcl",patterns:[{include:"#named_value_references"},{include:"#attribute_access"}]},{include:"#object_key_values"}]},operators:{patterns:[{match:"\\>\\=",name:"keyword.operator.hcl"},{match:"\\<\\=",name:"keyword.operator.hcl"},{match:"\\=\\=",name:"keyword.operator.hcl"},{match:"\\!\\=",name:"keyword.operator.hcl"},{match:"\\+",name:"keyword.operator.arithmetic.hcl"},{match:"\\-",name:"keyword.operator.arithmetic.hcl"},{match:"\\*",name:"keyword.operator.arithmetic.hcl"},{match:"\\/",name:"keyword.operator.arithmetic.hcl"},{match:"\\%",name:"keyword.operator.arithmetic.hcl"},{match:"\\&\\&",name:"keyword.operator.logical.hcl"},{match:"\\|\\|",name:"keyword.operator.logical.hcl"},{match:"\\!",name:"keyword.operator.logical.hcl"},{match:"\\>",name:"keyword.operator.hcl"},{match:"\\<",name:"keyword.operator.hcl"},{match:"\\?",name:"keyword.operator.hcl"},{match:"\\.\\.\\.",name:"keyword.operator.hcl"},{match:"\\:",name:"keyword.operator.hcl"},{match:"\\=\\>",name:"keyword.operator.hcl"}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.hcl"}},comment:"Parens - matched *after* function syntax",end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.hcl"}},patterns:[{include:"#comments"},{include:"#expressions"}]},string_interpolation:{begin:"(?<![%$])([%$]{)",beginCaptures:{1:{name:"keyword.other.interpolation.begin.hcl"}},comment:"String interpolation",end:"\\}",endCaptures:{0:{name:"keyword.other.interpolation.end.hcl"}},name:"meta.interpolation.hcl",patterns:[{comment:"Trim left whitespace",match:"\\~\\s",name:"keyword.operator.template.left.trim.hcl"},{comment:"Trim right whitespace",match:"\\s\\~",name:"keyword.operator.template.right.trim.hcl"},{comment:"if/else/endif and for/in/endfor directives",match:"\\b(if|else|endif|for|in|endfor)\\b",name:"keyword.control.hcl"},{include:"#expressions"},{include:"#local_identifiers"}]},string_literals:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.hcl"}},comment:"Strings",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.hcl"}},name:"string.quoted.double.hcl",patterns:[{include:"#string_interpolation"},{include:"#char_escapes"}]},tuple_for_expression:{begin:"(\\[)\\s?(for)\\b",beginCaptures:{1:{name:"punctuation.section.brackets.begin.hcl"},2:{name:"keyword.control.hcl"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.brackets.end.hcl"}},patterns:[{include:"#for_expression_body"}]}},scopeName:"source.hcl.terraform",aliases:["tf","tfvars"]});var n=[e];export{n as default}; diff --git a/assets/chunks/tex.-C-BpcSB.js b/assets/chunks/tex.-C-BpcSB.js new file mode 100644 index 000000000..6de9f6e8d --- /dev/null +++ b/assets/chunks/tex.-C-BpcSB.js @@ -0,0 +1 @@ +import e from"./r.BXfENWL6.js";const t=Object.freeze({displayName:"TeX",name:"tex",patterns:[{begin:"(?<=^\\s*)((\\\\)iffalse)",beginCaptures:{1:{name:"keyword.control.tex"},2:{name:"punctuation.definition.keyword.tex"}},contentName:"comment.line.percentage.tex",end:"(?<=^\\s*)((\\\\)(?:else|fi))",endCaptures:{1:{name:"keyword.control.tex"},2:{name:"punctuation.definition.keyword.tex"}},patterns:[{include:"#comment"},{include:"#conditionals"}]},{captures:{1:{name:"punctuation.definition.keyword.tex"}},match:"(\\\\)(backmatter|csname|else|endcsname|fi|frontmatter|mainmatter|unless|if(case|cat|csname|defined|dim|eof|false|fontchar|hbox|hmode|inner|mmode|num|odd|true|vbox|vmode|void|x)?)(?![a-zA-Z@])",name:"keyword.control.tex"},{captures:{1:{name:"keyword.control.catcode.tex"},2:{name:"punctuation.definition.keyword.tex"},3:{name:"punctuation.separator.key-value.tex"},4:{name:"constant.numeric.category.tex"}},match:"((\\\\)catcode)`(?:\\\\)?.(=)(\\d+)",name:"meta.catcode.tex"},{include:"#comment"},{match:"[\\[\\]]",name:"punctuation.definition.brackets.tex"},{begin:"(\\$\\$|\\$)",beginCaptures:{1:{name:"punctuation.definition.string.begin.tex"}},end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.string.end.tex"}},name:"meta.math.block.tex support.class.math.block.tex",patterns:[{match:"\\\\\\$",name:"constant.character.escape.tex"},{include:"#math"},{include:"$self"}]},{match:"\\\\\\\\",name:"keyword.control.newline.tex"},{captures:{1:{name:"punctuation.definition.function.tex"}},match:"(\\\\)(?:[,;]|(?:[\\p{Alphabetic}@]+(?:(?:_[\\p{Alphabetic}@]+)*:[NncVvoxefTFpwD]*)?))",name:"support.function.general.tex"},{captures:{1:{name:"punctuation.definition.keyword.tex"}},match:"(\\\\)[^a-zA-Z@]",name:"constant.character.escape.tex"}],repository:{braces:{begin:"(?<!\\\\)\\{",beginCaptures:{0:{name:"punctuation.group.begin.tex"}},end:"(?<!\\\\)\\}",endCaptures:{0:{name:"punctuation.group.end.tex"}},name:"meta.group.braces.tex",patterns:[{include:"#braces"}]},comment:{begin:"(^[ \\t]+)?(?=%)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.tex"}},end:"(?!\\G)",patterns:[{begin:"%:?",beginCaptures:{0:{name:"punctuation.definition.comment.tex"}},end:"$\\n?",name:"comment.line.percentage.tex"},{begin:"^(%!TEX) (\\S*) =",beginCaptures:{1:{name:"punctuation.definition.comment.tex"}},end:"$\\n?",name:"comment.line.percentage.directive.tex"}]},conditionals:{begin:"(?<=^\\s*)\\\\if[a-z]*",end:"(?<=^\\s*)\\\\fi",patterns:[{include:"#comment"},{include:"#conditionals"}]},math:{patterns:[{begin:"((\\\\)(?:text|mbox))(\\{)",beginCaptures:{1:{name:"constant.other.math.tex"},2:{name:"punctuation.definition.function.tex"},3:{name:"punctuation.definition.arguments.begin.tex meta.text.normal.tex"}},contentName:"meta.text.normal.tex",end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.tex meta.text.normal.tex"}},patterns:[{include:"#math"},{include:"$self"}]},{match:"\\\\{|\\\\}",name:"punctuation.math.bracket.pair.tex"},{match:"\\\\(left|right|((big|bigg|Big|Bigg)[lr]?))([\\(\\[\\<\\>\\]\\)\\.\\|]|\\\\[{}|]|\\\\[lr]?[Vv]ert|\\\\[lr]angle)",name:"punctuation.math.bracket.pair.big.tex"},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(s(s(earrow|warrow|lash)|h(ort(downarrow|uparrow|parallel|leftarrow|rightarrow|mid)|arp)|tar|i(gma|m(eq)?)|u(cc(sim|n(sim|approx)|curlyeq|eq|approx)?|pset(neq(q)?|plus(eq)?|eq(q)?)?|rd|m|bset(neq(q)?|plus(eq)?|eq(q)?)?)|p(hericalangle|adesuit)|e(tminus|arrow)|q(su(pset(eq)?|bset(eq)?)|c(up|ap)|uare)|warrow|m(ile|all(s(etminus|mile)|frown)))|h(slash|ook(leftarrow|rightarrow)|eartsuit|bar)|R(sh|ightarrow|e|bag)|Gam(e|ma)|n(s(hort(parallel|mid)|im|u(cc(eq)?|pseteq(q)?|bseteq))|Rightarrow|n(earrow|warrow)|cong|triangle(left(eq(slant)?)?|right(eq(slant)?)?)|i(plus)?|u|p(lus|arallel|rec(eq)?)|e(q|arrow|g|xists)|v(dash|Dash)|warrow|le(ss|q(slant|q)?|ft(arrow|rightarrow))|a(tural|bla)|VDash|rightarrow|g(tr|eq(slant|q)?)|mid|Left(arrow|rightarrow))|c(hi|irc(eq|le(d(circ|S|dash|ast)|arrow(left|right)))?|o(ng|prod|lon|mplement)|dot(s|p)?|u(p|r(vearrow(left|right)|ly(eq(succ|prec)|vee(downarrow|uparrow)?|wedge(downarrow|uparrow)?)))|enterdot|lubsuit|ap)|Xi|Maps(to(char)?|from(char)?)|B(ox|umpeq|bbk)|t(h(ick(sim|approx)|e(ta|refore))|imes|op|wohead(leftarrow|rightarrow)|a(u|lloblong)|riangle(down|q|left(eq(slant)?)?|right(eq(slant)?)?)?)|i(n(t(er(cal|leave))?|plus|fty)?|ota|math)|S(igma|u(pset|bset))|zeta|o(slash|times|int|dot|plus|vee|wedge|lessthan|greaterthan|m(inus|ega)|b(slash|long|ar))|d(i(v(ideontimes)?|a(g(down|up)|mond(suit)?)|gamma)|o(t(plus|eq(dot)?)|ublebarwedge|wn(harpoon(left|right)|downarrows|arrow))|d(ots|agger)|elta|a(sh(v|leftarrow|rightarrow)|leth|gger))|Y(down|up|left|right)|C(up|ap)|u(n(lhd|rhd)|p(silon|harpoon(left|right)|downarrow|uparrows|lus|arrow)|lcorner|rcorner)|jmath|Theta|Im|p(si|hi|i(tchfork)?|erp|ar(tial|allel)|r(ime|o(d|pto)|ec(sim|n(sim|approx)|curlyeq|eq|approx)?)|m)|e(t(h|a)|psilon|q(slant(less|gtr)|circ|uiv)|ll|xists|mptyset)|Omega|D(iamond|ownarrow|elta)|v(d(ots|ash)|ee(bar)?|Dash|ar(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|curly(vee|wedge)|t(heta|imes|riangle(left|right)?)|o(slash|circle|times|dot|plus|vee|wedge|lessthan|ast|greaterthan|minus|b(slash|ar))|p(hi|i|ropto)|epsilon|kappa|rho|bigcirc))|kappa|Up(silon|downarrow|arrow)|Join|f(orall|lat|a(t(s(emi|lash)|bslash)|llingdotseq)|rown)|P(si|hi|i)|w(p|edge|r)|l(hd|n(sim|eq(q)?|approx)|ceil|times|ightning|o(ng(left(arrow|rightarrow)|rightarrow|maps(to|from))|zenge|oparrow(left|right))|dot(s|p)|e(ss(sim|dot|eq(qgtr|gtr)|approx|gtr)|q(slant|q)?|ft(slice|harpoon(down|up)|threetimes|leftarrows|arrow(t(ail|riangle))?|right(squigarrow|harpoons|arrow(s|triangle|eq)?))|adsto)|vertneqq|floor|l(c(orner|eil)|floor|l|bracket)?|a(ngle|mbda)|rcorner|bag)|a(s(ymp|t)|ngle|pprox(eq)?|l(pha|eph)|rrownot|malg)|V(dash|vdash)|r(h(o|d)|ceil|times|i(singdotseq|ght(s(quigarrow|lice)|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(t(ail|riangle))?|rightarrows))|floor|angle|r(ceil|parenthesis|floor|bracket)|bag)|g(n(sim|eq(q)?|approx)|tr(sim|dot|eq(qless|less)|less|approx)|imel|eq(slant|q)?|vertneqq|amma|g(g)?)|Finv|xi|m(ho|i(nuso|d)|o(o|dels)|u(ltimap)?|p|e(asuredangle|rge)|aps(to|from(char)?))|b(i(n(dnasrepma|ampersand)|g(s(tar|qc(up|ap))|nplus|c(irc|u(p|rly(vee|wedge))|ap)|triangle(down|up)|interleave|o(times|dot|plus)|uplus|parallel|vee|wedge|box))|o(t|wtie|x(slash|circle|times|dot|plus|empty|ast|minus|b(slash|ox|ar)))|u(llet|mpeq)|e(cause|t(h|ween|a))|lack(square|triangle(down|left|right)?|lozenge)|a(ck(s(im(eq)?|lash)|prime|epsilon)|r(o|wedge))|bslash)|L(sh|ong(left(arrow|rightarrow)|rightarrow|maps(to|from))|eft(arrow|rightarrow)|leftarrow|ambda|bag)|Arrownot)(?![a-zA-Z@])",name:"constant.character.math.tex"},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(sum|prod|coprod|int|oint|bigcap|bigcup|bigsqcup|bigvee|bigwedge|bigodot|bigotimes|bogoplus|biguplus)\\b",name:"constant.character.math.tex"},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(arccos|arcsin|arctan|arg|cos|cosh|cot|coth|csc|deg|det|dim|exp|gcd|hom|inf|ker|lg|lim|liminf|limsup|ln|log|max|min|pr|sec|sin|sinh|sup|tan|tanh)\\b",name:"constant.other.math.tex"},{begin:"((\\\\)Sexpr(\\{))",beginCaptures:{1:{name:"support.function.sexpr.math.tex"},2:{name:"punctuation.definition.function.math.tex"},3:{name:"punctuation.section.embedded.begin.math.tex"}},contentName:"support.function.sexpr.math.tex",end:"(((\\})))",endCaptures:{1:{name:"support.function.sexpr.math.tex"},2:{name:"punctuation.section.embedded.end.math.tex"},3:{name:"source.r"}},name:"meta.embedded.line.r",patterns:[{begin:"\\G(?!\\})",end:"(?=\\})",name:"source.r",patterns:[{include:"source.r"}]}]},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(?!begin\\{|verb)([A-Za-z]+)",name:"constant.other.general.math.tex"},{match:"(?<!\\\\)\\{",name:"punctuation.math.begin.bracket.curly.tex"},{match:"(?<!\\\\)\\}",name:"punctuation.math.end.bracket.curly.tex"},{match:"(?<!\\\\)\\(",name:"punctuation.math.begin.bracket.round.tex"},{match:"(?<!\\\\)\\)",name:"punctuation.math.end.bracket.round.tex"},{match:"(([0-9]*[\\.][0-9]+)|[0-9]+)",name:"constant.numeric.math.tex"},{match:"[\\+\\*/_\\^-]",name:"punctuation.math.operator.tex"}]}},scopeName:"text.tex",embeddedLangs:["r"]});var n=[...e,t];export{n as default}; diff --git a/assets/chunks/theme.DYGu54-B.js b/assets/chunks/theme.DYGu54-B.js new file mode 100644 index 000000000..e64aa0ff9 --- /dev/null +++ b/assets/chunks/theme.DYGu54-B.js @@ -0,0 +1,8 @@ +const __vite__fileDeps=["assets/chunks/VPAlgoliaSearchBox.3Nm3rgYi.js","assets/chunks/framework.Be4oCqIX.js","assets/chunks/index.D90bihgb.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]); +import{d as m,o as a,c as l,r as c,n as N,a as D,t as I,b as k,w as v,e as f,T as fe,_ as g,u as Re,i as We,f as Ye,g as me,h as b,j as C,k as q,l as d,m as i,p as B,q as E,s as K,v as de,x as G,y as ee,z as te,A as we,B as Je,C as Xe,F as M,D as H,E as z,G as Ie,H as se,I as _,J as W,K as Te,L as oe,M as Q,N as ne,O as Qe,P as Ne,Q as Ze,R as xe,S as Ce,U as ae,V as et,W as tt,X as Me,Y as Ae,Z as He,$ as st,a0 as ot,a1 as nt,a2 as at,a3 as rt,a4 as it,a5 as lt,a6 as ct,a7 as ut,a8 as dt,a9 as pt,aa as Le}from"./framework.Be4oCqIX.js";const vt=m({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(e,t)=>(a(),l("span",{class:N(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[D(I(e.text),1)])],2))}}),ht={key:0,class:"VPBackdrop"},ft=m({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(e,t)=>(a(),k(fe,{name:"fade"},{default:v(()=>[e.show?(a(),l("div",ht)):f("",!0)]),_:1}))}}),mt=g(ft,[["__scopeId","data-v-54a304ca"]]),V=Re;function _t(s,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(s,e):(s(),(n=!0)&&setTimeout(()=>n=!1,e))}}function pe(s){return/^\//.test(s)?s:`/${s}`}function _e(s){const{pathname:e,search:t,hash:n,protocol:o}=new URL(s,"http://a.com");if(We(s)||s.startsWith("#")||!o.startsWith("http")||!Ye(e))return s;const{site:r}=V(),u=e.endsWith("/")||e.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${n}`);return me(u)}function Y({removeCurrent:s=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:n,page:o,theme:r,hash:u}=V(),p=b(()=>{var y,$;return{index:n.value,label:(y=t.value.locales[n.value])==null?void 0:y.label,link:(($=t.value.locales[n.value])==null?void 0:$.link)||(n.value==="root"?"/":`/${n.value}/`)}});return{localeLinks:b(()=>Object.entries(t.value.locales).flatMap(([y,$])=>s&&p.value.label===$.label?[]:{index:y,text:$.label,link:gt($.link||(y==="root"?"/":`/${y}/`),r.value.i18nRouting!==!1&&e,o.value.relativePath.slice(p.value.link.length-1),!t.value.cleanUrls)+u.value})),currentLang:p}}function gt(s,e,t,n){return e?s.replace(/\/$/,"")+pe(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):s}const kt=s=>(B("data-v-d1e76dde"),s=s(),E(),s),bt={class:"NotFound"},$t={class:"code"},yt={class:"title"},Lt=kt(()=>d("div",{class:"divider"},null,-1)),Pt={class:"quote"},St={class:"action"},Vt=["href","aria-label"],wt=m({__name:"NotFound",setup(s){const{site:e}=V(),{localeLinks:t}=Y({removeCurrent:!1}),n=C({link:"/",index:"root"});q(()=>{const r=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");t.value.length&&(n.value=t.value.find(({link:u})=>u.startsWith(r))||t.value[0])});const o=b(()=>{var r,u,p,h;return{code:404,title:"PAGE NOT FOUND",quote:"But if you don't change your direction, and if you keep looking, you may end up where you are heading.",linkLabel:"go to home",linkText:"Take me home",...n.value.index==="root"?(r=e.value.themeConfig)==null?void 0:r.notFound:(h=(p=(u=e.value.locales)==null?void 0:u[n.value.index])==null?void 0:p.themeConfig)==null?void 0:h.notFound}});return(r,u)=>(a(),l("div",bt,[d("p",$t,I(o.value.code),1),d("h1",yt,I(o.value.title),1),Lt,d("blockquote",Pt,I(o.value.quote),1),d("div",St,[d("a",{class:"link",href:i(me)(n.value.link),"aria-label":o.value.linkLabel},I(o.value.linkText),9,Vt)])]))}}),It=g(wt,[["__scopeId","data-v-d1e76dde"]]);function Be(s,e){if(Array.isArray(s))return Z(s);if(s==null)return[];e=pe(e);const t=Object.keys(s).sort((o,r)=>r.split("/").length-o.split("/").length).find(o=>e.startsWith(pe(o))),n=t?s[t]:[];return Array.isArray(n)?Z(n):Z(n.items,n.base)}function Tt(s){const e=[];let t=0;for(const n in s){const o=s[n];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function Nt(s){const e=[];function t(n){for(const o of n)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(s),e}function ve(s,e){return Array.isArray(e)?e.some(t=>ve(s,t)):K(s,e.link)?!0:e.items?ve(s,e.items):!1}function Z(s,e){return[...s].map(t=>{const n={...t},o=n.base||e;return o&&n.link&&(n.link=o+n.link),n.items&&(n.items=Z(n.items,o)),n})}function O(){const{frontmatter:s,page:e,theme:t}=V(),n=de("(min-width: 960px)"),o=C(!1),r=b(()=>{const A=t.value.sidebar,T=e.value.relativePath;return A?Be(A,T):[]}),u=C(r.value);G(r,(A,T)=>{JSON.stringify(A)!==JSON.stringify(T)&&(u.value=r.value)});const p=b(()=>s.value.sidebar!==!1&&u.value.length>0&&s.value.layout!=="home"),h=b(()=>y?s.value.aside==null?t.value.aside==="left":s.value.aside==="left":!1),y=b(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:t.value.aside!==!1),$=b(()=>p.value&&n.value),L=b(()=>p.value?Tt(u.value):[]);function P(){o.value=!0}function w(){o.value=!1}function S(){o.value?w():P()}return{isOpen:o,sidebar:u,sidebarGroups:L,hasSidebar:p,hasAside:y,leftAside:h,isSidebarEnabled:$,open:P,close:w,toggle:S}}function Ct(s,e){let t;ee(()=>{t=s.value?document.activeElement:void 0}),q(()=>{window.addEventListener("keyup",n)}),te(()=>{window.removeEventListener("keyup",n)});function n(o){o.key==="Escape"&&s.value&&(e(),t==null||t.focus())}}function Mt(s){const{page:e,hash:t}=V(),n=C(!1),o=b(()=>s.value.collapsed!=null),r=b(()=>!!s.value.link),u=C(!1),p=()=>{u.value=K(e.value.relativePath,s.value.link)};G([e,s,t],p),q(p);const h=b(()=>u.value?!0:s.value.items?ve(e.value.relativePath,s.value.items):!1),y=b(()=>!!(s.value.items&&s.value.items.length));ee(()=>{n.value=!!(o.value&&s.value.collapsed)}),we(()=>{(u.value||h.value)&&(n.value=!1)});function $(){o.value&&(n.value=!n.value)}return{collapsed:n,collapsible:o,isLink:r,isActiveLink:u,hasActiveLink:h,hasChildren:y,toggle:$}}function At(){const{hasSidebar:s}=O(),e=de("(min-width: 960px)"),t=de("(min-width: 1280px)");return{isAsideEnabled:b(()=>!t.value&&!e.value?!1:s.value?t.value:e.value)}}const he=[];function Ee(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function ge(s){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:Ht(t),link:"#"+t.id,level:n}});return Bt(e,s)}function Ht(s){let e="";for(const t of s.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Bt(s,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;s=s.filter(u=>u.level>=n&&u.level<=o),he.length=0;for(const{element:u,link:p}of s)he.push({element:u,link:p});const r=[];e:for(let u=0;u<s.length;u++){const p=s[u];if(u===0)r.push(p);else{for(let h=u-1;h>=0;h--){const y=s[h];if(y.level<p.level){(y.children||(y.children=[])).push(p);continue e}}r.push(p)}}return r}function Et(s,e){const{isAsideEnabled:t}=At(),n=_t(r,100);let o=null;q(()=>{requestAnimationFrame(r),window.addEventListener("scroll",n)}),Je(()=>{u(location.hash)}),te(()=>{window.removeEventListener("scroll",n)});function r(){if(!t.value)return;const p=window.scrollY,h=window.innerHeight,y=document.body.offsetHeight,$=Math.abs(p+h-y)<1,L=he.map(({element:w,link:S})=>({link:S,top:Dt(w)})).filter(({top:w})=>!Number.isNaN(w)).sort((w,S)=>w.top-S.top);if(!L.length){u(null);return}if(p<1){u(null);return}if($){u(L[L.length-1].link);return}let P=null;for(const{link:w,top:S}of L){if(S>p+Xe()+4)break;P=w}u(P)}function u(p){o&&o.classList.remove("active"),p==null?o=null:o=s.value.querySelector(`a[href="${decodeURIComponent(p)}"]`);const h=o;h?(h.classList.add("active"),e.value.style.top=h.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Dt(s){let e=0;for(;s!==document.body;){if(s===null)return NaN;e+=s.offsetTop,s=s.offsetParent}return e}const Ft=["href","title"],Ot=m({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(s){function e({target:t}){const n=t.href.split("#")[1],o=document.getElementById(decodeURIComponent(n));o==null||o.focus({preventScroll:!0})}return(t,n)=>{const o=z("VPDocOutlineItem",!0);return a(),l("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),l(M,null,H(t.headers,({children:r,link:u,title:p})=>(a(),l("li",null,[d("a",{class:"outline-link",href:u,onClick:e,title:p},I(p),9,Ft),r!=null&&r.length?(a(),k(o,{key:0,headers:r},null,8,["headers"])):f("",!0)]))),256))],2)}}}),De=g(Ot,[["__scopeId","data-v-53c99d69"]]),Ut={class:"content"},jt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Gt=m({__name:"VPDocAsideOutline",setup(s){const{frontmatter:e,theme:t}=V(),n=Ie([]);se(()=>{n.value=ge(e.value.outline??t.value.outline)});const o=C(),r=C();return Et(o,r),(u,p)=>(a(),l("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:o,role:"navigation"},[d("div",Ut,[d("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),d("div",jt,I(i(Ee)(i(t))),1),_(De,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),Kt=g(Gt,[["__scopeId","data-v-269d7ea7"]]),qt={class:"VPDocAsideCarbonAds"},zt=m({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const e=()=>null;return(t,n)=>(a(),l("div",qt,[_(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Rt=s=>(B("data-v-cb998dce"),s=s(),E(),s),Wt={class:"VPDocAside"},Yt=Rt(()=>d("div",{class:"spacer"},null,-1)),Jt=m({__name:"VPDocAside",setup(s){const{theme:e}=V();return(t,n)=>(a(),l("div",Wt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),_(Kt),c(t.$slots,"aside-outline-after",{},void 0,!0),Yt,c(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),k(zt,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):f("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Xt=g(Jt,[["__scopeId","data-v-cb998dce"]]);function Qt(){const{theme:s,page:e}=V();return b(()=>{const{text:t="Edit this page",pattern:n=""}=s.value.editLink||{};let o;return typeof n=="function"?o=n(e.value):o=n.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function Zt(){const{page:s,theme:e,frontmatter:t}=V();return b(()=>{var y,$,L,P,w,S,A,T;const n=Be(e.value.sidebar,s.value.relativePath),o=Nt(n),r=xt(o,U=>U.link.replace(/[?#].*$/,"")),u=r.findIndex(U=>K(s.value.relativePath,U.link)),p=((y=e.value.docFooter)==null?void 0:y.prev)===!1&&!t.value.prev||t.value.prev===!1,h=(($=e.value.docFooter)==null?void 0:$.next)===!1&&!t.value.next||t.value.next===!1;return{prev:p?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((L=r[u-1])==null?void 0:L.docFooterText)??((P=r[u-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((w=r[u-1])==null?void 0:w.link)},next:h?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((S=r[u+1])==null?void 0:S.docFooterText)??((A=r[u+1])==null?void 0:A.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((T=r[u+1])==null?void 0:T.link)}}})}function xt(s,e){const t=new Set;return s.filter(n=>{const o=e(n);return t.has(o)?!1:t.add(o)})}const F=m({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const e=s,t=b(()=>e.tag??(e.href?"a":"span")),n=b(()=>e.href&&Te.test(e.href));return(o,r)=>(a(),k(W(t.value),{class:N(["VPLink",{link:o.href,"vp-external-link-icon":n.value,"no-icon":o.noIcon}]),href:o.href?i(_e)(o.href):void 0,target:o.target??(n.value?"_blank":void 0),rel:o.rel??(n.value?"noreferrer":void 0)},{default:v(()=>[c(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),es={class:"VPLastUpdated"},ts=["datetime"],ss=m({__name:"VPDocFooterLastUpdated",setup(s){const{theme:e,page:t,frontmatter:n,lang:o}=V(),r=b(()=>new Date(n.value.lastUpdated??t.value.lastUpdated)),u=b(()=>r.value.toISOString()),p=C("");return q(()=>{ee(()=>{var h,y,$;p.value=new Intl.DateTimeFormat((y=(h=e.value.lastUpdated)==null?void 0:h.formatOptions)!=null&&y.forceLocale?o.value:void 0,(($=e.value.lastUpdated)==null?void 0:$.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(r.value)})}),(h,y)=>{var $;return a(),l("p",es,[D(I((($=i(e).lastUpdated)==null?void 0:$.text)||i(e).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:u.value},I(p.value),9,ts)])}}}),os=g(ss,[["__scopeId","data-v-19a7ae4e"]]),Fe=s=>(B("data-v-5941af80"),s=s(),E(),s),ns={key:0,class:"VPDocFooter"},as={key:0,class:"edit-info"},rs={key:0,class:"edit-link"},is=Fe(()=>d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),ls={key:1,class:"last-updated"},cs={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},us=Fe(()=>d("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),ds={class:"pager"},ps=["innerHTML"],vs=["innerHTML"],hs={class:"pager"},fs=["innerHTML"],ms=["innerHTML"],_s=m({__name:"VPDocFooter",setup(s){const{theme:e,page:t,frontmatter:n}=V(),o=Qt(),r=Zt(),u=b(()=>e.value.editLink&&n.value.editLink!==!1),p=b(()=>t.value.lastUpdated&&n.value.lastUpdated!==!1),h=b(()=>u.value||p.value||r.value.prev||r.value.next);return(y,$)=>{var L,P,w,S;return h.value?(a(),l("footer",ns,[c(y.$slots,"doc-footer-before",{},void 0,!0),u.value||p.value?(a(),l("div",as,[u.value?(a(),l("div",rs,[_(F,{class:"edit-link-button",href:i(o).url,"no-icon":!0},{default:v(()=>[is,D(" "+I(i(o).text),1)]),_:1},8,["href"])])):f("",!0),p.value?(a(),l("div",ls,[_(os)])):f("",!0)])):f("",!0),(L=i(r).prev)!=null&&L.link||(P=i(r).next)!=null&&P.link?(a(),l("nav",cs,[us,d("div",ds,[(w=i(r).prev)!=null&&w.link?(a(),k(F,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:v(()=>{var A;return[d("span",{class:"desc",innerHTML:((A=i(e).docFooter)==null?void 0:A.prev)||"Previous page"},null,8,ps),d("span",{class:"title",innerHTML:i(r).prev.text},null,8,vs)]}),_:1},8,["href"])):f("",!0)]),d("div",hs,[(S=i(r).next)!=null&&S.link?(a(),k(F,{key:0,class:"pager-link next",href:i(r).next.link},{default:v(()=>{var A;return[d("span",{class:"desc",innerHTML:((A=i(e).docFooter)==null?void 0:A.next)||"Next page"},null,8,fs),d("span",{class:"title",innerHTML:i(r).next.text},null,8,ms)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),gs=g(_s,[["__scopeId","data-v-5941af80"]]),ks=s=>(B("data-v-e6f2a212"),s=s(),E(),s),bs={class:"container"},$s=ks(()=>d("div",{class:"aside-curtain"},null,-1)),ys={class:"aside-container"},Ls={class:"aside-content"},Ps={class:"content"},Ss={class:"content-container"},Vs={class:"main"},ws=m({__name:"VPDoc",setup(s){const{theme:e}=V(),t=oe(),{hasSidebar:n,hasAside:o,leftAside:r}=O(),u=b(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(p,h)=>{const y=z("Content");return a(),l("div",{class:N(["VPDoc",{"has-sidebar":i(n),"has-aside":i(o)}])},[c(p.$slots,"doc-top",{},void 0,!0),d("div",bs,[i(o)?(a(),l("div",{key:0,class:N(["aside",{"left-aside":i(r)}])},[$s,d("div",ys,[d("div",Ls,[_(Xt,null,{"aside-top":v(()=>[c(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),d("div",Ps,[d("div",Ss,[c(p.$slots,"doc-before",{},void 0,!0),d("main",Vs,[_(y,{class:N(["vp-doc",[u.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),_(gs,null,{"doc-footer-before":v(()=>[c(p.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(p.$slots,"doc-after",{},void 0,!0)])])]),c(p.$slots,"doc-bottom",{},void 0,!0)],2)}}}),Is=g(ws,[["__scopeId","data-v-e6f2a212"]]),Ts=m({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(s){const e=s,t=b(()=>e.href&&Te.test(e.href)),n=b(()=>e.tag||e.href?"a":"button");return(o,r)=>(a(),k(W(n.value),{class:N(["VPButton",[o.size,o.theme]]),href:o.href?i(_e)(o.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:v(()=>[D(I(o.text),1)]),_:1},8,["class","href","target","rel"]))}}),Ns=g(Ts,[["__scopeId","data-v-c9cf0e3c"]]),Cs=["src","alt"],Ms=m({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(s){return(e,t)=>{const n=z("VPImage",!0);return e.image?(a(),l(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),l("img",Q({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(me)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Cs)):(a(),l(M,{key:1},[_(n,Q({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),_(n,Q({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),x=g(Ms,[["__scopeId","data-v-ab19afbb"]]),As=s=>(B("data-v-b10c5094"),s=s(),E(),s),Hs={class:"container"},Bs={class:"main"},Es={key:0,class:"name"},Ds=["innerHTML"],Fs=["innerHTML"],Os=["innerHTML"],Us={key:0,class:"actions"},js={key:0,class:"image"},Gs={class:"image-container"},Ks=As(()=>d("div",{class:"image-bg"},null,-1)),qs=m({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(s){const e=ne("hero-image-slot-exists");return(t,n)=>(a(),l("div",{class:N(["VPHero",{"has-image":t.image||i(e)}])},[d("div",Hs,[d("div",Bs,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),l("h1",Es,[d("span",{innerHTML:t.name,class:"clip"},null,8,Ds)])):f("",!0),t.text?(a(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,Fs)):f("",!0),t.tagline?(a(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Os)):f("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),l("div",Us,[(a(!0),l(M,null,H(t.actions,o=>(a(),l("div",{key:o.link,class:"action"},[_(Ns,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link,target:o.target,rel:o.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(a(),l("div",js,[d("div",Gs,[Ks,c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),k(x,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),zs=g(qs,[["__scopeId","data-v-b10c5094"]]),Rs=m({__name:"VPHomeHero",setup(s){const{frontmatter:e}=V();return(t,n)=>i(e).hero?(a(),k(zs,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":v(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":v(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":v(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":v(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":v(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Ws=s=>(B("data-v-bd37d1a2"),s=s(),E(),s),Ys={class:"box"},Js={key:0,class:"icon"},Xs=["innerHTML"],Qs=["innerHTML"],Zs=["innerHTML"],xs={key:4,class:"link-text"},eo={class:"link-text-value"},to=Ws(()=>d("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),so=m({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(s){return(e,t)=>(a(),k(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[d("article",Ys,[typeof e.icon=="object"&&e.icon.wrap?(a(),l("div",Js,[_(x,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),k(x,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),l("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Xs)):f("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,Qs),e.details?(a(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,Zs)):f("",!0),e.linkText?(a(),l("div",xs,[d("p",eo,[D(I(e.linkText)+" ",1),to])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),oo=g(so,[["__scopeId","data-v-bd37d1a2"]]),no={key:0,class:"VPFeatures"},ao={class:"container"},ro={class:"items"},io=m({__name:"VPFeatures",props:{features:{}},setup(s){const e=s,t=b(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,o)=>n.features?(a(),l("div",no,[d("div",ao,[d("div",ro,[(a(!0),l(M,null,H(n.features,r=>(a(),l("div",{key:r.title,class:N(["item",[t.value]])},[_(oo,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),lo=g(io,[["__scopeId","data-v-b1eea84a"]]),co=m({__name:"VPHomeFeatures",setup(s){const{frontmatter:e}=V();return(t,n)=>i(e).features?(a(),k(lo,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):f("",!0)}}),uo=m({__name:"VPHomeContent",setup(s){const{width:e}=Qe({includeScrollbar:!1});return(t,n)=>(a(),l("div",{class:"vp-doc container",style:Ne(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),po=g(uo,[["__scopeId","data-v-d59ac166"]]),vo={class:"VPHome"},ho=m({__name:"VPHome",setup(s){const{frontmatter:e}=V();return(t,n)=>{const o=z("Content");return a(),l("div",vo,[c(t.$slots,"home-hero-before",{},void 0,!0),_(Rs,null,{"home-hero-info-before":v(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),_(co),c(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(a(),k(po,{key:0},{default:v(()=>[_(o)]),_:1})):(a(),k(o,{key:1}))])}}}),fo=g(ho,[["__scopeId","data-v-07b1ad08"]]),mo={},_o={class:"VPPage"};function go(s,e){const t=z("Content");return a(),l("div",_o,[c(s.$slots,"page-top"),_(t),c(s.$slots,"page-bottom")])}const ko=g(mo,[["render",go]]),bo=m({__name:"VPContent",setup(s){const{page:e,frontmatter:t}=V(),{hasSidebar:n}=O();return(o,r)=>(a(),l("div",{class:N(["VPContent",{"has-sidebar":i(n),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?c(o.$slots,"not-found",{key:0},()=>[_(It)],!0):i(t).layout==="page"?(a(),k(ko,{key:1},{"page-top":v(()=>[c(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),k(fo,{key:2},{"home-hero-before":v(()=>[c(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[c(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[c(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[c(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(a(),k(W(i(t).layout),{key:3})):(a(),k(Is,{key:4},{"doc-top":v(()=>[c(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[c(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[c(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[c(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[c(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),$o=g(bo,[["__scopeId","data-v-9a6c75ad"]]),yo={class:"container"},Lo=["innerHTML"],Po=["innerHTML"],So=m({__name:"VPFooter",setup(s){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=O();return(o,r)=>i(e).footer&&i(t).footer!==!1?(a(),l("footer",{key:0,class:N(["VPFooter",{"has-sidebar":i(n)}])},[d("div",yo,[i(e).footer.message?(a(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,Lo)):f("",!0),i(e).footer.copyright?(a(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,Po)):f("",!0)])],2)):f("",!0)}}),Vo=g(So,[["__scopeId","data-v-566314d4"]]);function wo(){const{theme:s,frontmatter:e}=V(),t=Ie([]),n=b(()=>t.value.length>0);return se(()=>{t.value=ge(e.value.outline??s.value.outline)}),{headers:t,hasLocalNav:n}}const Io=s=>(B("data-v-883964e0"),s=s(),E(),s),To={class:"menu-text"},No=Io(()=>d("span",{class:"vpi-chevron-right icon"},null,-1)),Co={class:"header"},Mo={class:"outline"},Ao=m({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const e=s,{theme:t}=V(),n=C(!1),o=C(0),r=C(),u=C();function p(L){var P;(P=r.value)!=null&&P.contains(L.target)||(n.value=!1)}G(n,L=>{if(L){document.addEventListener("click",p);return}document.removeEventListener("click",p)}),Ze("Escape",()=>{n.value=!1}),se(()=>{n.value=!1});function h(){n.value=!n.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function y(L){L.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),xe(()=>{n.value=!1}))}function $(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(L,P)=>(a(),l("div",{class:"VPLocalNavOutlineDropdown",style:Ne({"--vp-vh":o.value+"px"}),ref_key:"main",ref:r},[L.headers.length>0?(a(),l("button",{key:0,onClick:h,class:N({open:n.value})},[d("span",To,I(i(Ee)(i(t))),1),No],2)):(a(),l("button",{key:1,onClick:$},I(i(t).returnToTopLabel||"Return to top"),1)),_(fe,{name:"flyout"},{default:v(()=>[n.value?(a(),l("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:y},[d("div",Co,[d("a",{class:"top-link",href:"#",onClick:$},I(i(t).returnToTopLabel||"Return to top"),1)]),d("div",Mo,[_(De,{headers:L.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),Ho=g(Ao,[["__scopeId","data-v-883964e0"]]),Bo=s=>(B("data-v-2488c25a"),s=s(),E(),s),Eo={class:"container"},Do=["aria-expanded"],Fo=Bo(()=>d("span",{class:"vpi-align-left menu-icon"},null,-1)),Oo={class:"menu-text"},Uo=m({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=O(),{headers:o}=wo(),{y:r}=Ce(),u=C(0);q(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),se(()=>{o.value=ge(t.value.outline??e.value.outline)});const p=b(()=>o.value.length===0),h=b(()=>p.value&&!n.value),y=b(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:p.value,fixed:h.value}));return($,L)=>i(t).layout!=="home"&&(!h.value||i(r)>=u.value)?(a(),l("div",{key:0,class:N(y.value)},[d("div",Eo,[i(n)?(a(),l("button",{key:0,class:"menu","aria-expanded":$.open,"aria-controls":"VPSidebarNav",onClick:L[0]||(L[0]=P=>$.$emit("open-menu"))},[Fo,d("span",Oo,I(i(e).sidebarMenuLabel||"Menu"),1)],8,Do)):f("",!0),_(Ho,{headers:i(o),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),jo=g(Uo,[["__scopeId","data-v-2488c25a"]]);function Go(){const s=C(!1);function e(){s.value=!0,window.addEventListener("resize",o)}function t(){s.value=!1,window.removeEventListener("resize",o)}function n(){s.value?t():e()}function o(){window.outerWidth>=768&&t()}const r=oe();return G(()=>r.path,t),{isScreenOpen:s,openScreen:e,closeScreen:t,toggleScreen:n}}const Ko={},qo={class:"VPSwitch",type:"button",role:"switch"},zo={class:"check"},Ro={key:0,class:"icon"};function Wo(s,e){return a(),l("button",qo,[d("span",zo,[s.$slots.default?(a(),l("span",Ro,[c(s.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Yo=g(Ko,[["render",Wo],["__scopeId","data-v-b4ccac88"]]),Oe=s=>(B("data-v-7df97737"),s=s(),E(),s),Jo=Oe(()=>d("span",{class:"vpi-sun sun"},null,-1)),Xo=Oe(()=>d("span",{class:"vpi-moon moon"},null,-1)),Qo=m({__name:"VPSwitchAppearance",setup(s){const{isDark:e,theme:t}=V(),n=ne("toggle-appearance",()=>{e.value=!e.value}),o=b(()=>e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme");return(r,u)=>(a(),k(Yo,{title:o.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(n)},{default:v(()=>[Jo,Xo]),_:1},8,["title","aria-checked","onClick"]))}}),ke=g(Qo,[["__scopeId","data-v-7df97737"]]),Zo={key:0,class:"VPNavBarAppearance"},xo=m({__name:"VPNavBarAppearance",setup(s){const{site:e}=V();return(t,n)=>i(e).appearance&&i(e).appearance!=="force-dark"?(a(),l("div",Zo,[_(ke)])):f("",!0)}}),en=g(xo,[["__scopeId","data-v-283b26e9"]]),be=C();let Ue=!1,ce=0;function tn(s){const e=C(!1);if(ae){!Ue&&sn(),ce++;const t=G(be,n=>{var o,r,u;n===s.el.value||(o=s.el.value)!=null&&o.contains(n)?(e.value=!0,(r=s.onFocus)==null||r.call(s)):(e.value=!1,(u=s.onBlur)==null||u.call(s))});te(()=>{t(),ce--,ce||on()})}return et(e)}function sn(){document.addEventListener("focusin",je),Ue=!0,be.value=document.activeElement}function on(){document.removeEventListener("focusin",je)}function je(){be.value=document.activeElement}const nn={class:"VPMenuLink"},an=m({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:e}=V();return(t,n)=>(a(),l("div",nn,[_(F,{class:N({active:i(K)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:v(()=>[D(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),re=g(an,[["__scopeId","data-v-f51f088d"]]),rn={class:"VPMenuGroup"},ln={key:0,class:"title"},cn=m({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),l("div",rn,[e.text?(a(),l("p",ln,I(e.text),1)):f("",!0),(a(!0),l(M,null,H(e.items,n=>(a(),l(M,null,["link"in n?(a(),k(re,{key:0,item:n},null,8,["item"])):f("",!0)],64))),256))]))}}),un=g(cn,[["__scopeId","data-v-a6b0397c"]]),dn={class:"VPMenu"},pn={key:0,class:"items"},vn=m({__name:"VPMenu",props:{items:{}},setup(s){return(e,t)=>(a(),l("div",dn,[e.items?(a(),l("div",pn,[(a(!0),l(M,null,H(e.items,n=>(a(),l(M,{key:n.text},["link"in n?(a(),k(re,{key:0,item:n},null,8,["item"])):(a(),k(un,{key:1,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),hn=g(vn,[["__scopeId","data-v-e42ed9b3"]]),fn=s=>(B("data-v-af5898d3"),s=s(),E(),s),mn=["aria-expanded","aria-label"],_n={key:0,class:"text"},gn=["innerHTML"],kn=fn(()=>d("span",{class:"vpi-chevron-down text-icon"},null,-1)),bn={key:1,class:"vpi-more-horizontal icon"},$n={class:"menu"},yn=m({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const e=C(!1),t=C();tn({el:t,onBlur:n});function n(){e.value=!1}return(o,r)=>(a(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=u=>e.value=!0),onMouseleave:r[2]||(r[2]=u=>e.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:r[0]||(r[0]=u=>e.value=!e.value)},[o.button||o.icon?(a(),l("span",_n,[o.icon?(a(),l("span",{key:0,class:N([o.icon,"option-icon"])},null,2)):f("",!0),o.button?(a(),l("span",{key:1,innerHTML:o.button},null,8,gn)):f("",!0),kn])):(a(),l("span",bn))],8,mn),d("div",$n,[_(hn,{items:o.items},{default:v(()=>[c(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),$e=g(yn,[["__scopeId","data-v-af5898d3"]]),Ln=["href","aria-label","innerHTML"],Pn=m({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const e=s,t=b(()=>typeof e.icon=="object"?e.icon.svg:`<span class="vpi-social-${e.icon}" />`);return(n,o)=>(a(),l("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Ln))}}),Sn=g(Pn,[["__scopeId","data-v-358b6670"]]),Vn={class:"VPSocialLinks"},wn=m({__name:"VPSocialLinks",props:{links:{}},setup(s){return(e,t)=>(a(),l("div",Vn,[(a(!0),l(M,null,H(e.links,({link:n,icon:o,ariaLabel:r})=>(a(),k(Sn,{key:n,icon:o,link:n,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),ye=g(wn,[["__scopeId","data-v-e71e869c"]]),In={key:0,class:"group translations"},Tn={class:"trans-title"},Nn={key:1,class:"group"},Cn={class:"item appearance"},Mn={class:"label"},An={class:"appearance-action"},Hn={key:2,class:"group"},Bn={class:"item social-links"},En=m({__name:"VPNavBarExtra",setup(s){const{site:e,theme:t}=V(),{localeLinks:n,currentLang:o}=Y({correspondingLink:!0}),r=b(()=>n.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(u,p)=>r.value?(a(),k($e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[i(n).length&&i(o).label?(a(),l("div",In,[d("p",Tn,I(i(o).label),1),(a(!0),l(M,null,H(i(n),h=>(a(),k(re,{key:h.link,item:h},null,8,["item"]))),128))])):f("",!0),i(e).appearance&&i(e).appearance!=="force-dark"?(a(),l("div",Nn,[d("div",Cn,[d("p",Mn,I(i(t).darkModeSwitchLabel||"Appearance"),1),d("div",An,[_(ke)])])])):f("",!0),i(t).socialLinks?(a(),l("div",Hn,[d("div",Bn,[_(ye,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Dn=g(En,[["__scopeId","data-v-8e87c032"]]),Fn=s=>(B("data-v-6bee1efd"),s=s(),E(),s),On=["aria-expanded"],Un=Fn(()=>d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)),jn=[Un],Gn=m({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(e,t)=>(a(),l("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},jn,10,On))}}),Kn=g(Gn,[["__scopeId","data-v-6bee1efd"]]),qn=["innerHTML"],zn=m({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:e}=V();return(t,n)=>(a(),k(F,{class:N({VPNavBarMenuLink:!0,active:i(K)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:v(()=>[d("span",{innerHTML:t.item.text},null,8,qn)]),_:1},8,["class","href","noIcon","target","rel"]))}}),Rn=g(zn,[["__scopeId","data-v-08fbf4b6"]]),Wn=m({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const e=s,{page:t}=V(),n=r=>"link"in r?K(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(n),o=b(()=>n(e.item));return(r,u)=>(a(),k($e,{class:N({VPNavBarMenuGroup:!0,active:i(K)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||o.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),Yn=s=>(B("data-v-f732b5d0"),s=s(),E(),s),Jn={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Xn=Yn(()=>d("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Qn=m({__name:"VPNavBarMenu",setup(s){const{theme:e}=V();return(t,n)=>i(e).nav?(a(),l("nav",Jn,[Xn,(a(!0),l(M,null,H(i(e).nav,o=>(a(),l(M,{key:o.text},["link"in o?(a(),k(Rn,{key:0,item:o},null,8,["item"])):(a(),k(Wn,{key:1,item:o},null,8,["item"]))],64))),128))])):f("",!0)}}),Zn=g(Qn,[["__scopeId","data-v-f732b5d0"]]);function xn(s){const{localeIndex:e,theme:t}=V();function n(o){var S,A,T;const r=o.split("."),u=(S=t.value.search)==null?void 0:S.options,p=u&&typeof u=="object",h=p&&((T=(A=u.locales)==null?void 0:A[e.value])==null?void 0:T.translations)||null,y=p&&u.translations||null;let $=h,L=y,P=s;const w=r.pop();for(const U of r){let j=null;const R=P==null?void 0:P[U];R&&(j=P=R);const ie=L==null?void 0:L[U];ie&&(j=L=ie);const le=$==null?void 0:$[U];le&&(j=$=le),R||(P=j),ie||(L=j),le||($=j)}return($==null?void 0:$[w])??(L==null?void 0:L[w])??(P==null?void 0:P[w])??""}return n}const ea=["aria-label"],ta={class:"DocSearch-Button-Container"},sa=d("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),oa={class:"DocSearch-Button-Placeholder"},na=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Pe=m({__name:"VPNavBarSearchButton",setup(s){const t=xn({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,o)=>(a(),l("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[d("span",ta,[sa,d("span",oa,I(i(t)("button.buttonText")),1)]),na],8,ea))}}),aa={class:"VPNavBarSearch"},ra={id:"local-search"},ia={key:1,id:"docsearch"},la=m({__name:"VPNavBarSearch",setup(s){const e=()=>null,t=tt(()=>Me(()=>import("./VPAlgoliaSearchBox.3Nm3rgYi.js"),__vite__mapDeps([0,1]))),{theme:n}=V(),o=C(!1),r=C(!1),u=()=>{const P="VPAlgoliaPreconnect";(window.requestIdleCallback||setTimeout)(()=>{var A;const S=document.createElement("link");S.id=P,S.rel="preconnect",S.href=`https://${(((A=n.value.search)==null?void 0:A.options)??n.value.algolia).appId}-dsn.algolia.net`,S.crossOrigin="",document.head.appendChild(S)})};q(()=>{u();const P=S=>{(S.key.toLowerCase()==="k"&&(S.metaKey||S.ctrlKey)||!y(S)&&S.key==="/")&&(S.preventDefault(),p(),w())},w=()=>{window.removeEventListener("keydown",P)};window.addEventListener("keydown",P),te(w)});function p(){o.value||(o.value=!0,setTimeout(h,16))}function h(){const P=new Event("keydown");P.key="k",P.metaKey=!0,window.dispatchEvent(P),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}function y(P){const w=P.target,S=w.tagName;return w.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const $=C(!1),L="algolia";return(P,w)=>{var S;return a(),l("div",aa,[i(L)==="local"?(a(),l(M,{key:0},[$.value?(a(),k(i(e),{key:0,onClose:w[0]||(w[0]=A=>$.value=!1)})):f("",!0),d("div",ra,[_(Pe,{onClick:w[1]||(w[1]=A=>$.value=!0)})])],64)):i(L)==="algolia"?(a(),l(M,{key:1},[o.value?(a(),k(i(t),{key:0,algolia:((S=i(n).search)==null?void 0:S.options)??i(n).algolia,onVnodeBeforeMount:w[2]||(w[2]=A=>r.value=!0)},null,8,["algolia"])):f("",!0),r.value?f("",!0):(a(),l("div",ia,[_(Pe,{onClick:p})]))],64)):f("",!0)])}}}),ca=m({__name:"VPNavBarSocialLinks",setup(s){const{theme:e}=V();return(t,n)=>i(e).socialLinks?(a(),k(ye,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):f("",!0)}}),ua=g(ca,[["__scopeId","data-v-ef6192dc"]]),da=["href","rel","target"],pa={key:1},va={key:2},ha=m({__name:"VPNavBarTitle",setup(s){const{site:e,theme:t}=V(),{hasSidebar:n}=O(),{currentLang:o}=Y(),r=b(()=>{var h;return typeof t.value.logoLink=="string"?t.value.logoLink:(h=t.value.logoLink)==null?void 0:h.link}),u=b(()=>{var h;return typeof t.value.logoLink=="string"||(h=t.value.logoLink)==null?void 0:h.rel}),p=b(()=>{var h;return typeof t.value.logoLink=="string"||(h=t.value.logoLink)==null?void 0:h.target});return(h,y)=>(a(),l("div",{class:N(["VPNavBarTitle",{"has-sidebar":i(n)}])},[d("a",{class:"title",href:r.value??i(_e)(i(o).link),rel:u.value,target:p.value},[c(h.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),k(x,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):f("",!0),i(t).siteTitle?(a(),l("span",pa,I(i(t).siteTitle),1)):i(t).siteTitle===void 0?(a(),l("span",va,I(i(e).title),1)):f("",!0),c(h.$slots,"nav-bar-title-after",{},void 0,!0)],8,da)],2))}}),fa=g(ha,[["__scopeId","data-v-0ad69264"]]),ma={class:"items"},_a={class:"title"},ga=m({__name:"VPNavBarTranslations",setup(s){const{theme:e}=V(),{localeLinks:t,currentLang:n}=Y({correspondingLink:!0});return(o,r)=>i(t).length&&i(n).label?(a(),k($e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:v(()=>[d("div",ma,[d("p",_a,I(i(n).label),1),(a(!0),l(M,null,H(i(t),u=>(a(),k(re,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),ka=g(ga,[["__scopeId","data-v-acee064b"]]),ba=s=>(B("data-v-844edcde"),s=s(),E(),s),$a={class:"wrapper"},ya={class:"container"},La={class:"title"},Pa={class:"content"},Sa={class:"content-body"},Va=ba(()=>d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1)),wa=m({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const{y:e}=Ce(),{hasSidebar:t}=O(),{frontmatter:n}=V(),o=C({});return we(()=>{o.value={"has-sidebar":t.value,home:n.value.layout==="home",top:e.value===0}}),(r,u)=>(a(),l("div",{class:N(["VPNavBar",o.value])},[d("div",$a,[d("div",ya,[d("div",La,[_(fa,null,{"nav-bar-title-before":v(()=>[c(r.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(r.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",Pa,[d("div",Sa,[c(r.$slots,"nav-bar-content-before",{},void 0,!0),_(la,{class:"search"}),_(Zn,{class:"menu"}),_(ka,{class:"translations"}),_(en,{class:"appearance"}),_(ua,{class:"social-links"}),_(Dn,{class:"extra"}),c(r.$slots,"nav-bar-content-after",{},void 0,!0),_(Kn,{class:"hamburger",active:r.isScreenOpen,onClick:u[0]||(u[0]=p=>r.$emit("toggle-screen"))},null,8,["active"])])])])]),Va],2))}}),Ia=g(wa,[["__scopeId","data-v-844edcde"]]),Ta={key:0,class:"VPNavScreenAppearance"},Na={class:"text"},Ca=m({__name:"VPNavScreenAppearance",setup(s){const{site:e,theme:t}=V();return(n,o)=>i(e).appearance&&i(e).appearance!=="force-dark"?(a(),l("div",Ta,[d("p",Na,I(i(t).darkModeSwitchLabel||"Appearance"),1),_(ke)])):f("",!0)}}),Ma=g(Ca,[["__scopeId","data-v-338d9b48"]]),Aa=m({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const e=ne("close-screen");return(t,n)=>(a(),k(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),Ha=g(Aa,[["__scopeId","data-v-1a934d60"]]),Ba=m({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const e=ne("close-screen");return(t,n)=>(a(),k(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:v(()=>[D(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ge=g(Ba,[["__scopeId","data-v-aea78dd1"]]),Ea={class:"VPNavScreenMenuGroupSection"},Da={key:0,class:"title"},Fa=m({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),l("div",Ea,[e.text?(a(),l("p",Da,I(e.text),1)):f("",!0),(a(!0),l(M,null,H(e.items,n=>(a(),k(Ge,{key:n.text,item:n},null,8,["item"]))),128))]))}}),Oa=g(Fa,[["__scopeId","data-v-f60dbfa7"]]),Ua=s=>(B("data-v-d2212c70"),s=s(),E(),s),ja=["aria-controls","aria-expanded"],Ga=["innerHTML"],Ka=Ua(()=>d("span",{class:"vpi-plus button-icon"},null,-1)),qa=["id"],za={key:1,class:"group"},Ra=m({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const e=s,t=C(!1),n=b(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(r,u)=>(a(),l("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[d("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:o},[d("span",{class:"button-text",innerHTML:r.text},null,8,Ga),Ka],8,ja),d("div",{id:n.value,class:"items"},[(a(!0),l(M,null,H(r.items,p=>(a(),l(M,{key:p.text},["link"in p?(a(),l("div",{key:p.text,class:"item"},[_(Ge,{item:p},null,8,["item"])])):(a(),l("div",za,[_(Oa,{text:p.text,items:p.items},null,8,["text","items"])]))],64))),128))],8,qa)],2))}}),Wa=g(Ra,[["__scopeId","data-v-d2212c70"]]),Ya={key:0,class:"VPNavScreenMenu"},Ja=m({__name:"VPNavScreenMenu",setup(s){const{theme:e}=V();return(t,n)=>i(e).nav?(a(),l("nav",Ya,[(a(!0),l(M,null,H(i(e).nav,o=>(a(),l(M,{key:o.text},["link"in o?(a(),k(Ha,{key:0,item:o},null,8,["item"])):(a(),k(Wa,{key:1,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Xa=m({__name:"VPNavScreenSocialLinks",setup(s){const{theme:e}=V();return(t,n)=>i(e).socialLinks?(a(),k(ye,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):f("",!0)}}),Ke=s=>(B("data-v-516e4bc3"),s=s(),E(),s),Qa=Ke(()=>d("span",{class:"vpi-languages icon lang"},null,-1)),Za=Ke(()=>d("span",{class:"vpi-chevron-down icon chevron"},null,-1)),xa={class:"list"},er=m({__name:"VPNavScreenTranslations",setup(s){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),n=C(!1);function o(){n.value=!n.value}return(r,u)=>i(e).length&&i(t).label?(a(),l("div",{key:0,class:N(["VPNavScreenTranslations",{open:n.value}])},[d("button",{class:"title",onClick:o},[Qa,D(" "+I(i(t).label)+" ",1),Za]),d("ul",xa,[(a(!0),l(M,null,H(i(e),p=>(a(),l("li",{key:p.link,class:"item"},[_(F,{class:"link",href:p.link},{default:v(()=>[D(I(p.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),tr=g(er,[["__scopeId","data-v-516e4bc3"]]),sr={class:"container"},or=m({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(s){const e=C(null),t=Ae(ae?document.body:null);return(n,o)=>(a(),k(fe,{name:"fade",onEnter:o[0]||(o[0]=r=>t.value=!0),onAfterLeave:o[1]||(o[1]=r=>t.value=!1)},{default:v(()=>[n.open?(a(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[d("div",sr,[c(n.$slots,"nav-screen-content-before",{},void 0,!0),_(Ja,{class:"menu"}),_(tr,{class:"translations"}),_(Ma,{class:"appearance"}),_(Xa,{class:"social-links"}),c(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),nr=g(or,[["__scopeId","data-v-57cce842"]]),ar={key:0,class:"VPNav"},rr=m({__name:"VPNav",setup(s){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=Go(),{frontmatter:o}=V(),r=b(()=>o.value.navbar!==!1);return He("close-screen",t),ee(()=>{ae&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(u,p)=>r.value?(a(),l("header",ar,[_(Ia,{"is-screen-open":i(e),onToggleScreen:i(n)},{"nav-bar-title-before":v(()=>[c(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),_(nr,{open:i(e)},{"nav-screen-content-before":v(()=>[c(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),ir=g(rr,[["__scopeId","data-v-7ad780c2"]]),qe=s=>(B("data-v-c24f735a"),s=s(),E(),s),lr=["role","tabindex"],cr=qe(()=>d("div",{class:"indicator"},null,-1)),ur=qe(()=>d("span",{class:"vpi-chevron-right caret-icon"},null,-1)),dr=[ur],pr={key:1,class:"items"},vr=m({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(s){const e=s,{collapsed:t,collapsible:n,isLink:o,isActiveLink:r,hasActiveLink:u,hasChildren:p,toggle:h}=Mt(b(()=>e.item)),y=b(()=>p.value?"section":"div"),$=b(()=>o.value?"a":"div"),L=b(()=>p.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=b(()=>o.value?void 0:"button"),w=b(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":o.value},{"is-active":r.value},{"has-active":u.value}]);function S(T){"key"in T&&T.key!=="Enter"||!e.item.link&&h()}function A(){e.item.link&&h()}return(T,U)=>{const j=z("VPSidebarItem",!0);return a(),k(W(y.value),{class:N(["VPSidebarItem",w.value])},{default:v(()=>[T.item.text?(a(),l("div",Q({key:0,class:"item",role:P.value},st(T.item.items?{click:S,keydown:S}:{},!0),{tabindex:T.item.items&&0}),[cr,T.item.link?(a(),k(F,{key:0,tag:$.value,class:"link",href:T.item.link,rel:T.item.rel,target:T.item.target},{default:v(()=>[(a(),k(W(L.value),{class:"text",innerHTML:T.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),k(W(L.value),{key:1,class:"text",innerHTML:T.item.text},null,8,["innerHTML"])),T.item.collapsed!=null&&T.item.items&&T.item.items.length?(a(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:A,onKeydown:ot(A,["enter"]),tabindex:"0"},dr,32)):f("",!0)],16,lr)):f("",!0),T.item.items&&T.item.items.length?(a(),l("div",pr,[T.depth<5?(a(!0),l(M,{key:0},H(T.item.items,R=>(a(),k(j,{key:R.text,item:R,depth:T.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),hr=g(vr,[["__scopeId","data-v-c24f735a"]]),ze=s=>(B("data-v-4871f9f5"),s=s(),E(),s),fr=ze(()=>d("div",{class:"curtain"},null,-1)),mr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},_r=ze(()=>d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),gr=m({__name:"VPSidebar",props:{open:{type:Boolean}},setup(s){const{sidebarGroups:e,hasSidebar:t}=O(),n=s,o=C(null),r=Ae(ae?document.body:null);return G([n,o],()=>{var u;n.open?(r.value=!0,(u=o.value)==null||u.focus()):r.value=!1},{immediate:!0,flush:"post"}),(u,p)=>i(t)?(a(),l("aside",{key:0,class:N(["VPSidebar",{open:u.open}]),ref_key:"navEl",ref:o,onClick:p[0]||(p[0]=nt(()=>{},["stop"]))},[fr,d("nav",mr,[_r,c(u.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),l(M,null,H(i(e),h=>(a(),l("div",{key:h.text,class:"group"},[_(hr,{item:h,depth:0},null,8,["item"])]))),128)),c(u.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),kr=g(gr,[["__scopeId","data-v-4871f9f5"]]),br=m({__name:"VPSkipLink",setup(s){const e=oe(),t=C();G(()=>e.path,()=>t.value.focus());function n({target:o}){const r=document.getElementById(decodeURIComponent(o.hash).slice(1));if(r){const u=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",u)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",u),r.focus(),window.scrollTo(0,0)}}return(o,r)=>(a(),l(M,null,[d("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),$r=g(br,[["__scopeId","data-v-c8291ffa"]]),yr=m({__name:"Layout",setup(s){const{isOpen:e,open:t,close:n}=O(),o=oe();G(()=>o.path,n),Ct(e,n);const{frontmatter:r}=V(),u=at(),p=b(()=>!!u["home-hero-image"]);return He("hero-image-slot-exists",p),(h,y)=>{const $=z("Content");return i(r).layout!==!1?(a(),l("div",{key:0,class:N(["Layout",i(r).pageClass])},[c(h.$slots,"layout-top",{},void 0,!0),_($r),_(mt,{class:"backdrop",show:i(e),onClick:i(n)},null,8,["show","onClick"]),_(ir,null,{"nav-bar-title-before":v(()=>[c(h.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(h.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(h.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(h.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[c(h.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(h.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),_(jo,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),_(kr,{open:i(e)},{"sidebar-nav-before":v(()=>[c(h.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[c(h.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),_($o,null,{"page-top":v(()=>[c(h.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(h.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[c(h.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[c(h.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[c(h.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(h.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[c(h.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[c(h.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[c(h.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(h.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(h.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(h.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[c(h.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(h.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(h.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[c(h.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(h.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[c(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),_(Vo),c(h.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),k($,{key:1}))}}}),Lr=g(yr,[["__scopeId","data-v-d8b57b2d"]]),Se={Layout:Lr,enhanceApp:({app:s})=>{s.component("Badge",vt)}},J={groups:{default:{vue:"Vue",knockout:"Knockout"},vue:{options:"Options API",setup:"Composition API"},"vue-bundler":{"vue-cli":"Vue CLI",vite:"Vite"}}},X=rt({}),Pr={props:{name:{type:String,default:"default"},isolated:{type:Boolean,default:!1},languages:{type:Object,required:!1}},data(){return{selectedLanguage:null,actualLanguages:{}}},computed:{localStorageKey(){return`vuepress-plugin-code-switcher@${this.name}`}},methods:{switchLanguage(s){if(this.isolated)return this.selectedLanguage=s;typeof localStorage<"u"&&localStorage.setItem(this.localStorageKey,s),X[this.name]=s},setConfiguredDefaultLanguages(){this.languages?this.actualLanguages=this.languages:J&&J.groups&&J.groups[this.name]&&(this.actualLanguages=J.groups[this.name]),this.selectedLanguage=Object.keys(this.actualLanguages)[0],X[this.name]||(X[this.name]=this.selectedLanguage)}},created(){if(!this.isolated){if(this.setConfiguredDefaultLanguages(),!this.actualLanguages)throw new Error('You must specify either the "languages" prop or use the "groups" option when configuring the plugin.');if(typeof localStorage<"u"){let s=localStorage.getItem(this.localStorageKey);s&&Object.keys(this.actualLanguages).indexOf(s)!==-1&&(this.selectedLanguage=s)}it(()=>this.selectedLanguage=X[this.name])}}},Sr={class:"code-tabs"},Vr={class:"code-tabs__nav"},wr={class:"code-tabs__ul"},Ir=["aria-pressed","aria-expanded","onClick"],Tr=["aria-selected"];function Nr(s,e,t,n,o,r){return a(),l("div",Sr,[d("div",Vr,[d("ul",wr,[(a(!0),l(M,null,H(o.actualLanguages,(u,p)=>(a(),l("li",{key:p,class:"code-tabs__li"},[d("button",{class:N(["code-tabs__nav-tab",{"code-tabs__nav-tab-active":o.selectedLanguage===p}]),"aria-pressed":o.selectedLanguage===p,"aria-expanded":o.selectedLanguage===p,onClick:h=>r.switchLanguage(p)},I(u),11,Ir)]))),128))])]),(a(!0),l(M,null,H(o.actualLanguages,(u,p)=>lt((a(),l("div",{key:p,class:N(["code-tabs-item",{"code-tabs-item__active":o.selectedLanguage===p}]),"aria-selected":o.selectedLanguage===p},[c(s.$slots,p)],10,Tr)),[[ct,p===o.selectedLanguage]])),128))])}const Cr=g(Pr,[["render",Nr]]);var ue=new Map;async function Mr(s){const e=await Me(()=>import("./index.D90bihgb.js"),__vite__mapDeps([2,1]));return{highlighter:await e.getHighlighter({themes:["dark-plus"],langs:[s]}),shiki:e}}function Ar(s){if(ue.has(s))return ue.get(s);const e=Mr(s);return ue.set(s,e),e}const Hr=m({props:{def:{type:String,required:!0},lang:{type:String,default:"c#"},ctor:{type:[Number,String],default:null},noClass:{type:Boolean,default:!1},id:{type:String,default:null},idPrefix:{type:String,default:"member"}},data(){return{idAttr:"",html:""}},async serverPrefetch(){await this.renderHtml()},beforeMount(){var s,e;this.html=(s=this.$el)==null?void 0:s.innerHTML,this.idAttr=(e=this.$el)==null?void 0:e.id,this.html||this.$watch("def",()=>this.renderHtml(),{immediate:!0})},methods:{async renderHtml(){var s=null;this.ctor&&(s="// Also settable via constructor parameter #"+this.ctor,(this.lang=="c#"||this.lang=="csharp")&&!this.def.match(/\bset\b/)&&(s="// ONLY settable via constructor parameter #"+this.ctor));const e=(this.noClass?"":"public class x {")+(s?` +`+s:"")+` +`+this.def+(this.noClass?"":` +}`);if(this.id)this.idAttr=this.id;else if(this.lang=="ts"){const r=/(?:(?:readonly|public|static|protected|private|abstract|export) )*((?:namespace )?[\w$-]+)/.exec(this.def);this.idAttr=r?this.idPrefix+"-"+r[1]:null}else if(this.lang=="c#"){const r=/ (\w+)(?:<|\(| \{|$)/.exec(this.def);this.idAttr=r?this.idPrefix+"-"+r[1]:null}if(!this.idAttr)throw new Error("Unable to compute id for Prop "+this.def);this.idAttr=this.idAttr.toLowerCase().replace(/[ &<>"']/g,"-").replace(/\$/g,"_");const{highlighter:t}=await Ar(this.lang),n=this.noClass;let o=t.codeToHtml(e,{lang:this.lang,theme:"dark-plus",transformers:[{tokens(r){n||(r.shift(),r.pop())}}]});this.html=`<a class="header-anchor" href="#${this.idAttr}" aria-hidden="true"></a>${o}`}}}),Br=["innerHTML","id"],Er=["id"],Dr={class:"shiki",style:{"line-height":"1.18","padding-top":"1px","padding-bottom":"4px"}};function Fr(s,e,t,n,o,r){return s.html?(a(),l("h4",{key:0,innerHTML:s.html,class:"code-prop",id:s.idAttr},null,8,Br)):(a(),l("h4",{key:1,class:"code-prop",id:s.idAttr},[d("pre",Dr,[D(" "),d("code",null,` + `+I(s.def)+` + `,1),D(` + `)])],8,Er))}const Or=g(Hr,[["render",Fr]]),Ur={},jr={class:"vp-doc intellitect-footer"},Gr=ut('<hr style="margin:70px 0;"><div class="content"><a href="https://www.intellitect.com"><img class="dark-only" src="'+dt+'"><img class="light-only" src="'+pt+'"></a><p> Coalesce is a free and open-source framework created by <a href="https://intellitect.com" target="_blank" rel="noreferrer"> IntelliTect </a> to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington. </p><p> If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at <a href="mailto:info@intellitect.com">info@intellitect.com</a> — we'd love to start a conversation! <a href="https://intellitect.com/our-clients/" target="_blank" rel="noreferrer"> Our clients </a> range from Fortune 100 companies to local small businesses and non-profits. </p></div>',2),Kr=[Gr];function qr(s,e){return a(),l("footer",jr,Kr)}const Ve=g(Ur,[["render",qr]]),Rr={extends:Se,Layout:()=>Le(Se.Layout,null,{"doc-bottom":()=>Le(Ve,{class:"page-footer"})}),enhanceApp({app:s,router:e,siteData:t}){s.component("CodeTabs",Cr),s.component("Prop",Or),s.component("SiteFooter",Ve)}};export{Rr as R,V as u}; diff --git a/assets/chunks/tokyo-night.eJfcURhx.js b/assets/chunks/tokyo-night.eJfcURhx.js new file mode 100644 index 000000000..249125b00 --- /dev/null +++ b/assets/chunks/tokyo-night.eJfcURhx.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.background":"#16161e","activityBar.border":"#16161e","activityBar.foreground":"#787c99","activityBar.inactiveForeground":"#3b3e52","activityBarBadge.background":"#3d59a1","activityBarBadge.foreground":"#fff","badge.background":"#7e83b230","badge.foreground":"#acb0d0","breadcrumb.activeSelectionForeground":"#a9b1d6","breadcrumb.background":"#16161e","breadcrumb.focusForeground":"#a9b1d6","breadcrumb.foreground":"#515670","breadcrumbPicker.background":"#16161e","button.background":"#3d59a1dd","button.foreground":"#ffffff","button.hoverBackground":"#3d59a1AA","button.secondaryBackground":"#3b3e52","charts.blue":"#7aa2f7","charts.foreground":"#9AA5CE","charts.green":"#41a6b5","charts.lines":"#16161e","charts.orange":"#ff9e64","charts.purple":"#9d7cd8","charts.red":"#f7768e","charts.yellow":"#e0af68","debugConsole.errorForeground":"#bb616b","debugConsole.infoForeground":"#787c99","debugConsole.sourceForeground":"#787c99","debugConsole.warningForeground":"#c49a5a","debugConsoleInputIcon.foreground":"#73daca","debugExceptionWidget.background":"#101014","debugExceptionWidget.border":"#963c47","debugIcon.breakpointDisabledForeground":"#414761","debugIcon.breakpointForeground":"#db4b4b","debugIcon.breakpointUnverifiedForeground":"#c24242","debugTokenExpression.boolean":"#ff9e64","debugTokenExpression.error":"#bb616b","debugTokenExpression.name":"#7dcfff","debugTokenExpression.number":"#ff9e64","debugTokenExpression.string":"#9ece6a","debugTokenExpression.value":"#9aa5ce","debugToolBar.background":"#101014","debugView.stateLabelBackground":"#14141b","debugView.stateLabelForeground":"#787c99","debugView.valueChangedHighlight":"#3d59a1aa",descriptionForeground:"#515670","diffEditor.diagonalFill":"#292e42","diffEditor.insertedLineBackground":"#41a6b520","diffEditor.insertedTextBackground":"#41a6b520","diffEditor.removedLineBackground":"#db4b4b22","diffEditor.removedTextBackground":"#db4b4b22","diffEditorGutter.insertedLineBackground":"#41a6b525","diffEditorGutter.removedLineBackground":"#db4b4b22","diffEditorOverview.insertedForeground":"#41a6b525","diffEditorOverview.removedForeground":"#db4b4b22","dropdown.background":"#14141b","dropdown.foreground":"#787c99","dropdown.listBackground":"#14141b","editor.background":"#1a1b26","editor.findMatchBackground":"#3d59a166","editor.findMatchBorder":"#e0af68","editor.findMatchHighlightBackground":"#3d59a166","editor.findRangeHighlightBackground":"#515c7e33","editor.focusedStackFrameHighlightBackground":"#73daca20","editor.foldBackground":"#1111174a","editor.foreground":"#a9b1d6","editor.inactiveSelectionBackground":"#515c7e25","editor.lineHighlightBackground":"#1e202e","editor.rangeHighlightBackground":"#515c7e20","editor.selectionBackground":"#515c7e4d","editor.selectionHighlightBackground":"#515c7e44","editor.stackFrameHighlightBackground":"#E2BD3A20","editor.wordHighlightBackground":"#515c7e44","editor.wordHighlightStrongBackground":"#515c7e55","editorBracketHighlight.foreground1":"#698cd6","editorBracketHighlight.foreground2":"#68b3de","editorBracketHighlight.foreground3":"#9a7ecc","editorBracketHighlight.foreground4":"#25aac2","editorBracketHighlight.foreground5":"#80a856","editorBracketHighlight.foreground6":"#c49a5a","editorBracketHighlight.unexpectedBracket.foreground":"#db4b4b","editorBracketMatch.background":"#16161e","editorBracketMatch.border":"#42465d","editorBracketPairGuide.activeBackground1":"#698cd6","editorBracketPairGuide.activeBackground2":"#68b3de","editorBracketPairGuide.activeBackground3":"#9a7ecc","editorBracketPairGuide.activeBackground4":"#25aac2","editorBracketPairGuide.activeBackground5":"#80a856","editorBracketPairGuide.activeBackground6":"#c49a5a","editorCodeLens.foreground":"#51597d","editorCursor.foreground":"#c0caf5","editorError.foreground":"#db4b4b","editorGhostText.foreground":"#646e9c","editorGroup.border":"#101014","editorGroup.dropBackground":"#1e202e","editorGroupHeader.border":"#101014","editorGroupHeader.noTabsBackground":"#16161e","editorGroupHeader.tabsBackground":"#16161e","editorGroupHeader.tabsBorder":"#101014","editorGutter.addedBackground":"#164846","editorGutter.deletedBackground":"#823c41","editorGutter.modifiedBackground":"#394b70","editorHint.foreground":"#0da0ba","editorHoverWidget.background":"#16161e","editorHoverWidget.border":"#101014","editorIndentGuide.activeBackground":"#363b54","editorIndentGuide.background":"#1e202e","editorInfo.foreground":"#0da0ba","editorLightBulb.foreground":"#e0af68","editorLightBulbAutoFix.foreground":"#e0af68","editorLineNumber.activeForeground":"#737aa2","editorLineNumber.foreground":"#363b54","editorLink.activeForeground":"#acb0d0","editorMarkerNavigation.background":"#16161e","editorOverviewRuler.addedForeground":"#164846","editorOverviewRuler.border":"#101014","editorOverviewRuler.bracketMatchForeground":"#101014","editorOverviewRuler.deletedForeground":"#703438","editorOverviewRuler.errorForeground":"#db4b4b","editorOverviewRuler.findMatchForeground":"#a9b1d644","editorOverviewRuler.infoForeground":"#1abc9c","editorOverviewRuler.modifiedForeground":"#394b70","editorOverviewRuler.rangeHighlightForeground":"#a9b1d644","editorOverviewRuler.selectionHighlightForeground":"#a9b1d622","editorOverviewRuler.warningForeground":"#e0af68","editorOverviewRuler.wordHighlightForeground":"#bb9af755","editorOverviewRuler.wordHighlightStrongForeground":"#bb9af766","editorPane.background":"#16161e","editorRuler.foreground":"#101014","editorSuggestWidget.background":"#16161e","editorSuggestWidget.border":"#101014","editorSuggestWidget.highlightForeground":"#6183bb","editorSuggestWidget.selectedBackground":"#20222c","editorWarning.foreground":"#e0af68","editorWhitespace.foreground":"#363b54","editorWidget.background":"#16161e","editorWidget.foreground":"#787c99","editorWidget.resizeBorder":"#545c7e33",errorForeground:"#515670","extensionBadge.remoteBackground":"#3d59a1","extensionBadge.remoteForeground":"#ffffff","extensionButton.prominentBackground":"#3d59a1DD","extensionButton.prominentForeground":"#ffffff","extensionButton.prominentHoverBackground":"#3d59a1AA",focusBorder:"#545c7e33",foreground:"#787c99","gitDecoration.addedResourceForeground":"#449dab","gitDecoration.conflictingResourceForeground":"#e0af68cc","gitDecoration.deletedResourceForeground":"#914c54","gitDecoration.ignoredResourceForeground":"#515670","gitDecoration.modifiedResourceForeground":"#6183bb","gitDecoration.renamedResourceForeground":"#449dab","gitDecoration.stageDeletedResourceForeground":"#914c54","gitDecoration.stageModifiedResourceForeground":"#6183bb","gitDecoration.untrackedResourceForeground":"#449dab","gitlens.gutterBackgroundColor":"#16161e","gitlens.gutterForegroundColor":"#787c99","gitlens.gutterUncommittedForegroundColor":"#7aa2f7","gitlens.trailingLineForegroundColor":"#646e9c","icon.foreground":"#787c99","input.background":"#14141b","input.border":"#0f0f14","input.foreground":"#a9b1d6","input.placeholderForeground":"#787c998A","inputOption.activeBackground":"#3d59a144","inputOption.activeForeground":"#c0caf5","inputValidation.errorBackground":"#85353e","inputValidation.errorBorder":"#963c47","inputValidation.errorForeground":"#bbc2e0","inputValidation.infoBackground":"#3d59a15c","inputValidation.infoBorder":"#3d59a1","inputValidation.infoForeground":"#bbc2e0","inputValidation.warningBackground":"#c2985b","inputValidation.warningBorder":"#e0af68","inputValidation.warningForeground":"#000000","list.activeSelectionBackground":"#202330","list.activeSelectionForeground":"#a9b1d6","list.deemphasizedForeground":"#787c99","list.dropBackground":"#1e202e","list.errorForeground":"#bb616b","list.focusBackground":"#1c1d29","list.focusForeground":"#a9b1d6","list.highlightForeground":"#668ac4","list.hoverBackground":"#13131a","list.hoverForeground":"#a9b1d6","list.inactiveSelectionBackground":"#1c1d29","list.inactiveSelectionForeground":"#a9b1d6","list.invalidItemForeground":"#c97018","list.warningForeground":"#c49a5a","listFilterWidget.background":"#101014","listFilterWidget.noMatchesOutline":"#a6333f","listFilterWidget.outline":"#3d59a1","menu.background":"#16161e","menu.border":"#101014","menu.foreground":"#787c99","menu.selectionBackground":"#1e202e","menu.selectionForeground":"#a9b1d6","menu.separatorBackground":"#101014","menubar.selectionBackground":"#1e202e","menubar.selectionBorder":"#1b1e2e","menubar.selectionForeground":"#a9b1d6","merge.currentContentBackground":"#007a7544","merge.currentHeaderBackground":"#41a6b525","merge.incomingContentBackground":"#3d59a144","merge.incomingHeaderBackground":"#3d59a1aa","mergeEditor.change.background":"#41a6b525","mergeEditor.change.word.background":"#41a6b540","mergeEditor.conflict.handled.minimapOverViewRuler":"#449dab","mergeEditor.conflict.handledFocused.border":"#41a6b565","mergeEditor.conflict.handledUnfocused.border":"#41a6b525","mergeEditor.conflict.unhandled.minimapOverViewRuler":"#e0af68","mergeEditor.conflict.unhandledFocused.border":"#e0af68b0","mergeEditor.conflict.unhandledUnfocused.border":"#e0af6888","minimapGutter.addedBackground":"#1C5957","minimapGutter.deletedBackground":"#944449","minimapGutter.modifiedBackground":"#425882","notebook.cellBorderColor":"#101014","notebook.cellEditorBackground":"#16161e","notebook.cellStatusBarItemHoverBackground":"#1c1d29","notebook.editorBackground":"#1a1b26","notebook.focusedCellBorder":"#29355a","notificationCenterHeader.background":"#101014","notificationLink.foreground":"#6183bb","notifications.background":"#101014","notificationsErrorIcon.foreground":"#bb616b","notificationsInfoIcon.foreground":"#0da0ba","notificationsWarningIcon.foreground":"#bba461","panel.background":"#16161e","panel.border":"#101014","panelInput.border":"#16161e","panelTitle.activeBorder":"#16161e","panelTitle.activeForeground":"#787c99","panelTitle.inactiveForeground":"#42465d","peekView.border":"#101014","peekViewEditor.background":"#16161e","peekViewEditor.matchHighlightBackground":"#3d59a166","peekViewResult.background":"#101014","peekViewResult.fileForeground":"#787c99","peekViewResult.lineForeground":"#a9b1d6","peekViewResult.matchHighlightBackground":"#3d59a166","peekViewResult.selectionBackground":"#3d59a133","peekViewResult.selectionForeground":"#a9b1d6","peekViewTitle.background":"#101014","peekViewTitleDescription.foreground":"#787c99","peekViewTitleLabel.foreground":"#a9b1d6","pickerGroup.border":"#101014","pickerGroup.foreground":"#a9b1d6","progressBar.background":"#3d59a1","sash.hoverBorder":"#29355a","scrollbar.shadow":"#00000033","scrollbarSlider.activeBackground":"#868bc422","scrollbarSlider.background":"#868bc415","scrollbarSlider.hoverBackground":"#868bc410","selection.background":"#515c7e40","settings.headerForeground":"#6183bb","sideBar.background":"#16161e","sideBar.border":"#101014","sideBar.dropBackground":"#1e202e","sideBar.foreground":"#787c99","sideBarSectionHeader.background":"#16161e","sideBarSectionHeader.border":"#101014","sideBarSectionHeader.foreground":"#a9b1d6","sideBarTitle.foreground":"#787c99","statusBar.background":"#16161e","statusBar.border":"#101014","statusBar.debuggingBackground":"#16161e","statusBar.debuggingForeground":"#787c99","statusBar.foreground":"#787c99","statusBar.noFolderBackground":"#16161e","statusBarItem.activeBackground":"#101014","statusBarItem.hoverBackground":"#20222c","statusBarItem.prominentBackground":"#101014","statusBarItem.prominentHoverBackground":"#20222c","tab.activeBackground":"#16161e","tab.activeBorder":"#3d59a1","tab.activeForeground":"#a9b1d6","tab.activeModifiedBorder":"#1a1b26","tab.border":"#101014","tab.hoverForeground":"#a9b1d6","tab.inactiveBackground":"#16161e","tab.inactiveForeground":"#787c99","tab.inactiveModifiedBorder":"#1f202e","tab.lastPinnedBorder":"#222333","tab.unfocusedActiveBorder":"#1f202e","tab.unfocusedActiveForeground":"#a9b1d6","tab.unfocusedHoverForeground":"#a9b1d6","tab.unfocusedInactiveForeground":"#787c99","terminal.ansiBlack":"#363b54","terminal.ansiBlue":"#7aa2f7","terminal.ansiBrightBlack":"#363b54","terminal.ansiBrightBlue":"#7aa2f7","terminal.ansiBrightCyan":"#7dcfff","terminal.ansiBrightGreen":"#41a6b5","terminal.ansiBrightMagenta":"#bb9af7","terminal.ansiBrightRed":"#f7768e","terminal.ansiBrightWhite":"#acb0d0","terminal.ansiBrightYellow":"#e0af68","terminal.ansiCyan":"#7dcfff","terminal.ansiGreen":"#73daca","terminal.ansiMagenta":"#bb9af7","terminal.ansiRed":"#f7768e","terminal.ansiWhite":"#787c99","terminal.ansiYellow":"#e0af68","terminal.background":"#16161e","terminal.foreground":"#787c99","terminal.selectionBackground":"#515c7e4d","textBlockQuote.background":"#16161e","textCodeBlock.background":"#16161e","textLink.activeForeground":"#7dcfff","textLink.foreground":"#6183bb","textPreformat.foreground":"#9699a8","textSeparator.foreground":"#363b54","titleBar.activeBackground":"#16161e","titleBar.activeForeground":"#787c99","titleBar.border":"#101014","titleBar.inactiveBackground":"#16161e","titleBar.inactiveForeground":"#787c99","toolbar.activeBackground":"#202330","toolbar.hoverBackground":"#202330","tree.indentGuidesStroke":"#2b2b3b","walkThrough.embeddedEditorBackground":"#16161e","widget.shadow":"#ffffff00","window.activeBorder":"#0d0f17","window.inactiveBorder":"#0d0f17"},displayName:"Tokyo Night",name:"tokyo-night",semanticTokenColors:{"*.defaultLibrary":{foreground:"#2ac3de"},parameter:{foreground:"#d9d4cd"},"parameter.declaration":{foreground:"#e0af68"},"property.declaration":{foreground:"#73daca"},"property.defaultLibrary":{foreground:"#2ac3de"},variable:{foreground:"#c0caf5"},"variable.declaration":{foreground:"#bb9af7"},"variable.defaultLibrary":{foreground:"#2ac3de"}},tokenColors:[{scope:["comment","meta.var.expr storage.type","keyword.control.flow","keyword.control.return","meta.directive.vue punctuation.separator.key-value.html","meta.directive.vue entity.other.attribute-name.html","tag.decorator.js entity.name.tag.js","tag.decorator.js punctuation.definition.tag.js","storage.modifier"],settings:{fontStyle:"italic"}},{scope:["keyword.control.flow.block-scalar.literal","keyword.control.flow.python"],settings:{fontStyle:""}},{scope:["comment","comment.block.documentation","punctuation.definition.comment","comment.block.documentation punctuation"],settings:{foreground:"#51597d"}},{scope:["keyword.operator.assignment.jsdoc","comment.block.documentation variable","comment.block.documentation storage","comment.block.documentation keyword","comment.block.documentation support","comment.block.documentation markup","comment.block.documentation markup.inline.raw.string.markdown","meta.other.type.phpdoc.php keyword.other.type.php","meta.other.type.phpdoc.php support.other.namespace.php","meta.other.type.phpdoc.php punctuation.separator.inheritance.php","meta.other.type.phpdoc.php support.class","keyword.other.phpdoc.php","log.date"],settings:{foreground:"#5a638c"}},{scope:["meta.other.type.phpdoc.php support.class","comment.block.documentation storage.type","comment.block.documentation punctuation.definition.block.tag","comment.block.documentation entity.name.type.instance"],settings:{foreground:"#646e9c"}},{scope:["variable.other.constant","punctuation.definition.constant","constant.language","constant.numeric","support.constant","constant.other.caps"],settings:{foreground:"#ff9e64"}},{scope:["string","constant.other.symbol","constant.other.key","meta.attribute-selector","string constant.character"],settings:{fontStyle:"",foreground:"#9ece6a"}},{scope:["constant.other.color","constant.other.color.rgb-value.hex punctuation.definition.constant"],settings:{foreground:"#9aa5ce"}},{scope:["invalid","invalid.illegal"],settings:{foreground:"#ff5370"}},{scope:"invalid.deprecated",settings:{foreground:"#bb9af7"}},{scope:"storage.type",settings:{foreground:"#bb9af7"}},{scope:["meta.var.expr storage.type","storage.modifier"],settings:{foreground:"#9d7cd8"}},{scope:["punctuation.definition.template-expression","punctuation.section.embedded","meta.embedded.line.tag.smarty","support.constant.handlebars","punctuation.section.tag.twig"],settings:{foreground:"#7dcfff"}},{scope:["keyword.control.smarty","keyword.control.twig","support.constant.handlebars keyword.control","keyword.operator.comparison.twig","keyword.blade","entity.name.function.blade"],settings:{foreground:"#0db9d7"}},{scope:["keyword.operator.spread","keyword.operator.rest"],settings:{fontStyle:"bold",foreground:"#f7768e"}},{scope:["keyword.operator","keyword.control.as","keyword.other","keyword.operator.bitwise.shift","punctuation","expression.embbeded.vue punctuation.definition.tag","text.html.twig meta.tag.inline.any.html","meta.tag.template.value.twig meta.function.arguments.twig","meta.directive.vue punctuation.separator.key-value.html","punctuation.definition.constant.markdown","punctuation.definition.string","punctuation.support.type.property-name","text.html.vue-html meta.tag","meta.attribute.directive","punctuation.definition.keyword","punctuation.terminator.rule","punctuation.definition.entity","punctuation.separator.inheritance.php","keyword.other.template","keyword.other.substitution","entity.name.operator","meta.property-list punctuation.separator.key-value","meta.at-rule.mixin punctuation.separator.key-value","meta.at-rule.function variable.parameter.url"],settings:{foreground:"#89ddff"}},{scope:["keyword.control.module.js","keyword.control.import","keyword.control.export","keyword.control.from","keyword.control.default","meta.import keyword.other"],settings:{foreground:"#7dcfff"}},{scope:["keyword","keyword.control","keyword.other.important"],settings:{foreground:"#bb9af7"}},{scope:"keyword.other.DML",settings:{foreground:"#7dcfff"}},{scope:["keyword.operator.logical","storage.type.function","keyword.operator.bitwise","keyword.operator.ternary","keyword.operator.comparison","keyword.operator.relational","keyword.operator.or.regexp"],settings:{foreground:"#bb9af7"}},{scope:"entity.name.tag",settings:{foreground:"#f7768e"}},{scope:["entity.name.tag support.class.component","meta.tag.custom entity.name.tag","meta.tag.other.unrecognized.html.derivative entity.name.tag","meta.tag"],settings:{foreground:"#de5971"}},{scope:"punctuation.definition.tag",settings:{foreground:"#ba3c97"}},{scope:["constant.other.php","variable.other.global.safer","variable.other.global.safer punctuation.definition.variable","variable.other.global","variable.other.global punctuation.definition.variable","constant.other"],settings:{foreground:"#e0af68"}},{scope:["variable","support.variable","string constant.other.placeholder","variable.parameter.handlebars","variable.other.object","meta.fstring","meta.function-call meta.function-call.arguments"],settings:{foreground:"#c0caf5"}},{scope:"meta.array.literal variable",settings:{foreground:"#7dcfff"}},{scope:["meta.object-literal.key","entity.name.type.hcl","string.alias.graphql","string.unquoted.graphql","string.unquoted.alias.graphql","meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js","meta.field.declaration.ts variable.object.property","meta.block entity.name.label"],settings:{foreground:"#73daca"}},{scope:["variable.other.property","support.variable.property","support.variable.property.dom","meta.function-call variable.other.object.property"],settings:{foreground:"#7dcfff"}},{scope:"variable.other.object.property",settings:{foreground:"#c0caf5"}},{scope:"meta.objectliteral meta.object.member meta.objectliteral meta.object.member meta.objectliteral meta.object.member meta.object-literal.key",settings:{foreground:"#41a6b5"}},{scope:"source.cpp meta.block variable.other",settings:{foreground:"#f7768e"}},{scope:"support.other.variable",settings:{foreground:"#f7768e"}},{scope:["meta.class-method.js entity.name.function.js","entity.name.method.js","variable.function.constructor","keyword.other.special-method","storage.type.cs"],settings:{foreground:"#7aa2f7"}},{scope:["entity.name.function","variable.other.enummember","meta.function-call","meta.function-call entity.name.function","variable.function","meta.definition.method entity.name.function","meta.object-literal entity.name.function"],settings:{foreground:"#7aa2f7"}},{scope:["variable.parameter.function.language.special","variable.parameter","meta.function.parameters punctuation.definition.variable","meta.function.parameter variable"],settings:{foreground:"#e0af68"}},{scope:["keyword.other.type.php","storage.type.php","constant.character","constant.escape","keyword.other.unit"],settings:{foreground:"#bb9af7"}},{scope:["meta.definition.variable variable.other.constant","meta.definition.variable variable.other.readwrite","variable.declaration.hcl variable.other.readwrite.hcl","meta.mapping.key.hcl variable.other.readwrite.hcl","variable.other.declaration"],settings:{foreground:"#bb9af7"}},{scope:"entity.other.inherited-class",settings:{fontStyle:"",foreground:"#bb9af7"}},{scope:["support.class","support.type","variable.other.readwrite.alias","support.orther.namespace.use.php","meta.use.php","support.other.namespace.php","support.type.sys-types","support.variable.dom","support.constant.math","support.type.object.module","support.constant.json","entity.name.namespace","meta.import.qualifier","variable.other.constant.object"],settings:{foreground:"#0db9d7"}},{scope:"entity.name",settings:{foreground:"#c0caf5"}},{scope:"support.function",settings:{foreground:"#0db9d7"}},{scope:["source.css support.type.property-name","source.sass support.type.property-name","source.scss support.type.property-name","source.less support.type.property-name","source.stylus support.type.property-name","source.postcss support.type.property-name","support.type.property-name.css","support.type.vendored.property-name","support.type.map.key"],settings:{foreground:"#7aa2f7"}},{scope:["support.constant.font-name","meta.definition.variable"],settings:{foreground:"#9ece6a"}},{scope:["entity.other.attribute-name.class","meta.at-rule.mixin.scss entity.name.function.scss"],settings:{foreground:"#9ece6a"}},{scope:"entity.other.attribute-name.id",settings:{foreground:"#fc7b7b"}},{scope:"entity.name.tag.css",settings:{foreground:"#0db9d7"}},{scope:["entity.other.attribute-name.pseudo-class punctuation.definition.entity","entity.other.attribute-name.pseudo-element punctuation.definition.entity","entity.other.attribute-name.class punctuation.definition.entity","entity.name.tag.reference"],settings:{foreground:"#e0af68"}},{scope:"meta.property-list",settings:{foreground:"#9abdf5"}},{scope:["meta.property-list meta.at-rule.if","meta.at-rule.return variable.parameter.url","meta.property-list meta.at-rule.else"],settings:{foreground:"#ff9e64"}},{scope:["entity.other.attribute-name.parent-selector-suffix punctuation.definition.entity.css"],settings:{foreground:"#73daca"}},{scope:"meta.property-list meta.property-list",settings:{foreground:"#9abdf5"}},{scope:["meta.at-rule.mixin keyword.control.at-rule.mixin","meta.at-rule.include entity.name.function.scss","meta.at-rule.include keyword.control.at-rule.include"],settings:{foreground:"#bb9af7"}},{scope:["keyword.control.at-rule.include punctuation.definition.keyword","keyword.control.at-rule.mixin punctuation.definition.keyword","meta.at-rule.include keyword.control.at-rule.include","keyword.control.at-rule.extend punctuation.definition.keyword","meta.at-rule.extend keyword.control.at-rule.extend","entity.other.attribute-name.placeholder.css punctuation.definition.entity.css","meta.at-rule.media keyword.control.at-rule.media","meta.at-rule.mixin keyword.control.at-rule.mixin","meta.at-rule.function keyword.control.at-rule.function","keyword.control punctuation.definition.keyword"],settings:{foreground:"#9d7cd8"}},{scope:"meta.property-list meta.at-rule.include",settings:{foreground:"#c0caf5"}},{scope:"support.constant.property-value",settings:{foreground:"#ff9e64"}},{scope:["entity.name.module.js","variable.import.parameter.js","variable.other.class.js"],settings:{foreground:"#c0caf5"}},{scope:"variable.language",settings:{foreground:"#f7768e"}},{scope:"variable.other punctuation.definition.variable",settings:{foreground:"#c0caf5"}},{scope:["source.js constant.other.object.key.js string.unquoted.label.js","variable.language.this punctuation.definition.variable","keyword.other.this"],settings:{foreground:"#f7768e"}},{scope:["entity.other.attribute-name","text.html.basic entity.other.attribute-name.html","text.html.basic entity.other.attribute-name"],settings:{foreground:"#bb9af7"}},{scope:"text.html constant.character.entity",settings:{foreground:"#0DB9D7"}},{scope:["entity.other.attribute-name.id.html","meta.directive.vue entity.other.attribute-name.html"],settings:{foreground:"#bb9af7"}},{scope:"source.sass keyword.control",settings:{foreground:"#7aa2f7"}},{scope:["entity.other.attribute-name.pseudo-class","entity.other.attribute-name.pseudo-element","entity.other.attribute-name.placeholder","meta.property-list meta.property-value"],settings:{foreground:"#bb9af7"}},{scope:"markup.inserted",settings:{foreground:"#449dab"}},{scope:"markup.deleted",settings:{foreground:"#914c54"}},{scope:"markup.changed",settings:{foreground:"#6183bb"}},{scope:"string.regexp",settings:{foreground:"#b4f9f8"}},{scope:"punctuation.definition.group",settings:{foreground:"#f7768e"}},{scope:["constant.other.character-class.regexp"],settings:{foreground:"#bb9af7"}},{scope:["constant.other.character-class.set.regexp","punctuation.definition.character-class.regexp"],settings:{foreground:"#e0af68"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#89ddff"}},{scope:"constant.character.escape.backslash",settings:{foreground:"#c0caf5"}},{scope:"constant.character.escape",settings:{foreground:"#89ddff"}},{scope:["tag.decorator.js entity.name.tag.js","tag.decorator.js punctuation.definition.tag.js"],settings:{foreground:"#7aa2f7"}},{scope:"keyword.other.unit",settings:{foreground:"#f7768e"}},{scope:["source.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#7aa2f7"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#0db9d7"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#7dcfff"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#bb9af7"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#e0af68"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#0db9d7"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#73daca"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#f7768e"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#9ece6a"}},{scope:"punctuation.definition.list_item.markdown",settings:{foreground:"#9abdf5"}},{scope:["meta.block","meta.brace","punctuation.definition.block","punctuation.definition.use","punctuation.definition.class","punctuation.definition.begin.bracket","punctuation.definition.end.bracket","punctuation.definition.switch-expression.begin.bracket","punctuation.definition.switch-expression.end.bracket","punctuation.definition.section.switch-block.begin.bracket","punctuation.definition.section.switch-block.end.bracket","punctuation.definition.group.shell","punctuation.definition.parameters","punctuation.definition.arguments","punctuation.definition.dictionary","punctuation.definition.array","punctuation.section"],settings:{foreground:"#9abdf5"}},{scope:["meta.embedded.block"],settings:{foreground:"#c0caf5"}},{scope:["meta.tag JSXNested","meta.jsx.children","text.html","text.log"],settings:{foreground:"#9aa5ce"}},{scope:"text.html.markdown markup.inline.raw.markdown",settings:{foreground:"#bb9af7"}},{scope:"text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown",settings:{foreground:"#4E5579"}},{scope:["heading.1.markdown entity.name","heading.1.markdown punctuation.definition.heading.markdown"],settings:{fontStyle:"bold",foreground:"#89ddff"}},{scope:["heading.2.markdown entity.name","heading.2.markdown punctuation.definition.heading.markdown"],settings:{fontStyle:"bold",foreground:"#61bdf2"}},{scope:["heading.3.markdown entity.name","heading.3.markdown punctuation.definition.heading.markdown"],settings:{fontStyle:"bold",foreground:"#7aa2f7"}},{scope:["heading.4.markdown entity.name","heading.4.markdown punctuation.definition.heading.markdown"],settings:{fontStyle:"bold",foreground:"#6d91de"}},{scope:["heading.5.markdown entity.name","heading.5.markdown punctuation.definition.heading.markdown"],settings:{fontStyle:"bold",foreground:"#9aa5ce"}},{scope:["heading.6.markdown entity.name","heading.6.markdown punctuation.definition.heading.markdown"],settings:{fontStyle:"bold",foreground:"#747ca1"}},{scope:["markup.italic","markup.italic punctuation"],settings:{fontStyle:"italic",foreground:"#c0caf5"}},{scope:["markup.bold","markup.bold punctuation"],settings:{fontStyle:"bold",foreground:"#c0caf5"}},{scope:["markup.bold markup.italic","markup.bold markup.italic punctuation"],settings:{fontStyle:"bold italic",foreground:"#c0caf5"}},{scope:["markup.underline","markup.underline punctuation"],settings:{fontStyle:"underline"}},{scope:"markup.quote punctuation.definition.blockquote.markdown",settings:{foreground:"#4e5579"}},{scope:"markup.quote",settings:{fontStyle:"italic"}},{scope:["string.other.link","markup.underline.link","constant.other.reference.link.markdown","string.other.link.description.title.markdown"],settings:{foreground:"#73daca"}},{scope:["markup.fenced_code.block.markdown","markup.inline.raw.string.markdown","variable.language.fenced.markdown"],settings:{foreground:"#89ddff"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#51597d"}},{scope:"markup.table",settings:{foreground:"#c0cefc"}},{scope:"token.info-token",settings:{foreground:"#0db9d7"}},{scope:"token.warn-token",settings:{foreground:"#ffdb69"}},{scope:"token.error-token",settings:{foreground:"#db4b4b"}},{scope:"token.debug-token",settings:{foreground:"#b267e6"}},{scope:"entity.tag.apacheconf",settings:{foreground:"#f7768e"}},{scope:["meta.preprocessor"],settings:{foreground:"#73daca"}},{scope:"source.env",settings:{foreground:"#7aa2f7"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/toml.BT9ZzGyQ.js b/assets/chunks/toml.BT9ZzGyQ.js new file mode 100644 index 000000000..a3fe0f178 --- /dev/null +++ b/assets/chunks/toml.BT9ZzGyQ.js @@ -0,0 +1,69 @@ +const n=Object.freeze({displayName:"TOML",fileTypes:["toml"],name:"toml",patterns:[{include:"#comments"},{include:"#groups"},{include:"#key_pair"},{include:"#invalid"}],repository:{comments:{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.toml"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.toml"}},end:"\\n",name:"comment.line.number-sign.toml"}]},groups:{patterns:[{captures:{1:{name:"punctuation.definition.section.begin.toml"},2:{patterns:[{match:"[^\\s.]+",name:"entity.name.section.toml"}]},3:{name:"punctuation.definition.section.begin.toml"}},match:"^\\s*(\\[)([^\\[\\]]*)(\\])",name:"meta.group.toml"},{captures:{1:{name:"punctuation.definition.section.begin.toml"},2:{patterns:[{match:"[^\\s.]+",name:"entity.name.section.toml"}]},3:{name:"punctuation.definition.section.begin.toml"}},match:"^\\s*(\\[\\[)([^\\[\\]]*)(\\]\\])",name:"meta.group.double.toml"}]},invalid:{match:"\\S+(\\s*(?=\\S))?",name:"invalid.illegal.not-allowed-here.toml"},key_pair:{patterns:[{begin:"([A-Za-z0-9_-]+)\\s*(=)\\s*",captures:{1:{name:"variable.other.key.toml"},2:{name:"punctuation.separator.key-value.toml"}},end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]},{begin:'((")(.*?)("))\\s*(=)\\s*',captures:{1:{name:"variable.other.key.toml"},2:{name:"punctuation.definition.variable.begin.toml"},3:{patterns:[{match:'\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',name:"constant.character.escape.toml"},{match:'\\\\[^btnfr"\\\\]',name:"invalid.illegal.escape.toml"},{match:'"',name:"invalid.illegal.not-allowed-here.toml"}]},4:{name:"punctuation.definition.variable.end.toml"},5:{name:"punctuation.separator.key-value.toml"}},end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]},{begin:"((')([^']*)('))\\s*(=)\\s*",captures:{1:{name:"variable.other.key.toml"},2:{name:"punctuation.definition.variable.begin.toml"},4:{name:"punctuation.definition.variable.end.toml"},5:{name:"punctuation.separator.key-value.toml"}},end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]},{begin:`(?x) +( +( +(?: +[A-Za-z0-9_-]+ +| " (?:[^"\\\\]|\\\\.)* " +| ' [^']* ' +) +(?: +\\s* \\. \\s* +| (?= \\s* =) +) +){2,} +) +\\s*(=)\\s* +`,captures:{1:{name:"variable.other.key.toml",patterns:[{match:"\\.",name:"punctuation.separator.variable.toml"},{captures:{1:{name:"punctuation.definition.variable.begin.toml"},2:{patterns:[{match:'\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',name:"constant.character.escape.toml"},{match:'\\\\[^btnfr"\\\\]',name:"invalid.illegal.escape.toml"}]},3:{name:"punctuation.definition.variable.end.toml"}},match:'(")((?:[^"\\\\]|\\\\.)*)(")'},{captures:{1:{name:"punctuation.definition.variable.begin.toml"},2:{name:"punctuation.definition.variable.end.toml"}},match:"(')[^']*(')"}]},3:{name:"punctuation.separator.key-value.toml"}},comment:"Dotted key",end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]}]},primatives:{patterns:[{begin:'\\G"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.toml"}},end:'"{3,5}',endCaptures:{0:{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.triple.double.toml",patterns:[{match:'\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',name:"constant.character.escape.toml"},{match:'\\\\[^btnfr"\\\\\\n]',name:"invalid.illegal.escape.toml"}]},{begin:'\\G"',beginCaptures:{0:{name:"punctuation.definition.string.begin.toml"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.double.toml",patterns:[{match:'\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',name:"constant.character.escape.toml"},{match:'\\\\[^btnfr"\\\\]',name:"invalid.illegal.escape.toml"}]},{begin:"\\G'''",beginCaptures:{0:{name:"punctuation.definition.string.begin.toml"}},end:"'{3,5}",endCaptures:{0:{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.triple.single.toml"},{begin:"\\G'",beginCaptures:{0:{name:"punctuation.definition.string.begin.toml"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.single.toml"},{match:`\\G(?x) +[0-9]{4} +- +(0[1-9]|1[012]) +- +(?!00|3[2-9])[0-3][0-9] +( +[Tt ] +(?!2[5-9])[0-2][0-9] +: +[0-5][0-9] +: +(?!6[1-9])[0-6][0-9] +(\\.[0-9]+)? +( +Z +| [+-](?!2[5-9])[0-2][0-9]:[0-5][0-9] +)? +)? +`,name:"constant.other.date.toml"},{match:`\\G(?x) +(?!2[5-9])[0-2][0-9] +: +[0-5][0-9] +: +(?!6[1-9])[0-6][0-9] +(\\.[0-9]+)? +`,name:"constant.other.time.toml"},{match:"\\G(true|false)",name:"constant.language.boolean.toml"},{match:"\\G0x\\h(\\h|_\\h)*",name:"constant.numeric.hex.toml"},{match:"\\G0o[0-7]([0-7]|_[0-7])*",name:"constant.numeric.octal.toml"},{match:"\\G0b[01]([01]|_[01])*",name:"constant.numeric.binary.toml"},{match:"\\G[+-]?(inf|nan)",name:"constant.numeric.toml"},{match:`(?x) +\\G +( +[+-]? +( +0 +| ([1-9](([0-9]|_[0-9])+)?) +) +) +(?=[.eE]) +( +\\. +([0-9](([0-9]|_[0-9])+)?) +)? +( +[eE] +([+-]?[0-9](([0-9]|_[0-9])+)?) +)? +`,name:"constant.numeric.float.toml"},{match:`(?x) +\\G +( +[+-]? +( +0 +| ([1-9](([0-9]|_[0-9])+)?) +) +) +`,name:"constant.numeric.integer.toml"},{begin:"\\G\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.toml"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.toml"}},name:"meta.array.toml",patterns:[{begin:`(?=["'']|[+-]?[0-9]|[+-]?(inf|nan)|true|false|\\[|\\{)`,end:",|(?=])",endCaptures:{0:{name:"punctuation.separator.array.toml"}},patterns:[{include:"#primatives"},{include:"#comments"},{include:"#invalid"}]},{include:"#comments"},{include:"#invalid"}]},{begin:"\\G\\{",beginCaptures:{0:{name:"punctuation.definition.inline-table.begin.toml"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.inline-table.end.toml"}},name:"meta.inline-table.toml",patterns:[{begin:"(?=\\S)",end:",|(?=})",endCaptures:{0:{name:"punctuation.separator.inline-table.toml"}},patterns:[{include:"#key_pair"}]},{include:"#comments"}]}]}},scopeName:"source.toml"});var e=[n];export{e as default}; diff --git a/assets/chunks/tsv.DnLUQrgA.js b/assets/chunks/tsv.DnLUQrgA.js new file mode 100644 index 000000000..e0dd753ea --- /dev/null +++ b/assets/chunks/tsv.DnLUQrgA.js @@ -0,0 +1 @@ +const t=Object.freeze({displayName:"TSV",fileTypes:["tsv","tab"],name:"tsv",patterns:[{captures:{1:{name:"rainbow1"},2:{name:"keyword.rainbow2"},3:{name:"entity.name.function.rainbow3"},4:{name:"comment.rainbow4"},5:{name:"string.rainbow5"},6:{name:"variable.parameter.rainbow6"},7:{name:"constant.numeric.rainbow7"},8:{name:"entity.name.type.rainbow8"},9:{name:"markup.bold.rainbow9"},10:{name:"invalid.rainbow10"}},match:"([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)",name:"rainbowgroup"}],scopeName:"text.tsv"});var a=[t];export{a as default}; diff --git a/assets/chunks/tsx.BlxWTfDV.js b/assets/chunks/tsx.BlxWTfDV.js new file mode 100644 index 000000000..cf98b7630 --- /dev/null +++ b/assets/chunks/tsx.BlxWTfDV.js @@ -0,0 +1,699 @@ +const e=Object.freeze({displayName:"TSX",name:"tsx",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{"access-modifier":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.tsx"},"after-operator-block-as-object-literal":{begin:"(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.objectliteral.tsx",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.tsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.tsx"}},name:"meta.array.literal.tsx",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{1:{name:"storage.modifier.async.tsx"},2:{name:"variable.parameter.tsx"}},match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)",name:"meta.arrow.tsx"},{begin:`(?x) (?: +(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync) +)? ((?<![})!\\]])\\s* +(?= + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +) +)`,beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.arrow.tsx",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.tsx"}},end:"((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",name:"meta.arrow.tsx",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"arrow-return-type":{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.return.type.arrow.tsx",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"async-modifier":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.async.tsx"},"binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern"},{include:"#array-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"}]},"binding-element-const":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern-const"},{include:"#array-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"}]},"boolean-literal":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.boolean.true.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.boolean.false.tsx"}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},cast:{patterns:[{include:"#jsx"}]},"class-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.class.tsx"}},end:"(?<=\\})",name:"meta.class.tsx",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{0:{name:"entity.name.type.class.tsx"}},match:"[_$[:alpha:]][_$[:alnum:]]*"},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"class-expression":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.type.class.tsx"}},end:"(?<=\\})",name:"meta.class.tsx",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-or-interface-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#decorator"},{begin:"(?<=:)\\s*",end:"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#field-declaration"},{include:"#string"},{include:"#type-annotation"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#property-accessor"},{include:"#async-modifier"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"class-or-interface-heritage":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.tsx"}},end:"(?=\\{)",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{include:"#type-parameters"},{include:"#expressionWithoutIdentifiers"},{captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)"},{captures:{1:{name:"entity.other.inherited-class.tsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)"},{include:"#expressionPunctuations"}]},comment:{patterns:[{begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.tsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.tsx"}},name:"comment.block.documentation.tsx",patterns:[{include:"#docblock"}]},{begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{1:{name:"punctuation.definition.comment.tsx"},2:{name:"storage.type.internaldeclaration.tsx"},3:{name:"punctuation.decorator.internaldeclaration.tsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.tsx"}},name:"comment.block.tsx"},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.tsx"},2:{name:"comment.line.double-slash.tsx"},3:{name:"punctuation.definition.comment.tsx"},4:{name:"storage.type.internaldeclaration.tsx"},5:{name:"punctuation.decorator.internaldeclaration.tsx"}},contentName:"comment.line.double-slash.tsx",end:"(?=$)"}]},"control-statement":{patterns:[{include:"#switch-statement"},{include:"#for-loop"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.trycatch.tsx"},{captures:{1:{name:"keyword.control.loop.tsx"},2:{name:"entity.name.label.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.loop.tsx"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.control.flow.tsx"}},end:"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.switch.tsx"},{include:"#if-statement"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.conditional.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.with.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.other.debugger.tsx"}]},"decl-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.block.tsx",patterns:[{include:"#statements"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.tsx"}]},decorator:{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@",beginCaptures:{0:{name:"punctuation.decorator.tsx"}},end:"(?=\\s)",name:"meta.decorator.tsx",patterns:[{include:"#expression"}]},"destructuring-const":{patterns:[{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.object-binding-pattern-variable.tsx",patterns:[{include:"#object-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]},{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.array-binding-pattern-variable.tsx",patterns:[{include:"#array-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-parameter":{patterns:[{begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},name:"meta.parameter.object-binding-pattern.tsx",patterns:[{include:"#parameter-object-binding-element"}]},{begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},name:"meta.paramter.array-binding-pattern.tsx",patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]}]},"destructuring-parameter-rest":{captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"variable.parameter.tsx"}},match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)"},"destructuring-variable":{patterns:[{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.object-binding-pattern-variable.tsx",patterns:[{include:"#object-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]},{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.array-binding-pattern-variable.tsx",patterns:[{include:"#array-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-variable-rest":{captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"meta.definition.variable.tsx variable.other.readwrite.tsx"}},match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)"},"destructuring-variable-rest-const":{captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"meta.definition.variable.tsx variable.other.constant.tsx"}},match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)"},directives:{begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.tsx"}},end:"(?=$)",name:"comment.line.triple-slash.directive.tsx",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.tsx"},2:{name:"entity.name.tag.directive.tsx"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.tsx"}},name:"meta.tag.tsx",patterns:[{match:"path|types|no-default-lib|lib|name|resolution-mode",name:"entity.other.attribute-name.directive.tsx"},{match:"=",name:"keyword.operator.assignment.tsx"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:`(?x) +((@)(?:access|api)) +\\s+ +(private|protected|public) +\\b`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:`(?x) +((@)author) +\\s+ +( +[^@\\s<>*/] +(?:[^@<>*/]|\\*[^/])* +) +(?: +\\s* +(<) +([^>\\s]+) +(>) +)?`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +((@)borrows) \\s+ +((?:[^@\\s*/]|\\*[^/])+) +\\s+ (as) \\s+ +((?:[^@\\s*/]|\\*[^/])+)`},{begin:"((@)example)\\s+",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=@|\\*/)",name:"meta.example.jsdoc",patterns:[{match:"^\\s\\*\\s+"},{begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},contentName:"constant.other.description.jsdoc",end:"(</)caption(>)|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{0:{name:"source.embedded.tsx"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +((@)see) +\\s+ +(?: + +( +(?=https?://) +(?:[^\\s*]|\\*[^/])+ +) +| + +( +(?! + +https?:// +| + +(?:\\[[^\\[\\]]*\\])? +{@(?:link|linkcode|linkplain|tutorial)\\b +) + +(?:[^@\\s*/]|\\*[^/])+ +) +)`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:`(?x) +((@)template) +\\s+ +# One or more valid identifiers +( +[A-Za-z_$] +[\\w$.\\[\\]]* +(?: +\\s* , \\s* +[A-Za-z_$] +[\\w$.\\[\\]]* +)* +)`},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:`(?x) +( +(@) +(?:arg|argument|const|constant|member|namespace|param|var) +) +\\s+ +( +[A-Za-z_$] +[\\w$.\\[\\]]* +)`},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"(?:[^@\\s*/]|\\*[^/])+",name:"entity.name.type.instance.jsdoc"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"},{captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.tsx"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:`(?x) +(\\[)\\s* +[\\w$]+ +(?: +(?:\\[\\])? +\\. +[\\w$]+ +)* +(?: +\\s* +(=) +\\s* +( + +(?> +"(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?" | +'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | +\\[ (?:(?:\\*(?!/))|[^*])*? \\] | +(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* +)* +) +)? +\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,name:"variable.other.jsdoc"}]},{begin:`(?x) +( +(@) +(?:define|enum|exception|export|extends|lends|implements|modifies +|namespace|private|protected|returns?|satisfies|suppress|this|throws|type +|yields?) +) +\\s+(?={)`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +( +(@) +(?:alias|augments|callback|constructs|emits|event|fires|exports? +|extends|external|function|func|host|lends|listens|interface|memberof!? +|method|module|mixes|mixin|name|requires|see|this|typedef|uses) +) +\\s+ +( +(?: +[^{}@\\s*] | \\*[^/] +)+ +)`},{begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)"}]},"enum-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.enum.tsx"},5:{name:"entity.name.type.enum.tsx"}},end:"(?<=\\})",name:"meta.enum.declaration.tsx",patterns:[{include:"#comment"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{0:{name:"variable.other.enummember.tsx"}},end:"(?=,|\\}|$)",patterns:[{include:"#comment"},{include:"#variable-initializer"}]},{begin:"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))",end:"(?=,|\\}|$)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#comment"},{include:"#variable-initializer"}]},{include:"#punctuation-comma"}]}]},"export-declaration":{patterns:[{captures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.as.tsx"},3:{name:"storage.type.namespace.tsx"},4:{name:"entity.name.type.module.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.type.tsx"},3:{name:"keyword.operator.assignment.tsx"},4:{name:"keyword.control.default.tsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.export.default.tsx",patterns:[{include:"#interface-declaration"},{include:"#expression"}]},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.type.tsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.export.tsx",patterns:[{include:"#import-export-declaration"}]}]},expression:{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{captures:{1:{name:"storage.modifier.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)"},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:`(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s* +# function assignment | +(=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | +(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)"},{include:"#type-annotation"},{include:"#variable-initializer"},{match:",",name:"punctuation.separator.parameter.tsx"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-operators":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.flow.tsx"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)",beginCaptures:{1:{name:"keyword.control.flow.tsx"}},end:"\\*",endCaptures:{0:{name:"keyword.generator.asterisk.tsx"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.control.flow.tsx"},2:{name:"keyword.generator.asterisk.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.delete.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()",name:"keyword.operator.expression.in.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()",name:"keyword.operator.expression.of.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.instanceof.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.new.tsx"},{include:"#typeof-operator"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.void.tsx"},{captures:{1:{name:"keyword.control.as.tsx"},2:{name:"storage.modifier.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.tsx"},2:{name:"keyword.control.satisfies.tsx"}},end:"(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))",patterns:[{include:"#type"}]},{match:"\\.\\.\\.",name:"keyword.operator.spread.tsx"},{match:"\\*=|(?<!\\()/=|%=|\\+=|\\-=",name:"keyword.operator.assignment.compound.tsx"},{match:"\\&=|\\^=|<<=|>>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.tsx"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.tsx"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.tsx"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.tsx"},{captures:{1:{name:"keyword.operator.logical.tsx"},2:{name:"keyword.operator.assignment.compound.tsx"},3:{name:"keyword.operator.arithmetic.tsx"}},match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.tsx"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.tsx"},{match:"\\=",name:"keyword.operator.assignment.tsx"},{match:"--",name:"keyword.operator.decrement.tsx"},{match:"\\+\\+",name:"keyword.operator.increment.tsx"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.tsx"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.tsx"},2:{name:"keyword.operator.arithmetic.tsx"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.operator.assignment.compound.tsx"},2:{name:"keyword.operator.arithmetic.tsx"}},match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#jsx"},{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:`(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))`,beginCaptures:{1:{name:"storage.modifier.tsx"}},end:`(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})`,name:"meta.field.declaration.tsx",patterns:[{include:"#variable-initializer"},{include:"#type-annotation"},{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{include:"#comment"},{captures:{1:{name:"meta.definition.property.tsx entity.name.function.tsx"},2:{name:"keyword.operator.optional.tsx"},3:{name:"keyword.operator.definiteassignment.tsx"}},match:`(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s* +# function assignment | +(=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | +(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{match:"\\#?[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.property.tsx variable.object.property.tsx"},{match:"\\?",name:"keyword.operator.optional.tsx"},{match:"\\!",name:"keyword.operator.definiteassignment.tsx"}]},"for-loop":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())",beginCaptures:{0:{name:"keyword.control.loop.tsx"}},end:"(?<=\\))",patterns:[{include:"#comment"},{match:"await",name:"keyword.control.loop.tsx"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#var-expr"},{include:"#expression"},{include:"#punctuation-semicolon"}]}]},"function-body":{patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#return-type"},{include:"#type-function-return-type"},{include:"#decl-block"},{match:"\\*",name:"keyword.generator.asterisk.tsx"}]},"function-call":{patterns:[{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",name:"meta.function-call.tsx",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",name:"meta.function-call.tsx",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:"\\?\\.",name:"meta.function-call.tsx punctuation.accessor.optional.tsx"},{match:"\\!",name:"meta.function-call.tsx keyword.operator.definiteassignment.tsx"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.tsx"}]},"function-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.async.tsx"},4:{name:"storage.type.function.tsx"},5:{name:"keyword.generator.asterisk.tsx"},6:{name:"meta.definition.function.tsx entity.name.function.tsx"}},end:"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})",name:"meta.function.tsx",patterns:[{include:"#function-name"},{include:"#function-body"}]},"function-expression":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.function.tsx"},3:{name:"keyword.generator.asterisk.tsx"},4:{name:"meta.definition.function.tsx entity.name.function.tsx"}},end:"(?=;)|(?<=\\})",name:"meta.function.expression.tsx",patterns:[{include:"#function-name"},{include:"#single-line-comment-consuming-line-ending"},{include:"#function-body"}]},"function-name":{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.function.tsx entity.name.function.tsx"},"function-parameters":{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.tsx"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.tsx"}},name:"meta.parameters.tsx",patterns:[{include:"#function-parameters-body"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{include:"#parameter-name"},{include:"#parameter-type-annotation"},{include:"#variable-initializer"},{match:",",name:"punctuation.separator.parameter.tsx"}]},identifiers:{patterns:[{include:"#object-identifiers"},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"entity.name.function.tsx"}},match:`(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +))`},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.constant.property.tsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.property.tsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",name:"variable.other.constant.tsx"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.other.readwrite.tsx"}]},"if-statement":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))",end:"(?=;|$|\\})",patterns:[{include:"#comment"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.conditional.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},{begin:"(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},name:"string.regexp.tsx",patterns:[{include:"#regexp"}]},{include:"#statements"}]}]},"import-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"}},end:"(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)",name:"meta.import.tsx",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#string"},{begin:`(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*["'])`,end:"\\bfrom\\b",endCaptures:{0:{name:"keyword.control.from.tsx"}},patterns:[{include:"#import-export-declaration"}]},{include:"#import-export-declaration"}]},"import-equals-declaration":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"},5:{name:"variable.other.readwrite.alias.tsx"},6:{name:"keyword.operator.assignment.tsx"},7:{name:"keyword.control.require.tsx"},8:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},name:"meta.import-equals.external.tsx",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"},5:{name:"variable.other.readwrite.alias.tsx"},6:{name:"keyword.operator.assignment.tsx"}},end:"(?=;|$|^)",name:"meta.import-equals.internal.tsx",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"variable.other.readwrite.tsx"}]}]},"import-export-assert-clause":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(with)|(assert))\\s*(\\{)",beginCaptures:{1:{name:"keyword.control.with.tsx"},2:{name:"keyword.control.assert.tsx"},3:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#string"},{match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object-literal.key.tsx"},{match:":",name:"punctuation.separator.key-value.tsx"}]},"import-export-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.block.tsx",patterns:[{include:"#import-export-clause"}]},"import-export-clause":{patterns:[{include:"#comment"},{captures:{1:{name:"keyword.control.type.tsx"},2:{name:"keyword.control.default.tsx"},3:{name:"constant.language.import-export-all.tsx"},4:{name:"variable.other.readwrite.tsx"},5:{name:"keyword.control.as.tsx"},6:{name:"keyword.control.default.tsx"},7:{name:"variable.other.readwrite.alias.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))"},{include:"#punctuation-comma"},{match:"\\*",name:"constant.language.import-export-all.tsx"},{match:"\\b(default)\\b",name:"keyword.control.default.tsx"},{captures:{1:{name:"keyword.control.type.tsx"},2:{name:"variable.other.readwrite.alias.tsx"}},match:"(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)"}]},"import-export-declaration":{patterns:[{include:"#comment"},{include:"#string"},{include:"#import-export-block"},{match:"\\bfrom\\b",name:"keyword.control.from.tsx"},{include:"#import-export-assert-clause"},{include:"#import-export-clause"}]},"indexer-declaration":{begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"meta.brace.square.tsx"},3:{name:"variable.parameter.tsx"}},end:"(\\])\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.tsx"},2:{name:"keyword.operator.optional.tsx"}},name:"meta.indexer.declaration.tsx",patterns:[{include:"#type-annotation"}]},"indexer-mapped-type-declaration":{begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+",beginCaptures:{1:{name:"keyword.operator.type.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"meta.brace.square.tsx"},4:{name:"entity.name.type.tsx"},5:{name:"keyword.operator.expression.in.tsx"}},end:"(\\])([+-])?\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.tsx"},2:{name:"keyword.operator.type.modifier.tsx"},3:{name:"keyword.operator.optional.tsx"}},name:"meta.indexer.mappedtype.declaration.tsx",patterns:[{captures:{1:{name:"keyword.control.as.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+"},{include:"#type"}]},"inline-tags":{patterns:[{captures:{1:{name:"punctuation.definition.bracket.square.begin.jsdoc"},2:{name:"punctuation.definition.bracket.square.end.jsdoc"}},match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",name:"constant.other.description.jsdoc"},{begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"},2:{name:"storage.type.class.jsdoc"},3:{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{0:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},name:"entity.name.type.instance.jsdoc",patterns:[{captures:{1:{name:"variable.other.link.underline.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}},match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?"},{captures:{1:{name:"variable.other.description.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}},match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?"}]}]},"instanceof-expr":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.expression.instanceof.tsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",patterns:[{include:"#type"}]},"interface-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.interface.tsx"}},end:"(?<=\\})",name:"meta.interface.tsx",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{0:{name:"entity.name.type.interface.tsx"}},match:"[_$[:alpha:]][_$[:alnum:]]*"},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},jsdoctype:{patterns:[{begin:"\\G({)",beginCaptures:{0:{name:"entity.name.type.instance.jsdoc"},1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},contentName:"entity.name.type.instance.jsdoc",end:"((}))\\s*|(?=\\*/)",endCaptures:{1:{name:"entity.name.type.instance.jsdoc"},2:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},jsx:{patterns:[{include:"#jsx-tag-without-attributes-in-expression"},{include:"#jsx-tag-in-expression"}]},"jsx-children":{patterns:[{include:"#jsx-tag-without-attributes"},{include:"#jsx-tag"},{include:"#jsx-evaluated-code"},{include:"#jsx-entities"}]},"jsx-entities":{patterns:[{captures:{1:{name:"punctuation.definition.entity.tsx"},3:{name:"punctuation.definition.entity.tsx"}},match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.tsx"}]},"jsx-evaluated-code":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.tsx"}},contentName:"meta.embedded.expression.tsx",end:"\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.tsx"}},patterns:[{include:"#expression"}]},"jsx-string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.tsx"}},name:"string.quoted.double.tsx",patterns:[{include:"#jsx-entities"}]},"jsx-string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.tsx"}},name:"string.quoted.single.tsx",patterns:[{include:"#jsx-entities"}]},"jsx-tag":{begin:"(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",end:"(/>)|(?:(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",endCaptures:{1:{name:"punctuation.definition.tag.end.tsx"},2:{name:"punctuation.definition.tag.begin.tsx"},3:{name:"entity.name.tag.namespace.tsx"},4:{name:"punctuation.separator.namespace.tsx"},5:{name:"entity.name.tag.tsx"},6:{name:"support.class.component.tsx"},7:{name:"punctuation.definition.tag.end.tsx"}},name:"meta.tag.tsx",patterns:[{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.end.tsx"}},contentName:"meta.jsx.children.tsx",end:"(?=</)",patterns:[{include:"#jsx-children"}]}]},"jsx-tag-attribute-assignment":{match:`=(?=\\s*(?:'|"|{|/\\*|//|\\n))`,name:"keyword.operator.assignment.tsx"},"jsx-tag-attribute-name":{captures:{1:{name:"entity.other.attribute-name.namespace.tsx"},2:{name:"punctuation.separator.namespace.tsx"},3:{name:"entity.other.attribute-name.tsx"}},match:`(?x) +\\s* +(?:([_$[:alpha:]][-_$[:alnum:].]*)(:))? +([_$[:alpha:]][-_$[:alnum:]]*) +(?=\\s|=|/?>|/\\*|//)`},"jsx-tag-attributes":{begin:"\\s+",end:"(?=[/]?>)",name:"meta.tag.attributes.tsx",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attributes-illegal":{match:"\\S+",name:"invalid.illegal.attribute.tsx"},"jsx-tag-in-expression":{begin:`(?x) +(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s* +(?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) +(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))`,end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",patterns:[{include:"#jsx-tag"}]},"jsx-tag-without-attributes":{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"},6:{name:"punctuation.definition.tag.end.tsx"}},contentName:"meta.jsx.children.tsx",end:"(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"},6:{name:"punctuation.definition.tag.end.tsx"}},name:"meta.tag.without-attributes.tsx",patterns:[{include:"#jsx-children"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",patterns:[{include:"#jsx-tag-without-attributes"}]},label:{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{1:{name:"entity.name.label.tsx"},2:{name:"punctuation.separator.label.tsx"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{captures:{1:{name:"entity.name.label.tsx"},2:{name:"punctuation.separator.label.tsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"method-declaration":{patterns:[{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"storage.type.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"keyword.operator.new.tsx"},6:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:`(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"storage.type.property.tsx"},6:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])`,end:"(?=\\(|\\<)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.method.tsx entity.name.function.tsx"},{match:"\\?",name:"keyword.operator.optional.tsx"}]},"namespace-declaration":{begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.namespace.tsx"}},end:"(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.namespace.declaration.tsx",patterns:[{include:"#comment"},{include:"#string"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.type.module.tsx"},{include:"#punctuation-accessor"},{include:"#decl-block"}]},"new-expr":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.new.tsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",name:"new.expr.tsx",patterns:[{include:"#expression"}]},"null-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.null.tsx"},"numeric-literal":{patterns:[{captures:{1:{name:"storage.type.numeric.bigint.tsx"}},match:"\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)",name:"constant.numeric.hex.tsx"},{captures:{1:{name:"storage.type.numeric.bigint.tsx"}},match:"\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)",name:"constant.numeric.binary.tsx"},{captures:{1:{name:"storage.type.numeric.bigint.tsx"}},match:"\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)",name:"constant.numeric.octal.tsx"},{captures:{0:{name:"constant.numeric.decimal.tsx"},1:{name:"meta.delimiter.decimal.period.tsx"},2:{name:"storage.type.numeric.bigint.tsx"},3:{name:"meta.delimiter.decimal.period.tsx"},4:{name:"storage.type.numeric.bigint.tsx"},5:{name:"meta.delimiter.decimal.period.tsx"},6:{name:"storage.type.numeric.bigint.tsx"},7:{name:"storage.type.numeric.bigint.tsx"},8:{name:"meta.delimiter.decimal.period.tsx"},9:{name:"storage.type.numeric.bigint.tsx"},10:{name:"meta.delimiter.decimal.period.tsx"},11:{name:"storage.type.numeric.bigint.tsx"},12:{name:"meta.delimiter.decimal.period.tsx"},13:{name:"storage.type.numeric.bigint.tsx"},14:{name:"storage.type.numeric.bigint.tsx"}},match:`(?x) +(?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$)`}]},"numericConstant-literal":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.nan.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.infinity.tsx"}]},"object-binding-element":{patterns:[{include:"#comment"},{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element"}]},{include:"#object-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-const":{patterns:[{include:"#comment"},{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element-const"}]},{include:"#object-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-propertyName":{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(:)",endCaptures:{0:{name:"punctuation.destructuring.tsx"}},patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"variable.object.property.tsx"}]},"object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#object-binding-element"}]},"object-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#object-binding-element-const"}]},"object-identifiers":{patterns:[{match:"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))",name:"support.class.tsx"},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.constant.object.property.tsx"},4:{name:"variable.other.object.property.tsx"}},match:`(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?: +(\\#?[[:upper:]][_$[:digit:][:upper:]]*) | +(\\#?[_$[:alpha:]][_$[:alnum:]]*) +)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)`},{captures:{1:{name:"variable.other.constant.object.tsx"},2:{name:"variable.other.object.tsx"}},match:`(?x)(?: +([[:upper:]][_$[:digit:][:upper:]]*) | +([_$[:alpha:]][_$[:alnum:]]*) +)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)`}]},"object-literal":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.objectliteral.tsx",patterns:[{include:"#object-member"}]},"object-literal-method-declaration":{begin:`(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.property.tsx"},3:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:`(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.property.tsx"},3:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.tsx meta.object-literal.key.tsx",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",name:"meta.object.member.tsx meta.object-literal.key.tsx",patterns:[{include:"#comment"},{include:"#string"}]},{begin:`(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$)))`,end:"(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))",name:"meta.object.member.tsx meta.object-literal.key.tsx",patterns:[{include:"#comment"},{include:"#numeric-literal"}]},{begin:"(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])",end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#function-body"}]},{captures:{0:{name:"meta.object-literal.key.tsx"},1:{name:"constant.numeric.decimal.tsx"}},match:"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.tsx"},{captures:{0:{name:"meta.object-literal.key.tsx"},1:{name:"entity.name.function.tsx"}},match:`(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,name:"meta.object.member.tsx"},{captures:{0:{name:"meta.object-literal.key.tsx"}},match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.tsx"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.tsx"}},end:"(?=,|\\})",name:"meta.object.member.tsx",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.tsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.tsx"},{captures:{1:{name:"keyword.control.as.tsx"},2:{name:"storage.modifier.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))",name:"meta.object.member.tsx"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.tsx"},2:{name:"keyword.control.satisfies.tsx"}},end:"(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))",name:"meta.object.member.tsx",patterns:[{include:"#type"}]},{begin:"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)",end:"(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.tsx",patterns:[{include:"#expression"}]},{begin:":",beginCaptures:{0:{name:"meta.object-literal.key.tsx punctuation.separator.key-value.tsx"}},end:"(?=,|\\})",name:"meta.object.member.tsx",patterns:[{begin:"(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"parameter-name":{patterns:[{captures:{1:{name:"storage.modifier.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)"},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:`(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s* +# function assignment | +(=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | +(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)"}]},"parameter-object-binding-element":{patterns:[{include:"#comment"},{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#parameter-binding-element"},{include:"#paren-expression"}]},{include:"#parameter-object-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"parameter-object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#parameter-object-binding-element"}]},"parameter-type-annotation":{patterns:[{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?=[,)])|(?==[^>])",name:"meta.type.annotation.tsx",patterns:[{include:"#type"}]}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx"}},contentName:"meta.arrow.tsx meta.return.type.arrow.tsx",end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.type.property.tsx"},"punctuation-accessor":{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},"punctuation-comma":{match:",",name:"punctuation.separator.comma.tsx"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.tsx"},"qstring-double":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"invalid.illegal.newline.tsx"}},name:"string.quoted.double.tsx",patterns:[{include:"#string-character-escape"}]},"qstring-single":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"invalid.illegal.newline.tsx"}},name:"string.quoted.single.tsx",patterns:[{include:"#string-character-escape"}]},regex:{patterns:[{begin:"(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},name:"string.regexp.tsx",patterns:[{include:"#regexp"}]},{begin:"((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},name:"string.regexp.tsx",patterns:[{include:"#regexp"}]}]},"regex-character-class":{patterns:[{match:"\\\\[wWsSdDtrnvf]|\\.",name:"constant.other.character-class.regexp"},{match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})",name:"constant.character.numeric.regexp"},{match:"\\\\c[A-Z]",name:"constant.character.control.regexp"},{match:"\\\\.",name:"constant.character.escape.backslash.regexp"}]},regexp:{patterns:[{match:"\\\\[bB]|\\^|\\$",name:"keyword.control.anchor.regexp"},{captures:{0:{name:"keyword.other.back-reference.regexp"},1:{name:"variable.other.regexp"}},match:"\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))",beginCaptures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"punctuation.definition.group.assertion.regexp"},3:{name:"meta.assertion.look-ahead.regexp"},4:{name:"meta.assertion.negative-look-ahead.regexp"},5:{name:"meta.assertion.look-behind.regexp"},6:{name:"meta.assertion.negative-look-behind.regexp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.group.regexp"}},name:"meta.group.assertion.regexp",patterns:[{include:"#regexp"}]},{begin:"\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"return-type":{patterns:[{begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])(?=$|^|[{};,]|//)",name:"meta.return.type.tsx",patterns:[{include:"#return-type-core"}]},{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.return.type.tsx",patterns:[{include:"#return-type-core"}]}]},"return-type-core":{patterns:[{include:"#comment"},{begin:"(?<=[:|&])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},shebang:{captures:{1:{name:"punctuation.definition.comment.tsx"}},match:"\\A(#!).*(?=$)",name:"comment.line.shebang.tsx"},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.tsx"},2:{name:"comment.line.double-slash.tsx"},3:{name:"punctuation.definition.comment.tsx"},4:{name:"storage.type.internaldeclaration.tsx"},5:{name:"punctuation.decorator.internaldeclaration.tsx"}},contentName:"comment.line.double-slash.tsx",end:"(?=^)"},statements:{patterns:[{include:"#declaration"},{include:"#control-statement"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#label"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"}]},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"string-character-escape":{match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)",name:"constant.character.escape.tsx"},"super-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)",name:"variable.language.super.tsx"},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))",name:"keyword.operator.expression.import.tsx"}]},"support-objects":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)",name:"variable.language.arguments.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)",name:"support.class.promise.tsx"},{captures:{1:{name:"keyword.control.import.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"support.variable.property.importmeta.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)"},{captures:{1:{name:"keyword.operator.new.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"support.variable.property.target.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)"},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"support.variable.property.tsx"},4:{name:"support.constant.tsx"}},match:`(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?: +(?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\()) +| +(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))`},{captures:{1:{name:"support.type.object.module.tsx"},2:{name:"support.type.object.module.tsx"},3:{name:"punctuation.accessor.tsx"},4:{name:"punctuation.accessor.optional.tsx"},5:{name:"support.type.object.module.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)"}]},"switch-statement":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()",end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"switch-statement.expr.tsx",patterns:[{include:"#comment"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.switch.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},name:"switch-expression.expr.tsx",patterns:[{include:"#expression"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"(?=\\})",name:"switch-block.expr.tsx",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.switch.tsx"}},end:"(?=:)",name:"case-clause.expr.tsx",patterns:[{include:"#expression"}]},{begin:"(:)\\s*(\\{)",beginCaptures:{1:{name:"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx"},2:{name:"meta.block.tsx punctuation.definition.block.tsx"}},contentName:"meta.block.tsx",end:"\\}",endCaptures:{0:{name:"meta.block.tsx punctuation.definition.block.tsx"}},patterns:[{include:"#statements"}]},{captures:{0:{name:"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx"}},match:"(:)"},{include:"#statements"}]}]},template:{patterns:[{include:"#template-call"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"},2:{name:"string.template.tsx punctuation.definition.string.template.begin.tsx"}},contentName:"string.template.tsx",end:"`",endCaptures:{0:{name:"string.template.tsx punctuation.definition.string.template.end.tsx"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.tagged-template.tsx"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.tsx"}},contentName:"meta.embedded.line.tsx",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.tsx"}},name:"meta.template.expression.tsx",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"},2:{name:"string.template.tsx punctuation.definition.string.template.begin.tsx"}},contentName:"string.template.tsx",end:"`",endCaptures:{0:{name:"string.template.tsx punctuation.definition.string.template.end.tsx"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.tsx"}},contentName:"meta.embedded.line.tsx",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.tsx"}},name:"meta.template.expression.tsx",patterns:[{include:"#type"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.tsx"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.tsx"}},patterns:[{include:"#expression"}]},"this-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)",name:"variable.language.this.tsx"},type:{patterns:[{include:"#comment"},{include:"#type-string"},{include:"#numeric-literal"},{include:"#type-primitive"},{include:"#type-builtin-literals"},{include:"#type-parameters"},{include:"#type-tuple"},{include:"#type-object"},{include:"#type-operators"},{include:"#type-conditional"},{include:"#type-fn-type-parameters"},{include:"#type-paren-or-function-parameters"},{include:"#type-function-return-type"},{captures:{1:{name:"storage.modifier.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*"},{include:"#type-name"}]},"type-alias-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.type.tsx"},4:{name:"entity.name.type.alias.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.type.declaration.tsx",patterns:[{include:"#comment"},{include:"#type-parameters"},{begin:"(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"},2:{name:"keyword.control.intrinsic.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type"}]},{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type"}]}]},"type-annotation":{patterns:[{begin:"(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.tsx",patterns:[{include:"#type"}]},{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.tsx",patterns:[{include:"#type"}]}]},"type-arguments":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.tsx"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.tsx"}},name:"meta.type.parameters.tsx",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{0:{name:"keyword.operator.type.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#type"},{include:"#punctuation-comma"}]},"type-builtin-literals":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"support.type.builtin.tsx"},"type-conditional":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.tsx"}},end:"(?<=:)",patterns:[{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.tsx"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.tsx"}},patterns:[{include:"#type"}]},{include:"#type"}]}]},"type-fn-type-parameters":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)",beginCaptures:{1:{name:"meta.type.constructor.tsx storage.modifier.tsx"},2:{name:"meta.type.constructor.tsx keyword.control.new.tsx"}},end:"(?<=>)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.control.new.tsx"}},end:"(?<=\\))",name:"meta.type.constructor.tsx",patterns:[{include:"#function-parameters"}]},{begin:`(?x)( +(?= +[(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +) +) +)`,end:"(?<=\\))",name:"meta.type.function.tsx",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.tsx"}},end:"(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)",name:"meta.type.function.return.tsx",patterns:[{include:"#type-function-return-type-core"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.tsx"}},end:"(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.type.function.return.tsx",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-infer":{patterns:[{captures:{1:{name:"keyword.operator.expression.infer.tsx"},2:{name:"entity.name.type.tsx"},3:{name:"keyword.operator.expression.extends.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?",name:"meta.type.infer.tsx"}]},"type-name":{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)",captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx"}},contentName:"meta.type.parameters.tsx",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.tsx"},2:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx"}},contentName:"meta.type.parameters.tsx",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},patterns:[{include:"#type-arguments-body"}]},{captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"entity.name.type.tsx"}]},"type-object":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.object.type.tsx",patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.tsx"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.tsx"}},end:"(?=\\S)"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.keyof.tsx"},{match:"(\\?|\\:)",name:"keyword.operator.ternary.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()",name:"keyword.operator.expression.import.tsx"}]},"type-parameters":{begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.typeparameters.begin.tsx"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.tsx"}},name:"meta.type.parameters.tsx",patterns:[{include:"#comment"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.tsx"},{include:"#type"},{include:"#punctuation-comma"},{match:"(=)(?!>)",name:"keyword.operator.assignment.tsx"}]},"type-paren-or-function-parameters":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},name:"meta.type.paren.cover.tsx",patterns:[{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:`(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | +(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))`},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)"},{include:"#type-annotation"},{match:",",name:"punctuation.separator.parameter.tsx"},{include:"#type"}]},"type-predicate-operator":{patterns:[{captures:{1:{name:"keyword.operator.type.asserts.tsx"},2:{name:"variable.parameter.tsx variable.language.this.tsx"},3:{name:"variable.parameter.tsx"},4:{name:"keyword.operator.expression.is.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{captures:{1:{name:"keyword.operator.type.asserts.tsx"},2:{name:"variable.parameter.tsx variable.language.this.tsx"},3:{name:"variable.parameter.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.type.asserts.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.is.tsx"}]},"type-primitive":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"support.type.primitive.tsx"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"type-tuple":{begin:"\\[",beginCaptures:{0:{name:"meta.brace.square.tsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.tsx"}},name:"meta.type.tuple.tsx",patterns:[{match:"\\.\\.\\.",name:"keyword.operator.rest.tsx"},{captures:{1:{name:"entity.name.label.tsx"},2:{name:"keyword.operator.optional.tsx"},3:{name:"punctuation.separator.label.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)"},{include:"#type"},{include:"#punctuation-comma"}]},"typeof-operator":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.operator.expression.typeof.tsx"}},end:"(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.undefined.tsx"},"var-expr":{patterns:[{begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))",name:"meta.var.expr.tsx",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{1:{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))",name:"meta.var.expr.tsx",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{1:{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))",name:"meta.var.expr.tsx",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*((?!\\S)|(?=\\/\\/))",beginCaptures:{1:{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]}]},"var-single-const":{patterns:[{begin:`(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s* +# function assignment | +(=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | +(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable":{patterns:[{begin:`(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s* +# function assignment | +(=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | +(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | +( +[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] +) | +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,beginCaptures:{1:{name:"meta.definition.variable.tsx entity.name.function.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.readwrite.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{patterns:[{include:"#type-annotation"},{include:"#string"},{include:"#comment"}]},"variable-initializer":{patterns:[{begin:"(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#expression"}]},{begin:"(?<!=|!)(=)(?!=)",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)",patterns:[{include:"#expression"}]}]}},scopeName:"source.tsx"});var n=[e];export{n as default}; diff --git a/assets/chunks/turtle.C15OxdQ5.js b/assets/chunks/turtle.C15OxdQ5.js new file mode 100644 index 000000000..57d3af149 --- /dev/null +++ b/assets/chunks/turtle.C15OxdQ5.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Turtle",fileTypes:["turtle","ttl","acl"],name:"turtle",patterns:[{include:"#rule-constraint"},{include:"#iriref"},{include:"#prefix"},{include:"#prefixed-name"},{include:"#comment"},{include:"#special-predicate"},{include:"#literals"},{include:"#language-tag"}],repository:{boolean:{match:"\\b(?i:true|false)\\b",name:"constant.language.sparql"},comment:{match:"#.*$",name:"comment.line.number-sign.turtle"},integer:{match:"[+-]?(?:\\d+|[0-9]+\\.[0-9]*|\\.[0-9]+(?:[eE][+-]?\\d+)?)",name:"constant.numeric.turtle"},iriref:{match:'<[^\\x20-\\x20<>"{}|^`\\\\]*>',name:"entity.name.type.iriref.turtle"},"language-tag":{captures:{1:{name:"entity.name.class.turtle"}},match:"@(\\w+)",name:"meta.string-literal-language-tag.turtle"},literals:{patterns:[{include:"#string"},{include:"#numeric"},{include:"#boolean"}]},numeric:{patterns:[{include:"#integer"}]},prefix:{match:"(?i:@?base|@?prefix)\\s",name:"keyword.operator.turtle"},"prefixed-name":{captures:{1:{name:"storage.type.PNAME_NS.turtle"},2:{name:"support.variable.PN_LOCAL.turtle"}},match:"(\\w*:)(\\w*)",name:"constant.complex.turtle"},"rule-constraint":{begin:'(rule:content) (""")',beginCaptures:{1:{patterns:[{include:"#prefixed-name"}]},2:{name:"string.quoted.triple.turtle"}},end:'"""',endCaptures:{0:{name:"string.quoted.triple.turtle"}},name:"meta.rule-constraint.turtle",patterns:[{include:"source.srs"}]},"single-dquote-string-literal":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.turtle"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.turtle"}},name:"string.quoted.double.turtle",patterns:[{include:"#string-character-escape"}]},"single-squote-string-literal":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.turtle"}},end:"'",endCaptures:{1:{name:"punctuation.definition.string.end.turtle"},2:{name:"invalid.illegal.newline.turtle"}},name:"string.quoted.single.turtle",patterns:[{include:"#string-character-escape"}]},"special-predicate":{captures:{1:{name:"keyword.control.turtle"}},match:"\\s(a)\\s",name:"meta.specialPredicate.turtle"},string:{patterns:[{include:"#triple-squote-string-literal"},{include:"#triple-dquote-string-literal"},{include:"#single-squote-string-literal"},{include:"#single-dquote-string-literal"},{include:"#triple-tick-string-literal"}]},"string-character-escape":{match:"\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)",name:"constant.character.escape.turtle"},"triple-dquote-string-literal":{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.turtle"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.turtle"}},name:"string.quoted.triple.turtle",patterns:[{include:"#string-character-escape"}]},"triple-squote-string-literal":{begin:"'''",beginCaptures:{0:{name:"punctuation.definition.string.begin.turtle"}},end:"'''",endCaptures:{0:{name:"punctuation.definition.string.end.turtle"}},name:"string.quoted.triple.turtle",patterns:[{include:"#string-character-escape"}]},"triple-tick-string-literal":{begin:"```",beginCaptures:{0:{name:"punctuation.definition.string.begin.turtle"}},end:"```",endCaptures:{0:{name:"punctuation.definition.string.end.turtle"}},name:"string.quoted.triple.turtle",patterns:[{include:"#string-character-escape"}]}},scopeName:"source.turtle"});var t=[e];export{t as default}; diff --git a/assets/chunks/twig.C7WLmjjl.js b/assets/chunks/twig.C7WLmjjl.js new file mode 100644 index 000000000..d452ded5b --- /dev/null +++ b/assets/chunks/twig.C7WLmjjl.js @@ -0,0 +1,40 @@ +import t from"./css.CbYhyuC0.js";import e from"./javascript.Dch3xQiY.js";import n from"./scss.Dr-_CcBd.js";import i from"./php.DEqKwr-6.js";import a from"./python.DwuVtWc2.js";import s from"./ruby.BYVeyLWu.js";import"./html.CuK0VrWf.js";import"./xml.BzTcx3OS.js";import"./java.ClXEvkw9.js";import"./sql.DbK06e1c.js";import"./json.CupVZNk8.js";import"./c.RCJZWN-0.js";import"./shellscript.BZfs-ost.js";import"./lua.CHJYZA-p.js";const r=Object.freeze({displayName:"Twig",fileTypes:["twig","html.twig"],firstLineMatch:"<!(?i:DOCTYPE)|<(?i:html)|<\\?(?i:php)|\\{\\{|\\{%|\\{#",foldingStartMarker:`(?x) + (<(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)\\b.*?> + |<!--(?!.*--\\s*>) + |^<!--\\ \\#tminclude\\ (?>.*?-->)$ + |\\{%\\s+(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim) + )`,foldingStopMarker:`(?x) + (</(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)> + |^(?!.*?<!--).*?--\\s*> + |^<!--\\ end\\ tminclude\\ -->$ + |\\{%\\s+end(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim) + )`,name:"twig",patterns:[{begin:"(<)([a-zA-Z0-9:]++)(?=[^>]*></\\2>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.html"}},end:"(>(<)/)(\\2)(>)",endCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"meta.scope.between-tag-pair.html"},3:{name:"entity.name.tag.html"},4:{name:"punctuation.definition.tag.html"}},name:"meta.tag.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(<\\?)(xml)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.xml.html"}},end:"(\\?>)",name:"meta.tag.preprocessor.xml.html",patterns:[{include:"#tag-generic-attribute"},{include:"#string-double-quoted"},{include:"#string-single-quoted"}]},{begin:"<!--",captures:{0:{name:"punctuation.definition.comment.html"}},end:"--\\s*>",name:"comment.block.html",patterns:[{match:"--",name:"invalid.illegal.bad-comments-or-CDATA.html"},{include:"#embedded-code"}]},{begin:"<!",captures:{0:{name:"punctuation.definition.tag.html"}},end:">",name:"meta.tag.sgml.html",patterns:[{begin:"(?i:DOCTYPE)",captures:{1:{name:"entity.name.tag.doctype.html"}},end:"(?=>)",name:"meta.tag.sgml.doctype.html",patterns:[{match:'"[^">]*"',name:"string.quoted.double.doctype.identifiers-and-DTDs.html"}]},{begin:"\\[CDATA\\[",end:"]](?=>)",name:"constant.other.inline-data.html"},{match:"(\\s*)(?!--|>)\\S(\\s*)",name:"invalid.illegal.bad-comments-or-CDATA.html"}]},{include:"#embedded-code"},{begin:"(?:^\\s+)?(<)((?i:style))\\b(?![^>]*/>)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.style.html"},3:{name:"punctuation.definition.tag.html"}},end:"(</)((?i:style))(>)(?:\\s*\\n)?",name:"source.css.embedded.html",patterns:[{include:"#tag-stuff"},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"}},end:"(?=</(?i:style))",patterns:[{include:"#embedded-code"},{include:"source.css"}]}]},{begin:"(?:^\\s+)?(<)((?i:script))\\b(?![^>]*/>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.script.html"}},end:"(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?",endCaptures:{2:{name:"punctuation.definition.tag.html"}},name:"source.js.embedded.html",patterns:[{include:"#tag-stuff"},{begin:"(?<!</(?:script|SCRIPT))(>)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.script.html"}},end:"(</)((?i:script))",patterns:[{captures:{1:{name:"punctuation.definition.comment.js"}},match:"(//).*?((?=<\/script)|$\\n?)",name:"comment.line.double-slash.js"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.js"}},end:"\\*/|(?=<\/script)",name:"comment.block.js"},{include:"#php"},{include:"#twig-print-tag"},{include:"#twig-statement-tag"},{include:"#twig-comment-tag"},{include:"source.js"}]}]},{begin:`(?ix) + +(?<=\\{\\%\\sjs\\s\\%\\}|\\{\\%\\sincludejs\\s\\%\\}) +`,comment:'Add JS support to set tags that use the pattern "css" in their name',end:"(?ix)(?=\\{\\%\\sendjs\\s\\%\\}|\\{\\%\\sendincludejs\\s\\%\\})",name:"source.js.embedded.twig",patterns:[{include:"source.js"}]},{begin:`(?ix) +(?<=\\{\\%\\scss\\s\\%\\}|\\{\\%\\sincludecss\\s\\%\\}|\\{\\%\\sincludehirescss\\s\\%\\}) +`,comment:'Add CSS support to set tags that use the pattern "css" in their name',end:"(?ix)(?=\\{\\%\\sendcss\\s\\%\\}|\\{\\%\\sendincludecss\\s\\%\\}|\\{\\%\\sendincludehirescss\\s\\%\\})",name:"source.css.embedded.twig",patterns:[{include:"source.css"}]},{begin:`(?ix) +(?<=\\{\\%\\sscss\\s\\%\\}|\\{\\%\\sincludescss\\s\\%\\}|\\{\\%\\sincludehiresscss\\s\\%\\}) +`,comment:'Add SCSS support to set tags that use the pattern "scss" in their name',end:"(?ix)(?=\\{\\%\\sendscss\\s\\%\\}|\\{\\%\\sendincludescss\\s\\%\\}|\\{\\%\\sendincludehiresscss\\s\\%\\})",name:"source.css.scss.embedded.twig",patterns:[{include:"source.css.scss"}]},{begin:"(</?)((?i:body|head|html)\\b)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.structure.any.html"}},end:"(>)",name:"meta.tag.structure.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.block.any.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.block.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.inline.any.html"}},end:"((?: ?/)?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)([a-zA-Z0-9:]+)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.other.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.html",patterns:[{include:"#tag-stuff"}]},{include:"#entities"},{match:"<>",name:"invalid.illegal.incomplete.html"},{match:"<",name:"invalid.illegal.bad-angle-bracket.html"},{include:"#twig-print-tag"},{include:"#twig-statement-tag"},{include:"#twig-comment-tag"}],repository:{"embedded-code":{patterns:[{include:"#ruby"},{include:"#php"},{include:"#twig-print-tag"},{include:"#twig-statement-tag"},{include:"#twig-comment-tag"},{include:"#python"}]},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.html"},{match:"&",name:"invalid.illegal.bad-ampersand.html"}]},php:{begin:"(?=(^\\s*)?<\\?)",end:"(?!(^\\s*)?<\\?)",patterns:[{include:"source.php"}]},python:{begin:"(?:^\\s*)<\\?python(?!.*\\?>)",end:"\\?>(?:\\s*$\\n)?",name:"source.python.embedded.html",patterns:[{include:"source.python"}]},ruby:{patterns:[{begin:"<%+#",captures:{0:{name:"punctuation.definition.comment.erb"}},end:"%>",name:"comment.block.erb"},{begin:"<%+(?!>)=?",captures:{0:{name:"punctuation.section.embedded.ruby"}},end:"-?%>",name:"source.ruby.embedded.html",patterns:[{captures:{1:{name:"punctuation.definition.comment.ruby"}},match:"(#).*?(?=-?%>)",name:"comment.line.number-sign.ruby"},{include:"source.ruby"}]},{begin:"<\\?r(?!>)=?",captures:{0:{name:"punctuation.section.embedded.ruby.nitro"}},end:"-?\\?>",name:"source.ruby.nitro.embedded.html",patterns:[{captures:{1:{name:"punctuation.definition.comment.ruby.nitro"}},match:"(#).*?(?=-?\\?>)",name:"comment.line.number-sign.ruby.nitro"},{include:"source.ruby"}]}]},"string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"#embedded-code"},{include:"#entities"}]},"string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"#embedded-code"},{include:"#entities"}]},"tag-generic-attribute":{match:"\\b([a-zA-Z\\-:]+)",name:"entity.other.attribute-name.html"},"tag-id-attribute":{begin:"\\b(id)\\b\\s*(=)",captures:{1:{name:"entity.other.attribute-name.id.html"},2:{name:"punctuation.separator.key-value.html"}},end:`(?<='|")`,name:"meta.attribute-with-value.id.html",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"meta.toc-list.id.html",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"#embedded-code"},{include:"#entities"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"meta.toc-list.id.html",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"#embedded-code"},{include:"#entities"}]}]},"tag-stuff":{patterns:[{include:"#tag-id-attribute"},{include:"#tag-generic-attribute"},{include:"#string-double-quoted"},{include:"#string-single-quoted"},{include:"#embedded-code"}]},"twig-arrays":{begin:"(?<=[\\s\\(\\{\\[:,])\\[",beginCaptures:{0:{name:"punctuation.section.array.begin.twig"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.array.end.twig"}},name:"meta.array.twig",patterns:[{include:"#twig-arrays"},{include:"#twig-hashes"},{include:"#twig-constants"},{include:"#twig-operators"},{include:"#twig-strings"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{match:",",name:"punctuation.separator.object.twig"}]},"twig-comment-tag":{begin:"\\{#-?",beginCaptures:{0:{name:"punctuation.definition.comment.begin.twig"}},end:"-?#\\}",endCaptures:{0:{name:"punctuation.definition.comment.end.twig"}},name:"comment.block.twig"},"twig-constants":{patterns:[{match:"(?i)(?<=[\\s\\[\\(\\{:,])(?:true|false|null|none)(?=[\\s\\)\\]\\}\\,])",name:"constant.language.twig"},{match:"(?<=[\\s\\[\\(\\{:,]|\\.\\.|\\*\\*)[0-9]+(?:\\.[0-9]+)?(?=[\\s\\)\\]\\}\\,]|\\.\\.|\\*\\*)",name:"constant.numeric.twig"}]},"twig-filters":{captures:{1:{name:"support.function.twig"}},match:`(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\"]\\|)|\\{%\\sfilter\\s)(abs|capitalize|e(?:scape)?|first|join|(?:json|url)_encode|keys|last|length|lower|nl2br|number_format|raw|reverse|round|sort|striptags|title|trim|upper)(?=[\\s\\|\\]\\}\\):,]|\\.\\.|\\*\\*)`},"twig-filters-ud":{captures:{1:{name:"meta.function-call.other.twig"}},match:`(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\"]\\|)|\\{%\\sfilter\\s)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)`},"twig-filters-warg":{begin:`(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\"]\\|)|\\{%\\sfilter\\s)(batch|convert_encoding|date|date_modify|default|e(?:scape)?|format|join|merge|number_format|replace|round|slice|split|trim)(\\()`,beginCaptures:{1:{name:"support.function.twig"},2:{name:"punctuation.definition.parameters.begin.twig"}},contentName:"meta.function.arguments.twig",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-operators"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}]},"twig-filters-warg-ud":{begin:`(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\"]\\|)|\\{%\\sfilter\\s)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\()`,beginCaptures:{1:{name:"meta.function-call.other.twig"},2:{name:"punctuation.definition.parameters.begin.twig"}},contentName:"meta.function.arguments.twig",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}]},"twig-functions":{captures:{1:{name:"support.function.twig"}},match:"(?<=is\\s)(defined|empty|even|iterable|odd)"},"twig-functions-warg":{begin:"(?<=[\\s\\(\\[\\{:,])(attribute|block|constant|cycle|date|divisible by|dump|include|max|min|parent|random|range|same as|source|template_from_string)(\\()",beginCaptures:{1:{name:"support.function.twig"},2:{name:"punctuation.definition.parameters.begin.twig"}},contentName:"meta.function.arguments.twig",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"}]},"twig-hashes":{begin:"(?<=[\\s\\(\\{\\[:,])\\{",beginCaptures:{0:{name:"punctuation.section.hash.begin.twig"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.hash.end.twig"}},name:"meta.hash.twig",patterns:[{include:"#twig-hashes"},{include:"#twig-arrays"},{include:"#twig-constants"},{include:"#twig-operators"},{include:"#twig-strings"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{match:":",name:"punctuation.separator.key-value.twig"},{match:",",name:"punctuation.separator.object.twig"}]},"twig-keywords":{match:"(?<=\\s)((?:end)?(?:autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)|as|do|else|elseif|extends|flush|from|ignore missing|import|include|only|use|with)(?=\\s)",name:"keyword.control.twig"},"twig-macros":{begin:`(?x) +(?<=[\\s\\(\\[\\{:,]) +([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) +(?: +(\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) +)? +(\\() +`,beginCaptures:{1:{name:"meta.function-call.twig"},2:{name:"punctuation.separator.property.twig"},3:{name:"variable.other.property.twig"},4:{name:"punctuation.definition.parameters.begin.twig"}},contentName:"meta.function.arguments.twig",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-operators"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}]},"twig-objects":{captures:{1:{name:"variable.other.twig"}},match:"(?<=[\\s\\{\\[\\(:,])([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(?=[\\s\\}\\[\\]\\(\\)\\.\\|,:])"},"twig-operators":{patterns:[{captures:{1:{name:"keyword.operator.arithmetic.twig"}},match:"(?<=\\s)(\\+|-|//?|%|\\*\\*?)(?=\\s)"},{captures:{1:{name:"keyword.operator.assignment.twig"}},match:"(?<=\\s)(=|~)(?=\\s)"},{captures:{1:{name:"keyword.operator.bitwise.twig"}},match:"(?<=\\s)(b-(?:and|or|xor))(?=\\s)"},{captures:{1:{name:"keyword.operator.comparison.twig"}},match:"(?<=\\s)((?:!|=)=|<=?|>=?|(?:not )?in|is(?: not)?|(?:ends|starts) with|matches)(?=\\s)"},{captures:{1:{name:"keyword.operator.logical.twig"}},match:"(?<=\\s)(\\?|:|\\?:|\\?\\?|and|not|or)(?=\\s)"},{captures:{0:{name:"keyword.operator.other.twig"}},match:`(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)'"])\\.\\.(?=[a-zA-Z0-9_\\x{7f}-\\x{ff}'"])`},{captures:{0:{name:"keyword.operator.other.twig"}},match:`(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\}\\)'"])\\|(?=[a-zA-Z_\\x{7f}-\\x{ff}])`}]},"twig-print-tag":{begin:"\\{\\{-?",beginCaptures:{0:{name:"punctuation.section.tag.twig"}},end:"-?\\}\\}",endCaptures:{0:{name:"punctuation.section.tag.twig"}},name:"meta.tag.template.value.twig",patterns:[{include:"#twig-constants"},{include:"#twig-operators"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}]},"twig-properties":{patterns:[{captures:{1:{name:"punctuation.separator.property.twig"},2:{name:"variable.other.property.twig"}},match:`(?x) +(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}]) +(\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) +(?=[\\.\\s\\|\\[\\)\\]\\}:,]) +`},{begin:`(?x) +(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}]) +(\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) +(\\() +`,beginCaptures:{1:{name:"punctuation.separator.property.twig"},2:{name:"variable.other.property.twig"},3:{name:"punctuation.definition.parameters.begin.twig"}},contentName:"meta.function.arguments.twig",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"}]},{captures:{1:{name:"punctuation.section.array.begin.twig"},2:{name:"variable.other.property.twig"},3:{name:"punctuation.section.array.end.twig"},4:{name:"punctuation.section.array.begin.twig"},5:{name:"variable.other.property.twig"},6:{name:"punctuation.section.array.end.twig"},7:{name:"punctuation.section.array.begin.twig"},8:{name:"variable.other.property.twig"},9:{name:"punctuation.section.array.end.twig"}},match:`(?x) +(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]]) +(?: +(\\[)('[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*')(\\]) +|(\\[)("[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*")(\\]) +|(\\[)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\]) +) +`}]},"twig-statement-tag":{begin:"\\{%-?",beginCaptures:{0:{name:"punctuation.section.tag.twig"}},end:"-?%\\}",endCaptures:{0:{name:"punctuation.section.tag.twig"}},name:"meta.tag.template.block.twig",patterns:[{include:"#twig-constants"},{include:"#twig-keywords"},{include:"#twig-operators"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}]},"twig-strings":{patterns:[{begin:"(?:(?<!\\\\)|(?<=\\\\\\\\))'",beginCaptures:{0:{name:"punctuation.definition.string.begin.twig"}},end:"(?:(?<!\\\\)|(?<=\\\\\\\\))'",endCaptures:{0:{name:"punctuation.definition.string.end.twig"}},name:"string.quoted.single.twig"},{begin:'(?:(?<!\\\\)|(?<=\\\\\\\\))"',beginCaptures:{0:{name:"punctuation.definition.string.begin.twig"}},end:'(?:(?<!\\\\)|(?<=\\\\\\\\))"',endCaptures:{0:{name:"punctuation.definition.string.end.twig"}},name:"string.quoted.double.twig"}]}},scopeName:"text.html.twig",embeddedLangs:["css","javascript","scss","php","python","ruby"]});var C=[...t,...e,...n,...i,...a,...s,r];export{C as default}; diff --git a/assets/chunks/typescript.DC8MraHL.js b/assets/chunks/typescript.DC8MraHL.js new file mode 100644 index 000000000..c1284f05d --- /dev/null +++ b/assets/chunks/typescript.DC8MraHL.js @@ -0,0 +1,666 @@ +const e=Object.freeze({displayName:"TypeScript",name:"typescript",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{"access-modifier":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"},"after-operator-block-as-object-literal":{begin:"(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.objectliteral.ts",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.ts"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.ts"}},name:"meta.array.literal.ts",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{1:{name:"storage.modifier.async.ts"},2:{name:"variable.parameter.ts"}},match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)",name:"meta.arrow.ts"},{begin:`(?x) (?: +(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync) +)? ((?<![})!\\]])\\s* +(?= + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +) +)`,beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.arrow.ts",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.ts"}},end:"((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",name:"meta.arrow.ts",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"arrow-return-type":{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.return.type.arrow.ts",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"async-modifier":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.async.ts"},"binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern"},{include:"#array-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"}]},"binding-element-const":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern-const"},{include:"#array-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"}]},"boolean-literal":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.boolean.true.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.boolean.false.ts"}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},cast:{patterns:[{captures:{1:{name:"meta.brace.angle.ts"},2:{name:"storage.modifier.ts"},3:{name:"meta.brace.angle.ts"}},match:"\\s*(<)\\s*(const)\\s*(>)",name:"cast.expr.ts"},{begin:"(?:(?<!\\+\\+|--)(?<=^return|[^\\._$[:alnum:]]return|^throw|[^\\._$[:alnum:]]throw|^yield|[^\\._$[:alnum:]]yield|^await|[^\\._$[:alnum:]]await|^default|[^\\._$[:alnum:]]default|[=(,:>*?\\&\\|\\^]|[^_$[:alnum:]](?:\\+\\+|\\-\\-)|[^\\+]\\+|[^\\-]\\-))\\s*(<)(?!<?\\=)(?!\\s*$)",beginCaptures:{1:{name:"meta.brace.angle.ts"}},end:"(\\>)",endCaptures:{1:{name:"meta.brace.angle.ts"}},name:"cast.expr.ts",patterns:[{include:"#type"}]},{begin:"(?:(?<=^))\\s*(<)(?=[_$[:alpha:]][_$[:alnum:]]*\\s*>)",beginCaptures:{1:{name:"meta.brace.angle.ts"}},end:"(\\>)",endCaptures:{1:{name:"meta.brace.angle.ts"}},name:"cast.expr.ts",patterns:[{include:"#type"}]}]},"class-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.type.class.ts"}},end:"(?<=\\})",name:"meta.class.ts",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{0:{name:"entity.name.type.class.ts"}},match:"[_$[:alpha:]][_$[:alnum:]]*"},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"class-expression":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.type.class.ts"}},end:"(?<=\\})",name:"meta.class.ts",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-or-interface-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},patterns:[{include:"#comment"},{include:"#decorator"},{begin:"(?<=:)\\s*",end:"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#field-declaration"},{include:"#string"},{include:"#type-annotation"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#property-accessor"},{include:"#async-modifier"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"class-or-interface-heritage":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.ts"}},end:"(?=\\{)",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{include:"#type-parameters"},{include:"#expressionWithoutIdentifiers"},{captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)"},{captures:{1:{name:"entity.other.inherited-class.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)"},{include:"#expressionPunctuations"}]},comment:{patterns:[{begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.ts"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.ts"}},name:"comment.block.documentation.ts",patterns:[{include:"#docblock"}]},{begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{1:{name:"punctuation.definition.comment.ts"},2:{name:"storage.type.internaldeclaration.ts"},3:{name:"punctuation.decorator.internaldeclaration.ts"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.ts"}},name:"comment.block.ts"},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ts"},2:{name:"comment.line.double-slash.ts"},3:{name:"punctuation.definition.comment.ts"},4:{name:"storage.type.internaldeclaration.ts"},5:{name:"punctuation.decorator.internaldeclaration.ts"}},contentName:"comment.line.double-slash.ts",end:"(?=$)"}]},"control-statement":{patterns:[{include:"#switch-statement"},{include:"#for-loop"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.trycatch.ts"},{captures:{1:{name:"keyword.control.loop.ts"},2:{name:"entity.name.label.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.loop.ts"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.control.flow.ts"}},end:"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.switch.ts"},{include:"#if-statement"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.conditional.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.with.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.other.debugger.ts"}]},"decl-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.block.ts",patterns:[{include:"#statements"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"}]},decorator:{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@",beginCaptures:{0:{name:"punctuation.decorator.ts"}},end:"(?=\\s)",name:"meta.decorator.ts",patterns:[{include:"#expression"}]},"destructuring-const":{patterns:[{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.object-binding-pattern-variable.ts",patterns:[{include:"#object-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]},{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.array-binding-pattern-variable.ts",patterns:[{include:"#array-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-parameter":{patterns:[{begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.ts"}},name:"meta.parameter.object-binding-pattern.ts",patterns:[{include:"#parameter-object-binding-element"}]},{begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},name:"meta.paramter.array-binding-pattern.ts",patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]}]},"destructuring-parameter-rest":{captures:{1:{name:"keyword.operator.rest.ts"},2:{name:"variable.parameter.ts"}},match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)"},"destructuring-variable":{patterns:[{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.object-binding-pattern-variable.ts",patterns:[{include:"#object-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]},{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.array-binding-pattern-variable.ts",patterns:[{include:"#array-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-variable-rest":{captures:{1:{name:"keyword.operator.rest.ts"},2:{name:"meta.definition.variable.ts variable.other.readwrite.ts"}},match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)"},"destructuring-variable-rest-const":{captures:{1:{name:"keyword.operator.rest.ts"},2:{name:"meta.definition.variable.ts variable.other.constant.ts"}},match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)"},directives:{begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.ts"}},end:"(?=$)",name:"comment.line.triple-slash.directive.ts",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.ts"},2:{name:"entity.name.tag.directive.ts"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.ts"}},name:"meta.tag.ts",patterns:[{match:"path|types|no-default-lib|lib|name|resolution-mode",name:"entity.other.attribute-name.directive.ts"},{match:"=",name:"keyword.operator.assignment.ts"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:`(?x) +((@)(?:access|api)) +\\s+ +(private|protected|public) +\\b`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:`(?x) +((@)author) +\\s+ +( +[^@\\s<>*/] +(?:[^@<>*/]|\\*[^/])* +) +(?: +\\s* +(<) +([^>\\s]+) +(>) +)?`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +((@)borrows) \\s+ +((?:[^@\\s*/]|\\*[^/])+) +\\s+ (as) \\s+ +((?:[^@\\s*/]|\\*[^/])+)`},{begin:"((@)example)\\s+",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=@|\\*/)",name:"meta.example.jsdoc",patterns:[{match:"^\\s\\*\\s+"},{begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},contentName:"constant.other.description.jsdoc",end:"(</)caption(>)|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{0:{name:"source.embedded.ts"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +((@)see) +\\s+ +(?: + +( +(?=https?://) +(?:[^\\s*]|\\*[^/])+ +) +| + +( +(?! + +https?:// +| + +(?:\\[[^\\[\\]]*\\])? +{@(?:link|linkcode|linkplain|tutorial)\\b +) + +(?:[^@\\s*/]|\\*[^/])+ +) +)`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:`(?x) +((@)template) +\\s+ +# One or more valid identifiers +( +[A-Za-z_$] +[\\w$.\\[\\]]* +(?: +\\s* , \\s* +[A-Za-z_$] +[\\w$.\\[\\]]* +)* +)`},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:`(?x) +( +(@) +(?:arg|argument|const|constant|member|namespace|param|var) +) +\\s+ +( +[A-Za-z_$] +[\\w$.\\[\\]]* +)`},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"(?:[^@\\s*/]|\\*[^/])+",name:"entity.name.type.instance.jsdoc"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"},{captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.ts"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:`(?x) +(\\[)\\s* +[\\w$]+ +(?: +(?:\\[\\])? +\\. +[\\w$]+ +)* +(?: +\\s* +(=) +\\s* +( + +(?> +"(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?" | +'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | +\\[ (?:(?:\\*(?!/))|[^*])*? \\] | +(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* +)* +) +)? +\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,name:"variable.other.jsdoc"}]},{begin:`(?x) +( +(@) +(?:define|enum|exception|export|extends|lends|implements|modifies +|namespace|private|protected|returns?|satisfies|suppress|this|throws|type +|yields?) +) +\\s+(?={)`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) +( +(@) +(?:alias|augments|callback|constructs|emits|event|fires|exports? +|extends|external|function|func|host|lends|listens|interface|memberof!? +|method|module|mixes|mixin|name|requires|see|this|typedef|uses) +) +\\s+ +( +(?: +[^{}@\\s*] | \\*[^/] +)+ +)`},{begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)"}]},"enum-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.type.enum.ts"},5:{name:"entity.name.type.enum.ts"}},end:"(?<=\\})",name:"meta.enum.declaration.ts",patterns:[{include:"#comment"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},patterns:[{include:"#comment"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{0:{name:"variable.other.enummember.ts"}},end:"(?=,|\\}|$)",patterns:[{include:"#comment"},{include:"#variable-initializer"}]},{begin:"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))",end:"(?=,|\\}|$)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#comment"},{include:"#variable-initializer"}]},{include:"#punctuation-comma"}]}]},"export-declaration":{patterns:[{captures:{1:{name:"keyword.control.export.ts"},2:{name:"keyword.control.as.ts"},3:{name:"storage.type.namespace.ts"},4:{name:"entity.name.type.module.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"keyword.control.type.ts"},3:{name:"keyword.operator.assignment.ts"},4:{name:"keyword.control.default.ts"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.export.default.ts",patterns:[{include:"#interface-declaration"},{include:"#expression"}]},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"keyword.control.type.ts"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.export.ts",patterns:[{include:"#import-export-declaration"}]}]},expression:{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{captures:{1:{name:"storage.modifier.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"entity.name.function.ts variable.language.this.ts"},4:{name:"entity.name.function.ts"},5:{name:"keyword.operator.optional.ts"}},match:`(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s* +# function assignment | +(=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | +(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)"},{include:"#type-annotation"},{include:"#variable-initializer"},{match:",",name:"punctuation.separator.parameter.ts"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-operators":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.flow.ts"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)",beginCaptures:{1:{name:"keyword.control.flow.ts"}},end:"\\*",endCaptures:{0:{name:"keyword.generator.asterisk.ts"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.control.flow.ts"},2:{name:"keyword.generator.asterisk.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.delete.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()",name:"keyword.operator.expression.in.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()",name:"keyword.operator.expression.of.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.instanceof.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.new.ts"},{include:"#typeof-operator"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.void.ts"},{captures:{1:{name:"keyword.control.as.ts"},2:{name:"storage.modifier.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.ts"},2:{name:"keyword.control.satisfies.ts"}},end:"(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))",patterns:[{include:"#type"}]},{match:"\\.\\.\\.",name:"keyword.operator.spread.ts"},{match:"\\*=|(?<!\\()/=|%=|\\+=|\\-=",name:"keyword.operator.assignment.compound.ts"},{match:"\\&=|\\^=|<<=|>>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.ts"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.ts"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.ts"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.ts"},{captures:{1:{name:"keyword.operator.logical.ts"},2:{name:"keyword.operator.assignment.compound.ts"},3:{name:"keyword.operator.arithmetic.ts"}},match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.ts"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.ts"},{match:"\\=",name:"keyword.operator.assignment.ts"},{match:"--",name:"keyword.operator.decrement.ts"},{match:"\\+\\+",name:"keyword.operator.increment.ts"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.ts"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.ts"},2:{name:"keyword.operator.arithmetic.ts"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.operator.assignment.compound.ts"},2:{name:"keyword.operator.arithmetic.ts"}},match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:`(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))`,beginCaptures:{1:{name:"storage.modifier.ts"}},end:`(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})`,name:"meta.field.declaration.ts",patterns:[{include:"#variable-initializer"},{include:"#type-annotation"},{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{include:"#comment"},{captures:{1:{name:"meta.definition.property.ts entity.name.function.ts"},2:{name:"keyword.operator.optional.ts"},3:{name:"keyword.operator.definiteassignment.ts"}},match:`(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s* +# function assignment | +(=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | +(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{match:"\\#?[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.property.ts variable.object.property.ts"},{match:"\\?",name:"keyword.operator.optional.ts"},{match:"\\!",name:"keyword.operator.definiteassignment.ts"}]},"for-loop":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())",beginCaptures:{0:{name:"keyword.control.loop.ts"}},end:"(?<=\\))",patterns:[{include:"#comment"},{match:"await",name:"keyword.control.loop.ts"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#var-expr"},{include:"#expression"},{include:"#punctuation-semicolon"}]}]},"function-body":{patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#return-type"},{include:"#type-function-return-type"},{include:"#decl-block"},{match:"\\*",name:"keyword.generator.asterisk.ts"}]},"function-call":{patterns:[{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",name:"meta.function-call.ts",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",name:"meta.function-call.ts",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:"\\?\\.",name:"meta.function-call.ts punctuation.accessor.optional.ts"},{match:"\\!",name:"meta.function-call.ts keyword.operator.definiteassignment.ts"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.ts"}]},"function-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.async.ts"},4:{name:"storage.type.function.ts"},5:{name:"keyword.generator.asterisk.ts"},6:{name:"meta.definition.function.ts entity.name.function.ts"}},end:"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})",name:"meta.function.ts",patterns:[{include:"#function-name"},{include:"#function-body"}]},"function-expression":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"storage.type.function.ts"},3:{name:"keyword.generator.asterisk.ts"},4:{name:"meta.definition.function.ts entity.name.function.ts"}},end:"(?=;)|(?<=\\})",name:"meta.function.expression.ts",patterns:[{include:"#function-name"},{include:"#single-line-comment-consuming-line-ending"},{include:"#function-body"}]},"function-name":{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.function.ts entity.name.function.ts"},"function-parameters":{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.ts"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.ts"}},name:"meta.parameters.ts",patterns:[{include:"#function-parameters-body"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{include:"#parameter-name"},{include:"#parameter-type-annotation"},{include:"#variable-initializer"},{match:",",name:"punctuation.separator.parameter.ts"}]},identifiers:{patterns:[{include:"#object-identifiers"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"entity.name.function.ts"}},match:`(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +))`},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"variable.other.constant.property.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"variable.other.property.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",name:"variable.other.constant.ts"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.other.readwrite.ts"}]},"if-statement":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))",end:"(?=;|$|\\})",patterns:[{include:"#comment"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.conditional.ts"},2:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression"}]},{begin:"(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ts"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"keyword.other.ts"}},name:"string.regexp.ts",patterns:[{include:"#regexp"}]},{include:"#statements"}]}]},"import-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"keyword.control.import.ts"},4:{name:"keyword.control.type.ts"}},end:"(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)",name:"meta.import.ts",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#string"},{begin:`(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*["'])`,end:"\\bfrom\\b",endCaptures:{0:{name:"keyword.control.from.ts"}},patterns:[{include:"#import-export-declaration"}]},{include:"#import-export-declaration"}]},"import-equals-declaration":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"keyword.control.import.ts"},4:{name:"keyword.control.type.ts"},5:{name:"variable.other.readwrite.alias.ts"},6:{name:"keyword.operator.assignment.ts"},7:{name:"keyword.control.require.ts"},8:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},name:"meta.import-equals.external.ts",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"keyword.control.import.ts"},4:{name:"keyword.control.type.ts"},5:{name:"variable.other.readwrite.alias.ts"},6:{name:"keyword.operator.assignment.ts"}},end:"(?=;|$|^)",name:"meta.import-equals.internal.ts",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"variable.other.readwrite.ts"}]}]},"import-export-assert-clause":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(with)|(assert))\\s*(\\{)",beginCaptures:{1:{name:"keyword.control.with.ts"},2:{name:"keyword.control.assert.ts"},3:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},patterns:[{include:"#comment"},{include:"#string"},{match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object-literal.key.ts"},{match:":",name:"punctuation.separator.key-value.ts"}]},"import-export-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.block.ts",patterns:[{include:"#import-export-clause"}]},"import-export-clause":{patterns:[{include:"#comment"},{captures:{1:{name:"keyword.control.type.ts"},2:{name:"keyword.control.default.ts"},3:{name:"constant.language.import-export-all.ts"},4:{name:"variable.other.readwrite.ts"},5:{name:"keyword.control.as.ts"},6:{name:"keyword.control.default.ts"},7:{name:"variable.other.readwrite.alias.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))"},{include:"#punctuation-comma"},{match:"\\*",name:"constant.language.import-export-all.ts"},{match:"\\b(default)\\b",name:"keyword.control.default.ts"},{captures:{1:{name:"keyword.control.type.ts"},2:{name:"variable.other.readwrite.alias.ts"}},match:"(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)"}]},"import-export-declaration":{patterns:[{include:"#comment"},{include:"#string"},{include:"#import-export-block"},{match:"\\bfrom\\b",name:"keyword.control.from.ts"},{include:"#import-export-assert-clause"},{include:"#import-export-clause"}]},"indexer-declaration":{begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"meta.brace.square.ts"},3:{name:"variable.parameter.ts"}},end:"(\\])\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.ts"},2:{name:"keyword.operator.optional.ts"}},name:"meta.indexer.declaration.ts",patterns:[{include:"#type-annotation"}]},"indexer-mapped-type-declaration":{begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+",beginCaptures:{1:{name:"keyword.operator.type.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"meta.brace.square.ts"},4:{name:"entity.name.type.ts"},5:{name:"keyword.operator.expression.in.ts"}},end:"(\\])([+-])?\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.ts"},2:{name:"keyword.operator.type.modifier.ts"},3:{name:"keyword.operator.optional.ts"}},name:"meta.indexer.mappedtype.declaration.ts",patterns:[{captures:{1:{name:"keyword.control.as.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+"},{include:"#type"}]},"inline-tags":{patterns:[{captures:{1:{name:"punctuation.definition.bracket.square.begin.jsdoc"},2:{name:"punctuation.definition.bracket.square.end.jsdoc"}},match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",name:"constant.other.description.jsdoc"},{begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"},2:{name:"storage.type.class.jsdoc"},3:{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{0:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},name:"entity.name.type.instance.jsdoc",patterns:[{captures:{1:{name:"variable.other.link.underline.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}},match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?"},{captures:{1:{name:"variable.other.description.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}},match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?"}]}]},"instanceof-expr":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.expression.instanceof.ts"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",patterns:[{include:"#type"}]},"interface-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.type.interface.ts"}},end:"(?<=\\})",name:"meta.interface.ts",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{0:{name:"entity.name.type.interface.ts"}},match:"[_$[:alpha:]][_$[:alnum:]]*"},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},jsdoctype:{patterns:[{begin:"\\G({)",beginCaptures:{0:{name:"entity.name.type.instance.jsdoc"},1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},contentName:"entity.name.type.instance.jsdoc",end:"((}))\\s*|(?=\\*/)",endCaptures:{1:{name:"entity.name.type.instance.jsdoc"},2:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},label:{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{1:{name:"entity.name.label.ts"},2:{name:"punctuation.separator.label.ts"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{captures:{1:{name:"entity.name.label.ts"},2:{name:"punctuation.separator.label.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"method-declaration":{patterns:[{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.modifier.async.ts"},5:{name:"storage.type.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.modifier.async.ts"},5:{name:"keyword.operator.new.ts"},6:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:`(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.modifier.async.ts"},5:{name:"storage.type.property.ts"},6:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])`,end:"(?=\\(|\\<)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.method.ts entity.name.function.ts"},{match:"\\?",name:"keyword.operator.optional.ts"}]},"namespace-declaration":{begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.namespace.ts"}},end:"(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.namespace.declaration.ts",patterns:[{include:"#comment"},{include:"#string"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.type.module.ts"},{include:"#punctuation-accessor"},{include:"#decl-block"}]},"new-expr":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.new.ts"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",name:"new.expr.ts",patterns:[{include:"#expression"}]},"null-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.null.ts"},"numeric-literal":{patterns:[{captures:{1:{name:"storage.type.numeric.bigint.ts"}},match:"\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)",name:"constant.numeric.hex.ts"},{captures:{1:{name:"storage.type.numeric.bigint.ts"}},match:"\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)",name:"constant.numeric.binary.ts"},{captures:{1:{name:"storage.type.numeric.bigint.ts"}},match:"\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)",name:"constant.numeric.octal.ts"},{captures:{0:{name:"constant.numeric.decimal.ts"},1:{name:"meta.delimiter.decimal.period.ts"},2:{name:"storage.type.numeric.bigint.ts"},3:{name:"meta.delimiter.decimal.period.ts"},4:{name:"storage.type.numeric.bigint.ts"},5:{name:"meta.delimiter.decimal.period.ts"},6:{name:"storage.type.numeric.bigint.ts"},7:{name:"storage.type.numeric.bigint.ts"},8:{name:"meta.delimiter.decimal.period.ts"},9:{name:"storage.type.numeric.bigint.ts"},10:{name:"meta.delimiter.decimal.period.ts"},11:{name:"storage.type.numeric.bigint.ts"},12:{name:"meta.delimiter.decimal.period.ts"},13:{name:"storage.type.numeric.bigint.ts"},14:{name:"storage.type.numeric.bigint.ts"}},match:`(?x) +(?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$)`}]},"numericConstant-literal":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.nan.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.infinity.ts"}]},"object-binding-element":{patterns:[{include:"#comment"},{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element"}]},{include:"#object-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-const":{patterns:[{include:"#comment"},{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element-const"}]},{include:"#object-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-propertyName":{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(:)",endCaptures:{0:{name:"punctuation.destructuring.ts"}},patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"variable.object.property.ts"}]},"object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.ts"}},patterns:[{include:"#object-binding-element"}]},"object-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.ts"}},patterns:[{include:"#object-binding-element-const"}]},"object-identifiers":{patterns:[{match:"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))",name:"support.class.ts"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"variable.other.constant.object.property.ts"},4:{name:"variable.other.object.property.ts"}},match:`(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?: +(\\#?[[:upper:]][_$[:digit:][:upper:]]*) | +(\\#?[_$[:alpha:]][_$[:alnum:]]*) +)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)`},{captures:{1:{name:"variable.other.constant.object.ts"},2:{name:"variable.other.object.ts"}},match:`(?x)(?: +([[:upper:]][_$[:digit:][:upper:]]*) | +([_$[:alpha:]][_$[:alnum:]]*) +)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)`}]},"object-literal":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.objectliteral.ts",patterns:[{include:"#object-member"}]},"object-literal-method-declaration":{begin:`(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"storage.type.property.ts"},3:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:`(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"storage.type.property.ts"},3:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.ts meta.object-literal.key.ts",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",name:"meta.object.member.ts meta.object-literal.key.ts",patterns:[{include:"#comment"},{include:"#string"}]},{begin:`(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$)))`,end:"(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))",name:"meta.object.member.ts meta.object-literal.key.ts",patterns:[{include:"#comment"},{include:"#numeric-literal"}]},{begin:"(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])",end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#function-body"}]},{captures:{0:{name:"meta.object-literal.key.ts"},1:{name:"constant.numeric.decimal.ts"}},match:"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.ts"},{captures:{0:{name:"meta.object-literal.key.ts"},1:{name:"entity.name.function.ts"}},match:`(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,name:"meta.object.member.ts"},{captures:{0:{name:"meta.object-literal.key.ts"}},match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.ts"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.ts"}},end:"(?=,|\\})",name:"meta.object.member.ts",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.ts"},{captures:{1:{name:"keyword.control.as.ts"},2:{name:"storage.modifier.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))",name:"meta.object.member.ts"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.ts"},2:{name:"keyword.control.satisfies.ts"}},end:"(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))",name:"meta.object.member.ts",patterns:[{include:"#type"}]},{begin:"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)",end:"(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.ts",patterns:[{include:"#expression"}]},{begin:":",beginCaptures:{0:{name:"meta.object-literal.key.ts punctuation.separator.key-value.ts"}},end:"(?=,|\\})",name:"meta.object.member.ts",patterns:[{begin:"(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"parameter-name":{patterns:[{captures:{1:{name:"storage.modifier.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"entity.name.function.ts variable.language.this.ts"},4:{name:"entity.name.function.ts"},5:{name:"keyword.operator.optional.ts"}},match:`(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s* +# function assignment | +(=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | +(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)"}]},"parameter-object-binding-element":{patterns:[{include:"#comment"},{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| +(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| +(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) +)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#parameter-binding-element"},{include:"#paren-expression"}]},{include:"#parameter-object-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"parameter-object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.ts"}},patterns:[{include:"#parameter-object-binding-element"}]},"parameter-type-annotation":{patterns:[{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?=[,)])|(?==[^>])",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts"}},contentName:"meta.arrow.ts meta.return.type.arrow.ts",end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.type.property.ts"},"punctuation-accessor":{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},"punctuation-comma":{match:",",name:"punctuation.separator.comma.ts"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.ts"},"qstring-double":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.ts"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"invalid.illegal.newline.ts"}},name:"string.quoted.double.ts",patterns:[{include:"#string-character-escape"}]},"qstring-single":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.ts"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"invalid.illegal.newline.ts"}},name:"string.quoted.single.ts",patterns:[{include:"#string-character-escape"}]},regex:{patterns:[{begin:"(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.ts"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"keyword.other.ts"}},name:"string.regexp.ts",patterns:[{include:"#regexp"}]},{begin:"((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ts"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"keyword.other.ts"}},name:"string.regexp.ts",patterns:[{include:"#regexp"}]}]},"regex-character-class":{patterns:[{match:"\\\\[wWsSdDtrnvf]|\\.",name:"constant.other.character-class.regexp"},{match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})",name:"constant.character.numeric.regexp"},{match:"\\\\c[A-Z]",name:"constant.character.control.regexp"},{match:"\\\\.",name:"constant.character.escape.backslash.regexp"}]},regexp:{patterns:[{match:"\\\\[bB]|\\^|\\$",name:"keyword.control.anchor.regexp"},{captures:{0:{name:"keyword.other.back-reference.regexp"},1:{name:"variable.other.regexp"}},match:"\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))",beginCaptures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"punctuation.definition.group.assertion.regexp"},3:{name:"meta.assertion.look-ahead.regexp"},4:{name:"meta.assertion.negative-look-ahead.regexp"},5:{name:"meta.assertion.look-behind.regexp"},6:{name:"meta.assertion.negative-look-behind.regexp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.group.regexp"}},name:"meta.group.assertion.regexp",patterns:[{include:"#regexp"}]},{begin:"\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"return-type":{patterns:[{begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])(?=$|^|[{};,]|//)",name:"meta.return.type.ts",patterns:[{include:"#return-type-core"}]},{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.return.type.ts",patterns:[{include:"#return-type-core"}]}]},"return-type-core":{patterns:[{include:"#comment"},{begin:"(?<=[:|&])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},shebang:{captures:{1:{name:"punctuation.definition.comment.ts"}},match:"\\A(#!).*(?=$)",name:"comment.line.shebang.ts"},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ts"},2:{name:"comment.line.double-slash.ts"},3:{name:"punctuation.definition.comment.ts"},4:{name:"storage.type.internaldeclaration.ts"},5:{name:"punctuation.decorator.internaldeclaration.ts"}},contentName:"comment.line.double-slash.ts",end:"(?=^)"},statements:{patterns:[{include:"#declaration"},{include:"#control-statement"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#label"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"}]},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"string-character-escape":{match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)",name:"constant.character.escape.ts"},"super-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)",name:"variable.language.super.ts"},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))",name:"keyword.operator.expression.import.ts"}]},"support-objects":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)",name:"variable.language.arguments.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)",name:"support.class.promise.ts"},{captures:{1:{name:"keyword.control.import.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"},4:{name:"support.variable.property.importmeta.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)"},{captures:{1:{name:"keyword.operator.new.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"},4:{name:"support.variable.property.target.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"support.variable.property.ts"},4:{name:"support.constant.ts"}},match:`(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?: +(?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\()) +| +(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))`},{captures:{1:{name:"support.type.object.module.ts"},2:{name:"support.type.object.module.ts"},3:{name:"punctuation.accessor.ts"},4:{name:"punctuation.accessor.optional.ts"},5:{name:"support.type.object.module.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)"}]},"switch-statement":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()",end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"switch-statement.expr.ts",patterns:[{include:"#comment"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.switch.ts"},2:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},name:"switch-expression.expr.ts",patterns:[{include:"#expression"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"(?=\\})",name:"switch-block.expr.ts",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.switch.ts"}},end:"(?=:)",name:"case-clause.expr.ts",patterns:[{include:"#expression"}]},{begin:"(:)\\s*(\\{)",beginCaptures:{1:{name:"case-clause.expr.ts punctuation.definition.section.case-statement.ts"},2:{name:"meta.block.ts punctuation.definition.block.ts"}},contentName:"meta.block.ts",end:"\\}",endCaptures:{0:{name:"meta.block.ts punctuation.definition.block.ts"}},patterns:[{include:"#statements"}]},{captures:{0:{name:"case-clause.expr.ts punctuation.definition.section.case-statement.ts"}},match:"(:)"},{include:"#statements"}]}]},template:{patterns:[{include:"#template-call"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.ts"},2:{name:"string.template.ts punctuation.definition.string.template.begin.ts"}},contentName:"string.template.ts",end:"`",endCaptures:{0:{name:"string.template.ts punctuation.definition.string.template.end.ts"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.tagged-template.ts"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.ts"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.ts"}},contentName:"meta.embedded.line.ts",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.ts"}},name:"meta.template.expression.ts",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.ts"},2:{name:"string.template.ts punctuation.definition.string.template.begin.ts"}},contentName:"string.template.ts",end:"`",endCaptures:{0:{name:"string.template.ts punctuation.definition.string.template.end.ts"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.ts"}},contentName:"meta.embedded.line.ts",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.ts"}},name:"meta.template.expression.ts",patterns:[{include:"#type"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.ts"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.ts"}},patterns:[{include:"#expression"}]},"this-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)",name:"variable.language.this.ts"},type:{patterns:[{include:"#comment"},{include:"#type-string"},{include:"#numeric-literal"},{include:"#type-primitive"},{include:"#type-builtin-literals"},{include:"#type-parameters"},{include:"#type-tuple"},{include:"#type-object"},{include:"#type-operators"},{include:"#type-conditional"},{include:"#type-fn-type-parameters"},{include:"#type-paren-or-function-parameters"},{include:"#type-function-return-type"},{captures:{1:{name:"storage.modifier.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*"},{include:"#type-name"}]},"type-alias-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.type.ts"},4:{name:"entity.name.type.alias.ts"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.type.declaration.ts",patterns:[{include:"#comment"},{include:"#type-parameters"},{begin:"(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.assignment.ts"},2:{name:"keyword.control.intrinsic.ts"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type"}]},{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.assignment.ts"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type"}]}]},"type-annotation":{patterns:[{begin:"(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]},{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]}]},"type-arguments":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.ts"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.ts"}},name:"meta.type.parameters.ts",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{0:{name:"keyword.operator.type.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#type"},{include:"#punctuation-comma"}]},"type-builtin-literals":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"support.type.builtin.ts"},"type-conditional":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.ts"}},end:"(?<=:)",patterns:[{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.ts"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.ts"}},patterns:[{include:"#type"}]},{include:"#type"}]}]},"type-fn-type-parameters":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)",beginCaptures:{1:{name:"meta.type.constructor.ts storage.modifier.ts"},2:{name:"meta.type.constructor.ts keyword.control.new.ts"}},end:"(?<=>)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.control.new.ts"}},end:"(?<=\\))",name:"meta.type.constructor.ts",patterns:[{include:"#function-parameters"}]},{begin:`(?x)( +(?= +[(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +) +) +)`,end:"(?<=\\))",name:"meta.type.function.ts",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.ts"}},end:"(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)",name:"meta.type.function.return.ts",patterns:[{include:"#type-function-return-type-core"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.ts"}},end:"(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.type.function.return.ts",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-infer":{patterns:[{captures:{1:{name:"keyword.operator.expression.infer.ts"},2:{name:"entity.name.type.ts"},3:{name:"keyword.operator.expression.extends.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?",name:"meta.type.infer.ts"}]},"type-name":{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)",captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"},4:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts"}},contentName:"meta.type.parameters.ts",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"}},patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.ts"},2:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts"}},contentName:"meta.type.parameters.ts",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"}},patterns:[{include:"#type-arguments-body"}]},{captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"entity.name.type.ts"}]},"type-object":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.object.type.ts",patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.ts"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.ts"}},end:"(?=\\S)"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.keyof.ts"},{match:"(\\?|\\:)",name:"keyword.operator.ternary.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()",name:"keyword.operator.expression.import.ts"}]},"type-parameters":{begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.typeparameters.begin.ts"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.ts"}},name:"meta.type.parameters.ts",patterns:[{include:"#comment"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"},{include:"#type"},{include:"#punctuation-comma"},{match:"(=)(?!>)",name:"keyword.operator.assignment.ts"}]},"type-paren-or-function-parameters":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},name:"meta.type.paren.cover.ts",patterns:[{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"entity.name.function.ts variable.language.this.ts"},4:{name:"entity.name.function.ts"},5:{name:"keyword.operator.optional.ts"}},match:`(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | +(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))`},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)"},{include:"#type-annotation"},{match:",",name:"punctuation.separator.parameter.ts"},{include:"#type"}]},"type-predicate-operator":{patterns:[{captures:{1:{name:"keyword.operator.type.asserts.ts"},2:{name:"variable.parameter.ts variable.language.this.ts"},3:{name:"variable.parameter.ts"},4:{name:"keyword.operator.expression.is.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{captures:{1:{name:"keyword.operator.type.asserts.ts"},2:{name:"variable.parameter.ts variable.language.this.ts"},3:{name:"variable.parameter.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.type.asserts.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.is.ts"}]},"type-primitive":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"support.type.primitive.ts"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"type-tuple":{begin:"\\[",beginCaptures:{0:{name:"meta.brace.square.ts"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.ts"}},name:"meta.type.tuple.ts",patterns:[{match:"\\.\\.\\.",name:"keyword.operator.rest.ts"},{captures:{1:{name:"entity.name.label.ts"},2:{name:"keyword.operator.optional.ts"},3:{name:"punctuation.separator.label.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)"},{include:"#type"},{include:"#punctuation-comma"}]},"typeof-operator":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.operator.expression.typeof.ts"}},end:"(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.undefined.ts"},"var-expr":{patterns:[{begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))",name:"meta.var.expr.ts",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?=\\S)"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{1:{name:"punctuation.separator.comma.ts"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))",name:"meta.var.expr.ts",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?=\\S)"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{1:{name:"punctuation.separator.comma.ts"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))",name:"meta.var.expr.ts",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?=\\S)"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*((?!\\S)|(?=\\/\\/))",beginCaptures:{1:{name:"punctuation.separator.comma.ts"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]}]},"var-single-const":{patterns:[{begin:`(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s* +# function assignment | +(=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | +(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,beginCaptures:{1:{name:"meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{1:{name:"meta.definition.variable.ts variable.other.constant.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable":{patterns:[{begin:`(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s* +# function assignment | +(=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)) | +# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => +(:\\s*( +(<) | +([(]\\s*( +([)]) | +(\\.\\.\\.) | +([_$[:alnum:]]+\\s*( +([:,?=])| +([)]\\s*=>) +)) +)) +)) | +(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | +(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | +(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( +((async\\s+)?( +(function\\s*[(<*]) | +(function\\s+) | +([_$[:alpha:]][_$[:alnum:]]*\\s*=>) +)) | +((async\\s*)?( +((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | + +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* +( +([)]\\s*:) | +((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) +) +) | + +# arrow function possible to detect only with => on same line +( +(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? +\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) +(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? +\\s*=> +) +)) +)))`,beginCaptures:{1:{name:"meta.definition.variable.ts entity.name.function.ts"},2:{name:"keyword.operator.definiteassignment.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.ts variable.other.constant.ts"},2:{name:"keyword.operator.definiteassignment.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.ts variable.other.readwrite.ts"},2:{name:"keyword.operator.definiteassignment.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{patterns:[{include:"#type-annotation"},{include:"#string"},{include:"#comment"}]},"variable-initializer":{patterns:[{begin:"(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.ts"}},end:"(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#expression"}]},{begin:"(?<!=|!)(=)(?!=)",beginCaptures:{1:{name:"keyword.operator.assignment.ts"}},end:"(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)",patterns:[{include:"#expression"}]}]}},scopeName:"source.ts",aliases:["ts"]});var n=[e];export{n as default}; diff --git a/assets/chunks/typst.I4qd5QHW.js b/assets/chunks/typst.I4qd5QHW.js new file mode 100644 index 000000000..5a34ac5cc --- /dev/null +++ b/assets/chunks/typst.I4qd5QHW.js @@ -0,0 +1,10 @@ +const t=Object.freeze({displayName:"Typst",name:"typst",patterns:[{include:"#markup"}],repository:{arguments:{patterns:[{match:"\\b[[:alpha:]_][[:alnum:]_-]*(?=:)",name:"variable.parameter.typst"},{include:"#code"}]},code:{patterns:[{include:"#common"},{begin:"{",captures:{0:{name:"punctuation.definition.block.code.typst"}},end:"}",name:"meta.block.code.typst",patterns:[{include:"#code"}]},{begin:"\\[",captures:{0:{name:"punctuation.definition.block.content.typst"}},end:"\\]",name:"meta.block.content.typst",patterns:[{include:"#markup"}]},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.typst"}},end:` +`,name:"comment.line.double-slash.typst"},{match:":",name:"punctuation.separator.colon.typst"},{match:",",name:"punctuation.separator.comma.typst"},{match:"=>|\\.\\.",name:"keyword.operator.typst"},{match:"==|!=|<=|<|>=|>",name:"keyword.operator.relational.typst"},{match:"\\+=|-=|\\*=|/=|=",name:"keyword.operator.assignment.typst"},{match:"\\+|\\*|/|(?<![[:alpha:]_][[:alnum:]_-]*)-(?![:alnum:]_-]*[[:alpha:]_])",name:"keyword.operator.arithmetic.typst"},{match:"\\b(and|or|not)\\b",name:"keyword.operator.word.typst"},{match:"\\b(let|as|in|set|show)\\b",name:"keyword.other.typst"},{match:"\\b(if|else)\\b",name:"keyword.control.conditional.typst"},{match:"\\b(for|while|break|continue)\\b",name:"keyword.control.loop.typst"},{match:"\\b(import|include|export)\\b",name:"keyword.control.import.typst"},{match:"\\b(return)\\b",name:"keyword.control.flow.typst"},{include:"#constants"},{comment:"Function name",match:"\\b[[:alpha:]_][[:alnum:]_-]*!?(?=\\[|\\()",name:"entity.name.function.typst"},{comment:"Function name",match:"(?<=\\bshow\\s*)\\b[[:alpha:]_][[:alnum:]_-]*(?=\\s*[:.])",name:"entity.name.function.typst"},{begin:"(?<=\\b[[:alpha:]_][[:alnum:]_-]*!?)\\(",captures:{0:{name:"punctuation.definition.group.typst"}},comment:"Function arguments",end:"\\)",patterns:[{include:"#arguments"}]},{match:"\\b[[:alpha:]_][[:alnum:]_-]*\\b",name:"variable.other.typst"},{begin:"\\(",captures:{0:{name:"punctuation.definition.group.typst"}},end:"\\)|(?=;)",name:"meta.group.typst",patterns:[{include:"#code"}]}]},comments:{patterns:[{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.typst"}},end:"\\*/",name:"comment.block.typst",patterns:[{include:"#comments"}]},{begin:"(?<!:)//",beginCaptures:{0:{name:"punctuation.definition.comment.typst"}},end:` +`,name:"comment.line.double-slash.typst",patterns:[{include:"#comments"}]}]},common:{patterns:[{include:"#comments"}]},constants:{patterns:[{match:"\\bnone\\b",name:"constant.language.none.typst"},{match:"\\bauto\\b",name:"constant.language.auto.typst"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.typst"},{match:"\\b(\\d*)?\\.?\\d+([eE][+-]?\\d+)?(mm|pt|cm|in|em)\\b",name:"constant.numeric.length.typst"},{match:"\\b(\\d*)?\\.?\\d+([eE][+-]?\\d+)?(rad|deg)\\b",name:"constant.numeric.angle.typst"},{match:"\\b(\\d*)?\\.?\\d+([eE][+-]?\\d+)?%",name:"constant.numeric.percentage.typst"},{match:"\\b(\\d*)?\\.?\\d+([eE][+-]?\\d+)?fr",name:"constant.numeric.fr.typst"},{match:"\\b\\d+\\b",name:"constant.numeric.integer.typst"},{match:"\\b(\\d*)?\\.?\\d+([eE][+-]?\\d+)?\\b",name:"constant.numeric.float.typst"},{begin:'"',captures:{0:{name:"punctuation.definition.string.typst"}},end:'"',name:"string.quoted.double.typst",patterns:[{match:'\\\\([\\\\"nrt]|u\\{?[0-9a-zA-Z]*\\}?)',name:"constant.character.escape.string.typst"}]},{begin:"\\$",captures:{0:{name:"punctuation.definition.string.math.typst"}},end:"\\$",name:"string.other.math.typst"}]},markup:{patterns:[{include:"#common"},{match:"\\\\([\\\\/\\[\\]{}#*_=~`$-.]|u\\{[0-9a-zA-Z]*\\}?)",name:"constant.character.escape.content.typst"},{match:"\\\\",name:"punctuation.definition.linebreak.typst"},{match:"~",name:"punctuation.definition.nonbreaking-space.typst"},{match:"-\\?",name:"punctuation.definition.shy.typst"},{match:"---",name:"punctuation.definition.em-dash.typst"},{match:"--",name:"punctuation.definition.en-dash.typst"},{match:"\\.\\.\\.",name:"punctuation.definition.ellipsis.typst"},{match:":([a-zA-Z0-9]+:)+",name:"constant.symbol.typst"},{begin:"(^\\*|\\*$|((?<=\\W|_)\\*)|(\\*(?=\\W|_)))",captures:{0:{name:"punctuation.definition.bold.typst"}},end:`(^\\*|\\*$|((?<=\\W|_)\\*)|(\\*(?=\\W|_)))| +|(?=\\])`,name:"markup.bold.typst",patterns:[{include:"#markup"}]},{begin:"(^_|_$|((?<=\\W|_)_)|(_(?=\\W|_)))",captures:{0:{name:"punctuation.definition.italic.typst"}},end:`(^_|_$|((?<=\\W|_)_)|(_(?=\\W|_)))| +|(?=\\])`,name:"markup.italic.typst",patterns:[{include:"#markup"}]},{match:"https?://[0-9a-zA-Z~/%#&=',;\\.\\+\\?]*",name:"markup.underline.link.typst"},{begin:"`{3,}",captures:{0:{name:"punctuation.definition.raw.typst"}},end:"\\0",name:"markup.raw.block.typst"},{begin:"`",captures:{0:{name:"punctuation.definition.raw.typst"}},end:"`",name:"markup.raw.inline.typst"},{begin:"\\$",captures:{0:{name:"punctuation.definition.string.math.typst"}},end:"\\$",name:"string.other.math.typst"},{begin:"^\\s*=+\\s+",beginCaptures:{0:{name:"punctuation.definition.heading.typst"}},contentName:"entity.name.section.typst",end:` +|(?=<)`,name:"markup.heading.typst",patterns:[{include:"#markup"}]},{match:"^\\s*-\\s+",name:"punctuation.definition.list.unnumbered.typst"},{match:"^\\s*([0-9]*\\.|\\+)\\s+",name:"punctuation.definition.list.numbered.typst"},{captures:{1:{name:"punctuation.definition.list.description.typst"},2:{name:"markup.list.term.typst"}},match:"^\\s*(/)\\s+([^:]*:)"},{captures:{1:{name:"punctuation.definition.label.typst"}},match:"<[[:alpha:]_][[:alnum:]_-]*>",name:"entity.other.label.typst"},{captures:{1:{name:"punctuation.definition.reference.typst"}},match:"(@)[[:alpha:]_][[:alnum:]_-]*",name:"entity.other.reference.typst"},{begin:"(#)(let|set|show)\\b",beginCaptures:{0:{name:"keyword.other.typst"},1:{name:"punctuation.definition.keyword.typst"}},end:` +|(;)|(?=])`,endCaptures:{1:{name:"punctuation.terminator.statement.typst"}},patterns:[{include:"#code"}]},{captures:{1:{name:"punctuation.definition.keyword.typst"}},match:"(#)(as|in)\\b",name:"keyword.other.typst"},{begin:"((#)if|(?<=(}|])\\s*)else)\\b",beginCaptures:{0:{name:"keyword.control.conditional.typst"},2:{name:"punctuation.definition.keyword.typst"}},end:` +|(?=])|(?<=}|])`,patterns:[{include:"#code"}]},{begin:"(#)(for|while)\\b",beginCaptures:{0:{name:"keyword.control.loop.typst"},1:{name:"punctuation.definition.keyword.typst"}},end:` +|(?=])|(?<=}|])`,patterns:[{include:"#code"}]},{captures:{1:{name:"punctuation.definition.keyword.typst"}},match:"(#)(break|continue)\\b",name:"keyword.control.loop.typst"},{begin:"(#)(import|include|export)\\b",beginCaptures:{0:{name:"keyword.control.import.typst"},1:{name:"punctuation.definition.keyword.typst"}},end:` +|(;)|(?=])`,endCaptures:{1:{name:"punctuation.terminator.statement.typst"}},patterns:[{include:"#code"}]},{captures:{1:{name:"punctuation.definition.keyword.typst"}},match:"(#)(return)\\b",name:"keyword.control.flow.typst"},{captures:{2:{name:"punctuation.definition.function.typst"}},comment:"Function name",match:"((#)[[:alpha:]_][[:alnum:]_-]*!?)(?=\\[|\\()",name:"entity.name.function.typst"},{begin:"(?<=#[[:alpha:]_][[:alnum:]_-]*!?)\\(",captures:{0:{name:"punctuation.definition.group.typst"}},comment:"Function arguments",end:"\\)",patterns:[{include:"#arguments"}]},{captures:{1:{name:"punctuation.definition.variable.typst"}},match:"(#)[[:alpha:]_][.[:alnum:]_-]*",name:"entity.other.interpolated.typst"},{begin:"#",end:"\\s",name:"meta.block.content.typst",patterns:[{include:"#code"}]}]}},scopeName:"source.typst",aliases:["typ"]});var n=[t];export{n as default}; diff --git a/assets/chunks/v.C2TBxDwV.js b/assets/chunks/v.C2TBxDwV.js new file mode 100644 index 000000000..6fa117a8b --- /dev/null +++ b/assets/chunks/v.C2TBxDwV.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"V",fileTypes:[".v",".vh",".vsh",".vv","v.mod"],name:"v",patterns:[{include:"#comments"},{include:"#function-decl"},{include:"#as-is"},{include:"#attributes"},{include:"#assignment"},{include:"#module-decl"},{include:"#import-decl"},{include:"#hash-decl"},{include:"#brackets"},{include:"#builtin-fix"},{include:"#escaped-fix"},{include:"#operators"},{include:"#function-limited-overload-decl"},{include:"#function-extend-decl"},{include:"#function-exist"},{include:"#generic"},{include:"#constants"},{include:"#type"},{include:"#enum"},{include:"#interface"},{include:"#struct"},{include:"#keywords"},{include:"#storage"},{include:"#numbers"},{include:"#strings"},{include:"#types"},{include:"#punctuations"},{include:"#variable-assign"},{include:"#function-decl"}],repository:{"as-is":{begin:"\\s+(as|is)\\s+",beginCaptures:{1:{name:"keyword.$1.v"}},end:"([\\w.]*)",endCaptures:{1:{name:"entity.name.alias.v"}}},assignment:{captures:{1:{patterns:[{include:"#operators"}]}},match:"\\s+((?:\\:|\\+|\\-|\\*|/|\\%|\\&|\\||\\^)?=)\\s+",name:"meta.definition.variable.v"},attributes:{captures:{1:{name:"meta.function.attribute.v"},2:{name:"punctuation.definition.begin.bracket.square.v"},3:{name:"storage.modifier.attribute.v"},4:{name:"punctuation.definition.end.bracket.square.v"}},match:"^\\s*((\\[)(deprecated|unsafe|console|heap|manualfree|typedef|live|inline|flag|ref_only|direct_array_access|callconv)(\\]))",name:"meta.definition.attribute.v"},brackets:{patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.definition.bracket.curly.begin.v"}},end:"}",endCaptures:{0:{name:"punctuation.definition.bracket.curly.end.v"}},patterns:[{include:"$self"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.bracket.round.begin.v"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.bracket.round.end.v"}},patterns:[{include:"$self"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.bracket.square.begin.v"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.bracket.square.end.v"}},patterns:[{include:"$self"}]}]},"builtin-fix":{patterns:[{patterns:[{match:"(const)(?=\\s*\\()",name:"storage.modifier.v"},{match:"\\b(fn|type|enum|struct|union|interface|map|assert|sizeof|typeof|__offsetof)\\b(?=\\s*\\()",name:"keyword.$1.v"}]},{patterns:[{match:"(\\$if|\\$else)(?=\\s*\\()",name:"keyword.control.v"},{match:"\\b(as|in|is|or|break|continue|default|unsafe|match|if|else|for|go|spawn|goto|defer|return|shared|select|rlock|lock|atomic|asm)\\b(?=\\s*\\()",name:"keyword.control.v"}]},{patterns:[{captures:{1:{name:"storage.type.numeric.v"}},match:"(?<!.)(i?(?:8|16|nt|64|128)|u?(?:16|32|64|128)|f?(?:32|64))(?=\\s*\\()",name:"meta.expr.numeric.cast.v"},{captures:{1:{name:"storage.type.$1.v"}},match:"(bool|byte|byteptr|charptr|voidptr|string|rune|size_t|[ui]size)(?=\\s*\\()",name:"meta.expr.bool.cast.v"}]}]},comments:{patterns:[{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.v"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.v"}},name:"comment.block.documentation.v",patterns:[{include:"#comments"}]},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.begin.v"}},end:"$",name:"comment.line.double-slash.v"}]},constants:{match:"\\b(true|false|none)\\b",name:"constant.language.v"},enum:{captures:{1:{name:"storage.modifier.$1.v"},2:{name:"storage.type.enum.v"},3:{name:"entity.name.enum.v"}},match:"^\\s*(?:(pub)?\\s+)?(enum)\\s+(?:\\w+\\.)?(\\w*)",name:"meta.definition.enum.v"},"function-decl":{captures:{1:{name:"storage.modifier.v"},2:{name:"keyword.fn.v"},3:{name:"entity.name.function.v"},4:{patterns:[{include:"#generic"}]}},match:"^(\\bpub\\b\\s+)?(\\bfn\\b)\\s+(?:\\([^\\)]+\\)\\s+)?(?:(?:C\\.)?)(\\w+)\\s*((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?",name:"meta.definition.function.v"},"function-exist":{captures:{0:{name:"meta.function.call.v"},1:{patterns:[{include:"#illegal-name"},{match:"\\w+",name:"entity.name.function.v"}]},2:{patterns:[{include:"#generic"}]}},match:"(\\w+)((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?(?=\\s*\\()",name:"meta.support.function.v"},"function-extend-decl":{captures:{1:{name:"storage.modifier.v"},2:{name:"keyword.fn.v"},3:{name:"punctuation.definition.bracket.round.begin.v"},4:{patterns:[{include:"#brackets"},{include:"#storage"},{include:"#generic"},{include:"#types"},{include:"#punctuation"}]},5:{name:"punctuation.definition.bracket.round.end.v"},6:{patterns:[{include:"#illegal-name"},{match:"\\w+",name:"entity.name.function.v"}]},7:{patterns:[{include:"#generic"}]}},match:"^\\s*(pub)?\\s*(fn)\\s*(\\()([^\\)]*)(\\))\\s*(?:(?:C\\.)?)(\\w+)\\s*((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?",name:"meta.definition.function.v"},"function-limited-overload-decl":{captures:{1:{name:"storage.modifier.v"},2:{name:"keyword.fn.v"},3:{name:"punctuation.definition.bracket.round.begin.v"},4:{patterns:[{include:"#brackets"},{include:"#storage"},{include:"#generic"},{include:"#types"},{include:"#punctuation"}]},5:{name:"punctuation.definition.bracket.round.end.v"},6:{patterns:[{include:"#operators"}]},7:{name:"punctuation.definition.bracket.round.begin.v"},8:{patterns:[{include:"#brackets"},{include:"#storage"},{include:"#generic"},{include:"#types"},{include:"#punctuation"}]},9:{name:"punctuation.definition.bracket.round.end.v"},10:{patterns:[{include:"#illegal-name"},{match:"\\w+",name:"entity.name.function.v"}]}},match:"^\\s*(pub)?\\s*(fn)\\s*(\\()([^\\)]*)(\\))\\s*([\\+\\-\\*\\/])?\\s*(\\()([^\\)]*)(\\))\\s*(?:(?:C\\.)?)(\\w+)",name:"meta.definition.function.v"},generic:{patterns:[{captures:{1:{name:"punctuation.definition.bracket.angle.begin.v"},2:{patterns:[{include:"#illegal-name"},{match:"\\w+",name:"entity.name.generic.v"}]},3:{name:"punctuation.definition.bracket.angle.end.v"}},match:"(?<=[\\w\\s+])(\\<)(\\w+)(\\>)",name:"meta.definition.generic.v"}]},"hash-decl":{begin:"^\\s*(#)",end:"$",name:"markup.bold.v"},"illegal-name":{match:"\\d\\w+",name:"invalid.illegal.v"},"import-decl":{begin:"^\\s*(import)\\s+",beginCaptures:{1:{name:"keyword.import.v"}},end:"([\\w.]+)",endCaptures:{1:{name:"entity.name.import.v"}},name:"meta.import.v"},interface:{captures:{1:{name:"storage.modifier.$1.v"},2:{name:"keyword.interface.v"},3:{patterns:[{include:"#illegal-name"},{match:"\\w+",name:"entity.name.interface.v"}]}},match:"^\\s*(?:(pub)?\\s+)?(interface)\\s+(\\w*)",name:"meta.definition.interface.v"},keywords:{patterns:[{match:"(\\$if|\\$else)",name:"keyword.control.v"},{match:"(?<!@)\\b(as|it|is|in|or|break|continue|default|unsafe|match|if|else|for|go|spawn|goto|defer|return|shared|select|rlock|lock|atomic|asm)\\b",name:"keyword.control.v"},{match:"(?<!@)\\b(fn|type|typeof|enum|struct|interface|map|assert|sizeof|__offsetof)\\b",name:"keyword.$1.v"}]},"module-decl":{begin:"^\\s*(module)\\s+",beginCaptures:{1:{name:"keyword.module.v"}},end:"([\\w.]+)",endCaptures:{1:{name:"entity.name.module.v"}},name:"meta.module.v"},numbers:{patterns:[{match:"([0-9]+(_?))+(\\.)([0-9]+[eE][-+]?[0-9]+)",name:"constant.numeric.exponential.v"},{match:"([0-9]+(_?))+(\\.)([0-9]+)",name:"constant.numeric.float.v"},{match:"(?:0b)(?:(?:[0-1]+)(?:_?))+",name:"constant.numeric.binary.v"},{match:"(?:0o)(?:(?:[0-7]+)(?:_?))+",name:"constant.numeric.octal.v"},{match:"(?:0x)(?:(?:[0-9a-fA-F]+)(?:_?))+",name:"constant.numeric.hex.v"},{match:"(?:(?:[0-9]+)(?:[_]?))+",name:"constant.numeric.integer.v"}]},operators:{patterns:[{match:"(\\+|\\-|\\*|\\/|\\%|\\+\\+|\\-\\-|\\>\\>|\\<\\<)",name:"keyword.operator.arithmetic.v"},{match:"(\\=\\=|\\!\\=|\\>|\\<|\\>\\=|\\<\\=)",name:"keyword.operator.relation.v"},{match:"(\\:\\=|\\=|\\+\\=|\\-\\=|\\*\\=|\\/\\=|\\%\\=|\\&\\=|\\|\\=|\\^\\=|\\~\\=|\\&\\&\\=|\\|\\|\\=|\\>\\>\\=|\\<\\<\\=)",name:"keyword.operator.assignment.v"},{match:"(\\&|\\||\\^|\\~|<(?!<)|>(?!>))",name:"keyword.operator.bitwise.v"},{match:"(\\&\\&|\\|\\||\\!)",name:"keyword.operator.logical.v"},{match:"\\?",name:"keyword.operator.optional.v"}]},punctuation:{patterns:[{match:"\\.",name:"punctuation.delimiter.period.dot.v"},{match:",",name:"punctuation.delimiter.comma.v"},{match:":",name:"punctuation.separator.key-value.colon.v"},{match:";",name:"punctuation.definition.other.semicolon.v"},{match:"\\?",name:"punctuation.definition.other.questionmark.v"},{match:"#",name:"punctuation.hash.v"}]},punctuations:{patterns:[{match:"(?:\\.)",name:"punctuation.accessor.v"},{match:"(?:,)",name:"punctuation.separator.comma.v"}]},storage:{match:"\\b(const|mut|pub)\\b",name:"storage.modifier.v"},"string-escaped-char":{patterns:[{match:`\\\\([0-7]{3}|[\\$abfnrtv\\\\'"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})`,name:"constant.character.escape.v"},{match:`\\\\[^0-7\\$xuUabfnrtv\\'"]`,name:"invalid.illegal.unknown-escape.v"}]},"string-interpolation":{captures:{1:{patterns:[{match:"\\$\\d[\\.\\w]+",name:"invalid.illegal.v"},{match:"\\$([\\.\\w]+|\\{.*?\\})",name:"variable.other.interpolated.v"}]}},match:"(\\$([\\w.]+|\\{.*?\\}))",name:"meta.string.interpolation.v"},"string-placeholder":{match:"%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGsp]",name:"constant.other.placeholder.v"},strings:{patterns:[{begin:"`",end:"`",name:"string.quoted.rune.v",patterns:[{include:"#string-escaped-char"},{include:"#string-interpolation"},{include:"#string-placeholder"}]},{begin:"(r)'",beginCaptures:{1:{name:"storage.type.string.v"}},end:"'",name:"string.quoted.raw.v",patterns:[{include:"#string-interpolation"},{include:"#string-placeholder"}]},{begin:'(r)"',beginCaptures:{1:{name:"storage.type.string.v"}},end:'"',name:"string.quoted.raw.v",patterns:[{include:"#string-interpolation"},{include:"#string-placeholder"}]},{begin:"(c?)'",beginCaptures:{1:{name:"storage.type.string.v"}},end:"'",name:"string.quoted.v",patterns:[{include:"#string-escaped-char"},{include:"#string-interpolation"},{include:"#string-placeholder"}]},{begin:'(c?)"',beginCaptures:{1:{name:"storage.type.string.v"}},end:'"',name:"string.quoted.v",patterns:[{include:"#string-escaped-char"},{include:"#string-interpolation"},{include:"#string-placeholder"}]}]},struct:{patterns:[{begin:"^\\s*(?:(mut|pub(?:\\s+mut)?|__global)\\s+)?(struct|union)\\s+([\\w.]+)\\s*|({)",beginCaptures:{1:{name:"storage.modifier.$1.v"},2:{name:"storage.type.struct.v"},3:{name:"entity.name.type.v"},4:{name:"punctuation.definition.bracket.curly.begin.v"}},end:"\\s*|(})",endCaptures:{1:{name:"punctuation.definition.bracket.curly.end.v"}},name:"meta.definition.struct.v",patterns:[{include:"#struct-access-modifier"},{captures:{1:{name:"variable.other.property.v"},2:{patterns:[{include:"#numbers"},{include:"#brackets"},{include:"#types"},{match:"\\w+",name:"storage.type.other.v"}]},3:{name:"keyword.operator.assignment.v"},4:{patterns:[{include:"$self"}]}},match:"\\b(\\w+)\\s+([\\w\\[\\]\\*&.]+)(?:\\s*(=)\\s*((?:.(?=$|//|/\\*))*+))?"},{include:"#types"},{include:"$self"}]},{captures:{1:{name:"storage.modifier.$1.v"},2:{name:"storage.type.struct.v"},3:{name:"entity.name.struct.v"}},match:"^\\s*(?:(mut|pub(?:\\s+mut)?|__global))\\s+?(struct)\\s+(?:\\s+([\\w.]+))?",name:"meta.definition.struct.v"}]},"struct-access-modifier":{captures:{1:{name:"storage.modifier.$1.v"},2:{name:"punctuation.separator.struct.key-value.v"}},match:"(?<=\\s|^)(mut|pub(?:\\s+mut)?|__global)(:|\\b)"},type:{captures:{1:{name:"storage.modifier.$1.v"},2:{name:"storage.type.type.v"},3:{patterns:[{include:"#illegal-name"},{include:"#types"},{match:"\\w+",name:"entity.name.type.v"}]},4:{patterns:[{include:"#illegal-name"},{include:"#types"},{match:"\\w+",name:"entity.name.type.v"}]}},match:"^\\s*(?:(pub)?\\s+)?(type)\\s+(\\w*)\\s+(?:\\w+\\.+)?(\\w*)",name:"meta.definition.type.v"},types:{patterns:[{match:"(?<!\\.)\\b(i(8|16|nt|64|128)|u(8|16|32|64|128)|f(32|64))\\b",name:"storage.type.numeric.v"},{match:"(?<!\\.)\\b(bool|byte|byteptr|charptr|voidptr|string|ustring|rune)\\b",name:"storage.type.$1.v"}]},"variable-assign":{captures:{0:{patterns:[{match:"[a-zA-Z_]\\w*",name:"variable.other.assignment.v"},{include:"#punctuation"}]}},match:"[a-zA-Z_]\\w*(?:,\\s*[a-zA-Z_]\\w*)*(?=\\s*(?:=|:=))"}},scopeName:"source.v"});var n=[e];export{n as default}; diff --git a/assets/chunks/vb.beD-FUib.js b/assets/chunks/vb.beD-FUib.js new file mode 100644 index 000000000..1f8fb4106 --- /dev/null +++ b/assets/chunks/vb.beD-FUib.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Visual Basic",name:"vb",patterns:[{match:"\\n",name:"meta.ending-space"},{include:"#round-brackets"},{begin:"^(?=\\t)",end:"(?=[^\\t])",name:"meta.leading-space",patterns:[{captures:{1:{name:"meta.odd-tab.tabs"},2:{name:"meta.even-tab.tabs"}},match:"(\\t)(\\t)?"}]},{begin:"^(?= )",end:"(?=[^ ])",name:"meta.leading-space",patterns:[{captures:{1:{name:"meta.odd-tab.spaces"},2:{name:"meta.even-tab.spaces"}},match:"( )( )?"}]},{captures:{1:{name:"storage.type.function.asp"},2:{name:"entity.name.function.asp"},3:{name:"punctuation.definition.parameters.asp"},4:{name:"variable.parameter.function.asp"},5:{name:"punctuation.definition.parameters.asp"}},match:"^\\s*((?i:function|sub))\\s*([a-zA-Z_]\\w*)\\s*(\\()([^)]*)(\\)).*\\n?",name:"meta.function.asp"},{begin:"(^[ \\t]+)?(?=')",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.asp"}},end:"(?!\\G)",patterns:[{begin:"'",beginCaptures:{0:{name:"punctuation.definition.comment.asp"}},end:"\\n",name:"comment.line.apostrophe.asp"}]},{match:"(?i:\\b(If|Then|Else|ElseIf|Else If|End If|While|Wend|For|To|Each|Case|Select|End Select|Return|Continue|Do|Until|Loop|Next|With|Exit Do|Exit For|Exit Function|Exit Property|Exit Sub|IIf)\\b)",name:"keyword.control.asp"},{match:"(?i:\\b(Mod|And|Not|Or|Xor|as)\\b)",name:"keyword.operator.asp"},{captures:{1:{name:"storage.type.asp"},2:{name:"variable.other.bfeac.asp"},3:{name:"meta.separator.comma.asp"}},match:"(?i:(dim)\\s*(?:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)\\s*(,?)))",name:"variable.other.dim.asp"},{match:"(?i:\\s*\\b(Call|Class|Const|Dim|Redim|Function|Sub|Private Sub|Public Sub|End Sub|End Function|End Class|End Property|Public Property|Private Property|Set|Let|Get|New|Randomize|Option Explicit|On Error Resume Next|On Error GoTo)\\b\\s*)",name:"storage.type.asp"},{match:"(?i:\\b(Private|Public|Default)\\b)",name:"storage.modifier.asp"},{match:"(?i:\\s*\\b(Empty|False|Nothing|Null|True)\\b)",name:"constant.language.asp"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.asp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.asp"}},name:"string.quoted.double.asp",patterns:[{match:'""',name:"constant.character.escape.apostrophe.asp"}]},{captures:{1:{name:"punctuation.definition.variable.asp"}},match:"(\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b\\s*",name:"variable.other.asp"},{match:"(?i:\\b(Application|ObjectContext|Request|Response|Server|Session)\\b)",name:"support.class.asp"},{match:"(?i:\\b(Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables)\\b)",name:"support.class.collection.asp"},{match:"(?i:\\b(TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout)\\b)",name:"support.constant.asp"},{match:"(?i:\\b(Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|End|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex)\\b)",name:"support.function.asp"},{match:"(?i:\\b(Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart)\\b)",name:"support.function.event.asp"},{match:"(?i:(?<=as )(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b))",name:"support.type.vb.asp"},{match:"(?i:\\b(Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year)\\b)",name:"support.function.vb.asp"},{match:"-?\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b",name:"constant.numeric.asp"},{match:"(?i:\\b(vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray)\\b)",name:"support.type.vb.asp"},{captures:{1:{name:"entity.name.function.asp"}},match:"(?i:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)(?=\\(\\)?))",name:"support.function.asp"},{match:"(?i:((?<=(\\+|=|-|\\&|\\\\|/|<|>|\\(|,))\\s*\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?!(\\(|\\.))|\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?=\\s*(\\+|=|-|\\&|\\\\|/|<|>|\\(|\\)))))",name:"variable.other.asp"},{match:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|/=|%=|\\+=|\\-=|&=|\\^=|\\b(in|instanceof|new|delete|typeof|void)\\b",name:"keyword.operator.js"}],repository:{"round-brackets":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.round-brackets.begin.asp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.round-brackets.end.asp"}},name:"meta.round-brackets",patterns:[{include:"source.asp.vb.net"}]}},scopeName:"source.asp.vb.net",aliases:["cmd"]});var a=[e];export{a as default}; diff --git a/assets/chunks/verilog.DVfdqzEq.js b/assets/chunks/verilog.DVfdqzEq.js new file mode 100644 index 000000000..f4ea58d51 --- /dev/null +++ b/assets/chunks/verilog.DVfdqzEq.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Verilog",fileTypes:["v","vh"],name:"verilog",patterns:[{include:"#comments"},{include:"#module_pattern"},{include:"#keywords"},{include:"#constants"},{include:"#strings"},{include:"#operators"}],repository:{comments:{patterns:[{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.verilog"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.verilog"}},end:"\\n",name:"comment.line.double-slash.verilog"}]},{begin:"/\\*",end:"\\*/",name:"comment.block.c-style.verilog"}]},constants:{patterns:[{match:"`(?!(celldefine|endcelldefine|default_nettype|define|undef|ifdef|ifndef|else|endif|include|resetall|timescale|unconnected_drive|nounconnected_drive))[a-z_A-Z][a-zA-Z0-9_$]*",name:"variable.other.constant.verilog"},{match:"[0-9]*'[bBoOdDhH][a-fA-F0-9_xXzZ]+\\b",name:"constant.numeric.sized_integer.verilog"},{captures:{1:{name:"constant.numeric.integer.verilog"},2:{name:"punctuation.separator.range.verilog"},3:{name:"constant.numeric.integer.verilog"}},match:"\\b(\\d+)(:)(\\d+)\\b",name:"meta.block.numeric.range.verilog"},{match:"\\b\\d[\\d_]*(?i:e\\d+)?\\b",name:"constant.numeric.integer.verilog"},{match:"\\b\\d+\\.\\d+(?i:e\\d+)?\\b",name:"constant.numeric.real.verilog"},{match:"#\\d+",name:"constant.numeric.delay.verilog"},{match:"\\b[01xXzZ]+\\b",name:"constant.numeric.logic.verilog"}]},instantiation_patterns:{patterns:[{include:"#keywords"},{begin:"^\\s*([a-zA-Z][a-zA-Z0-9_]*)\\s+([a-zA-Z][a-zA-Z0-9_]*)(?<!begin|if)\\s*(?=\\(|$)",beginCaptures:{1:{name:"entity.name.tag.module.reference.verilog"},2:{name:"entity.name.tag.module.identifier.verilog"}},end:";",endCaptures:{0:{name:"punctuation.terminator.expression.verilog"}},name:"meta.block.instantiation.parameterless.verilog",patterns:[{include:"#comments"},{include:"#constants"},{include:"#strings"}]},{begin:"^\\s*([a-zA-Z][a-zA-Z0-9_]*)\\s*(#)(?=\\s*\\()",beginCaptures:{1:{name:"entity.name.tag.module.reference.verilog"}},end:";",endCaptures:{0:{name:"punctuation.terminator.expression.verilog"}},name:"meta.block.instantiation.with.parameters.verilog",patterns:[{include:"#parenthetical_list"},{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"entity.name.tag.module.identifier.verilog"}]}]},keywords:{patterns:[{match:"\\b(always|and|assign|attribute|begin|buf|bufif0|bufif1|case[xz]?|cmos|deassign|default|defparam|disable|edge|else|end(attribute|case|function|generate|module|primitive|specify|table|task)?|event|for|force|forever|fork|function|generate|genvar|highz(01)|if(none)?|initial|inout|input|integer|join|localparam|medium|module|large|macromodule|nand|negedge|nmos|nor|not|notif(01)|or|output|parameter|pmos|posedge|primitive|pull0|pull1|pulldown|pullup|rcmos|real|realtime|reg|release|repeat|rnmos|rpmos|rtran|rtranif(01)|scalared|signed|small|specify|specparam|strength|strong0|strong1|supply0|supply1|table|task|time|tran|tranif(01)|tri(01)?|tri(and|or|reg)|unsigned|vectored|wait|wand|weak(01)|while|wire|wor|xnor|xor)\\b",name:"keyword.other.verilog"},{match:"^\\s*`((cell)?define|default_(decay_time|nettype|trireg_strength)|delay_mode_(path|unit|zero)|ifdef|ifndef|include|end(if|celldefine)|else|(no)?unconnected_drive|resetall|timescale|undef)\\b",name:"keyword.other.compiler.directive.verilog"},{match:"\\$(f(open|close)|readmem(b|h)|timeformat|printtimescale|stop|finish|(s|real)?time|realtobits|bitstoreal|rtoi|itor|(f)?(display|write(h|b)))\\b",name:"support.function.system.console.tasks.verilog"},{match:"\\$(random|dist_(chi_square|erlang|exponential|normal|poisson|t|uniform))\\b",name:"support.function.system.random_number.tasks.verilog"},{match:"\\$((a)?sync\\$((n)?and|(n)or)\\$(array|plane))\\b",name:"support.function.system.pld_modeling.tasks.verilog"},{match:"\\$(q_(initialize|add|remove|full|exam))\\b",name:"support.function.system.stochastic.tasks.verilog"},{match:"\\$(hold|nochange|period|recovery|setup(hold)?|skew|width)\\b",name:"support.function.system.timing.tasks.verilog"},{match:"\\$(dump(file|vars|off|on|all|limit|flush))\\b",name:"support.function.system.vcd.tasks.verilog"},{match:"\\$(countdrivers|list|input|scope|showscopes|(no)?(key|log)|reset(_count|_value)?|(inc)?save|restart|showvars|getpattern|sreadmem(b|h)|scale)",name:"support.function.non-standard.tasks.verilog"}]},module_pattern:{patterns:[{begin:"\\b(module)\\s+([a-zA-Z][a-zA-Z0-9_]*)",beginCaptures:{1:{name:"storage.type.module.verilog"},2:{name:"entity.name.type.module.verilog"}},end:"\\bendmodule\\b",endCaptures:{0:{name:"storage.type.module.verilog"}},name:"meta.block.module.verilog",patterns:[{include:"#comments"},{include:"#keywords"},{include:"#constants"},{include:"#strings"},{include:"#instantiation_patterns"},{include:"#operators"}]}]},operators:{patterns:[{match:"\\+|-|\\*|/|%|(<|>)=?|(!|=)?==?|!|&&?|\\|\\|?|\\^?~|~\\^?",name:"keyword.operator.verilog"}]},parenthetical_list:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.list.verilog"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.list.verilog"}},name:"meta.block.parenthetical_list.verilog",patterns:[{include:"#parenthetical_list"},{include:"#comments"},{include:"#keywords"},{include:"#constants"},{include:"#strings"}]}]},strings:{patterns:[{begin:'"',end:'"',name:"string.quoted.double.verilog",patterns:[{match:"\\\\.",name:"constant.character.escape.verilog"}]}]}},scopeName:"source.verilog"});var n=[e];export{n as default}; diff --git a/assets/chunks/vesper.BSB_bK09.js b/assets/chunks/vesper.BSB_bK09.js new file mode 100644 index 000000000..8040f8d7f --- /dev/null +++ b/assets/chunks/vesper.BSB_bK09.js @@ -0,0 +1 @@ +var t=Object.freeze({colors:{"activityBar.background":"#101010","activityBar.foreground":"#A0A0A0","activityBarBadge.background":"#FFC799","activityBarBadge.foreground":"#000","badge.background":"#FFC799","badge.foreground":"#000","button.background":"#FFC799","button.foreground":"#000","button.hoverBackground":"#FFCFA8","diffEditor.insertedLineBackground":"#99FFE415","diffEditor.insertedTextBackground":"#99FFE415","diffEditor.removedLineBackground":"#FF808015","diffEditor.removedTextBackground":"#FF808015","editor.background":"#101010","editor.foreground":"#FFF","editor.selectionBackground":"#FFFFFF25","editor.selectionHighlightBackground":"#FFFFFF25","editorBracketHighlight.foreground1":"#A0A0A0","editorBracketHighlight.foreground2":"#A0A0A0","editorBracketHighlight.foreground3":"#A0A0A0","editorBracketHighlight.foreground4":"#A0A0A0","editorBracketHighlight.foreground5":"#A0A0A0","editorBracketHighlight.foreground6":"#A0A0A0","editorBracketHighlight.unexpectedBracket.foreground":"#FF8080","editorError.foreground":"#FF8080","editorGroupHeader.tabsBackground":"#101010","editorGutter.addedBackground":"#99FFE4","editorGutter.deletedBackground":"#FF8080","editorGutter.modifiedBackground":"#FFC799","editorHoverWidget.background":"#161616","editorHoverWidget.border":"#282828","editorInlayHint.background":"#1C1C1C","editorInlayHint.foreground":"#A0A0A0","editorLineNumber.foreground":"#505050","editorOverviewRuler.border":"#101010","editorWarning.foreground":"#FFC799","editorWidget.background":"#101010",focusBorder:"#FFC799","icon.foreground":"#A0A0A0","input.background":"#1C1C1C","list.activeSelectionBackground":"#232323","list.activeSelectionForeground":"#FFC799","list.errorForeground":"#FF8080","list.highlightForeground":"#FFC799","list.hoverBackground":"#282828","list.inactiveSelectionBackground":"#232323","scrollbarSlider.background":"#34343480","scrollbarSlider.hoverBackground":"#343434","selection.background":"#666","settings.modifiedItemIndicator":"#FFC799","sideBar.background":"#101010","sideBarSectionHeader.background":"#101010","sideBarSectionHeader.foreground":"#A0A0A0","sideBarTitle.foreground":"#A0A0A0","statusBar.background":"#101010","statusBar.debuggingBackground":"#FF7300","statusBar.debuggingForeground":"#FFF","statusBar.foreground":"#A0A0A0","statusBarItem.remoteBackground":"#FFC799","statusBarItem.remoteForeground":"#000","tab.activeBackground":"#161616","tab.border":"#101010","tab.inactiveBackground":"#101010","textLink.activeForeground":"#FFCFA8","textLink.foreground":"#FFC799","titleBar.activeBackground":"#101010","titleBar.activeForeground":"#7E7E7E","titleBar.inactiveBackground":"#101010","titleBar.inactiveForeground":"#707070"},displayName:"Vesper",name:"vesper",tokenColors:[{scope:["comment","punctuation.definition.comment"],settings:{foreground:"#8b8b8b94"}},{scope:["variable","string constant.other.placeholder","entity.name.tag"],settings:{foreground:"#FFF"}},{scope:["constant.other.color"],settings:{foreground:"#FFF"}},{scope:["invalid","invalid.illegal"],settings:{foreground:"#FF8080"}},{scope:["keyword","storage.type","storage.modifier"],settings:{foreground:"#A0A0A0"}},{scope:["keyword.control","constant.other.color","punctuation.definition.tag","punctuation.separator.inheritance.php","punctuation.definition.tag.html","punctuation.definition.tag.begin.html","punctuation.definition.tag.end.html","punctuation.section.embedded","keyword.other.template","keyword.other.substitution"],settings:{foreground:"#A0A0A0"}},{scope:["entity.name.tag","meta.tag.sgml","markup.deleted.git_gutter"],settings:{foreground:"#FFC799"}},{scope:["entity.name.function","variable.function","support.function","keyword.other.special-method"],settings:{foreground:"#FFC799"}},{scope:["meta.block variable.other"],settings:{foreground:"#FFF"}},{scope:["support.other.variable","string.other.link"],settings:{foreground:"#FFF"}},{scope:["constant.numeric","support.constant","constant.character","constant.escape","keyword.other.unit","keyword.other","constant.language.boolean"],settings:{foreground:"#FFC799"}},{scope:["string","constant.other.symbol","constant.other.key","meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js"],settings:{foreground:"#99FFE4"}},{scope:["entity.name","support.type","support.class","support.other.namespace.use.php","meta.use.php","support.other.namespace.php","markup.changed.git_gutter","support.type.sys-types"],settings:{foreground:"#FFC799"}},{scope:["source.css support.type.property-name","source.sass support.type.property-name","source.scss support.type.property-name","source.less support.type.property-name","source.stylus support.type.property-name","source.postcss support.type.property-name","source.postcss support.type.property-name","support.type.vendored.property-name.css","source.css.scss entity.name.tag","variable.parameter.keyframe-list.css","meta.property-name.css","variable.parameter.url.scss","meta.property-value.scss","meta.property-value.css"],settings:{foreground:"#FFF"}},{scope:["entity.name.module.js","variable.import.parameter.js","variable.other.class.js"],settings:{foreground:"#FF8080"}},{scope:["variable.language"],settings:{foreground:"#A0A0A0"}},{scope:["entity.name.method.js"],settings:{foreground:"#FFFF"}},{scope:["meta.class-method.js entity.name.function.js","variable.function.constructor"],settings:{foreground:"#FFFF"}},{scope:["entity.other.attribute-name","meta.property-list.scss","meta.attribute-selector.scss","meta.property-value.css","entity.other.keyframe-offset.css","meta.selector.css","entity.name.tag.reference.scss","entity.name.tag.nesting.css","punctuation.separator.key-value.css"],settings:{foreground:"#A0A0A0"}},{scope:["text.html.basic entity.other.attribute-name.html","text.html.basic entity.other.attribute-name"],settings:{foreground:"#FFC799"}},{scope:["entity.other.attribute-name.class","entity.other.attribute-name.id","meta.attribute-selector.scss","variable.parameter.misc.css"],settings:{foreground:"#FFC799"}},{scope:["source.sass keyword.control","meta.attribute-selector.scss"],settings:{foreground:"#99FFE4"}},{scope:["markup.inserted"],settings:{foreground:"#99FFE4"}},{scope:["markup.deleted"],settings:{foreground:"#FF8080"}},{scope:["markup.changed"],settings:{foreground:"#A0A0A0"}},{scope:["string.regexp"],settings:{foreground:"#A0A0A0"}},{scope:["constant.character.escape"],settings:{foreground:"#A0A0A0"}},{scope:["*url*","*link*","*uri*"],settings:{fontStyle:"underline"}},{scope:["tag.decorator.js entity.name.tag.js","tag.decorator.js punctuation.definition.tag.js"],settings:{foreground:"#FFFF"}},{scope:["source.js constant.other.object.key.js string.unquoted.label.js"],settings:{fontStyle:"italic",foreground:"#FF8080"}},{scope:["source.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFC799"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFC799"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFC799"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFC799"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFC799"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFC799"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFC799"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFC799"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFC799"}},{scope:["text.html.markdown","punctuation.definition.list_item.markdown"],settings:{foreground:"#FFF"}},{scope:["text.html.markdown markup.inline.raw.markdown"],settings:{foreground:"#A0A0A0"}},{scope:["text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown"],settings:{foreground:"#FFF"}},{scope:["markdown.heading","markup.heading | markup.heading entity.name","markup.heading.markdown punctuation.definition.heading.markdown","markup.heading","markup.inserted.git_gutter"],settings:{foreground:"#FFC799"}},{scope:["markup.italic"],settings:{fontStyle:"italic",foreground:"#FFF"}},{scope:["markup.bold","markup.bold string"],settings:{fontStyle:"bold",foreground:"#FFF"}},{scope:["markup.bold markup.italic","markup.italic markup.bold","markup.quote markup.bold","markup.bold markup.italic string","markup.italic markup.bold string","markup.quote markup.bold string"],settings:{fontStyle:"bold",foreground:"#FFF"}},{scope:["markup.underline"],settings:{fontStyle:"underline",foreground:"#FFC799"}},{scope:["markup.quote punctuation.definition.blockquote.markdown"],settings:{foreground:"#FFF"}},{scope:["markup.quote"]},{scope:["string.other.link.title.markdown"],settings:{foreground:"#FFFF"}},{scope:["string.other.link.description.title.markdown"],settings:{foreground:"#A0A0A0"}},{scope:["constant.other.reference.link.markdown"],settings:{foreground:"#FFC799"}},{scope:["markup.raw.block"],settings:{foreground:"#A0A0A0"}},{scope:["markup.raw.block.fenced.markdown"],settings:{foreground:"#00000050"}},{scope:["punctuation.definition.fenced.markdown"],settings:{foreground:"#00000050"}},{scope:["markup.raw.block.fenced.markdown","variable.language.fenced.markdown","punctuation.section.class.end"],settings:{foreground:"#FFF"}},{scope:["variable.language.fenced.markdown"],settings:{foreground:"#FFF"}},{scope:["meta.separator"],settings:{fontStyle:"bold",foreground:"#65737E"}},{scope:["markup.table"],settings:{foreground:"#FFF"}}],type:"dark"});export{t as default}; diff --git a/assets/chunks/vhdl.QZ3jNtnE.js b/assets/chunks/vhdl.QZ3jNtnE.js new file mode 100644 index 000000000..8c2a4a6de --- /dev/null +++ b/assets/chunks/vhdl.QZ3jNtnE.js @@ -0,0 +1,515 @@ +const n=Object.freeze({displayName:"VHDL",fileTypes:["vhd","vhdl","vho","vht"],name:"vhdl",patterns:[{include:"#block_processing"},{include:"#cleanup"}],repository:{architecture_pattern:{patterns:[{begin:`(?x) + + +\\b((?i:architecture))\\s+ + + +(([a-zA-z][a-zA-z0-9_]*)|(.+))(?=\\s)\\s+ + + +((?i:of))\\s+ + + +(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*(?i:is))\\b +`,beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.type.architecture.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},5:{name:"keyword.language.vhdl"},7:{name:"entity.name.type.entity.reference.vhdl"},8:{name:"invalid.illegal.invalid.identifier.vhdl"}},end:`(?x) + +\\b((?i:end)) + + +(\\s+((?i:architecture)))? + + +(\\s+((\\3)|(.+?)))? + + +(?=\\s*;) +`,endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},6:{name:"entity.name.type.architecture.end.vhdl"},7:{name:"invalid.illegal.mismatched.identifier.vhdl"}},name:"support.block.architecture",patterns:[{include:"#block_pattern"},{include:"#function_definition_pattern"},{include:"#procedure_definition_pattern"},{include:"#component_pattern"},{include:"#if_pattern"},{include:"#process_pattern"},{include:"#type_pattern"},{include:"#record_pattern"},{include:"#for_pattern"},{include:"#entity_instantiation_pattern"},{include:"#component_instantiation_pattern"},{include:"#cleanup"}]}]},attribute_list:{patterns:[{begin:"\\'\\(",beginCaptures:{0:{name:"punctuation.vhdl"}},end:"\\)",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#cleanup"}]}]},block_pattern:{patterns:[{begin:`(?x) + +^\\s* + +( +([a-zA-Z][a-zA-Z0-9_]*) + + +\\s*(:)\\s* +)? + +(\\s*(?i:block)) +`,beginCaptures:{2:{name:"meta.block.block.name"},3:{name:"keyword.language.vhdl"},4:{name:"keyword.language.vhdl"}},end:`(?x) + +((?i:end\\s+block)) + + +(\\s+((\\2)|(.+?)))? + +(?=\\s*;) +`,endCaptures:{1:{name:"keyword.language.vhdl"},2:{name:"meta.block.block.end"},5:{name:"invalid.illegal.mismatched.identifier.vhdl"}},name:"meta.block.block",patterns:[{include:"#control_patterns"},{include:"#cleanup"}]}]},block_processing:{patterns:[{include:"#package_pattern"},{include:"#package_body_pattern"},{include:"#entity_pattern"},{include:"#architecture_pattern"}]},case_pattern:{patterns:[{begin:`(?x) + +^\\s* + + +( +( +([a-zA-Z][a-zA-Z0-9_]*) +|(.+?) +) +\\s*:\\s* +)? + + +\\b((?i:case))\\b +`,beginCaptures:{3:{name:"entity.name.tag.case.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},5:{name:"keyword.language.vhdl"}},end:`(?x) + +\\b((?i:end))\\s* + + +(\\s+(((?i:case))|(.*?))) + + +(\\s+((\\2)|(.*?)))? + + +(?=\\s*;) +`,endCaptures:{1:{name:"keyword.language.vhdl"},4:{name:"keyword.language.vhdl"},5:{name:"invalid.illegal.case.required.vhdl"},8:{name:"entity.name.tag.case.end.vhdl"},9:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#cleanup"}]}]},cleanup:{patterns:[{include:"#comments"},{include:"#constants_numeric"},{include:"#strings"},{include:"#attribute_list"},{include:"#syntax_highlighting"}]},comments:{patterns:[{match:"--.*$\\n?",name:"comment.line.double-dash.vhdl"}]},component_instantiation_pattern:{patterns:[{begin:`(?x) + +^\\s* + + +([a-zA-Z][a-zA-Z0-9_]*) + + +\\s*(:)\\s* + + +([a-zA-Z][a-zA-Z0-9_]*)\\b + + + +(?=\\s*($|generic|port)) +`,beginCaptures:{1:{name:"entity.name.section.component_instantiation.vhdl"},2:{name:"punctuation.vhdl"},3:{name:"entity.name.tag.component.reference.vhdl"}},end:";",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#cleanup"}]}]},component_pattern:{patterns:[{begin:`(?x) + +^\\s* + + +\\b((?i:component))\\s+ + + +(([a-zA-Z_][a-zA-Z0-9_]*)\\s*|(.+?))(?=\\b(?i:is|port)\\b|$|--) + + +(\\b((?i:is\\b)))? +`,beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.type.component.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},6:{name:"keyword.language.vhdl"}},end:`(?x) + +\\b((?i:end))\\s+ + + +(((?i:component\\b))|(.+?))(?=\\s*|;) + + +(\\s+((\\3)|(.+?)))?(?=\\s*;) +`,endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},4:{name:"invalid.illegal.component.keyword.required.vhdl"},7:{name:"entity.name.type.component.end.vhdl"},8:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#generic_list_pattern"},{include:"#port_list_pattern"},{include:"#comments"}]}]},constants_numeric:{patterns:[{match:"\\b([+\\-]?[\\d_]+\\.[\\d_]+([eE][+\\-]?[\\d_]+)?)\\b",name:"constant.numeric.floating_point.vhdl"},{match:"\\b\\d+#[\\h_]+#\\b",name:"constant.numeric.base_pound_number_pound.vhdl"},{match:"\\b[\\d_]+([eE][\\d_]+)?\\b",name:"constant.numeric.integer.vhdl"},{match:'[xX]"[0-9a-fA-F_uUxXzZwWlLhH\\-]+"',name:"constant.numeric.quoted.double.string.hex.vhdl"},{match:'[oO]"[0-7_uUxXzZwWlLhH\\-]+"',name:"constant.numeric.quoted.double.string.octal.vhdl"},{match:'[bB]?"[01_uUxXzZwWlLhH\\-]+"',name:"constant.numeric.quoted.double.string.binary.vhdl"},{captures:{1:{name:"invalid.illegal.quoted.double.string.vhdl"}},match:'([bBoOxX]".+?")',name:"constant.numeric.quoted.double.string.illegal.vhdl"},{match:"'[01uUxXzZwWlLhH\\-]'",name:"constant.numeric.quoted.single.std_logic"}]},control_patterns:{patterns:[{include:"#case_pattern"},{include:"#if_pattern"},{include:"#for_pattern"},{include:"#while_pattern"}]},entity_instantiation_pattern:{patterns:[{begin:`(?x) + +^\\s* + + +([a-zA-Z][a-zA-Z0-9_]*) + + +\\s*(:)\\s* + + +(((?i:use))\\s+)? + + +((?i:entity))\\s+ + + +( +(([a-zA-Z][a-zA-Z0-9_]*)|(.+?)) +(\\.) +)? + + +(([a-zA-Z][a-zA-Z0-9_]*)|(.+?)) + + +(?=\\s*(\\(|$|(?i:port|generic))) + + +( + +\\s*(\\()\\s* + + +(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*\\)) + + +\\s*(\\)) +)? +`,beginCaptures:{1:{name:"entity.name.section.entity_instantiation.vhdl"},2:{name:"punctuation.vhdl"},4:{name:"keyword.language.vhdl"},5:{name:"keyword.language.vhdl"},8:{name:"entity.name.tag.library.reference.vhdl"},9:{name:"invalid.illegal.invalid.identifier.vhdl"},10:{name:"punctuation.vhdl"},12:{name:"entity.name.tag.entity.reference.vhdl"},13:{name:"invalid.illegal.invalid.identifier.vhdl"},16:{name:"punctuation.vhdl"},18:{name:"entity.name.tag.architecture.reference.vhdl"},19:{name:"invalid.illegal.invalid.identifier.vhdl"},21:{name:"punctuation.vhdl"}},end:";",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#cleanup"}]}]},entity_pattern:{patterns:[{begin:`(?x) + +^\\s* + + +((?i:entity\\b))\\s+ + + +(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))(?=\\s) +`,beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.type.entity.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"}},end:`(?x) + + +\\b((?i:end\\b)) + + +(\\s+((?i:entity)))? + + +(\\s+((\\3)|(.+?)))? + + +(?=\\s*;) +`,endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},6:{name:"entity.name.type.entity.end.vhdl"},7:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#comments"},{include:"#generic_list_pattern"},{include:"#port_list_pattern"},{include:"#cleanup"}]}]},for_pattern:{patterns:[{begin:`(?x) + +^\\s* +( + +([a-zA-Z][a-zA-Z0-9_]*) + + +\\s*(:)\\s* +)? + + +(?!(?i:wait\\s*)) + + +\\b((?i:for))\\b + + +(?!\\s*(?i:all)) + +`,beginCaptures:{2:{name:"entity.name.tag.for.generate.begin.vhdl"},3:{name:"punctuation.vhdl"},4:{name:"keyword.language.vhdl"}},end:`(?x) + +\\b((?i:end))\\s+ +( + +((?i:generate|loop)) + + +|(\\S+) +)\\b + + +(\\s+((\\2)|(.+?)))? + + +(?=\\s*;) +`,endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},4:{name:"invalid.illegal.loop.or.generate.required.vhdl"},7:{name:"entity.name.tag.for.generate.end.vhdl"},8:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#entity_instantiation_pattern"},{include:"#component_pattern"},{include:"#component_instantiation_pattern"},{include:"#process_pattern"},{include:"#cleanup"}]}]},function_definition_pattern:{patterns:[{begin:`(?x) + +^\\s* + + +((?i:impure)?\\s*(?i:function))\\s+ + +( + +([a-zA-Z][a-zA-Z\\d_]*) + +|("\\S+") + +|(\\\\.+\\\\) + +|(.+?) +) + + +(?=\\s* +( +\\( +|(?i:\\breturn\\b) +) +) +`,beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.function.function.begin.vhdl"},4:{name:"entity.name.function.function.begin.vhdl"},5:{name:"entity.name.function.function.begin.vhdl"},6:{name:"invalid.illegal.invalid.identifier.vhdl"}},end:`(?x) + +^\\s* + + +((?i:end)) + + +(\\s+((?i:function)))? + + +(\\s+((\\3|\\4|\\5)|(.+?)))? + + +(?=\\s*;) +`,endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},6:{name:"entity.name.function.function.end.vhdl"},7:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#parenthetical_list"},{include:"#type_pattern"},{include:"#record_pattern"},{include:"#cleanup"}]}]},function_prototype_pattern:{patterns:[{begin:`(?x) + +^\\s* + + +((?i:impure)?\\s*(?i:function))\\s+ + +( + +([a-zA-Z][a-zA-Z\\d_]*) + +|("\\S+") + +|(\\\\.+\\\\) + +|(.+?) +) + + +(?=\\s* +( +\\( +|(?i:\\breturn\\b) +) +) +`,beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.function.function.prototype.vhdl"},4:{name:"entity.name.function.function.prototype.vhdl"},5:{name:"entity.name.function.function.prototype.vhdl"},6:{name:"invalid.illegal.function.name.vhdl"}},end:"(?<=;)",patterns:[{begin:"\\b(?i:return)(?=\\s+[^;]+\\s*;)",beginCaptures:{0:{name:"keyword.language.vhdl"}},end:"\\;",endCaptures:{0:{name:"punctuation.terminator.function_prototype.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#cleanup"}]},{include:"#parenthetical_list"},{include:"#cleanup"}]}]},generic_list_pattern:{patterns:[{begin:"\\b(?i:generic)\\b",beginCaptures:{0:{name:"keyword.language.vhdl"}},end:";",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"}]}]},if_pattern:{patterns:[{begin:`(?x) +( + +([a-zA-Z][a-zA-Z0-9_]*) + + +\\s*(:)\\s* +)? + + +\\b((?i:if))\\b +`,beginCaptures:{2:{name:"entity.name.tag.if.generate.begin.vhdl"},3:{name:"punctuation.vhdl"},4:{name:"keyword.language.vhdl"}},end:`(?x) + +\\b((?i:end))\\s+ + +( +( + +((?i:generate|if)) + + +|(\\S+) +)\\b +( +\\s+ +( + +(\\2) + + +|(.+?) +) +)? +)? + + +(?=\\s*;) +`,endCaptures:{1:{name:"keyword.language.vhdl"},4:{name:"keyword.language.vhdl"},5:{name:"invalid.illegal.if.or.generate.required.vhdl"},8:{name:"entity.name.tag.if.generate.end.vhdl"},9:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#process_pattern"},{include:"#entity_instantiation_pattern"},{include:"#component_pattern"},{include:"#component_instantiation_pattern"},{include:"#cleanup"}]}]},keywords:{patterns:[{match:"'(?i:active|ascending|base|delayed|driving|driving_value|event|high|image|instance|instance_name|last|last_value|left|leftof|length|low|path|path_name|pos|pred|quiet|range|reverse|reverse_range|right|rightof|simple|simple_name|stable|succ|transaction|val|value)\\b",name:"keyword.attributes.vhdl"},{match:"\\b(?i:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|context|deallocate|disconnect|downto|else|elsif|end|entity|exit|file|for|force|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|protected|pure|range|record|register|reject|release|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)\\b",name:"keyword.language.vhdl"},{match:"\\b(?i:std|ieee|work|standard|textio|std_logic_1164|std_logic_arith|std_logic_misc|std_logic_signed|std_logic_textio|std_logic_unsigned|numeric_bit|numeric_std|math_complex|math_real|vital_primitives|vital_timing)\\b",name:"standard.library.language.vhdl"},{match:"(\\+|\\-|<=|=|=>|:=|>=|>|<|/|\\||&|(\\*{1,2}))",name:"keyword.operator.vhdl"}]},package_body_pattern:{patterns:[{begin:`(?x) + +\\b((?i:package))\\s+ + + +((?i:body))\\s+ + + +(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+ + + +((?i:is))\\b +`,beginCaptures:{1:{name:"keyword.language.vhdl"},2:{name:"keyword.language.vhdl"},4:{name:"entity.name.section.package_body.begin.vhdl"},5:{name:"invalid.illegal.invalid.identifier.vhdl"},6:{name:"keyword.language.vhdl"}},end:`(?x) + +\\b((?i:end\\b)) + + +(\\s+((?i:package))\\s+((?i:body)))? + + +(\\s+((\\4)|(.+?)))?(?=\\s*;)`,endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},4:{name:"keyword.language.vhdl"},7:{name:"entity.name.section.package_body.end.vhdl"},8:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#protected_body_pattern"},{include:"#function_definition_pattern"},{include:"#procedure_definition_pattern"},{include:"#type_pattern"},{include:"#subtype_pattern"},{include:"#record_pattern"},{include:"#cleanup"}]}]},package_pattern:{patterns:[{begin:`(?x) + +\\b((?i:package))\\s+ + + +(?!(?i:body)) + + +(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+ + + +((?i:is))\\b +`,beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.section.package.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},5:{name:"keyword.language.vhdl"}},end:`(?x) + +\\b((?i:end\\b)) + + +(\\s+((?i:package)))? + + +(\\s+((\\2)|(.+?)))?(?=\\s*;)`,endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},6:{name:"entity.name.section.package.end.vhdl"},7:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#protected_pattern"},{include:"#function_prototype_pattern"},{include:"#procedure_prototype_pattern"},{include:"#type_pattern"},{include:"#subtype_pattern"},{include:"#record_pattern"},{include:"#component_pattern"},{include:"#cleanup"}]}]},parenthetical_list:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.vhdl"}},end:"(?<=\\))",patterns:[{begin:`(?=['"a-zA-Z0-9])`,end:"(;|\\)|,)",endCaptures:{0:{name:"punctuation.vhdl"}},name:"source.vhdl",patterns:[{include:"#comments"},{include:"#parenthetical_pair"},{include:"#cleanup"}]},{match:"\\)",name:"invalid.illegal.unexpected.parenthesis.vhdl"},{include:"#cleanup"}]}]},parenthetical_pair:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.vhdl"}},end:"\\)",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_pair"},{include:"#cleanup"}]}]},port_list_pattern:{patterns:[{begin:"\\b(?i:port)\\b",beginCaptures:{0:{name:"keyword.language.vhdl"}},end:"(?<=\\))\\s*;",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"}]}]},procedure_definition_pattern:{patterns:[{begin:`(?x) + +^\\s* + + +((?i:procedure))\\s+ + +( + +([a-zA-Z][a-zA-Z\\d_]*) + +|("\\S+") + +|(.+?) +) + + +(?=\\s*(\\(|(?i:is))) +`,beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.function.procedure.begin.vhdl"},4:{name:"entity.name.function.procedure.begin.vhdl"},5:{name:"invalid.illegal.invalid.identifier.vhdl"}},end:`(?x) + +^\\s* + + +((?i:end)) + + +(\\s+((?i:procedure)))? + + +(\\s+((\\3|\\4)|(.+?)))? + + +(?=\\s*;) +`,endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},6:{name:"entity.name.function.procedure.end.vhdl"},7:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#control_patterns"},{include:"#type_pattern"},{include:"#record_pattern"},{include:"#cleanup"}]}]},procedure_prototype_pattern:{patterns:[{begin:`(?x) +\\b((?i:procedure))\\s+ +(([a-zA-Z][a-zA-Z0-9_]*)|(.+?)) +(?=\\s*(\\(|;)) +`,beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.function.procedure.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"}},end:";",endCaptures:{0:{name:"punctual.vhdl"}},patterns:[{include:"#parenthetical_list"}]}]},process_pattern:{patterns:[{begin:`(?x) + +^\\s* + +( + +([a-zA-Z][a-zA-Z0-9_]*) + + +\\s*(:)\\s* +)? + + +( +(?:postponed\\s+)? +(?i:process\\b) +) +`,beginCaptures:{2:{name:"entity.name.section.process.begin.vhdl"},3:{name:"punctuation.vhdl"},4:{name:"keyword.language.vhdl"}},end:`(?x) + +((?i:end)) + + +(\\s+( +(?:postponed\\s+)? +(?i:process) +)) + + +(\\s+((\\2)|(.+?)))? + +(?=\\s*;) +`,endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},6:{name:"entity.name.section.process.end.vhdl"},7:{name:"invalid.illegal.invalid.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#cleanup"}]}]},protected_body_pattern:{patterns:[{begin:`(?x) +\\b((?i:type))\\s+ + + +(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+ + +\\b((?i:is\\s+protected\\s+body))\\s+ +`,beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.section.protected_body.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},5:{name:"keyword.language.vhdl"}},end:`(?x) +\\b((?i:end\\s+protected\\s+body)) + + +(\\s+((\\3)|(.+?)))? + +(?=\\s*;) +`,endCaptures:{1:{name:"keyword.language.vhdl"},4:{name:"entity.name.section.protected_body.end.vhdl"},5:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#function_definition_pattern"},{include:"#procedure_definition_pattern"},{include:"#type_pattern"},{include:"#subtype_pattern"},{include:"#record_pattern"},{include:"#cleanup"}]}]},protected_pattern:{patterns:[{begin:`(?x) +\\b((?i:type))\\s+ + + +(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+ + +\\b((?i:is\\s+protected))\\s+ + + +(?!(?i:body)) +`,beginCaptures:{1:{name:"keyword.language.vhdls"},3:{name:"entity.name.section.protected.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},5:{name:"keyword.language.vhdl"}},end:`(?x) +\\b((?i:end\\s+protected)) + + +(\\s+((\\3)|(.+?)))? + + +(?!(?i:body)) + +(?=\\s*;) +`,endCaptures:{1:{name:"keyword.language.vhdl"},4:{name:"entity.name.section.protected.end.vhdl"},5:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#function_prototype_pattern"},{include:"#procedure_prototype_pattern"},{include:"#type_pattern"},{include:"#subtype_pattern"},{include:"#record_pattern"},{include:"#component_pattern"},{include:"#cleanup"}]}]},punctuation:{patterns:[{match:"(\\.|,|:|;|\\(|\\))",name:"punctuation.vhdl"}]},record_pattern:{patterns:[{begin:"\\b(?i:record)\\b",beginCaptures:{0:{name:"keyword.language.vhdl"}},end:`(?x) + +\\b((?i:end)) + + +\\s+((?i:record)) + + +(\\s+(([a-zA-Z][a-zA-Z\\d_]*)|(.*?)))? + + +(?=\\s*;) +`,endCaptures:{1:{name:"keyword.language.vhdl"},2:{name:"keyword.language.vhdl"},5:{name:"entity.name.type.record.vhdl"},6:{name:"invalid.illegal.invalid.identifier.vhdl"}},patterns:[{include:"#cleanup"}]},{include:"#cleanup"}]},strings:{patterns:[{match:"'.'",name:"string.quoted.single.vhdl"},{begin:'"',end:'"',name:"string.quoted.double.vhdl",patterns:[{match:"\\\\.",name:"constant.character.escape.vhdl"}]},{begin:"\\\\",end:"\\\\",name:"string.other.backslash.vhdl"}]},subtype_pattern:{patterns:[{begin:`(?x) + +\\b((?i:subtype))\\s+ + + +(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\\s+ + + +((?i:is))\\b +`,beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.type.subtype.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},5:{name:"keyword.language.vhdl"}},end:";",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#cleanup"}]}]},support_constants:{patterns:[{match:"\\b(?i:math_1_over_e|math_1_over_pi|math_1_over_sqrt_2|math_2_pi|math_3_pi_over_2|math_deg_to_rad|math_e|math_log10_of_e|math_log2_of_e|math_log_of_10|math_log_of_2|math_pi|math_pi_over_2|math_pi_over_3|math_pi_over_4|math_rad_to_deg|math_sqrt_2|math_sqrt_pi)\\b",name:"support.constant.ieee.math_real.vhdl"},{match:"\\b(?i:math_cbase_1|math_cbase_j|math_czero|positive_real|principal_value)\\b",name:"support.constant.ieee.math_complex.vhdl"},{match:"\\b(?i:true|false)\\b",name:"support.constant.std.standard.vhdl"}]},support_functions:{patterns:[{match:"\\b(?i:finish|stop|resolution_limit)\\b",name:"support.function.std.env.vhdl"},{match:"\\b(?i:readline|read|writeline|write|endfile|endline)\\b",name:"support.function.std.textio.vhdl"},{match:"\\b(?i:rising_edge|falling_edge|to_bit|to_bitvector|to_stdulogic|to_stdlogicvector|to_stdulogicvector|is_x)\\b",name:"support.function.ieee.std_logic_1164.vhdl"},{match:"\\b(?i:shift_left|shift_right|rotate_left|rotate_right|resize|to_integer|to_unsigned|to_signed)\\b",name:"support.function.ieee.numeric_std.vhdl"},{match:"\\b(?i:arccos(h?)|arcsin(h?)|arctan|arctanh|cbrt|ceil|cos|cosh|exp|floor|log10|log2|log|realmax|realmin|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\b",name:"support.function.ieee.math_real.vhdl"},{match:"\\b(?i:arg|cmplx|complex_to_polar|conj|get_principal_value|polar_to_complex)\\b",name:"support.function.ieee.math_complex.vhdl"}]},support_types:{patterns:[{match:"\\b(?i:boolean|bit|character|severity_level|integer|real|time|delay_length|now|natural|positive|string|bit_vector|file_open_kind|file_open_status|fs|ps|ns|us|ms|sec|min|hr|severity_level|note|warning|error|failure)\\b",name:"support.type.std.standard.vhdl"},{match:"\\b(?i:line|text|side|width|input|output)\\b",name:"support.type.std.textio.vhdl"},{match:"\\b(?i:std_logic|std_ulogic|std_logic_vector|std_ulogic_vector)\\b",name:"support.type.ieee.std_logic_1164.vhdl"},{match:"\\b(?i:signed|unsigned)\\b",name:"support.type.ieee.numeric_std.vhdl"},{match:"\\b(?i:complex|complex_polar)\\b",name:"support.type.ieee.math_complex.vhdl"}]},syntax_highlighting:{patterns:[{include:"#keywords"},{include:"#punctuation"},{include:"#support_constants"},{include:"#support_types"},{include:"#support_functions"}]},type_pattern:{patterns:[{begin:`(?x) + +\\b((?i:type))\\s+ + + +(([a-zA-Z][a-zA-Z0-9_]*)|(.+?)) + +( + +(?=\\s*;) + + +|(\\s+((?i:is))) +)\\b +`,beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.type.type.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},7:{name:"keyword.language.vhdl"}},end:";",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#record_pattern"},{include:"#cleanup"}]}]},while_pattern:{patterns:[{begin:`(?x) + +^\\s* +( + +([a-zA-Z][a-zA-Z0-9_]*) + + +\\s*(:)\\s* +)? + + +\\b((?i:while))\\b +`,beginCaptures:{2:{name:""},3:{name:"punctuation.vhdl"},4:{name:"keyword.language.vhdl"}},end:`(?x) + +\\b((?i:end))\\s+ +( + +((?i:loop)) + + +|(\\S+) +)\\b + + +(\\s+((\\2)|(.+?)))? + + +(?=\\s*;) +`,endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},4:{name:"invalid.illegal.loop.keyword.required.vhdl"},7:{name:"entity.name.tag.while.loop.vhdl"},8:{name:"invalid.illegal.mismatched.identifier"}},patterns:[{include:"#control_patterns"},{include:"#cleanup"}]}]}},scopeName:"source.vhdl"});var e=[n];export{e as default}; diff --git a/assets/chunks/viml.BLluXI4E.js b/assets/chunks/viml.BLluXI4E.js new file mode 100644 index 000000000..554c10483 --- /dev/null +++ b/assets/chunks/viml.BLluXI4E.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Vim Script",name:"viml",patterns:[{include:"#comment"},{include:"#constant"},{include:"#entity"},{include:"#keyword"},{include:"#punctuation"},{include:"#storage"},{include:"#strings"},{include:"#support"},{include:"#variable"},{include:"#syntax"},{include:"#commands"},{include:"#option"},{include:"#map"}],repository:{commands:{patterns:[{match:"\\bcom(\\s|\\!)",name:"storage.other.command.viml"},{match:"\\bau(\\s|\\!)",name:"storage.other.command.viml"},{match:"-bang",name:"storage.other.command.bang.viml"},{match:"-nargs=[*+0-9]+",name:"storage.other.command.args.viml"},{match:"-complete=\\S+",name:"storage.other.command.completion.viml"},{begin:"(aug(roup)?)",end:"(augroup\\sEND|$)",name:"support.function.augroup.viml"}]},comment:{patterns:[{begin:'((\\s+)?""")',end:'^(?!")',name:"comment.block.documentation.viml"},{match:'^"\\svim:.*',name:"comment.block.modeline.viml"},{begin:'(\\s+"\\s+)(?!")',end:"$",name:"comment.line.viml",patterns:[{match:"\\{\\{\\{\\d?$",name:"comment.line.foldmarker.viml"},{match:"\\}\\}\\}\\d?",name:"comment.line.foldmarker.viml"}]},{begin:'^(\\s+)?"',end:"$",name:"comment.line.viml",patterns:[{match:"\\{\\{\\{\\d?$",name:"comment.line.foldmarker.viml"},{match:"\\}\\}\\}\\d?",name:"comment.line.foldmarker.viml"}]}]},constant:{patterns:[{match:"\\b(true|false)\\b",name:"constant.language.boolean.viml"},{match:"\\b([0-9]+)\\b",name:"constant.numeric.viml"}]},entity:{patterns:[{match:"(([absg]\\:)?[a-zA-Z0-9_#.]{2,})\\b(?=\\()",name:"entity.name.function.viml"}]},keyword:{patterns:[{match:"\\b(if|while|for|return|au(g|group)|else(if|)?|do|in)\\b",name:"keyword.control.viml"},{match:"\\b(end|endif|endfor|endwhile)\\s|$",name:"keyword.control.viml"},{match:"\\b(break|continue|try|catch|endtry|finally|finish|throw|range)\\b",name:"keyword.control.viml"},{match:"\\b(fun|func|function|endfunction|endfunc)\\b",name:"keyword.function.viml"},{match:"\\b(normal|silent)\\b",name:"keyword.other.viml"},{include:"#operators"}]},map:{patterns:[{begin:"(\\<)",beginCaptures:{1:{name:"punctuation.definition.map.viml"}},end:"(\\>|\\s)",endCaptures:{1:{name:"punctuation.definition.map.viml"}},patterns:[{match:"(?<=:\\s)(.+)",name:"constant.character.map.rhs.viml"},{match:"(?i:(bang|buffer|expr|nop|plug|sid|silent))",name:"constant.character.map.special.viml"},{match:"(?i:([adcms]-\\w))",name:"constant.character.map.key.viml"},{match:"(?i:(F[0-9]+))",name:"constant.character.map.key.fn.viml"},{match:"(?i:(bs|bar|cr|del|down|esc|left|right|space|tab|up|leader))",name:"constant.character.map.viml"}]},{match:"(\\b([cinostvx]?(nore)?map)\\b)",name:"storage.type.map.viml"}]},operators:{patterns:[{match:"([#+?!=~\\\\])",name:"keyword.operator.viml"},{match:" ([:\\-.]|[&|]{2})( |$)",name:"keyword.operator.viml"},{match:"([.]{3})",name:"keyword.operator.viml"},{match:"( [<>] )",name:"keyword.operator.viml"},{match:"(>=)",name:"keyword.operator.viml"}]},option:{patterns:[{match:"&?\\b(al|aleph|anti|antialias|arab|arabic|arshape|arabicshape|ari|allowrevins|akm|altkeymap|ambw|ambiwidth|acd|autochdir|ai|autoindent|ar|autoread|aw|autowrite|awa|autowriteall|bg|background|bs|backspace|bk|backup|bkc|backupcopy|bdir|backupdir|bex|backupext|bsk|backupskip|bdlay|balloondelay|beval|ballooneval|bevalterm|balloonevalterm|bexpr|balloonexpr|bo|belloff|bin|binary|bomb|brk|breakat|bri|breakindent|briopt|breakindentopt|bsdir|browsedir|bh|bufhidden|bl|buflisted|bt|buftype|cmp|casemap|cd|cdpath|cedit|ccv|charconvert|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|cb|clipboard|ch|cmdheight|cwh|cmdwinheight|cc|colorcolumn|co|columns|com|comments|cms|commentstring|cp|compatible|cpt|complete|cocu|concealcursor|cole|conceallevel|cfu|completefunc|cot|completeopt|cf|confirm|ci|copyindent|cpo|cpoptions|cm|cryptmethod|cspc|cscopepathcomp|csprg|cscopeprg|csqf|cscopequickfix|csre|cscoperelative|cst|cscopetag|csto|cscopetagorder|csverb|cscopeverbose|crb|cursorbind|cuc|cursorcolumn|cul|cursorline|debug|def|define|deco|delcombine|dict|dictionary|diff|dex|diffexpr|dip|diffopt|dg|digraph|dir|directory|dy|display|ead|eadirection|ed|edcompatible|emo|emoji|enc|encoding|eol|endofline|ea|equalalways|ep|equalprg|eb|errorbells|ef|errorfile|efm|errorformat|ek|esckeys|ei|eventignore|et|expandtab|ex|exrc|fenc|fileencoding|fencs|fileencodings|ff|fileformat|ffs|fileformats|fic|fileignorecase|ft|filetype|fcs|fillchars|fixeol|fixendofline|fk|fkmap|fcl|foldclose|fdc|foldcolumn|fen|foldenable|fde|foldexpr|fdi|foldignore|fdl|foldlevel|fdls|foldlevelstart|fmr|foldmarker|fdm|foldmethod|fml|foldminlines|fdn|foldnestmax|fdo|foldopen|fdt|foldtext|fex|formatexpr|fo|formatoptions|flp|formatlistpat|fp|formatprg|fs|fsync|gd|gdefault|gfm|grepformat|gp|grepprg|gcr|guicursor|gfn|guifont|gfs|guifontset|gfw|guifontwide|ghr|guiheadroom|go|guioptions|guipty|gtl|guitablabel|gtt|guitabtooltip|hf|helpfile|hh|helpheight|hlg|helplang|hid|hidden|hl|highlight|hi|history|hk|hkmap|hkp|hkmapp|hls|hlsearch|icon|iconstring|ic|ignorecase|imaf|imactivatefunc|imak|imactivatekey|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|imsf|imstatusfunc|imst|imstyle|inc|include|inex|includeexpr|is|incsearch|inde|indentexpr|indk|indentkeys|inf|infercase|im|insertmode|isf|isfname|isi|isident|isk|iskeyword|isp|isprint|js|joinspaces|key|kmp|keymap|km|keymodel|kp|keywordprg|lmap|langmap|lm|langmenu|lnr|langnoremap|lrm|langremap|ls|laststatus|lz|lazyredraw|lbr|linebreak|lines|lsp|linespace|lisp|lw|lispwords|list|lcs|listchars|lpl|loadplugins|luadll|macatsui|magic|mef|makeef|menc|makeencoding|mp|makeprg|mps|matchpairs|mat|matchtime|mco|maxcombine|mfd|maxfuncdepth|mmd|maxmapdepth|mm|maxmem|mmp|maxmempattern|mmt|maxmemtot|mis|menuitems|msm|mkspellmem|ml|modeline|mls|modelines|ma|modifiable|mod|modified|more|mouse|mousef|mousefocus|mh|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mzschemedll|mzschemegcdll|mzq|mzquantum|nf|nrformats|nu|number|nuw|numberwidth|ofu|omnifunc|odev|opendevice|opfunc|operatorfunc|pp|packpath|para|paragraphs|paste|pt|pastetoggle|pex|patchexpr|pm|patchmode|pa|path|perldll|pi|preserveindent|pvh|previewheight|pvw|previewwindow|pdev|printdevice|penc|printencoding|pexpr|printexpr|pfn|printfont|pheader|printheader|pmbcs|printmbcharset|pmbfn|printmbfont|popt|printoptions|prompt|ph|pumheight|pythonthreedll|pythondll|pyx|pyxversion|qe|quoteescape|ro|readonly|rdt|redrawtime|re|regexpengine|rnu|relativenumber|remap|rop|renderoptions|report|rs|restorescreen|ri|revins|rl|rightleft|rlc|rightleftcmd|rubydll|ru|ruler|ruf|rulerformat|rtp|runtimepath|scr|scroll|scb|scrollbind|sj|scrolljump|so|scrolloff|sbo|scrollopt|sect|sections|secure|sel|selection|slm|selectmode|ssop|sessionoptions|sh|shell|shcf|shellcmdflag|sp|shellpipe|shq|shellquote|srr|shellredir|ssl|shellslash|stmp|shelltemp|st|shelltype|sxq|shellxquote|sxe|shellxescape|sr|shiftround|sw|shiftwidth|shm|shortmess|sn|shortname|sbr|showbreak|sc|showcmd|sft|showfulltag|sm|showmatch|smd|showmode|stal|showtabline|ss|sidescroll|siso|sidescrolloff|scl|signcolumn|scs|smartcase|si|smartindent|sta|smarttab|sts|softtabstop|spell|spc|spellcapcheck|spf|spellfile|spl|spelllang|sps|spellsuggest|sb|splitbelow|spr|splitright|sol|startofline|stl|statusline|su|suffixes|sua|suffixesadd|swf|swapfile|sws|swapsync|swb|switchbuf|smc|synmaxcol|syn|syntax|tal|tabline|tpm|tabpagemax|ts|tabstop|tbs|tagbsearch|tc|tagcase|tl|taglength|tr|tagrelative|tag|tags|tgst|tagstack|tcldll|term|tbidi|termbidi|tenc|termencoding|tgc|termguicolors|tk|termkey|tms|termsize|terse|ta|textauto|tx|textmode|tw|textwidth|tsr|thesaurus|top|tildeop|to|timeout|tm|timeoutlen|title|titlelen|titleold|titlestring|tb|toolbar|tbis|toolbariconsize|ttimeout|ttm|ttimeoutlen|tbi|ttybuiltin|tf|ttyfast|ttym|ttymouse|tsl|ttyscroll|tty|ttytype|udir|undodir|udf|undofile|ul|undolevels|ur|undoreload|uc|updatecount|ut|updatetime|vbs|verbose|vfile|verbosefile|vdir|viewdir|vop|viewoptions|vi|viminfo|vif|viminfofile|ve|virtualedit|vb|visualbell|warn|wiv|weirdinvert|ww|whichwrap|wc|wildchar|wcm|wildcharm|wig|wildignore|wic|wildignorecase|wmnu|wildmenu|wim|wildmode|wop|wildoptions|wak|winaltkeys|wi|window|wh|winheight|wfh|winfixheight|wfw|winfixwidth|wmh|winminheight|wmw|winminwidth|winptydll|wiw|winwidth|wrap|wm|wrapmargin|ws|wrapscan|write|wa|writeany|wb|writebackup|wd|writedelay)\\b",name:"support.type.option.viml"},{match:"&?\\b(aleph|allowrevins|altkeymap|ambiwidth|autochdir|arabic|arabicshape|autoindent|autoread|autowrite|autowriteall|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|belloff|binary|bomb|breakat|breakindent|breakindentopt|browsedir|bufhidden|buflisted|buftype|casemap|cdpath|cedit|charconvert|cindent|cinkeys|cinoptions|cinwords|clipboard|cmdheight|cmdwinheight|colorcolumn|columns|comments|commentstring|complete|completefunc|completeopt|concealcursor|conceallevel|confirm|copyindent|cpoptions|cscopepathcomp|cscopeprg|cscopequickfix|cscoperelative|cscopetag|cscopetagorder|cscopeverbose|cursorbind|cursorcolumn|cursorline|debug|define|delcombine|dictionary|diff|diffexpr|diffopt|digraph|directory|display|eadirection|encoding|endofline|equalalways|equalprg|errorbells|errorfile|errorformat|eventignore|expandtab|exrc|fileencoding|fileencodings|fileformat|fileformats|fileignorecase|filetype|fillchars|fixendofline|fkmap|foldclose|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldopen|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fsync|gdefault|grepformat|grepprg|guicursor|guifont|guifontset|guifontwide|guioptions|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hidden|hlsearch|history|hkmap|hkmapp|icon|iconstring|ignorecase|imcmdline|imdisable|iminsert|imsearch|include|includeexpr|incsearch|indentexpr|indentkeys|infercase|insertmode|isfname|isident|iskeyword|isprint|joinspaces|keymap|keymodel|keywordprg|langmap|langmenu|langremap|laststatus|lazyredraw|linebreak|lines|linespace|lisp|lispwords|list|listchars|loadplugins|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|menuitems|mkspellmem|modeline|modelines|modifiable|modified|more|mouse|mousefocus|mousehide|mousemodel|mouseshape|mousetime|nrformats|number|numberwidth|omnifunc|opendevice|operatorfunc|packpath|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|perldll|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pumheight|pythondll|pythonthreedll|quoteescape|readonly|redrawtime|regexpengine|relativenumber|remap|report|revins|rightleft|rightleftcmd|rubydll|ruler|rulerformat|runtimepath|scroll|scrollbind|scrolljump|scrolloff|scrollopt|sections|secure|selection|selectmode|sessionoptions|shada|shell|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shellxescape|shellxquote|shiftround|shiftwidth|shortmess|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|sidescroll|sidescrolloff|signcolumn|smartcase|smartindent|smarttab|softtabstop|spell|spellcapcheck|spellfile|spelllang|spellsuggest|splitbelow|splitright|startofline|statusline|suffixes|suffixesadd|swapfile|switchbuf|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|tagcase|taglength|tagrelative|tags|tagstack|term|termbidi|terse|textwidth|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|ttimeout|ttimeoutlen|ttytype|undodir|undofile|undolevels|undoreload|updatecount|updatetime|verbose|verbosefile|viewdir|viewoptions|virtualedit|visualbell|warn|whichwrap|wildchar|wildcharm|wildignore|wildignorecase|wildmenu|wildmode|wildoptions|winaltkeys|window|winheight|winfixheight|winfixwidth|winminheight|winminwidth|winwidth|wrap|wrapmargin|wrapscan|write|writeany|writebackup|writedelay)\\b",name:"support.type.option.viml"},{match:"&?\\b(al|ari|akm|ambw|acd|arab|arshape|ai|ar|aw|awa|bg|bs|bk|bkc|bdir|bex|bsk|bdlay|beval|bexpr|bo|bin|bomb|brk|bri|briopt|bsdir|bh|bl|bt|cmp|cd|cedit|ccv|cin|cink|cino|cinw|cb|ch|cwh|cc|co|com|cms|cpt|cfu|cot|cocu|cole|cf|ci|cpo|cspc|csprg|csqf|csre|cst|csto|cpo|crb|cuc|cul|debug|def|deco|dict|diff|dex|dip|dg|dir|dy|ead|enc|eol|ea|ep|eb|ef|efm|ei|et|ex|fenc|fencs|ff|ffs|fic|ft|fcs|fixeol|fk|fcl|fdc|fen|fde|fdi|fdl|fdls|fmr|fdm|fml|fdn|fdo|fdt|fex|flp|fo|fp|fs|gd|gfm|gp|gcr|gfn|gfs|gfw|go|gtl|gtt|hf|hh|hlg|hid|hls|hi|hk|hkp|icon|iconstring|ic|imc|imd|imi|ims|inc|inex|is|inde|indk|inf|im|isf|isi|isk|isp|js|kmp|km|kp|lmap|lm|lrm|ls|lz|lbr|lines|lsp|lisp|lw|list|lcs|lpl|magic|mef|mp|mps|mat|mco|mfd|mmd|mm|mmp|mmt|mis|msm|ml|mls|ma|mod|more|mouse|mousef|mh|mousem|mouses|mouset|nf|nu|nuw|ofu|odev|opfunc|pp|para|paste|pt|pex|pm|pa|perldll|pi|pvh|pvw|pdev|penc|pexpr|pfn|pheader|pmbcs|pmbfn|popt|prompt|ph|pythondll|pythonthreedlll|qe|ro|rdt|re|rnu|remap|report|ri|rl|rlc|rubydll|ru|ruf|rtp|scr|scb|sj|so|sbo|sect|secure|sel|slm|ssop|sd|sh|shcf|sp|shq|srr|ssl|stmp|sxe|sxq|sr|sw|shm|sbr|sc|sft|sm|smd|stal|ss|siso|scl|scs|si|sta|sts|spell|spc|spf|spl|sps|sb|spr|sol|stl|su|sua|swf|swb|smc|syn|tal|tpm|ts|tbs|tc|tl|tr|tag|tgst|term|tbidi|terse|tw|tsr|top|to|tm|title|titlelen|titleold|titlestring|ttimeout|ttm|tty|udir|udf|ul|ur|uc|ut|vbs|vfile|vdir|vop|ve|vb|warn|ww|wc|wcm|wig|wic|wmnu|wim|wop|wak|wi|wh|wfh|wfw|wmh|wmw|wiw|wrap|wm|ws|write|wa|wb|wd)\\b",name:"support.type.option.shortname.viml"},{match:"\\b(noanti|noantialias|noarab|noarabic|noarshape|noarabicshape|noari|noallowrevins|noakm|noaltkeymap|noacd|noautochdir|noai|noautoindent|noar|noautoread|noaw|noautowrite|noawa|noautowriteall|nobk|nobackup|nobeval|noballooneval|nobevalterm|noballoonevalterm|nobin|nobinary|nobomb|nobri|nobreakindent|nobl|nobuflisted|nocin|nocindent|nocp|nocompatible|nocf|noconfirm|noci|nocopyindent|nocsre|nocscoperelative|nocst|nocscopetag|nocsverb|nocscopeverbose|nocrb|nocursorbind|nocuc|nocursorcolumn|nocul|nocursorline|nodeco|nodelcombine|nodiff|nodg|nodigraph|noed|noedcompatible|noemo|noemoji|noeol|noendofline|noea|noequalalways|noeb|noerrorbells|noek|noesckeys|noet|noexpandtab|noex|noexrc|nofic|nofileignorecase|nofixeol|nofixendofline|nofk|nofkmap|nofen|nofoldenable|nofs|nofsync|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkp|nohkmapp|nohls|nohlsearch|noicon|noic|noignorecase|noimc|noimcmdline|noimd|noimdisable|nois|noincsearch|noinf|noinfercase|noim|noinsertmode|nojs|nojoinspaces|nolnr|nolangnoremap|nolrm|nolangremap|nolz|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|nolpl|noloadplugins|nomacatsui|nomagic|noml|nomodeline|noma|nomodifiable|nomod|nomodified|nomore|nomousef|nomousefocus|nomh|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopvw|nopreviewwindow|noprompt|noro|noreadonly|nornu|norelativenumber|nors|norestorescreen|nori|norevins|norl|norightleft|noru|noruler|noscb|noscrollbind|nosecure|nossl|noshellslash|nostmp|noshelltemp|nosr|noshiftround|nosn|noshortname|nosc|noshowcmd|nosft|noshowfulltag|nosm|noshowmatch|nosmd|noshowmode|noscs|nosmartcase|nosi|nosmartindent|nosta|nosmarttab|nospell|nosb|nosplitbelow|nospr|nosplitright|nosol|nostartofline|noswf|noswapfile|notbs|notagbsearch|notr|notagrelative|notgst|notagstack|notbidi|notermbidi|notgc|notermguicolors|noterse|nota|notextauto|notx|notextmode|notop|notildeop|noto|notimeout|notitle|nottimeout|notbi|nottybuiltin|notf|nottyfast|noudf|noundofile|novb|novisualbell|nowarn|nowiv|noweirdinvert|nowic|nowildignorecase|nowmnu|nowildmenu|nowfh|nowinfixheight|nowfw|nowinfixwidth|nowrapscan|nowrap|nows|nowrite|nowa|nowriteany|nowb|nowritebackup)\\b",name:"support.type.option.off.viml"}]},punctuation:{patterns:[{match:"([()])",name:"punctuation.parens.viml"},{match:"([,])",name:"punctuation.comma.viml"}]},storage:{patterns:[{match:"\\b(call|let|unlet)\\b",name:"storage.viml"},{match:"\\b(abort|autocmd)\\b",name:"storage.viml"},{match:"\\b(set(l|local)?)\\b",name:"storage.viml"},{match:"\\b(com(mand)?)\\b",name:"storage.viml"},{match:"\\b(color(scheme)?)\\b",name:"storage.viml"},{match:"\\b(Plug|Plugin)\\b",name:"storage.plugin.viml"}]},strings:{patterns:[{begin:'"',end:'("|$)',name:"string.quoted.double.viml",patterns:[]},{begin:"'",end:"('|$)",name:"string.quoted.single.viml",patterns:[]},{match:"/(\\\\\\\\|\\\\/|[^\\n/])*/",name:"string.regexp.viml"}]},support:{patterns:[{match:"(add|call|delete|empty|extend|get|has|isdirectory|join|printf)(?=\\()",name:"support.function.viml"},{match:"\\b(echo(m|hl)?|exe(cute)?|redir|redraw|sleep|so(urce)?|wincmd|setf)\\b",name:"support.function.viml"},{match:"(v\\:(beval_col|beval_bufnr|beval_lnum|beval_text|beval_winnr|char|charconvert_from|charconvert_to|cmdarg|cmdbang|count|count1|ctype|dying|errmsg|exception|fcs_reason|fcs_choice|fname_in|fname_out|fname_new|fname_diff|folddashes|foldlevel|foldend|foldstart|insertmode|key|lang|lc_time|lnum|mouse_win|mouse_lnum|mouse_col|oldfiles|operator|prevcount|profiling|progname|register|scrollstart|servername|searchforward|shell_error|statusmsg|swapname|swapchoice|swapcommand|termresponse|this_session|throwpoint|val|version|warningmsg|windowid))",name:"support.type.builtin.vim-variable.viml"},{match:"(&(cpo|isk|omnifunc|paste|previewwindow|rtp|tags|term|wrap))",name:"support.type.builtin.viml"},{match:"(&(shell(cmdflag|redir)?))",name:"support.type.builtin.viml"},{match:"\\<args\\>",name:"support.variable.args.viml"},{match:"\\b(None|ErrorMsg|WarningMsg)\\b",name:"support.type.syntax.viml"},{match:"\\b(BufNewFile|BufReadPre|BufRead|BufReadPost|BufReadCmd|FileReadPre|FileReadPost|FileReadCmd|FilterReadPre|FilterReadPost|StdinReadPre|StdinReadPost|BufWrite|BufWritePre|BufWritePost|BufWriteCmd|FileWritePre|FileWritePost|FileWriteCmd|FileAppendPre|FileAppendPost|FileAppendCmd|FilterWritePre|FilterWritePost|BufAdd|BufCreate|BufDelete|BufWipeout|BufFilePre|BufFilePost|BufEnter|BufLeave|BufWinEnter|BufWinLeave|BufUnload|BufHidden|BufNew|SwapExists|TermOpen|TermClose|FileType|Syntax|OptionSet|VimEnter|GUIEnter|GUIFailed|TermResponse|QuitPre|VimLeavePre|VimLeave|DirChanged|FileChangedShell|FileChangedShellPost|FileChangedRO|ShellCmdPost|ShellFilterPost|CmdUndefined|FuncUndefined|SpellFileMissing|SourcePre|SourceCmd|VimResized|FocusGained|FocusLost|CursorHold|CursorHoldI|CursorMoved|CursorMovedI|WinNew|WinEnter|WinLeave|TabEnter|TabLeave|TabNew|TabNewEntered|TabClosed|CmdlineEnter|CmdlineLeave|CmdwinEnter|CmdwinLeave|InsertEnter|InsertChange|InsertLeave|InsertCharPre|TextYankPost|TextChanged|TextChangedI|ColorScheme|RemoteReply|QuickFixCmdPre|QuickFixCmdPost|SessionLoadPost|MenuPopup|CompleteDone|User)\\b",name:"support.type.event.viml"},{match:"\\b(Comment|Constant|String|Character|Number|Boolean|Float|Identifier|Function|Statement|Conditional|Repeat|Label|Operator|Keyword|Exception|PreProc|Include|Define|Macro|PreCondit|Type|StorageClass|Structure|Typedef|Special|SpecialChar|Tag|Delimiter|SpecialComment|Debug|Underlined|Ignore|Error|Todo)\\b",name:"support.type.syntax-group.viml"}]},syntax:{patterns:[{match:"syn(tax)? case (ignore|match)",name:"keyword.control.syntax.viml"},{match:"syn(tax)? (clear|enable|include|off|on|manual|sync)",name:"keyword.control.syntax.viml"},{match:"\\b(contained|display|excludenl|fold|keepend|oneline|skipnl|skipwhite|transparent)\\b",name:"keyword.other.syntax.viml"},{match:"\\b(add|containedin|contains|matchgroup|nextgroup)\\=",name:"keyword.other.syntax.viml"},{captures:{1:{name:"keyword.other.syntax-range.viml"},3:{name:"string.regexp.viml"}},match:"((start|skip|end)\\=)(\\+\\S+\\+\\s)?"},{captures:{0:{name:"support.type.syntax.viml"},1:{name:"storage.syntax.viml"},3:{name:"variable.other.syntax-scope.viml"},4:{name:"storage.modifier.syntax.viml"}},match:"(syn|syntax)\\s+(cluster|keyword|match|region)(\\s+\\w+\\s+)(contained)?",patterns:[]},{captures:{1:{name:"storage.highlight.viml"},2:{name:"storage.modifier.syntax.viml"},3:{name:"support.function.highlight.viml"},4:{name:"variable.other.viml"},5:{name:"variable.other.viml"}},match:"(hi|highlight)(?:\\s+)(def|default)(?:\\s+)(link)(?:\\s+)(\\w+)(?:\\s+)(\\w+)",patterns:[]}]},variable:{patterns:[{match:"https?://\\S+",name:"variable.other.link.viml"},{match:"(?<=\\()([a-zA-Z]+)(?=\\))",name:"variable.parameter.viml"},{match:"\\b([absgl]:[a-zA-Z0-9_.#]+)\\b(?!\\()",name:"variable.other.viml"}]}},scopeName:"source.viml",aliases:["vim","vimscript"]});var n=[e];export{n as default}; diff --git a/assets/chunks/vitesse-black.CDJL3WWm.js b/assets/chunks/vitesse-black.CDJL3WWm.js new file mode 100644 index 000000000..e8111bec1 --- /dev/null +++ b/assets/chunks/vitesse-black.CDJL3WWm.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#4d9375","activityBar.background":"#000","activityBar.border":"#191919","activityBar.foreground":"#dbd7cacc","activityBar.inactiveForeground":"#dedcd550","activityBarBadge.background":"#bfbaaa","activityBarBadge.foreground":"#000","badge.background":"#dedcd590","badge.foreground":"#000","breadcrumb.activeSelectionForeground":"#eeeeee18","breadcrumb.background":"#121212","breadcrumb.focusForeground":"#dbd7cacc","breadcrumb.foreground":"#959da5","breadcrumbPicker.background":"#000","button.background":"#4d9375","button.foreground":"#000","button.hoverBackground":"#4d9375","checkbox.background":"#121212","checkbox.border":"#2f363d","debugToolBar.background":"#000",descriptionForeground:"#dedcd590","diffEditor.insertedTextBackground":"#4d937550","diffEditor.removedTextBackground":"#ab595950","dropdown.background":"#000","dropdown.border":"#191919","dropdown.foreground":"#dbd7cacc","dropdown.listBackground":"#121212","editor.background":"#000","editor.findMatchBackground":"#e6cc7722","editor.findMatchHighlightBackground":"#e6cc7744","editor.focusedStackFrameHighlightBackground":"#b808","editor.foldBackground":"#eeeeee10","editor.foreground":"#dbd7cacc","editor.inactiveSelectionBackground":"#eeeeee10","editor.lineHighlightBackground":"#121212","editor.selectionBackground":"#eeeeee18","editor.selectionHighlightBackground":"#eeeeee10","editor.stackFrameHighlightBackground":"#a707","editor.wordHighlightBackground":"#1c6b4805","editor.wordHighlightStrongBackground":"#1c6b4810","editorBracketHighlight.foreground1":"#5eaab5","editorBracketHighlight.foreground2":"#4d9375","editorBracketHighlight.foreground3":"#d4976c","editorBracketHighlight.foreground4":"#d9739f","editorBracketHighlight.foreground5":"#e6cc77","editorBracketHighlight.foreground6":"#6394bf","editorBracketMatch.background":"#4d937520","editorError.foreground":"#cb7676","editorGroup.border":"#191919","editorGroupHeader.tabsBackground":"#000","editorGroupHeader.tabsBorder":"#191919","editorGutter.addedBackground":"#4d9375","editorGutter.commentRangeForeground":"#dedcd550","editorGutter.deletedBackground":"#cb7676","editorGutter.foldingControlForeground":"#dedcd590","editorGutter.modifiedBackground":"#6394bf","editorHint.foreground":"#4d9375","editorIndentGuide.activeBackground":"#ffffff30","editorIndentGuide.background":"#ffffff15","editorInfo.foreground":"#6394bf","editorInlayHint.background":"#00000000","editorInlayHint.foreground":"#444444","editorLineNumber.activeForeground":"#bfbaaa","editorLineNumber.foreground":"#dedcd550","editorOverviewRuler.border":"#111","editorStickyScroll.background":"#121212","editorStickyScrollHover.background":"#121212","editorWarning.foreground":"#d4976c","editorWhitespace.foreground":"#ffffff15","editorWidget.background":"#000",errorForeground:"#cb7676",focusBorder:"#00000000",foreground:"#dbd7cacc","gitDecoration.addedResourceForeground":"#4d9375","gitDecoration.conflictingResourceForeground":"#d4976c","gitDecoration.deletedResourceForeground":"#cb7676","gitDecoration.ignoredResourceForeground":"#dedcd550","gitDecoration.modifiedResourceForeground":"#6394bf","gitDecoration.submoduleResourceForeground":"#dedcd590","gitDecoration.untrackedResourceForeground":"#5eaab5","input.background":"#121212","input.border":"#191919","input.foreground":"#dbd7cacc","input.placeholderForeground":"#dedcd590","inputOption.activeBackground":"#dedcd550","list.activeSelectionBackground":"#121212","list.activeSelectionForeground":"#dbd7cacc","list.focusBackground":"#121212","list.highlightForeground":"#4d9375","list.hoverBackground":"#121212","list.hoverForeground":"#dbd7cacc","list.inactiveFocusBackground":"#000","list.inactiveSelectionBackground":"#121212","list.inactiveSelectionForeground":"#dbd7cacc","menu.separatorBackground":"#191919","notificationCenterHeader.background":"#000","notificationCenterHeader.foreground":"#959da5","notifications.background":"#000","notifications.border":"#191919","notifications.foreground":"#dbd7cacc","notificationsErrorIcon.foreground":"#cb7676","notificationsInfoIcon.foreground":"#6394bf","notificationsWarningIcon.foreground":"#d4976c","panel.background":"#000","panel.border":"#191919","panelInput.border":"#2f363d","panelTitle.activeBorder":"#4d9375","panelTitle.activeForeground":"#dbd7cacc","panelTitle.inactiveForeground":"#959da5","peekViewEditor.background":"#000","peekViewEditor.matchHighlightBackground":"#ffd33d33","peekViewResult.background":"#000","peekViewResult.matchHighlightBackground":"#ffd33d33","pickerGroup.border":"#191919","pickerGroup.foreground":"#dbd7cacc","problemsErrorIcon.foreground":"#cb7676","problemsInfoIcon.foreground":"#6394bf","problemsWarningIcon.foreground":"#d4976c","progressBar.background":"#4d9375","quickInput.background":"#000","quickInput.foreground":"#dbd7cacc","quickInputList.focusBackground":"#121212","scrollbar.shadow":"#0000","scrollbarSlider.activeBackground":"#dedcd550","scrollbarSlider.background":"#dedcd510","scrollbarSlider.hoverBackground":"#dedcd550","settings.headerForeground":"#dbd7cacc","settings.modifiedItemIndicator":"#4d9375","sideBar.background":"#000","sideBar.border":"#191919","sideBar.foreground":"#bfbaaa","sideBarSectionHeader.background":"#000","sideBarSectionHeader.border":"#191919","sideBarSectionHeader.foreground":"#dbd7cacc","sideBarTitle.foreground":"#dbd7cacc","statusBar.background":"#000","statusBar.border":"#191919","statusBar.debuggingBackground":"#121212","statusBar.debuggingForeground":"#bfbaaa","statusBar.foreground":"#bfbaaa","statusBar.noFolderBackground":"#000","statusBarItem.prominentBackground":"#121212","tab.activeBackground":"#000","tab.activeBorder":"#191919","tab.activeBorderTop":"#dedcd590","tab.activeForeground":"#dbd7cacc","tab.border":"#191919","tab.hoverBackground":"#121212","tab.inactiveBackground":"#000","tab.inactiveForeground":"#959da5","tab.unfocusedActiveBorder":"#191919","tab.unfocusedActiveBorderTop":"#191919","tab.unfocusedHoverBackground":"#000","terminal.ansiBlack":"#393a34","terminal.ansiBlue":"#6394bf","terminal.ansiBrightBlack":"#777777","terminal.ansiBrightBlue":"#6394bf","terminal.ansiBrightCyan":"#5eaab5","terminal.ansiBrightGreen":"#4d9375","terminal.ansiBrightMagenta":"#d9739f","terminal.ansiBrightRed":"#cb7676","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#e6cc77","terminal.ansiCyan":"#5eaab5","terminal.ansiGreen":"#4d9375","terminal.ansiMagenta":"#d9739f","terminal.ansiRed":"#cb7676","terminal.ansiWhite":"#dbd7ca","terminal.ansiYellow":"#e6cc77","terminal.foreground":"#dbd7cacc","terminal.selectionBackground":"#eeeeee18","textBlockQuote.background":"#000","textBlockQuote.border":"#191919","textCodeBlock.background":"#000","textLink.activeForeground":"#4d9375","textLink.foreground":"#4d9375","textPreformat.foreground":"#d1d5da","textSeparator.foreground":"#586069","titleBar.activeBackground":"#000","titleBar.activeForeground":"#bfbaaa","titleBar.border":"#121212","titleBar.inactiveBackground":"#000","titleBar.inactiveForeground":"#959da5","tree.indentGuidesStroke":"#2f363d","welcomePage.buttonBackground":"#2f363d","welcomePage.buttonHoverBackground":"#444d56"},displayName:"Vitesse Black",name:"vitesse-black",semanticHighlighting:!0,semanticTokenColors:{class:"#7f8ac7",interface:"#5d99a9",namespace:"#db889a",property:"#b8a965",type:"#5d99a9"},tokenColors:[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#758575dd"}},{scope:["delimiter.bracket","delimiter","invalid.illegal.character-not-allowed-here.html","keyword.operator.rest","keyword.operator.spread","keyword.operator.type.annotation","keyword.operator.relational","keyword.operator.assignment","meta.brace","meta.tag.block.any.html","meta.tag.inline.any.html","meta.tag.structure.input.void.html","meta.type.annotation","meta.embedded.block.github-actions-expression","storage.type.function.arrow","keyword.operator.type","meta.objectliteral.ts","punctuation"],settings:{foreground:"#444444"}},{scope:["constant","entity.name.constant","variable.language","meta.definition.variable"],settings:{foreground:"#c99076"}},{scope:["entity","entity.name"],settings:{foreground:"#80a665"}},{scope:"variable.parameter.function",settings:{foreground:"#dbd7cacc"}},{scope:["entity.name.tag","tag.html"],settings:{foreground:"#4d9375"}},{scope:"entity.name.function",settings:{foreground:"#80a665"}},{scope:["keyword","storage.type.class.jsdoc"],settings:{foreground:"#4d9375"}},{scope:["storage","storage.type","support.type.builtin","constant.language.undefined","constant.language.null"],settings:{foreground:"#cb7676"}},{scope:["text.html.derivative","storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#dbd7cacc"}},{scope:["string","string punctuation.section.embedded source","attribute.value"],settings:{foreground:"#c98a7d"}},{scope:["punctuation.definition.string","punctuation.support.type.property-name"],settings:{foreground:"#c98a7d99"}},{scope:"support",settings:{foreground:"#b8a965"}},{scope:["property","meta.property-name","meta.object-literal.key","entity.name.tag.yaml","attribute.name"],settings:{foreground:"#b8a965"}},{scope:["entity.other.attribute-name","invalid.deprecated.entity.other.attribute-name.html"],settings:{foreground:"#bd976a"}},{scope:["variable","identifier"],settings:{foreground:"#bd976a"}},{scope:["support.type.primitive","entity.name.type"],settings:{foreground:"#5DA994"}},{scope:"namespace",settings:{foreground:"#db889a"}},{scope:["keyword.operator","keyword.operator.assignment.compound","meta.var.expr.ts"],settings:{foreground:"#cb7676"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"carriage-return",settings:{background:"#f97583",content:"^M",fontStyle:"italic underline",foreground:"#24292e"}},{scope:"message.error",settings:{foreground:"#fdaeb7"}},{scope:"string variable",settings:{foreground:"#c98a7d"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#c4704f"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#c98a7d"}},{scope:"string.regexp constant.character.escape",settings:{foreground:"#e6cc77"}},{scope:["support.constant"],settings:{foreground:"#c99076"}},{scope:["constant.numeric","number"],settings:{foreground:"#4C9A91"}},{scope:["keyword.other.unit"],settings:{foreground:"#cb7676"}},{scope:["constant.language.boolean","constant.language"],settings:{foreground:"#4d9375"}},{scope:"meta.module-reference",settings:{foreground:"#4d9375"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#d4976c"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#4d9375"}},{scope:"markup.quote",settings:{foreground:"#5d99a9"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#dbd7cacc"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#dbd7cacc"}},{scope:"markup.raw",settings:{foreground:"#4d9375"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#86181d",foreground:"#fdaeb7"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#144620",foreground:"#85e89d"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#c24e00",foreground:"#ffab70"}},{scope:["markup.ignored","markup.untracked"],settings:{background:"#79b8ff",foreground:"#2f363d"}},{scope:"meta.diff.range",settings:{fontStyle:"bold",foreground:"#b392f0"}},{scope:"meta.diff.header",settings:{foreground:"#79b8ff"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#79b8ff"}},{scope:"meta.output",settings:{foreground:"#79b8ff"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#d1d5da"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#fdaeb7"}},{scope:["constant.other.reference.link","string.other.link","punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown"],settings:{foreground:"#c98a7d"}},{scope:["markup.underline.link.markdown","markup.underline.link.image.markdown"],settings:{fontStyle:"underline",foreground:"#dedcd590"}},{scope:["type.identifier"],settings:{foreground:"#7f8ac7"}},{scope:["entity.other.attribute-name.html.vue"],settings:{foreground:"#80a665"}},{scope:["invalid.illegal.unrecognized-tag.html"],settings:{fontStyle:"normal"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/vitesse-dark.V_y36BGi.js b/assets/chunks/vitesse-dark.V_y36BGi.js new file mode 100644 index 000000000..e40748f4e --- /dev/null +++ b/assets/chunks/vitesse-dark.V_y36BGi.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#4d9375","activityBar.background":"#121212","activityBar.border":"#191919","activityBar.foreground":"#dbd7caee","activityBar.inactiveForeground":"#dedcd550","activityBarBadge.background":"#bfbaaa","activityBarBadge.foreground":"#121212","badge.background":"#dedcd590","badge.foreground":"#121212","breadcrumb.activeSelectionForeground":"#eeeeee18","breadcrumb.background":"#181818","breadcrumb.focusForeground":"#dbd7caee","breadcrumb.foreground":"#959da5","breadcrumbPicker.background":"#121212","button.background":"#4d9375","button.foreground":"#121212","button.hoverBackground":"#4d9375","checkbox.background":"#181818","checkbox.border":"#2f363d","debugToolBar.background":"#121212",descriptionForeground:"#dedcd590","diffEditor.insertedTextBackground":"#4d937550","diffEditor.removedTextBackground":"#ab595950","dropdown.background":"#121212","dropdown.border":"#191919","dropdown.foreground":"#dbd7caee","dropdown.listBackground":"#181818","editor.background":"#121212","editor.findMatchBackground":"#e6cc7722","editor.findMatchHighlightBackground":"#e6cc7744","editor.focusedStackFrameHighlightBackground":"#b808","editor.foldBackground":"#eeeeee10","editor.foreground":"#dbd7caee","editor.inactiveSelectionBackground":"#eeeeee10","editor.lineHighlightBackground":"#181818","editor.selectionBackground":"#eeeeee18","editor.selectionHighlightBackground":"#eeeeee10","editor.stackFrameHighlightBackground":"#a707","editor.wordHighlightBackground":"#1c6b4805","editor.wordHighlightStrongBackground":"#1c6b4810","editorBracketHighlight.foreground1":"#5eaab5","editorBracketHighlight.foreground2":"#4d9375","editorBracketHighlight.foreground3":"#d4976c","editorBracketHighlight.foreground4":"#d9739f","editorBracketHighlight.foreground5":"#e6cc77","editorBracketHighlight.foreground6":"#6394bf","editorBracketMatch.background":"#4d937520","editorError.foreground":"#cb7676","editorGroup.border":"#191919","editorGroupHeader.tabsBackground":"#121212","editorGroupHeader.tabsBorder":"#191919","editorGutter.addedBackground":"#4d9375","editorGutter.commentRangeForeground":"#dedcd550","editorGutter.deletedBackground":"#cb7676","editorGutter.foldingControlForeground":"#dedcd590","editorGutter.modifiedBackground":"#6394bf","editorHint.foreground":"#4d9375","editorIndentGuide.activeBackground":"#ffffff30","editorIndentGuide.background":"#ffffff15","editorInfo.foreground":"#6394bf","editorInlayHint.background":"#00000000","editorInlayHint.foreground":"#666666","editorLineNumber.activeForeground":"#bfbaaa","editorLineNumber.foreground":"#dedcd550","editorOverviewRuler.border":"#111","editorStickyScroll.background":"#181818","editorStickyScrollHover.background":"#181818","editorWarning.foreground":"#d4976c","editorWhitespace.foreground":"#ffffff15","editorWidget.background":"#121212",errorForeground:"#cb7676",focusBorder:"#00000000",foreground:"#dbd7caee","gitDecoration.addedResourceForeground":"#4d9375","gitDecoration.conflictingResourceForeground":"#d4976c","gitDecoration.deletedResourceForeground":"#cb7676","gitDecoration.ignoredResourceForeground":"#dedcd550","gitDecoration.modifiedResourceForeground":"#6394bf","gitDecoration.submoduleResourceForeground":"#dedcd590","gitDecoration.untrackedResourceForeground":"#5eaab5","input.background":"#181818","input.border":"#191919","input.foreground":"#dbd7caee","input.placeholderForeground":"#dedcd590","inputOption.activeBackground":"#dedcd550","list.activeSelectionBackground":"#181818","list.activeSelectionForeground":"#dbd7caee","list.focusBackground":"#181818","list.highlightForeground":"#4d9375","list.hoverBackground":"#181818","list.hoverForeground":"#dbd7caee","list.inactiveFocusBackground":"#121212","list.inactiveSelectionBackground":"#181818","list.inactiveSelectionForeground":"#dbd7caee","menu.separatorBackground":"#191919","notificationCenterHeader.background":"#121212","notificationCenterHeader.foreground":"#959da5","notifications.background":"#121212","notifications.border":"#191919","notifications.foreground":"#dbd7caee","notificationsErrorIcon.foreground":"#cb7676","notificationsInfoIcon.foreground":"#6394bf","notificationsWarningIcon.foreground":"#d4976c","panel.background":"#121212","panel.border":"#191919","panelInput.border":"#2f363d","panelTitle.activeBorder":"#4d9375","panelTitle.activeForeground":"#dbd7caee","panelTitle.inactiveForeground":"#959da5","peekViewEditor.background":"#121212","peekViewEditor.matchHighlightBackground":"#ffd33d33","peekViewResult.background":"#121212","peekViewResult.matchHighlightBackground":"#ffd33d33","pickerGroup.border":"#191919","pickerGroup.foreground":"#dbd7caee","problemsErrorIcon.foreground":"#cb7676","problemsInfoIcon.foreground":"#6394bf","problemsWarningIcon.foreground":"#d4976c","progressBar.background":"#4d9375","quickInput.background":"#121212","quickInput.foreground":"#dbd7caee","quickInputList.focusBackground":"#181818","scrollbar.shadow":"#0000","scrollbarSlider.activeBackground":"#dedcd550","scrollbarSlider.background":"#dedcd510","scrollbarSlider.hoverBackground":"#dedcd550","settings.headerForeground":"#dbd7caee","settings.modifiedItemIndicator":"#4d9375","sideBar.background":"#121212","sideBar.border":"#191919","sideBar.foreground":"#bfbaaa","sideBarSectionHeader.background":"#121212","sideBarSectionHeader.border":"#191919","sideBarSectionHeader.foreground":"#dbd7caee","sideBarTitle.foreground":"#dbd7caee","statusBar.background":"#121212","statusBar.border":"#191919","statusBar.debuggingBackground":"#181818","statusBar.debuggingForeground":"#bfbaaa","statusBar.foreground":"#bfbaaa","statusBar.noFolderBackground":"#121212","statusBarItem.prominentBackground":"#181818","tab.activeBackground":"#121212","tab.activeBorder":"#191919","tab.activeBorderTop":"#dedcd590","tab.activeForeground":"#dbd7caee","tab.border":"#191919","tab.hoverBackground":"#181818","tab.inactiveBackground":"#121212","tab.inactiveForeground":"#959da5","tab.unfocusedActiveBorder":"#191919","tab.unfocusedActiveBorderTop":"#191919","tab.unfocusedHoverBackground":"#121212","terminal.ansiBlack":"#393a34","terminal.ansiBlue":"#6394bf","terminal.ansiBrightBlack":"#777777","terminal.ansiBrightBlue":"#6394bf","terminal.ansiBrightCyan":"#5eaab5","terminal.ansiBrightGreen":"#4d9375","terminal.ansiBrightMagenta":"#d9739f","terminal.ansiBrightRed":"#cb7676","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#e6cc77","terminal.ansiCyan":"#5eaab5","terminal.ansiGreen":"#4d9375","terminal.ansiMagenta":"#d9739f","terminal.ansiRed":"#cb7676","terminal.ansiWhite":"#dbd7ca","terminal.ansiYellow":"#e6cc77","terminal.foreground":"#dbd7caee","terminal.selectionBackground":"#eeeeee18","textBlockQuote.background":"#121212","textBlockQuote.border":"#191919","textCodeBlock.background":"#121212","textLink.activeForeground":"#4d9375","textLink.foreground":"#4d9375","textPreformat.foreground":"#d1d5da","textSeparator.foreground":"#586069","titleBar.activeBackground":"#121212","titleBar.activeForeground":"#bfbaaa","titleBar.border":"#181818","titleBar.inactiveBackground":"#121212","titleBar.inactiveForeground":"#959da5","tree.indentGuidesStroke":"#2f363d","welcomePage.buttonBackground":"#2f363d","welcomePage.buttonHoverBackground":"#444d56"},displayName:"Vitesse Dark",name:"vitesse-dark",semanticHighlighting:!0,semanticTokenColors:{class:"#7f8ac7",interface:"#5d99a9",namespace:"#db889a",property:"#b8a965",type:"#5d99a9"},tokenColors:[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#758575dd"}},{scope:["delimiter.bracket","delimiter","invalid.illegal.character-not-allowed-here.html","keyword.operator.rest","keyword.operator.spread","keyword.operator.type.annotation","keyword.operator.relational","keyword.operator.assignment","meta.brace","meta.tag.block.any.html","meta.tag.inline.any.html","meta.tag.structure.input.void.html","meta.type.annotation","meta.embedded.block.github-actions-expression","storage.type.function.arrow","keyword.operator.type","meta.objectliteral.ts","punctuation"],settings:{foreground:"#666666"}},{scope:["constant","entity.name.constant","variable.language","meta.definition.variable"],settings:{foreground:"#c99076"}},{scope:["entity","entity.name"],settings:{foreground:"#80a665"}},{scope:"variable.parameter.function",settings:{foreground:"#dbd7caee"}},{scope:["entity.name.tag","tag.html"],settings:{foreground:"#4d9375"}},{scope:"entity.name.function",settings:{foreground:"#80a665"}},{scope:["keyword","storage.type.class.jsdoc"],settings:{foreground:"#4d9375"}},{scope:["storage","storage.type","support.type.builtin","constant.language.undefined","constant.language.null"],settings:{foreground:"#cb7676"}},{scope:["text.html.derivative","storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#dbd7caee"}},{scope:["string","string punctuation.section.embedded source","attribute.value"],settings:{foreground:"#c98a7d"}},{scope:["punctuation.definition.string","punctuation.support.type.property-name"],settings:{foreground:"#c98a7d99"}},{scope:"support",settings:{foreground:"#b8a965"}},{scope:["property","meta.property-name","meta.object-literal.key","entity.name.tag.yaml","attribute.name"],settings:{foreground:"#b8a965"}},{scope:["entity.other.attribute-name","invalid.deprecated.entity.other.attribute-name.html"],settings:{foreground:"#bd976a"}},{scope:["variable","identifier"],settings:{foreground:"#bd976a"}},{scope:["support.type.primitive","entity.name.type"],settings:{foreground:"#5DA994"}},{scope:"namespace",settings:{foreground:"#db889a"}},{scope:["keyword.operator","keyword.operator.assignment.compound","meta.var.expr.ts"],settings:{foreground:"#cb7676"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"carriage-return",settings:{background:"#f97583",content:"^M",fontStyle:"italic underline",foreground:"#24292e"}},{scope:"message.error",settings:{foreground:"#fdaeb7"}},{scope:"string variable",settings:{foreground:"#c98a7d"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#c4704f"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#c98a7d"}},{scope:"string.regexp constant.character.escape",settings:{foreground:"#e6cc77"}},{scope:["support.constant"],settings:{foreground:"#c99076"}},{scope:["constant.numeric","number"],settings:{foreground:"#4C9A91"}},{scope:["keyword.other.unit"],settings:{foreground:"#cb7676"}},{scope:["constant.language.boolean","constant.language"],settings:{foreground:"#4d9375"}},{scope:"meta.module-reference",settings:{foreground:"#4d9375"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#d4976c"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#4d9375"}},{scope:"markup.quote",settings:{foreground:"#5d99a9"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#dbd7caee"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#dbd7caee"}},{scope:"markup.raw",settings:{foreground:"#4d9375"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#86181d",foreground:"#fdaeb7"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#144620",foreground:"#85e89d"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#c24e00",foreground:"#ffab70"}},{scope:["markup.ignored","markup.untracked"],settings:{background:"#79b8ff",foreground:"#2f363d"}},{scope:"meta.diff.range",settings:{fontStyle:"bold",foreground:"#b392f0"}},{scope:"meta.diff.header",settings:{foreground:"#79b8ff"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#79b8ff"}},{scope:"meta.output",settings:{foreground:"#79b8ff"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#d1d5da"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#fdaeb7"}},{scope:["constant.other.reference.link","string.other.link","punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown"],settings:{foreground:"#c98a7d"}},{scope:["markup.underline.link.markdown","markup.underline.link.image.markdown"],settings:{fontStyle:"underline",foreground:"#dedcd590"}},{scope:["type.identifier"],settings:{foreground:"#7f8ac7"}},{scope:["entity.other.attribute-name.html.vue"],settings:{foreground:"#80a665"}},{scope:["invalid.illegal.unrecognized-tag.html"],settings:{fontStyle:"normal"}}],type:"dark"});export{e as default}; diff --git a/assets/chunks/vitesse-light.BGq4KZyx.js b/assets/chunks/vitesse-light.BGq4KZyx.js new file mode 100644 index 000000000..57a478184 --- /dev/null +++ b/assets/chunks/vitesse-light.BGq4KZyx.js @@ -0,0 +1 @@ +var e=Object.freeze({colors:{"activityBar.activeBorder":"#1c6b48","activityBar.background":"#ffffff","activityBar.border":"#f0f0f0","activityBar.foreground":"#393a34","activityBar.inactiveForeground":"#393a3450","activityBarBadge.background":"#4e4f47","activityBarBadge.foreground":"#ffffff","badge.background":"#393a3490","badge.foreground":"#ffffff","breadcrumb.activeSelectionForeground":"#22222218","breadcrumb.background":"#f7f7f7","breadcrumb.focusForeground":"#393a34","breadcrumb.foreground":"#6a737d","breadcrumbPicker.background":"#ffffff","button.background":"#1c6b48","button.foreground":"#ffffff","button.hoverBackground":"#1c6b48","checkbox.background":"#f7f7f7","checkbox.border":"#d1d5da","debugToolBar.background":"#ffffff",descriptionForeground:"#393a3490","diffEditor.insertedTextBackground":"#1c6b4830","diffEditor.removedTextBackground":"#ab595940","dropdown.background":"#ffffff","dropdown.border":"#f0f0f0","dropdown.foreground":"#393a34","dropdown.listBackground":"#f7f7f7","editor.background":"#ffffff","editor.findMatchBackground":"#e6cc7744","editor.findMatchHighlightBackground":"#e6cc7766","editor.focusedStackFrameHighlightBackground":"#fff5b1","editor.foldBackground":"#22222210","editor.foreground":"#393a34","editor.inactiveSelectionBackground":"#22222210","editor.lineHighlightBackground":"#f7f7f7","editor.selectionBackground":"#22222218","editor.selectionHighlightBackground":"#22222210","editor.stackFrameHighlightBackground":"#fffbdd","editor.wordHighlightBackground":"#1c6b4805","editor.wordHighlightStrongBackground":"#1c6b4810","editorBracketHighlight.foreground1":"#2993a3","editorBracketHighlight.foreground2":"#1e754f","editorBracketHighlight.foreground3":"#a65e2b","editorBracketHighlight.foreground4":"#a13865","editorBracketHighlight.foreground5":"#bda437","editorBracketHighlight.foreground6":"#296aa3","editorBracketMatch.background":"#1c6b4820","editorError.foreground":"#ab5959","editorGroup.border":"#f0f0f0","editorGroupHeader.tabsBackground":"#ffffff","editorGroupHeader.tabsBorder":"#f0f0f0","editorGutter.addedBackground":"#1e754f","editorGutter.commentRangeForeground":"#393a3450","editorGutter.deletedBackground":"#ab5959","editorGutter.foldingControlForeground":"#393a3490","editorGutter.modifiedBackground":"#296aa3","editorHint.foreground":"#1e754f","editorIndentGuide.activeBackground":"#00000030","editorIndentGuide.background":"#00000015","editorInfo.foreground":"#296aa3","editorInlayHint.background":"#00000000","editorInlayHint.foreground":"#999999","editorLineNumber.activeForeground":"#4e4f47","editorLineNumber.foreground":"#393a3450","editorOverviewRuler.border":"#fff","editorStickyScroll.background":"#f7f7f7","editorStickyScrollHover.background":"#f7f7f7","editorWarning.foreground":"#a65e2b","editorWhitespace.foreground":"#00000015","editorWidget.background":"#ffffff",errorForeground:"#ab5959",focusBorder:"#00000000",foreground:"#393a34","gitDecoration.addedResourceForeground":"#1e754f","gitDecoration.conflictingResourceForeground":"#a65e2b","gitDecoration.deletedResourceForeground":"#ab5959","gitDecoration.ignoredResourceForeground":"#393a3450","gitDecoration.modifiedResourceForeground":"#296aa3","gitDecoration.submoduleResourceForeground":"#393a3490","gitDecoration.untrackedResourceForeground":"#2993a3","input.background":"#f7f7f7","input.border":"#f0f0f0","input.foreground":"#393a34","input.placeholderForeground":"#393a3490","inputOption.activeBackground":"#393a3450","list.activeSelectionBackground":"#f7f7f7","list.activeSelectionForeground":"#393a34","list.focusBackground":"#f7f7f7","list.highlightForeground":"#1c6b48","list.hoverBackground":"#f7f7f7","list.hoverForeground":"#393a34","list.inactiveFocusBackground":"#ffffff","list.inactiveSelectionBackground":"#f7f7f7","list.inactiveSelectionForeground":"#393a34","menu.separatorBackground":"#f0f0f0","notificationCenterHeader.background":"#ffffff","notificationCenterHeader.foreground":"#6a737d","notifications.background":"#ffffff","notifications.border":"#f0f0f0","notifications.foreground":"#393a34","notificationsErrorIcon.foreground":"#ab5959","notificationsInfoIcon.foreground":"#296aa3","notificationsWarningIcon.foreground":"#a65e2b","panel.background":"#ffffff","panel.border":"#f0f0f0","panelInput.border":"#e1e4e8","panelTitle.activeBorder":"#1c6b48","panelTitle.activeForeground":"#393a34","panelTitle.inactiveForeground":"#6a737d","peekViewEditor.background":"#ffffff","peekViewResult.background":"#ffffff","pickerGroup.border":"#f0f0f0","pickerGroup.foreground":"#393a34","problemsErrorIcon.foreground":"#ab5959","problemsInfoIcon.foreground":"#296aa3","problemsWarningIcon.foreground":"#a65e2b","progressBar.background":"#1c6b48","quickInput.background":"#ffffff","quickInput.foreground":"#393a34","quickInputList.focusBackground":"#f7f7f7","scrollbar.shadow":"#6a737d33","scrollbarSlider.activeBackground":"#393a3450","scrollbarSlider.background":"#393a3410","scrollbarSlider.hoverBackground":"#393a3450","settings.headerForeground":"#393a34","settings.modifiedItemIndicator":"#1c6b48","sideBar.background":"#ffffff","sideBar.border":"#f0f0f0","sideBar.foreground":"#4e4f47","sideBarSectionHeader.background":"#ffffff","sideBarSectionHeader.border":"#f0f0f0","sideBarSectionHeader.foreground":"#393a34","sideBarTitle.foreground":"#393a34","statusBar.background":"#ffffff","statusBar.border":"#f0f0f0","statusBar.debuggingBackground":"#f7f7f7","statusBar.debuggingForeground":"#4e4f47","statusBar.foreground":"#4e4f47","statusBar.noFolderBackground":"#ffffff","statusBarItem.prominentBackground":"#f7f7f7","tab.activeBackground":"#ffffff","tab.activeBorder":"#f0f0f0","tab.activeBorderTop":"#393a3490","tab.activeForeground":"#393a34","tab.border":"#f0f0f0","tab.hoverBackground":"#f7f7f7","tab.inactiveBackground":"#ffffff","tab.inactiveForeground":"#6a737d","tab.unfocusedActiveBorder":"#f0f0f0","tab.unfocusedActiveBorderTop":"#f0f0f0","tab.unfocusedHoverBackground":"#ffffff","terminal.ansiBlack":"#121212","terminal.ansiBlue":"#296aa3","terminal.ansiBrightBlack":"#aaaaaa","terminal.ansiBrightBlue":"#296aa3","terminal.ansiBrightCyan":"#2993a3","terminal.ansiBrightGreen":"#1e754f","terminal.ansiBrightMagenta":"#a13865","terminal.ansiBrightRed":"#ab5959","terminal.ansiBrightWhite":"#dddddd","terminal.ansiBrightYellow":"#bda437","terminal.ansiCyan":"#2993a3","terminal.ansiGreen":"#1e754f","terminal.ansiMagenta":"#a13865","terminal.ansiRed":"#ab5959","terminal.ansiWhite":"#dbd7ca","terminal.ansiYellow":"#bda437","terminal.foreground":"#393a34","terminal.selectionBackground":"#22222218","textBlockQuote.background":"#ffffff","textBlockQuote.border":"#f0f0f0","textCodeBlock.background":"#ffffff","textLink.activeForeground":"#1c6b48","textLink.foreground":"#1c6b48","textPreformat.foreground":"#586069","textSeparator.foreground":"#d1d5da","titleBar.activeBackground":"#ffffff","titleBar.activeForeground":"#4e4f47","titleBar.border":"#f7f7f7","titleBar.inactiveBackground":"#ffffff","titleBar.inactiveForeground":"#6a737d","tree.indentGuidesStroke":"#e1e4e8","welcomePage.buttonBackground":"#f6f8fa","welcomePage.buttonHoverBackground":"#e1e4e8"},displayName:"Vitesse Light",name:"vitesse-light",semanticHighlighting:!0,semanticTokenColors:{class:"#5a6aa6",interface:"#2e808f",namespace:"#b05a78",property:"#998418",type:"#2e808f"},tokenColors:[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#a0ada0"}},{scope:["delimiter.bracket","delimiter","invalid.illegal.character-not-allowed-here.html","keyword.operator.rest","keyword.operator.spread","keyword.operator.type.annotation","keyword.operator.relational","keyword.operator.assignment","meta.brace","meta.tag.block.any.html","meta.tag.inline.any.html","meta.tag.structure.input.void.html","meta.type.annotation","meta.embedded.block.github-actions-expression","storage.type.function.arrow","keyword.operator.type","meta.objectliteral.ts","punctuation"],settings:{foreground:"#999999"}},{scope:["constant","entity.name.constant","variable.language","meta.definition.variable"],settings:{foreground:"#a65e2b"}},{scope:["entity","entity.name"],settings:{foreground:"#59873a"}},{scope:"variable.parameter.function",settings:{foreground:"#393a34"}},{scope:["entity.name.tag","tag.html"],settings:{foreground:"#1e754f"}},{scope:"entity.name.function",settings:{foreground:"#59873a"}},{scope:["keyword","storage.type.class.jsdoc"],settings:{foreground:"#1e754f"}},{scope:["storage","storage.type","support.type.builtin","constant.language.undefined","constant.language.null"],settings:{foreground:"#ab5959"}},{scope:["text.html.derivative","storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#393a34"}},{scope:["string","string punctuation.section.embedded source","attribute.value"],settings:{foreground:"#b56959"}},{scope:["punctuation.definition.string","punctuation.support.type.property-name"],settings:{foreground:"#b5695999"}},{scope:"support",settings:{foreground:"#998418"}},{scope:["property","meta.property-name","meta.object-literal.key","entity.name.tag.yaml","attribute.name"],settings:{foreground:"#998418"}},{scope:["entity.other.attribute-name","invalid.deprecated.entity.other.attribute-name.html"],settings:{foreground:"#b07d48"}},{scope:["variable","identifier"],settings:{foreground:"#b07d48"}},{scope:["support.type.primitive","entity.name.type"],settings:{foreground:"#2e8f82"}},{scope:"namespace",settings:{foreground:"#b05a78"}},{scope:["keyword.operator","keyword.operator.assignment.compound","meta.var.expr.ts"],settings:{foreground:"#ab5959"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"carriage-return",settings:{background:"#d73a49",content:"^M",fontStyle:"italic underline",foreground:"#fafbfc"}},{scope:"message.error",settings:{foreground:"#b31d28"}},{scope:"string variable",settings:{foreground:"#b56959"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#ab5e3f"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#b56959"}},{scope:"string.regexp constant.character.escape",settings:{foreground:"#bda437"}},{scope:["support.constant"],settings:{foreground:"#a65e2b"}},{scope:["constant.numeric","number"],settings:{foreground:"#2f798a"}},{scope:["keyword.other.unit"],settings:{foreground:"#ab5959"}},{scope:["constant.language.boolean","constant.language"],settings:{foreground:"#1e754f"}},{scope:"meta.module-reference",settings:{foreground:"#1c6b48"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#a65e2b"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#1c6b48"}},{scope:"markup.quote",settings:{foreground:"#2e808f"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#393a34"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#393a34"}},{scope:"markup.raw",settings:{foreground:"#1c6b48"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#ffeef0",foreground:"#b31d28"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#f0fff4",foreground:"#22863a"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#ffebda",foreground:"#e36209"}},{scope:["markup.ignored","markup.untracked"],settings:{background:"#005cc5",foreground:"#f6f8fa"}},{scope:"meta.diff.range",settings:{fontStyle:"bold",foreground:"#6f42c1"}},{scope:"meta.diff.header",settings:{foreground:"#005cc5"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#005cc5"}},{scope:"meta.output",settings:{foreground:"#005cc5"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#586069"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#b31d28"}},{scope:["constant.other.reference.link","string.other.link","punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown"],settings:{foreground:"#b56959"}},{scope:["markup.underline.link.markdown","markup.underline.link.image.markdown"],settings:{fontStyle:"underline",foreground:"#393a3490"}},{scope:["type.identifier"],settings:{foreground:"#5a6aa6"}},{scope:["entity.other.attribute-name.html.vue"],settings:{foreground:"#59873a"}},{scope:["invalid.illegal.unrecognized-tag.html"],settings:{fontStyle:"normal"}}],type:"light"});export{e as default}; diff --git a/assets/chunks/vue-html.B4wQFpQy.js b/assets/chunks/vue-html.B4wQFpQy.js new file mode 100644 index 000000000..cd5884046 --- /dev/null +++ b/assets/chunks/vue-html.B4wQFpQy.js @@ -0,0 +1 @@ +import t from"./vue.DT8Wph6y.js";import e from"./javascript.Dch3xQiY.js";import"./html.CuK0VrWf.js";import"./css.CbYhyuC0.js";import"./markdown.BdfWgkoX.js";import"./pug.BWq4yR4F.js";import"./sass.CMDmr8et.js";import"./scss.Dr-_CcBd.js";import"./stylus.DSrLtGYv.js";import"./coffee.t_LrLW_f.js";import"./less.Du6_OKDb.js";import"./typescript.DC8MraHL.js";import"./jsx.CsyrCbsw.js";import"./tsx.BlxWTfDV.js";import"./json.CupVZNk8.js";import"./jsonc.DYI1rfmx.js";import"./json5.Bh8mriwU.js";import"./yaml.C5gCGmDW.js";import"./toml.BT9ZzGyQ.js";import"./graphql.C4V4xKFR.js";import"./html-derivative.fiapQfxX.js";const n=Object.freeze({displayName:"Vue HTML",fileTypes:[],name:"vue-html",patterns:[{include:"source.vue#vue-interpolations"},{begin:"(<)([A-Z][a-zA-Z0-9:-]*)(?=[^>]*></\\2>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"support.class.component.html"}},end:"(>)(<)(/)(\\2)(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"},2:{name:"punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html"},3:{name:"punctuation.definition.tag.begin.html"},4:{name:"support.class.component.html"},5:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(<)([a-z][a-zA-Z0-9:-]*)(?=[^>]*></\\2>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"(>)(<)(/)(\\2)(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"},2:{name:"punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html"},3:{name:"punctuation.definition.tag.begin.html"},4:{name:"entity.name.tag.html"},5:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(<\\?)(xml)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.xml.html"}},end:"(\\?>)",name:"meta.tag.preprocessor.xml.html",patterns:[{include:"#tag-generic-attribute"},{include:"#string-double-quoted"},{include:"#string-single-quoted"}]},{begin:"<!--",captures:{0:{name:"punctuation.definition.comment.html"}},end:"-->",name:"comment.block.html"},{begin:"<!",captures:{0:{name:"punctuation.definition.tag.html"}},end:">",name:"meta.tag.sgml.html",patterns:[{begin:"(?i:DOCTYPE)",captures:{1:{name:"entity.name.tag.doctype.html"}},end:"(?=>)",name:"meta.tag.sgml.doctype.html",patterns:[{match:'"[^">]*"',name:"string.quoted.double.doctype.identifiers-and-DTDs.html"}]},{begin:"\\[CDATA\\[",end:"]](?=>)",name:"constant.other.inline-data.html"},{match:"(\\s*)(?!--|>)\\S(\\s*)",name:"invalid.illegal.bad-comments-or-CDATA.html"}]},{begin:"(</?)([A-Z][a-zA-Z0-9:-]*\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"support.class.component.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.block.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)([a-z][a-zA-Z0-9:-]*\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.block.any.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.block.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)((?i:body|head|html)\\b)",captures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.structure.any.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)(?!-)\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.block.any.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.block.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)(?!-)\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.inline.any.html"}},end:"(/?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)([a-zA-Z0-9:-]+)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.other.html"}},end:"(/?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.html",patterns:[{include:"#tag-stuff"}]},{include:"#entities"},{match:"<>",name:"invalid.illegal.incomplete.html"},{match:"<",name:"invalid.illegal.bad-angle-bracket.html"}],repository:{entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.html"},{match:"&",name:"invalid.illegal.bad-ampersand.html"}]},"string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"source.vue#vue-interpolations"},{include:"#entities"}]},"string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"source.vue#vue-interpolations"},{include:"#entities"}]},"tag-generic-attribute":{match:"(?<=[^=])\\b([a-zA-Z0-9:\\-_]+)",name:"entity.other.attribute-name.html"},"tag-id-attribute":{begin:"\\b(id)\\b\\s*(=)",captures:{1:{name:"entity.other.attribute-name.id.html"},2:{name:"punctuation.separator.key-value.html"}},end:`(?!\\G)(?<='|"|[^\\s<>/])`,name:"meta.attribute-with-value.id.html",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"meta.toc-list.id.html",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"source.vue#vue-interpolations"},{include:"#entities"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"meta.toc-list.id.html",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"source.vue#vue-interpolations"},{include:"#entities"}]},{captures:{0:{name:"meta.toc-list.id.html"}},match:`(?<==)(?:[^\\s<>/'"]|/(?!>))+`,name:"string.unquoted.html"}]},"tag-stuff":{patterns:[{include:"#vue-directives"},{include:"#tag-id-attribute"},{include:"#tag-generic-attribute"},{include:"#string-double-quoted"},{include:"#string-single-quoted"},{include:"#unquoted-attribute"}]},"unquoted-attribute":{match:`(?<==)(?:[^\\s<>/'"]|/(?!>))+`,name:"string.unquoted.html"},"vue-directives":{begin:"(?:\\b(v-)|(:|@|#))([a-zA-Z0-9\\-_]+)(?:\\:([a-zA-Z\\-_]+))?(?:\\.([a-zA-Z\\-_]+))*\\s*(=)",captures:{1:{name:"entity.other.attribute-name.html"},2:{name:"punctuation.separator.key-value.html"},3:{name:"entity.other.attribute-name.html"},4:{name:"entity.other.attribute-name.html"},5:{name:"entity.other.attribute-name.html"},6:{name:"punctuation.separator.key-value.html"}},end:"(?<='|\")|(?=[\\s<>`])",name:"meta.directive.vue",patterns:[{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"source.directive.vue",patterns:[{include:"source.js#expression"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"source.directive.vue",patterns:[{include:"source.js#expression"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"source.directive.vue",patterns:[{include:"source.js#expression"}]}]}},scopeName:"text.html.vue-html",embeddedLangs:["vue","javascript"]});var z=[...t,...e,n];export{z as default}; diff --git a/assets/chunks/vue.DT8Wph6y.js b/assets/chunks/vue.DT8Wph6y.js new file mode 100644 index 000000000..6055ae788 --- /dev/null +++ b/assets/chunks/vue.DT8Wph6y.js @@ -0,0 +1,6 @@ +import t from"./html.CuK0VrWf.js";import n from"./markdown.BdfWgkoX.js";import a from"./pug.BWq4yR4F.js";import i from"./stylus.DSrLtGYv.js";import s from"./sass.CMDmr8et.js";import u from"./css.CbYhyuC0.js";import m from"./scss.Dr-_CcBd.js";import r from"./less.Du6_OKDb.js";import e from"./javascript.Dch3xQiY.js";import o from"./typescript.DC8MraHL.js";import c from"./jsx.CsyrCbsw.js";import l from"./tsx.BlxWTfDV.js";import d from"./json.CupVZNk8.js";import g from"./jsonc.DYI1rfmx.js";import p from"./json5.Bh8mriwU.js";import b from"./yaml.C5gCGmDW.js";import v from"./toml.BT9ZzGyQ.js";import f from"./graphql.C4V4xKFR.js";import h from"./html-derivative.fiapQfxX.js";import"./coffee.t_LrLW_f.js";const y=Object.freeze({fileTypes:[],injectTo:["text.html.markdown"],injectionSelector:"L:text.html.markdown",name:"markdown-vue",patterns:[{include:"#vue-code-block"}],repository:{"vue-code-block":{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vue)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown",patterns:[{include:"source.vue"}]}},scopeName:"markdown.vue.codeblock"});var C=[y];const $=Object.freeze({fileTypes:[],injectTo:["source.vue","text.html.markdown","text.html.derivative","text.pug"],injectionSelector:"L:meta.tag -meta.attribute -meta.ng-binding -entity.name.tag.pug -attribute_value -source.tsx -source.js.jsx, L:meta.element -meta.attribute",name:"vue-directives",patterns:[{include:"source.vue#vue-directives"}],scopeName:"vue.directives"});var j=[$];const x=Object.freeze({fileTypes:[],injectTo:["source.vue","text.html.markdown","text.html.derivative","text.pug"],injectionSelector:"L:text.pug -comment -string.comment, L:text.html.derivative -comment.block, L:text.html.markdown -comment.block",name:"vue-interpolations",patterns:[{include:"source.vue#vue-interpolations"}],scopeName:"vue.interpolations"});var k=[x];const z=Object.freeze({fileTypes:[],injectTo:["source.vue"],injectionSelector:"L:source.css -comment, L:source.postcss -comment, L:source.sass -comment, L:source.stylus -comment",name:"vue-sfc-style-variable-injection",patterns:[{include:"#vue-sfc-style-variable-injection"}],repository:{"vue-sfc-style-variable-injection":{begin:"\\b(v-bind)\\s*\\(",beginCaptures:{1:{name:"entity.name.function"}},end:"\\)",name:"vue.sfc.style.variable.injection.v-bind",patterns:[{begin:`('|")`,beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"}},end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"source.ts.embedded.html.vue",patterns:[{include:"source.js"}]},{include:"source.js"}]}},scopeName:"vue.sfc.style.variable.injection",embeddedLangs:["javascript"]});var A=[...e,z];const Z=Object.freeze({displayName:"Vue",name:"vue",patterns:[{include:"text.html.basic#comment"},{include:"#self-closing-tag"},{begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},patterns:[{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)md\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text.html.markdown",patterns:[{include:"text.html.markdown"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)html\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text.html.derivative",patterns:[{include:"#html-stuff"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)pug\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text.pug",patterns:[{include:"text.pug"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)stylus\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.stylus",patterns:[{include:"source.stylus"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)postcss\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.postcss",patterns:[{include:"source.postcss"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)sass\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.sass",patterns:[{include:"source.sass"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)css\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.css",patterns:[{include:"source.css"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)scss\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.css.scss",patterns:[{include:"source.css.scss"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)less\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.css.less",patterns:[{include:"source.css.less"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)js\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.js",patterns:[{include:"source.js"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)ts\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.ts",patterns:[{include:"source.ts"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)jsx\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.js.jsx",patterns:[{include:"source.js.jsx"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)tsx\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.tsx",patterns:[{include:"source.tsx"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)json\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.json",patterns:[{include:"source.json"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)jsonc\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.json.comments",patterns:[{include:"source.json.comments"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)json5\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.json5",patterns:[{include:"source.json5"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)yaml\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.yaml",patterns:[{include:"source.yaml"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)toml\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.toml",patterns:[{include:"source.toml"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)(gql|graphql)\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.graphql",patterns:[{include:"source.graphql"}]}]},{begin:`([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['"]?)vue\\b\\2)`,beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.vue",patterns:[{include:"source.vue"}]}]},{begin:"(template)\\b",beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/template\\b)",name:"text.html.derivative",patterns:[{include:"#html-stuff"}]}]},{begin:"(script)\\b",beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/script\\b)",name:"source.js",patterns:[{include:"source.js"}]}]},{begin:"(style)\\b",beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/style\\b)",name:"source.css",patterns:[{include:"source.css"}]}]},{begin:"([a-zA-Z0-9:-]+)",beginCaptures:{1:{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text"}]}]}],repository:{"html-stuff":{patterns:[{include:"#template-tag"},{include:"text.html.derivative"},{include:"text.html.basic"}]},"self-closing-tag":{begin:"(<)([a-zA-Z0-9:-]+)(?=([^>]+/>))",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},end:"(/>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"self-closing-tag",patterns:[{include:"#tag-stuff"}]},"tag-stuff":{begin:"\\G",end:"(?=/>)|(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.tag-stuff",patterns:[{include:"#vue-directives"},{include:"text.html.basic#attribute"}]},"template-tag":{patterns:[{include:"#template-tag-1"},{include:"#template-tag-2"}]},"template-tag-1":{begin:"(<)(template)\\b(>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"},3:{name:"punctuation.definition.tag.end.html.vue"}},end:"(/?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.template-tag.start",patterns:[{begin:"\\G",end:"(?=/>)|((</)(template)\\b)",endCaptures:{2:{name:"punctuation.definition.tag.begin.html.vue"},3:{name:"entity.name.tag.$3.html.vue"}},name:"meta.template-tag.end",patterns:[{include:"#html-stuff"}]}]},"template-tag-2":{begin:"(<)(template)\\b",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},end:"(/?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.template-tag.start",patterns:[{begin:"\\G",end:"(?=/>)|((</)(template)\\b)",endCaptures:{2:{name:"punctuation.definition.tag.begin.html.vue"},3:{name:"entity.name.tag.$3.html.vue"}},name:"meta.template-tag.end",patterns:[{include:"#tag-stuff"},{include:"#html-stuff"}]}]},"vue-directives":{patterns:[{include:"#vue-directives-control"},{include:"#vue-directives-style-attr"},{include:"#vue-directives-original"},{include:"#vue-directives-generic-attr"}]},"vue-directives-control":{begin:"(v-for)|(v-if|v-else-if|v-else)",captures:{1:{name:"keyword.control.loop.vue"},2:{name:"keyword.control.conditional.vue"}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.directive.control.vue",patterns:[{include:"#vue-directives-expression"}]},"vue-directives-expression":{patterns:[{begin:"(=)\\s*('|\"|`)",beginCaptures:{1:{name:"punctuation.separator.key-value.html.vue"},2:{name:"punctuation.definition.string.begin.html.vue"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.html.vue"}},patterns:[{begin:"(?<=('|\"|`))",end:"(?=\\1)",name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts"}]}]},{begin:"(=)\\s*(?=[^'\"`])",beginCaptures:{1:{name:"punctuation.separator.key-value.html.vue"}},end:"(?=(\\s|>|\\/>))",patterns:[{begin:"(?=[^'\"`])",end:"(?=(\\s|>|\\/>))",name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts"}]}]}]},"vue-directives-generic-attr":{begin:"\\b(generic)\\s*(=)",captures:{1:{name:"entity.other.attribute-name.html.vue"},2:{name:"punctuation.separator.key-value.html.vue"}},end:`(?<='|")`,name:"meta.attribute.generic.vue",patterns:[{begin:`('|")`,beginCaptures:{1:{name:"punctuation.definition.string.begin.html.vue"}},comment:"https://github.com/microsoft/vscode/blob/fd4346210f59135fad81a8b8c4cea7bf5a9ca6b4/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json#L4002-L4020",end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.string.end.html.vue"}},name:"meta.type.parameters.vue",patterns:[{include:"source.ts#comment"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"},{include:"source.ts#type"},{include:"source.ts#punctuation-comma"},{match:"(=)(?!>)",name:"keyword.operator.assignment.ts"}]}]},"vue-directives-original":{begin:"(?:\\b(v-)|([:\\.])|(@)|(#))(\\[?)([\\w\\-]*)(\\]?)(?:\\.([\\w\\-]*))*",beginCaptures:{1:{name:"entity.other.attribute-name.html.vue"},2:{name:"punctuation.attribute-shorthand.bind.html.vue"},3:{name:"punctuation.attribute-shorthand.event.html.vue"},4:{name:"punctuation.attribute-shorthand.slot.html.vue"},5:{name:"punctuation.separator.key-value.html.vue"},6:{name:"entity.other.attribute-name.html.vue"},7:{name:"punctuation.separator.key-value.html.vue"},8:{name:"entity.other.attribute-name.html.vue"},9:{name:"punctuation.separator.key-value.html.vue"}},end:"(?=\\s*+[^=\\s])",endCaptures:{1:{name:"punctuation.definition.string.end.html.vue"}},name:"meta.attribute.directive.vue",patterns:[{include:"#vue-directives-expression"}]},"vue-directives-style-attr":{begin:"\\b(style)\\s*(=)",captures:{1:{name:"entity.other.attribute-name.html.vue"},2:{name:"punctuation.separator.key-value.html.vue"}},end:`(?<='|")`,name:"meta.attribute.style.vue",patterns:[{begin:`('|")`,beginCaptures:{1:{name:"punctuation.definition.string.begin.html.vue"}},comment:"Copy from source.css#rule-list-innards",end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.string.end.html.vue"}},name:"source.css.embedded.html.vue",patterns:[{include:"source.css#comment-block"},{include:"source.css#escapes"},{include:"source.css#font-features"},{match:`(?x) (?<![\\w-]) +-- +(?:[-a-zA-Z_] | [^\\x00-\\x7F]) +(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] +|\\\\(?:[0-9a-fA-F]{1,6}|.) +)*`,name:"variable.css"},{begin:"(?<![-a-zA-Z])(?=[-a-zA-Z])",end:"$|(?![-a-zA-Z])",name:"meta.property-name.css",patterns:[{include:"source.css#property-names"}]},{begin:"(:)\\s*",beginCaptures:{1:{name:"punctuation.separator.key-value.css"}},comment:"Modify end to fix #199. TODO: handle ' character.",contentName:"meta.property-value.css",end:`\\s*(;)|\\s*(?='|")`,endCaptures:{1:{name:"punctuation.terminator.rule.css"}},patterns:[{include:"source.css#comment-block"},{include:"source.css#property-values"}]},{match:";",name:"punctuation.terminator.rule.css"}]}]},"vue-interpolations":{patterns:[{begin:"(\\{\\{)",beginCaptures:{1:{name:"punctuation.definition.interpolation.begin.html.vue"}},end:"(\\}\\})",endCaptures:{1:{name:"punctuation.definition.interpolation.end.html.vue"}},name:"expression.embedded.vue",patterns:[{begin:"\\G",end:"(?=\\}\\})",name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts"}]}]}]}},scopeName:"source.vue",embeddedLangs:["html","markdown","pug","stylus","sass","css","scss","less","javascript","typescript","jsx","tsx","json","jsonc","json5","yaml","toml","graphql","html-derivative","markdown-vue","vue-directives","vue-interpolations","vue-sfc-style-variable-injection"]});var Q=[...t,...n,...a,...i,...s,...u,...m,...r,...e,...o,...c,...l,...d,...g,...p,...b,...v,...f,...h,...C,...j,...k,...A,Z];export{Q as default}; diff --git a/assets/chunks/vyper.o-cPXEvd.js b/assets/chunks/vyper.o-cPXEvd.js new file mode 100644 index 000000000..ad940a3f5 --- /dev/null +++ b/assets/chunks/vyper.o-cPXEvd.js @@ -0,0 +1,575 @@ +const e=Object.freeze({displayName:"Vyper",name:"vyper",patterns:[{include:"#statement"},{include:"#expression"},{include:"#reserved-names-vyper"}],repository:{"annotated-parameter":{begin:`(?x) +\\b +([[:alpha:]_]\\w*) \\s* (:) +`,beginCaptures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.annotation.python"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"},{match:"=(?!=)",name:"keyword.operator.assignment.python"}]},"assignment-operator":{match:`(?x) +<<= | >>= | //= | \\*\\*= +| \\+= | -= | /= | @= +| \\*= | %= | ~= | \\^= | &= | \\|= +| =(?!=) +`,name:"keyword.operator.assignment.python"},backticks:{begin:"\\`",end:"(?:\\`|(?<!\\\\)(\\n))",name:"invalid.deprecated.backtick.python",patterns:[{include:"#expression"}]},"builtin-callables":{patterns:[{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#builtin-exceptions"},{include:"#builtin-functions"},{include:"#builtin-types"}]},"builtin-exceptions":{match:`(?x) (?<!\\.) \\b( +( +Arithmetic | Assertion | Attribute | Buffer | BlockingIO +| BrokenPipe | ChildProcess +| (Connection (Aborted | Refused | Reset)?) +| EOF | Environment | FileExists | FileNotFound +| FloatingPoint | IO | Import | Indentation | Index | Interrupted +| IsADirectory | NotADirectory | Permission | ProcessLookup +| Timeout +| Key | Lookup | Memory | Name | NotImplemented | OS | Overflow +| Reference | Runtime | Recursion | Syntax | System +| Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)? +| Value | Windows | ZeroDivision | ModuleNotFound +) Error +| +((Pending)?Deprecation | Runtime | Syntax | User | Future | Import +| Unicode | Bytes | Resource +)? Warning +| +SystemExit | Stop(Async)?Iteration +| KeyboardInterrupt +| GeneratorExit | (Base)?Exception +)\\b +`,name:"support.type.exception.python"},"builtin-functions":{patterns:[{match:`(?x) +(?<!\\.) \\b( +__import__ | abs | all | any | ascii | bin | breakpoint | callable +| chr | compile | copyright | credits | delattr | dir | divmod +| enumerate | eval | exec | exit | filter | format | getattr +| globals | hasattr | hash | help | hex | id | input +| isinstance | issubclass | iter | len | license | locals | map +| max | memoryview | min | next | oct | open | ord | pow | print +| quit | range | reload | repr | reversed | round +| setattr | sorted | sum | vars | zip +)\\b +`,name:"support.function.builtin.python"},{match:`(?x) +(?<!\\.) \\b( +file | reduce | intern | raw_input | unicode | cmp | basestring +| execfile | long | xrange +)\\b +`,name:"variable.legacy.builtin.python"},{match:`(?x) +(?<!\\.) \\b( +_abi_encode | floor | ceil | convert | slice | len | concat | sha256 | method_id | keccak256 | ecrecover | ecadd | ecmul | extract32 | as_wei_value | raw_call | blockhash | bitwise_and | bitwise_or | bitwise_xor | bitwise_not | uint256_addmod | uint256_mulmod | pow_mod256 | sqrt | shift | create_forwarder_to | min | max | empty | abs )\\b +`,name:"support.function.builtin.vyper"},{match:`(?x) +(?<!\\.) \\b( +send | selfdestruct | raw_call | raw_log | create_forwarder_to )\\b +`,name:"support.function.builtin.lowlevel.vyper"},{match:`(?x) +(?<!\\.) \\b( +event )\\b +`,name:"support.type.event.vyper"},{match:`(?x) +(?<!\\.) \\b( +map | struct | HashMap )\\b +`,name:"support.type.reference.vyper"},{match:`(?x) +(?<!\\.) \\b( +private | nonreentrant | constant | event | internal | view | pure )\\b +`,name:"support.function.builtin.modifiers.safe.vyper"},{match:`(?x) +(?<!\\.) \\b( +public | payable | modifying | external )\\b +`,name:"support.function.builtin.modifiers.unsafe.vyper"}]},"builtin-possible-callables":{patterns:[{include:"#builtin-callables"},{include:"#magic-names"}]},"builtin-types":{patterns:[{match:`(?x) +(?<!\\.) \\b( +bool | bytearray | bytes | classmethod | complex | dict +| float | frozenset | int | list | object | property +| set | slice | staticmethod | str | tuple | type + +(?# Although 'super' is not a type, it's related to types, +and is special enough to be highlighted differently from +other built-ins) +| super +)\\b +`,name:"support.type.python"},{match:`(?x) +(?<!\\.) \\b( +bytes32 | bytearray | wei_value | timestamp | int256 | uint8 | uint256 | decimal | timedelta | string | int128 | address | bool | bytes )\\b +`,name:"support.type.basetype.vyper"},{match:`(?x) +(?<!\\.) \\b( +finney | gwei | range | def | ____init____ | timedelta | babbage | zero_address | raise | external | empty_bytes32 | assert | continue | wei | ada | min_int256 | min_int128 | chainid | max_decimal | default | indexed | selfdestruct | lovelace | immutable | throw | kwei | max_int128 | while | constant | ___default___ | balance | twei | codesize | false | max_int256 | _default_ | init | mwei | if | ____default____ | true | payable | internal | until | this | nonpayable | pass | public | nonreentrant | blockhash | max_uint256 | shannon | none | units | _init_ | ___init___ | is_contract | for | zero_wei | min_decimal | szabo | timestamp | ether | pwei | send )\\b +`,name:"support.type.keywords.vyper"},{match:`(?x) +(?<!\\.) \\b( +shannon | finney | gwei | twei | kwei | wei | lovelace | ether | szabo | pwei | babbage | mwei | ada + +(?# Although 'super' is not a type, it's related to types, +and is special enough to be highlighted differently from +other built-ins) +| super +)\\b +`,name:"support.type.unit.vyper"},{match:`(?x) +(?<!\\.) \\b( +ZERO_ADDRESS | EMPTY_BYTES32 | MAX_INT128 | MIN_INT128 | MAX_DECIMAL | MIN_DECIMAL | MAX_UINT256 + +(?# Although 'super' is not a type, it's related to types, +and is special enough to be highlighted differently from +other built-ins) +| super +)\\b +`,name:"support.type.constant.vyper"},{match:`(?x) +(?<!\\.) \\b( +implements )\\b +`,name:"entity.other.inherited-class.interface.vyper"}]},"call-wrapper-inheritance":{begin:`(?x) +\\b(?= +([[:alpha:]_]\\w*) \\s* (\\() +) +`,comment:"same as a function call, but in inheritance context",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#inheritance-name"},{include:"#function-arguments"}]},"class-declaration":{patterns:[{begin:`(?x) +\\s*(class)\\s+ +(?= +[[:alpha:]_]\\w* \\s* (:|\\() +) +`,beginCaptures:{1:{name:"storage.type.class.python"}},end:"(:)",endCaptures:{1:{name:"punctuation.section.class.begin.python"}},name:"meta.class.python",patterns:[{include:"#class-name"},{include:"#class-inheritance"}]}]},"class-inheritance":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.inheritance.begin.python"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.inheritance.end.python"}},name:"meta.class.inheritance.python",patterns:[{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.arguments.python"},{match:",",name:"punctuation.separator.inheritance.python"},{match:"=(?!=)",name:"keyword.operator.assignment.python"},{match:"\\bmetaclass\\b",name:"support.type.metaclass.python"},{include:"#illegal-names"},{include:"#class-kwarg"},{include:"#call-wrapper-inheritance"},{include:"#expression-base"},{include:"#member-access-class"},{include:"#inheritance-identifier"}]},"class-kwarg":{captures:{1:{name:"entity.other.inherited-class.python variable.parameter.class.python"},2:{name:"keyword.operator.assignment.python"}},match:`(?x) +\\b ([[:alpha:]_]\\w*) \\s*(=)(?!=) +`},"class-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"entity.name.type.class.python"}]},codetags:{captures:{1:{name:"keyword.codetag.notation.python"}},match:"(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)"},comments:{patterns:[{begin:`(?x) +(?: +\\# \\s* (type:) +\\s*+ (?# we want \`\\s*+\` which is possessive quantifier since +we do not actually want to backtrack when matching +whitespace here) +(?! $ | \\#) +) +`,beginCaptures:{0:{name:"meta.typehint.comment.python"},1:{name:"comment.typehint.directive.notation.python"}},contentName:"meta.typehint.comment.python",end:"(?:$|(?=\\#))",name:"comment.line.number-sign.python",patterns:[{match:`(?x) +\\G ignore +(?= \\s* (?: $ | \\#)) +`,name:"comment.typehint.ignore.notation.python"},{match:`(?x) +(?<!\\.)\\b( +bool | bytes | float | int | object | str +| List | Dict | Iterable | Sequence | Set +| FrozenSet | Callable | Union | Tuple +| Any | None +)\\b +`,name:"comment.typehint.type.notation.python"},{match:"([\\[\\]\\(\\),\\.\\=\\*]|(->))",name:"comment.typehint.punctuation.notation.python"},{match:"([[:alpha:]_]\\w*)",name:"comment.typehint.variable.notation.python"}]},{include:"#comments-base"}]},"comments-base":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:"($)",name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-double-three":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:'($|(?="""))',name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-single-three":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:"($|(?='''))",name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"curly-braces":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dict.begin.python"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dict.end.python"}},patterns:[{match:":",name:"punctuation.separator.dict.python"},{include:"#expression"}]},decorator:{begin:`(?x) +^\\s* +((@)) \\s* (?=[[:alpha:]_]\\w*) +`,beginCaptures:{1:{name:"entity.name.function.decorator.python"},2:{name:"punctuation.definition.decorator.python"}},end:`(?x) +( \\) ) + +(?: (.*?) (?=\\s*(?:\\#|$)) ) +| (?=\\n|\\#) +`,endCaptures:{1:{name:"punctuation.definition.arguments.end.python"},2:{name:"invalid.illegal.decorator.python"}},name:"meta.function.decorator.python",patterns:[{include:"#decorator-name"},{include:"#function-arguments"}]},"decorator-name":{patterns:[{include:"#builtin-callables"},{include:"#illegal-object-name"},{captures:{2:{name:"punctuation.separator.period.python"}},match:`(?x) +([[:alpha:]_]\\w*) | (\\.) +`,name:"entity.name.function.decorator.python"},{include:"#line-continuation"},{captures:{1:{name:"invalid.illegal.decorator.python"}},match:`(?x) +\\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$) +`,name:"invalid.illegal.decorator.python"}]},docstring:{patterns:[{begin:`(\\'\\'\\'|\\"\\"\\")`,beginCaptures:{1:{name:"punctuation.definition.string.begin.python"}},end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.string.end.python"}},name:"string.quoted.docstring.multi.python",patterns:[{include:"#docstring-prompt"},{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{begin:`([rR])(\\'\\'\\'|\\"\\"\\")`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"}},name:"string.quoted.docstring.raw.multi.python",patterns:[{include:"#string-consume-escape"},{include:"#docstring-prompt"},{include:"#codetags"}]},{begin:`(\\'|\\")`,beginCaptures:{1:{name:"punctuation.definition.string.begin.python"}},end:"(\\1)|(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.docstring.single.python",patterns:[{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{begin:`([rR])(\\'|\\")`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.docstring.raw.single.python",patterns:[{include:"#string-consume-escape"},{include:"#codetags"}]}]},"docstring-guts-unicode":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"docstring-prompt":{captures:{1:{name:"keyword.control.flow.python"}},match:`(?x) +(?: +(?:^|\\G) \\s* (?# '\\G' is necessary for ST) +((?:>>>|\\.\\.\\.) \\s) (?=\\s*\\S) +) +`},"docstring-statement":{begin:`^(?=\\s*[rR]?(\\'\\'\\'|\\"\\"\\"|\\'|\\"))`,comment:"the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring",end:`((?<=\\1)|^)(?!\\s*[rR]?(\\'\\'\\'|\\"\\"\\"|\\'|\\"))`,patterns:[{include:"#docstring"}]},"double-one-fregexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-fregexp-expression":{patterns:[{include:"#fregexp-base-expression"},{include:"#double-one-regexp-character-set"},{include:"#double-one-regexp-comments"},{include:"#regexp-flags"},{include:"#double-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-one-fregexp-lookahead"},{include:"#double-one-fregexp-lookahead-negative"},{include:"#double-one-fregexp-lookbehind"},{include:"#double-one-fregexp-lookbehind-negative"},{include:"#double-one-fregexp-conditional"},{include:"#double-one-fregexp-parentheses-non-capturing"},{include:"#double-one-fregexp-parentheses"}]},"double-one-fregexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-fregexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-fregexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-fregexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-fregexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-fregexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-fregexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-regexp-character-set":{patterns:[{match:`(?x) +\\[ \\^? \\] (?! .*?\\]) +`},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:'(\\]|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"double-one-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-one-regexp-character-set"},{include:"#double-one-regexp-comments"},{include:"#regexp-flags"},{include:"#double-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-one-regexp-lookahead"},{include:"#double-one-regexp-lookahead-negative"},{include:"#double-one-regexp-lookbehind"},{include:"#double-one-regexp-lookbehind-negative"},{include:"#double-one-regexp-conditional"},{include:"#double-one-regexp-parentheses-non-capturing"},{include:"#double-one-regexp-parentheses"}]},"double-one-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-three-fregexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-fregexp-expression":{patterns:[{include:"#fregexp-base-expression"},{include:"#double-three-regexp-character-set"},{include:"#double-three-regexp-comments"},{include:"#regexp-flags"},{include:"#double-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-three-fregexp-lookahead"},{include:"#double-three-fregexp-lookahead-negative"},{include:"#double-three-fregexp-lookbehind"},{include:"#double-three-fregexp-lookbehind-negative"},{include:"#double-three-fregexp-conditional"},{include:"#double-three-fregexp-parentheses-non-capturing"},{include:"#double-three-fregexp-parentheses"},{include:"#comments-string-double-three"}]},"double-three-fregexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-fregexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-fregexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-fregexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-fregexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-fregexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-fregexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-character-set":{patterns:[{match:`(?x) +\\[ \\^? \\] (?! .*?\\]) +`},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:'(\\]|(?="""))',endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"double-three-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-three-regexp-character-set"},{include:"#double-three-regexp-comments"},{include:"#regexp-flags"},{include:"#double-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-three-regexp-lookahead"},{include:"#double-three-regexp-lookahead-negative"},{include:"#double-three-regexp-lookbehind"},{include:"#double-three-regexp-lookbehind-negative"},{include:"#double-three-regexp-conditional"},{include:"#double-three-regexp-parentheses-non-capturing"},{include:"#double-three-regexp-parentheses"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},ellipsis:{match:"\\.\\.\\.",name:"constant.other.ellipsis.python"},"escape-sequence":{match:`(?x) +\\\\ ( +x[0-9A-Fa-f]{2} +| [0-7]{1,3} +| [\\\\"'abfnrtv] +) +`,name:"constant.character.escape.python"},"escape-sequence-unicode":{patterns:[{match:`(?x) +\\\\ ( +u[0-9A-Fa-f]{4} +| U[0-9A-Fa-f]{8} +| N\\{[\\w\\s]+?\\} +) +`,name:"constant.character.escape.python"}]},expression:{comment:"All valid Python expressions",patterns:[{include:"#expression-base"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"expression-bare":{comment:"valid Python expressions w/o comments and line continuation",patterns:[{include:"#backticks"},{include:"#illegal-anno"},{include:"#literal"},{include:"#regexp"},{include:"#string"},{include:"#lambda"},{include:"#generator"},{include:"#illegal-operator"},{include:"#operator"},{include:"#curly-braces"},{include:"#item-access"},{include:"#list"},{include:"#odd-function-call"},{include:"#round-braces"},{include:"#function-call"},{include:"#builtin-functions"},{include:"#builtin-types"},{include:"#builtin-exceptions"},{include:"#magic-names"},{include:"#special-names"},{include:"#illegal-names"},{include:"#special-variables"},{include:"#ellipsis"},{include:"#punctuation"},{include:"#line-continuation"},{include:"#special-variables-types"}]},"expression-base":{comment:"valid Python expressions with comments and line continuation",patterns:[{include:"#comments"},{include:"#expression-bare"},{include:"#line-continuation"}]},"f-expression":{comment:"All valid Python expressions, except comments and line continuation",patterns:[{include:"#expression-bare"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"fregexp-base-expression":{patterns:[{include:"#fregexp-quantifier"},{include:"#fstring-formatting-braces"},{match:"\\{.*?\\}"},{include:"#regexp-base-common"}]},"fregexp-double-one-line":{begin:'\\b(([uU]r)|([fF]r)|(r[fF]?))(")',beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:'(")|(?<!\\\\)(\\n)',endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.interpolated.python string.regexp.quoted.single.python",patterns:[{include:"#double-one-fregexp-expression"}]},"fregexp-double-three-line":{begin:'\\b(([uU]r)|([fF]r)|(r[fF]?))(""")',beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:'(""")',endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.interpolated.python string.regexp.quoted.multi.python",patterns:[{include:"#double-three-fregexp-expression"}]},"fregexp-quantifier":{match:`(?x) +\\{\\{( +\\d+ | \\d+,(\\d+)? | ,\\d+ +)\\}\\} +`,name:"keyword.operator.quantifier.regexp"},"fregexp-single-one-line":{begin:"\\b(([uU]r)|([fF]r)|(r[fF]?))(\\')",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:"(\\')|(?<!\\\\)(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.interpolated.python string.regexp.quoted.single.python",patterns:[{include:"#single-one-fregexp-expression"}]},"fregexp-single-three-line":{begin:"\\b(([uU]r)|([fF]r)|(r[fF]?))(\\'\\'\\')",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:"(\\'\\'\\')",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.interpolated.python string.regexp.quoted.multi.python",patterns:[{include:"#single-three-fregexp-expression"}]},"fstring-fnorm-quoted-multi-line":{begin:`(\\b[fF])([bBuU])?('''|""")`,beginCaptures:{1:{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},2:{name:"invalid.illegal.prefix.python"},3:{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-fnorm-quoted-single-line":{begin:`(\\b[fF])([bBuU])?((['"]))`,beginCaptures:{1:{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},2:{name:"invalid.illegal.prefix.python"},3:{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-formatting":{patterns:[{include:"#fstring-formatting-braces"},{include:"#fstring-formatting-singe-brace"}]},"fstring-formatting-braces":{patterns:[{captures:{1:{name:"constant.character.format.placeholder.other.python"},2:{name:"invalid.illegal.brace.python"},3:{name:"constant.character.format.placeholder.other.python"}},comment:"empty braces are illegal",match:"({)(\\s*?)(})"},{match:"({{|}})",name:"constant.character.escape.python"}]},"fstring-formatting-singe-brace":{match:"(}(?!}))",name:"invalid.illegal.brace.python"},"fstring-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#fstring-formatting"}]},"fstring-illegal-multi-brace":{patterns:[{include:"#impossible"}]},"fstring-illegal-single-brace":{begin:"(\\{)(?=[^\\n}]*$\\n?)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"it is illegal to have a multiline brace inside a single-line string",end:"(\\})|(?=\\n)",endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-multi-brace":{begin:"(\\{)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"value interpolation using { ... }",end:`(?x) +(\\}) +`,endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-multi"},{include:"#f-expression"}]},"fstring-multi-core":{match:`(?x) +(.+?) +( +(?# .* and .*? in multi-line match need special handling of +newlines otherwise SublimeText and Atom will match slightly +differently. + +The guard for newlines has to be separate from the +lookahead because of special $ matching rule.) +($\\n?) +| +(?=[\\\\\\}\\{]|'''|""") +) +(?# due to how multiline regexps are matched we need a special case +for matching a newline character) +| \\n +`,name:"string.interpolated.python string.quoted.multi.python"},"fstring-normf-quoted-multi-line":{begin:`(\\b[bBuU])([fF])('''|""")`,beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python string.quoted.multi.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-normf-quoted-single-line":{begin:`(\\b[bBuU])([fF])((['"]))`,beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python string.quoted.single.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#fstring-formatting"}]},"fstring-raw-multi-core":{match:`(?x) +(.+?) +( +(?# .* and .*? in multi-line match need special handling of +newlines otherwise SublimeText and Atom will match slightly +differently. + +The guard for newlines has to be separate from the +lookahead because of special $ matching rule.) +($\\n?) +| +(?=[\\\\\\}\\{]|'''|""") +) +(?# due to how multiline regexps are matched we need a special case +for matching a newline character) +| \\n +`,name:"string.interpolated.python string.quoted.raw.multi.python"},"fstring-raw-quoted-multi-line":{begin:`(\\b(?:[R][fF]|[fF][R]))('''|""")`,beginCaptures:{1:{name:"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python string.quoted.raw.multi.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-raw-multi-core"}]},"fstring-raw-quoted-single-line":{begin:`(\\b(?:[R][fF]|[fF][R]))((['"]))`,beginCaptures:{1:{name:"string.interpolated.python string.quoted.raw.single.python storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python string.quoted.raw.single.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-raw-single-core"}]},"fstring-raw-single-core":{match:`(?x) +(.+?) +( +(?# .* and .*? in multi-line match need special handling of +newlines otherwise SublimeText and Atom will match slightly +differently. + +The guard for newlines has to be separate from the +lookahead because of special $ matching rule.) +($\\n?) +| +(?=[\\\\\\}\\{]|(['"])|((?<!\\\\)\\n)) +) +(?# due to how multiline regexps are matched we need a special case +for matching a newline character) +| \\n +`,name:"string.interpolated.python string.quoted.raw.single.python"},"fstring-single-brace":{begin:"(\\{)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"value interpolation using { ... }",end:`(?x) +(\\})|(?=\\n) +`,endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-single-core":{match:`(?x) +(.+?) +( +(?# .* and .*? in multi-line match need special handling of +newlines otherwise SublimeText and Atom will match slightly +differently. + +The guard for newlines has to be separate from the +lookahead because of special $ matching rule.) +($\\n?) +| +(?=[\\\\\\}\\{]|(['"])|((?<!\\\\)\\n)) +) +(?# due to how multiline regexps are matched we need a special case +for matching a newline character) +| \\n +`,name:"string.interpolated.python string.quoted.single.python"},"fstring-terminator-multi":{patterns:[{match:"(![rsa])(?=})",name:"storage.type.format.python"},{captures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},match:`(?x) +(![rsa])? +( : \\w? [<>=^]? [-+ ]? \\#? +\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=}) +`},{include:"#fstring-terminator-multi-tail"}]},"fstring-terminator-multi-tail":{begin:"(![rsa])?(:)(?=.*?{)",beginCaptures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},end:"(?=})",patterns:[{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{match:"([bcdeEfFgGnosxX%])(?=})",name:"storage.type.format.python"},{match:"(\\.\\d+)",name:"storage.type.format.python"},{match:"(,)",name:"storage.type.format.python"},{match:"(\\d+)",name:"storage.type.format.python"},{match:"(\\#)",name:"storage.type.format.python"},{match:"([-+ ])",name:"storage.type.format.python"},{match:"([<>=^])",name:"storage.type.format.python"},{match:"(\\w)",name:"storage.type.format.python"}]},"fstring-terminator-single":{patterns:[{match:"(![rsa])(?=})",name:"storage.type.format.python"},{captures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},match:`(?x) +(![rsa])? +( : \\w? [<>=^]? [-+ ]? \\#? +\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=}) +`},{include:"#fstring-terminator-single-tail"}]},"fstring-terminator-single-tail":{begin:"(![rsa])?(:)(?=.*?{)",beginCaptures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},end:"(?=})|(?=\\n)",patterns:[{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{match:"([bcdeEfFgGnosxX%])(?=})",name:"storage.type.format.python"},{match:"(\\.\\d+)",name:"storage.type.format.python"},{match:"(,)",name:"storage.type.format.python"},{match:"(\\d+)",name:"storage.type.format.python"},{match:"(\\#)",name:"storage.type.format.python"},{match:"([-+ ])",name:"storage.type.format.python"},{match:"([<>=^])",name:"storage.type.format.python"},{match:"(\\w)",name:"storage.type.format.python"}]},"function-arguments":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.function-call.arguments.python",end:"(?=\\))(?!\\)\\s*\\()",patterns:[{match:"(,)",name:"punctuation.separator.arguments.python"},{captures:{1:{name:"keyword.operator.unpacking.arguments.python"}},match:`(?x) +(?:(?<=[,(])|^) \\s* (\\*{1,2}) +`},{include:"#lambda-incomplete"},{include:"#illegal-names"},{captures:{1:{name:"variable.parameter.function-call.python"},2:{name:"keyword.operator.assignment.python"}},match:"\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)"},{match:"=(?!=)",name:"keyword.operator.assignment.python"},{include:"#expression"},{captures:{1:{name:"punctuation.definition.arguments.end.python"},2:{name:"punctuation.definition.arguments.begin.python"}},match:"\\s*(\\))\\s*(\\()"}]},"function-call":{begin:`(?x) +\\b(?= +([[:alpha:]_]\\w*) \\s* (\\() +) +`,comment:'Regular function call of the type "name(args)"',end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#special-variables"},{include:"#function-name"},{include:"#function-arguments"}]},"function-declaration":{begin:`(?x) +\\s* +(?:\\b(async) \\s+)? \\b(def)\\s+ +(?= +[[:alpha:]_][[:word:]]* \\s* \\( +) +`,beginCaptures:{1:{name:"storage.type.function.async.python"},2:{name:"storage.type.function.python"}},end:`(:|(?=[#'"\\n]))`,endCaptures:{1:{name:"punctuation.section.function.begin.python"}},name:"meta.function.python",patterns:[{include:"#function-def-name"},{include:"#parameters"},{include:"#line-continuation"},{include:"#return-annotation"}]},"function-def-name":{patterns:[{match:`(?x) +\\b (__default__) \\b +`,name:"entity.name.function.fallback.vyper"},{match:`(?x) +\\b (__init__) \\b +`,name:"entity.name.function.constructor.vyper"},{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"entity.name.function.python"}]},"function-name":{patterns:[{include:"#builtin-possible-callables"},{comment:"Some color schemas support meta.function-call.generic scope",match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"meta.function-call.generic.python"}]},generator:{begin:"\\bfor\\b",beginCaptures:{0:{name:"keyword.control.flow.python"}},comment:`Match "for ... in" construct used in generators and for loops to +correctly identify the "in" as a control flow keyword. +`,end:"\\bin\\b",endCaptures:{0:{name:"keyword.control.flow.python"}},patterns:[{include:"#expression"}]},"illegal-anno":{match:"->",name:"invalid.illegal.annotation.python"},"illegal-names":{captures:{1:{name:"keyword.control.flow.python"},2:{name:"keyword.control.import.python"}},match:`(?x) +\\b(?: +( +and | assert | async | await | break | class | continue | def +| del | elif | else | except | finally | for | from | global +| if | in | is | (?<=\\.)lambda | lambda(?=\\s*[\\.=]) +| nonlocal | not | or | pass | raise | return | try | while | with +| yield +) | ( +as | import +) +)\\b +`},"illegal-object-name":{comment:`It's illegal to name class or function "True"`,match:"\\b(True|False|None)\\b",name:"keyword.illegal.name.python"},"illegal-operator":{patterns:[{match:"&&|\\|\\||--|\\+\\+",name:"invalid.illegal.operator.python"},{match:"[?$]",name:"invalid.illegal.operator.python"},{comment:"We don't want `!` to flash when we're typing `!=`",match:"!\\b",name:"invalid.illegal.operator.python"}]},import:{comment:"Import statements used to correctly mark `from`, `import`, and `as`\n",patterns:[{begin:"\\b(?<!\\.)(from)\\b(?=.+import)",beginCaptures:{1:{name:"keyword.control.import.python"}},end:"$|(?=import)",patterns:[{match:"\\.+",name:"punctuation.separator.period.python"},{include:"#expression"}]},{begin:"\\b(?<!\\.)(import)\\b",beginCaptures:{1:{name:"keyword.control.import.python"}},end:"$",patterns:[{match:"\\b(?<!\\.)as\\b",name:"keyword.control.import.python"},{include:"#expression"}]}]},impossible:{comment:"This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.",match:"$.^"},"inheritance-identifier":{captures:{1:{name:"entity.other.inherited-class.python"}},match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`},"inheritance-name":{patterns:[{include:"#lambda-incomplete"},{include:"#builtin-possible-callables"},{include:"#inheritance-identifier"}]},"item-access":{patterns:[{begin:`(?x) +\\b(?= +[[:alpha:]_]\\w* \\s* \\[ +) +`,end:"(\\])",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.item-access.python",patterns:[{include:"#item-name"},{include:"#item-index"},{include:"#expression"}]}]},"item-index":{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.item-access.arguments.python",end:"(?=\\])",patterns:[{match:":",name:"punctuation.separator.slice.python"},{include:"#expression"}]},"item-name":{patterns:[{include:"#special-variables"},{include:"#builtin-functions"},{include:"#special-names"},{match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"meta.indexed-name.python"},{include:"#special-variables-types"}]},lambda:{patterns:[{captures:{1:{name:"keyword.control.flow.python"}},match:"((?<=\\.)lambda|lambda(?=\\s*[\\.=]))"},{captures:{1:{name:"storage.type.function.lambda.python"}},match:"\\b(lambda)\\s*?(?=[,\\n]|$)"},{begin:`(?x) +\\b (lambda) \\b +`,beginCaptures:{1:{name:"storage.type.function.lambda.python"}},contentName:"meta.function.lambda.parameters.python",end:"(:)|(\\n)",endCaptures:{1:{name:"punctuation.section.function.lambda.begin.python"}},name:"meta.lambda-function.python",patterns:[{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-nested-incomplete"},{include:"#illegal-names"},{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.parameters.python"}},match:"([[:alpha:]_]\\w*)\\s*(?:(,)|(?=:|$))"},{include:"#comments"},{include:"#backticks"},{include:"#illegal-anno"},{include:"#lambda-parameter-with-default"},{include:"#line-continuation"},{include:"#illegal-operator"}]}]},"lambda-incomplete":{match:"\\blambda(?=\\s*[,)])",name:"storage.type.function.lambda.python"},"lambda-nested-incomplete":{match:"\\blambda(?=\\s*[:,)])",name:"storage.type.function.lambda.python"},"lambda-parameter-with-default":{begin:`(?x) +\\b +([[:alpha:]_]\\w*) \\s* (=) +`,beginCaptures:{1:{name:"variable.parameter.function.language.python"},2:{name:"keyword.operator.python"}},end:"(,)|(?=:|$)",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"line-continuation":{patterns:[{captures:{1:{name:"punctuation.separator.continuation.line.python"},2:{name:"invalid.illegal.line.continuation.python"}},match:"(\\\\)\\s*(\\S.*$\\n?)"},{begin:"(\\\\)\\s*$\\n?",beginCaptures:{1:{name:"punctuation.separator.continuation.line.python"}},end:`(?x) +(?=^\\s*$) +| +(?! (\\s* [rR]? (\\'\\'\\'|\\"\\"\\"|\\'|\\")) +| +(\\G $) (?# '\\G' is necessary for ST) +) +`,patterns:[{include:"#regexp"},{include:"#string"}]}]},list:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.list.begin.python"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.list.end.python"}},patterns:[{include:"#expression"}]},literal:{patterns:[{match:"\\b(True|False|None|NotImplemented|Ellipsis)\\b",name:"constant.language.python"},{include:"#number"}]},"loose-default":{begin:"(=)",beginCaptures:{1:{name:"keyword.operator.python"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"magic-function-names":{captures:{1:{name:"support.function.magic.python"}},comment:`these methods have magic interpretation by python and are generally called +indirectly through syntactic constructs +`,match:`(?x) +\\b( +__(?: +abs | add | aenter | aexit | aiter | and | anext | await +| bool | call | ceil | cmp | coerce | complex | contains +| copy | deepcopy | del | delattr | delete | delitem +| delslice | dir | div | divmod | enter | eq | exit | float +| floor | floordiv | format | ge | get | getattr +| getattribute | getinitargs | getitem | getnewargs +| getslice | getstate | gt | hash | hex | iadd | iand | idiv +| ifloordiv | ilshift | imod | imul | index | init +| instancecheck | int | invert | ior | ipow | irshift | isub +| iter | itruediv | ixor | le | len | long | lshift | lt +| missing | mod | mul | ne | neg | new | next | nonzero | oct | or +| pos | pow | radd | rand | rdiv | rdivmod | reduce +| reduce_ex | repr | reversed | rfloordiv | rlshift | rmod +| rmul | ror | round | rpow | rrshift | rshift | rsub +| rtruediv | rxor | set | setattr | setitem | setslice +| setstate | sizeof | str | sub | subclasscheck | truediv +| trunc | unicode | xor | matmul | rmatmul | imatmul +| init_subclass | set_name | fspath | bytes | prepare +)__ +)\\b +`},"magic-names":{patterns:[{include:"#magic-function-names"},{include:"#magic-variable-names"}]},"magic-variable-names":{captures:{1:{name:"support.variable.magic.python"}},comment:"magic variables which a class/module may have.",match:`(?x) +\\b( +__(?: +all | bases | builtins | class | class_getitem | code | debug +| defaults | dict | doc | file | func | kwdefaults | members +| metaclass | methods | module | mro | mro_entries | name +| qualname | post_init | self | signature | slots | subclasses +| version | weakref | wrapped | annotations | classcell +| spec | path | package | future | traceback +)__ +)\\b +`},"member-access":{begin:"(\\.)\\s*(?!\\.)",beginCaptures:{1:{name:"punctuation.separator.period.python"}},end:`(?x) + + +(?<=\\S)(?=\\W) | + + +(^|(?<=\\s))(?=[^\\\\\\w\\s]) | +$ +`,name:"meta.member.access.python",patterns:[{include:"#function-call"},{include:"#member-access-base"},{include:"#member-access-attribute"}]},"member-access-attribute":{comment:"Highlight attribute access in otherwise non-specialized cases.",match:`(?x) +\\b ([[:alpha:]_]\\w*) \\b +`,name:"meta.attribute.python"},"member-access-base":{patterns:[{include:"#magic-names"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#special-names"},{include:"#line-continuation"},{include:"#item-access"},{include:"#special-variables-types"}]},"member-access-class":{begin:"(\\.)\\s*(?!\\.)",beginCaptures:{1:{name:"punctuation.separator.period.python"}},end:"(?<=\\S)(?=\\W)|$",name:"meta.member.access.python",patterns:[{include:"#call-wrapper-inheritance"},{include:"#member-access-base"},{include:"#inheritance-identifier"}]},number:{name:"constant.numeric.python",patterns:[{include:"#number-float"},{include:"#number-dec"},{include:"#number-hex"},{include:"#number-oct"},{include:"#number-bin"},{include:"#number-long"},{match:"\\b[0-9]+\\w+",name:"invalid.illegal.name.python"}]},"number-bin":{captures:{1:{name:"storage.type.number.python"}},match:`(?x) +(?<![\\w\\.]) +(0[bB]) (_?[01])+ +\\b +`,name:"constant.numeric.bin.python"},"number-dec":{captures:{1:{name:"storage.type.imaginary.number.python"},2:{name:"invalid.illegal.dec.python"}},match:`(?x) +(?<![\\w\\.])(?: +[1-9](?: _?[0-9] )* +| +0+ +| +[0-9](?: _?[0-9] )* ([jJ]) +| +0 ([0-9]+)(?![eE\\.]) +)\\b +`,name:"constant.numeric.dec.python"},"number-float":{captures:{1:{name:"storage.type.imaginary.number.python"}},match:`(?x) +(?<! \\w)(?: +(?: +\\.[0-9](?: _?[0-9] )* +| +[0-9](?: _?[0-9] )* \\. [0-9](?: _?[0-9] )* +| +[0-9](?: _?[0-9] )* \\. +) (?: [eE][+-]?[0-9](?: _?[0-9] )* )? +| +[0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* ) +)([jJ])?\\b +`,name:"constant.numeric.float.python"},"number-hex":{captures:{1:{name:"storage.type.number.python"}},match:`(?x) +(?<![\\w\\.]) +(0[xX]) (_?[0-9a-fA-F])+ +\\b +`,name:"constant.numeric.hex.python"},"number-long":{captures:{2:{name:"storage.type.number.python"}},comment:"this is to support python2 syntax for long ints",match:`(?x) +(?<![\\w\\.]) +([1-9][0-9]* | 0) ([lL]) +\\b +`,name:"constant.numeric.bin.python"},"number-oct":{captures:{1:{name:"storage.type.number.python"}},match:`(?x) +(?<![\\w\\.]) +(0[oO]) (_?[0-7])+ +\\b +`,name:"constant.numeric.oct.python"},"odd-function-call":{begin:`(?x) +(?<= \\] | \\) ) \\s* +(?=\\() +`,comment:`A bit obscured function call where there may have been an +arbitrary number of other operations to get the function. +E.g. "arr[idx](args)" +`,end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#function-arguments"}]},operator:{captures:{1:{name:"keyword.operator.logical.python"},2:{name:"keyword.control.flow.python"},3:{name:"keyword.operator.bitwise.python"},4:{name:"keyword.operator.arithmetic.python"},5:{name:"keyword.operator.comparison.python"}},match:`(?x) +\\b(?<!\\.) +(?: +(and | or | not | in | is) (?# 1) +| +(for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2) +) +(?!\\s*:)\\b + +| (<< | >> | & | \\| | \\^ | ~) (?# 3) + +| (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4) + +| (!= | == | >= | <= | < | >) (?# 5) +`},"parameter-special":{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"variable.parameter.function.language.special.self.python"},3:{name:"variable.parameter.function.language.special.cls.python"},4:{name:"punctuation.separator.parameters.python"}},match:`(?x) +\\b ((self)|(cls)) \\b \\s*(?:(,)|(?=\\))) +`},parameters:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.python"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.python"}},name:"meta.function.parameters.python",patterns:[{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-incomplete"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#parameter-special"},{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.parameters.python"}},match:`(?x) +([[:alpha:]_]\\w*) +\\s* (?: (,) | (?=[)#\\n=])) +`},{include:"#comments"},{include:"#loose-default"},{include:"#annotated-parameter"}]},punctuation:{patterns:[{match:":",name:"punctuation.separator.colon.python"},{match:",",name:"punctuation.separator.element.python"}]},regexp:{patterns:[{include:"#regexp-single-three-line"},{include:"#regexp-double-three-line"},{include:"#regexp-single-one-line"},{include:"#regexp-double-one-line"},{include:"#fregexp-single-three-line"},{include:"#fregexp-double-three-line"},{include:"#fregexp-single-one-line"},{include:"#fregexp-double-one-line"}]},"regexp-backreference":{captures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},2:{name:"entity.name.tag.named.backreference.regexp"},3:{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}},match:`(?x) +(\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\)) +`,name:"meta.backreference.named.regexp"},"regexp-backreference-number":{captures:{1:{name:"entity.name.tag.backreference.regexp"}},match:"(\\\\[1-9]\\d?)",name:"meta.backreference.regexp"},"regexp-base-common":{patterns:[{match:"\\.",name:"support.other.match.any.regexp"},{match:"\\^",name:"support.other.match.begin.regexp"},{match:"\\$",name:"support.other.match.end.regexp"},{match:"[+*?]\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.disjunction.regexp"},{include:"#regexp-escape-sequence"}]},"regexp-base-expression":{patterns:[{include:"#regexp-quantifier"},{include:"#regexp-base-common"}]},"regexp-charecter-set-escapes":{patterns:[{match:"\\\\[abfnrtv\\\\]",name:"constant.character.escape.regexp"},{include:"#regexp-escape-special"},{match:"\\\\([0-7]{1,3})",name:"constant.character.escape.regexp"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-escape-catchall"}]},"regexp-double-one-line":{begin:'\\b(([uU]r)|([bB]r)|(r[bB]?))(")',beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:'(")|(?<!\\\\)(\\n)',endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#double-one-regexp-expression"}]},"regexp-double-three-line":{begin:'\\b(([uU]r)|([bB]r)|(r[bB]?))(""")',beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:'(""")',endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#double-three-regexp-expression"}]},"regexp-escape-catchall":{match:"\\\\(.|\\n)",name:"constant.character.escape.regexp"},"regexp-escape-character":{match:`(?x) +\\\\ ( +x[0-9A-Fa-f]{2} +| 0[0-7]{1,2} +| [0-7]{3} +) +`,name:"constant.character.escape.regexp"},"regexp-escape-sequence":{patterns:[{include:"#regexp-escape-special"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-backreference-number"},{include:"#regexp-escape-catchall"}]},"regexp-escape-special":{match:"\\\\([AbBdDsSwWZ])",name:"support.other.escape.special.regexp"},"regexp-escape-unicode":{match:`(?x) +\\\\ ( +u[0-9A-Fa-f]{4} +| U[0-9A-Fa-f]{8} +) +`,name:"constant.character.unicode.regexp"},"regexp-flags":{match:"\\(\\?[aiLmsux]+\\)",name:"storage.modifier.flag.regexp"},"regexp-quantifier":{match:`(?x) +\\{( +\\d+ | \\d+,(\\d+)? | ,\\d+ +)\\} +`,name:"keyword.operator.quantifier.regexp"},"regexp-single-one-line":{begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:"(\\')|(?<!\\\\)(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#single-one-regexp-expression"}]},"regexp-single-three-line":{begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:"(\\'\\'\\')",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#single-three-regexp-expression"}]},"reserved-names-vyper":{match:`(?x) +\\b (finney | gwei | range | def | ____init____ | timedelta | babbage | zero_address | raise | external | empty_bytes32 | assert | continue | wei | ada | min_int256 | min_int128 | chainid | max_decimal | default | indexed | selfdestruct | lovelace | immutable | throw | kwei | max_int128 | while | constant | ___default___ | balance | twei | codesize | false | max_int256 | _default_ | init | mwei | if | ____default____ | true | payable | internal | until | this | nonpayable | pass | public | nonreentrant | blockhash | max_uint256 | shannon | none | units | _init_ | ___init___ | is_contract | for | zero_wei | min_decimal | szabo | timestamp | ether | pwei | send) \\b +`,name:"name.reserved.vyper"},"return-annotation":{begin:"(->)",beginCaptures:{1:{name:"punctuation.separator.annotation.result.python"}},end:"(?=:)",patterns:[{include:"#expression"}]},"round-braces":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.begin.python"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.end.python"}},patterns:[{include:"#expression"}]},semicolon:{patterns:[{match:"\\;$",name:"invalid.deprecated.semicolon.python"}]},"single-one-fregexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-fregexp-expression":{patterns:[{include:"#fregexp-base-expression"},{include:"#single-one-regexp-character-set"},{include:"#single-one-regexp-comments"},{include:"#regexp-flags"},{include:"#single-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-one-fregexp-lookahead"},{include:"#single-one-fregexp-lookahead-negative"},{include:"#single-one-fregexp-lookbehind"},{include:"#single-one-fregexp-lookbehind-negative"},{include:"#single-one-fregexp-conditional"},{include:"#single-one-fregexp-parentheses-non-capturing"},{include:"#single-one-fregexp-parentheses"}]},"single-one-fregexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-fregexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-fregexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-fregexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-fregexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-fregexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-fregexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-regexp-character-set":{patterns:[{match:`(?x) +\\[ \\^? \\] (?! .*?\\]) +`},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:"(\\]|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"single-one-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-one-regexp-character-set"},{include:"#single-one-regexp-comments"},{include:"#regexp-flags"},{include:"#single-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-one-regexp-lookahead"},{include:"#single-one-regexp-lookahead-negative"},{include:"#single-one-regexp-lookbehind"},{include:"#single-one-regexp-lookbehind-negative"},{include:"#single-one-regexp-conditional"},{include:"#single-one-regexp-parentheses-non-capturing"},{include:"#single-one-regexp-parentheses"}]},"single-one-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-three-fregexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-fregexp-expression":{patterns:[{include:"#fregexp-base-expression"},{include:"#single-three-regexp-character-set"},{include:"#single-three-regexp-comments"},{include:"#regexp-flags"},{include:"#single-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-three-fregexp-lookahead"},{include:"#single-three-fregexp-lookahead-negative"},{include:"#single-three-fregexp-lookbehind"},{include:"#single-three-fregexp-lookbehind-negative"},{include:"#single-three-fregexp-conditional"},{include:"#single-three-fregexp-parentheses-non-capturing"},{include:"#single-three-fregexp-parentheses"},{include:"#comments-string-single-three"}]},"single-three-fregexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-fregexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-fregexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-fregexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-fregexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-fregexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-fregexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-character-set":{patterns:[{match:`(?x) +\\[ \\^? \\] (?! .*?\\]) +`},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:"(\\]|(?=\\'\\'\\'))",endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"single-three-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-three-regexp-character-set"},{include:"#single-three-regexp-comments"},{include:"#regexp-flags"},{include:"#single-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-three-regexp-lookahead"},{include:"#single-three-regexp-lookahead-negative"},{include:"#single-three-regexp-lookbehind"},{include:"#single-three-regexp-lookbehind-negative"},{include:"#single-three-regexp-conditional"},{include:"#single-three-regexp-parentheses-non-capturing"},{include:"#single-three-regexp-parentheses"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-named-group":{begin:`(?x) +(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>) +`,beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"special-names":{match:`(?x) +\\b + + + + + +( +_* [[:upper:]] [_\\d]* [[:upper:]] +) +[[:upper:]\\d]* (_\\w*)? +\\b +`,name:"constant.other.caps.python"},"special-variables":{captures:{1:{name:"variable.language.special.self.python"},2:{name:"variable.language.special.cls.python"}},match:`(?x) +\\b (?<!\\.) (?: +(self) | (cls) +)\\b +`},"special-variables-types":{patterns:[{match:`(?x) +(?<!\\.) \\b( +log )\\b +`,name:"variable.language.special.log.vyper"},{match:`(?x) +(?<!\\.) \\b( +msg )\\b +`,name:"variable.language.special.msg.vyper"},{match:`(?x) +(?<!\\.) \\b( +block )\\b +`,name:"variable.language.special.block.vyper"}]},statement:{patterns:[{include:"#import"},{include:"#class-declaration"},{include:"#function-declaration"},{include:"#generator"},{include:"#statement-keyword"},{include:"#assignment-operator"},{include:"#decorator"},{include:"#docstring-statement"},{include:"#semicolon"}]},"statement-keyword":{patterns:[{match:"\\b((async\\s+)?\\s*def)\\b",name:"storage.type.function.python"},{comment:`if \`as\` is eventually followed by \`:\` or line continuation +it's probably control flow like: + with foo as bar, \\ + Foo as Bar: + try: + do_stuff() + except Exception as e: + pass +`,match:"\\b(?<!\\.)as\\b(?=.*[:\\\\])",name:"keyword.control.flow.python"},{comment:"other legal use of `as` is in an import",match:"\\b(?<!\\.)as\\b",name:"keyword.control.import.python"},{match:`(?x) +\\b(?<!\\.)( +async | continue | del | assert | break | finally | for +| from | elif | else | if | except | pass | raise +| return | try | while | with +)\\b +`,name:"keyword.control.flow.python"},{match:`(?x) +\\b(?<!\\.)( +global | nonlocal +)\\b +`,name:"storage.modifier.declaration.python"},{match:"\\b(?<!\\.)(class)\\b",name:"storage.type.class.python"}]},string:{patterns:[{include:"#string-quoted-multi-line"},{include:"#string-quoted-single-line"},{include:"#string-bin-quoted-multi-line"},{include:"#string-bin-quoted-single-line"},{include:"#string-raw-quoted-multi-line"},{include:"#string-raw-quoted-single-line"},{include:"#string-raw-bin-quoted-multi-line"},{include:"#string-raw-bin-quoted-single-line"},{include:"#fstring-fnorm-quoted-multi-line"},{include:"#fstring-fnorm-quoted-single-line"},{include:"#fstring-normf-quoted-multi-line"},{include:"#fstring-normf-quoted-single-line"},{include:"#fstring-raw-quoted-multi-line"},{include:"#fstring-raw-quoted-single-line"}]},"string-bin-quoted-multi-line":{begin:`(\\b[bB])('''|""")`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.multi.python",patterns:[{include:"#string-entity"}]},"string-bin-quoted-single-line":{begin:`(\\b[bB])((['"]))`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.single.python",patterns:[{include:"#string-entity"}]},"string-brace-formatting":{patterns:[{captures:{1:{name:"constant.character.format.placeholder.other.python"},3:{name:"storage.type.format.python"},4:{name:"storage.type.format.python"}},match:`(?x) +( +{{ | }} +| (?: +{ +\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'"]+\\])* +(![rsa])? +( : \\w? [<>=^]? [-+ ]? \\#? +\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )? +}) +) +`,name:"meta.format.brace.python"},{captures:{1:{name:"constant.character.format.placeholder.other.python"},3:{name:"storage.type.format.python"},4:{name:"storage.type.format.python"}},match:`(?x) +( +{ +\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'"]+\\])* +(![rsa])? +(:) +[^'"{}\\n]* (?: +\\{ [^'"}\\n]*? \\} [^'"{}\\n]* +)* +} +) +`,name:"meta.format.brace.python"}]},"string-consume-escape":{match:`\\\\['"\\n\\\\]`},"string-entity":{patterns:[{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#string-formatting"}]},"string-formatting":{captures:{1:{name:"constant.character.format.placeholder.other.python"}},match:`(?x) +( +% (\\([\\w\\s]*\\))? +[-+#0 ]* +(\\d+|\\*)? (\\.(\\d+|\\*))? +([hlL])? +[diouxXeEfFgGcrsab%] +) +`,name:"meta.format.percent.python"},"string-line-continuation":{match:"\\\\$",name:"constant.language.python"},"string-multi-bad-brace1-formatting-raw":{begin:`(?x) +(?= \\{% +( .*? (?!'''|""") ) +%\\} +) +`,comment:"template using {% ... %}",end:`(?='''|""")`,patterns:[{include:"#string-consume-escape"}]},"string-multi-bad-brace1-formatting-unicode":{begin:`(?x) +(?= \\{% +( .*? (?!'''|""") ) +%\\} +) +`,comment:"template using {% ... %}",end:`(?='''|""")`,patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-multi-bad-brace2-formatting-raw":{begin:`(?x) +(?!\\{\\{) +(?= \\{ ( +\\w*? (?!'''|""") [^!:\\.\\[}\\w] +) +.*?(?!'''|""") +\\} +) +`,comment:"odd format or format-like syntax",end:`(?='''|""")`,patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-multi-bad-brace2-formatting-unicode":{begin:`(?x) +(?!\\{\\{) +(?= \\{ ( +\\w*? (?!'''|""") [^!:\\.\\[}\\w] +) +.*?(?!'''|""") +\\} +) +`,comment:"odd format or format-like syntax",end:`(?='''|""")`,patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-quoted-multi-line":{begin:`(?:\\b([rR])(?=[uU]))?([uU])?('''|""")`,beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-unicode"},{include:"#string-multi-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-quoted-single-line":{begin:`(?:\\b([rR])(?=[uU]))?([uU])?((['"]))`,beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-unicode"},{include:"#string-single-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-raw-bin-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-raw-bin-quoted-multi-line":{begin:`(\\b(?:R[bB]|[bB]R))('''|""")`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.multi.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-bin-quoted-single-line":{begin:`(\\b(?:R[bB]|[bB]R))((['"]))`,beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.single.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"},{include:"#string-brace-formatting"}]},"string-raw-quoted-multi-line":{begin:`\\b(([uU]R)|(R))('''|""")`,beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"punctuation.definition.string.begin.python"}},end:"(\\4)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-raw"},{include:"#string-multi-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-raw-quoted-single-line":{begin:`\\b(([uU]R)|(R))((['"]))`,beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"punctuation.definition.string.begin.python"}},end:"(\\4)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-raw"},{include:"#string-single-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-single-bad-brace1-formatting-raw":{begin:`(?x) +(?= \\{% +( .*? (?!(['"])|((?<!\\\\)\\n)) ) +%\\} +) +`,comment:"template using {% ... %}",end:`(?=(['"])|((?<!\\\\)\\n))`,patterns:[{include:"#string-consume-escape"}]},"string-single-bad-brace1-formatting-unicode":{begin:`(?x) +(?= \\{% +( .*? (?!(['"])|((?<!\\\\)\\n)) ) +%\\} +) +`,comment:"template using {% ... %}",end:`(?=(['"])|((?<!\\\\)\\n))`,patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-single-bad-brace2-formatting-raw":{begin:`(?x) +(?!\\{\\{) +(?= \\{ ( +\\w*? (?!(['"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w] +) +.*?(?!(['"])|((?<!\\\\)\\n)) +\\} +) +`,comment:"odd format or format-like syntax",end:`(?=(['"])|((?<!\\\\)\\n))`,patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-single-bad-brace2-formatting-unicode":{begin:`(?x) +(?!\\{\\{) +(?= \\{ ( +\\w*? (?!(['"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w] +) +.*?(?!(['"])|((?<!\\\\)\\n)) +\\} +) +`,comment:"odd format or format-like syntax",end:`(?=(['"])|((?<!\\\\)\\n))`,patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-unicode-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"},{include:"#string-brace-formatting"}]}},scopeName:"source.vyper",aliases:["vy"]});var n=[e];export{n as default}; diff --git a/assets/chunks/wasm.Cicx_DS6.js b/assets/chunks/wasm.Cicx_DS6.js new file mode 100644 index 000000000..f2a84858b --- /dev/null +++ b/assets/chunks/wasm.Cicx_DS6.js @@ -0,0 +1 @@ +const t=Object.freeze({displayName:"WebAssembly",name:"wasm",patterns:[{include:"#comments"},{include:"#strings"},{include:"#instructions"},{include:"#types"},{include:"#modules"},{include:"#constants"},{include:"#invalid"}],repository:{comments:{patterns:[{captures:{1:{name:"punctuation.definition.comment.wat"}},comment:"Line comment",match:"(;;).*$",name:"comment.line.wat"},{begin:"\\(;",beginCaptures:{0:{name:"punctuation.definition.comment.wat"}},comment:"Block comment",end:";\\)",endCaptures:{0:{name:"punctuation.definition.comment.wat"}},name:"comment.block.wat"}]},constants:{patterns:[{comment:"Fixed-width SIMD",patterns:[{captures:{1:{name:"support.type.wat"}},comment:"Vector literal (i8x16) [simd]",match:"\\b(i8x16)(?:\\s+0x[0-9a-fA-F]{1,2}){16}\\b",name:"constant.numeric.vector.wat"},{captures:{1:{name:"support.type.wat"}},comment:"Vector literal (i16x8) [simd]",match:"\\b(i16x8)(?:\\s+0x[0-9a-fA-F]{1,4}){8}\\b",name:"constant.numeric.vector.wat"},{captures:{1:{name:"support.type.wat"}},comment:"Vector literal (i32x4) [simd]",match:"\\b(i32x4)(?:\\s+0x[0-9a-fA-F]{1,8}){4}\\b",name:"constant.numeric.vector.wat"},{captures:{1:{name:"support.type.wat"}},comment:"Vector literal (i64x2) [simd]",match:"\\b(i64x2)(?:\\s+0x[0-9a-fA-F]{1,16}){2}\\b",name:"constant.numeric.vector.wat"}]},{comment:"MVP",patterns:[{comment:"Floating point literal",match:"[+-]?\\b[0-9][0-9]*(?:\\.[0-9][0-9]*)?(?:[eE][+-]?[0-9]+)?\\b",name:"constant.numeric.float.wat"},{comment:"Floating point hexadecimal literal",match:"[+-]?\\b0x([0-9a-fA-F]*\\.[0-9a-fA-F]+|[0-9a-fA-F]+\\.?)[Pp][+-]?[0-9]+\\b",name:"constant.numeric.float.wat"},{comment:"Floating point infinity",match:"[+-]?\\binf\\b",name:"constant.numeric.float.wat"},{comment:"Floating point literal (NaN)",match:"[+-]?\\bnan:0x[0-9a-fA-F][0-9a-fA-F]*\\b",name:"constant.numeric.float.wat"},{comment:"Integer literal",match:"[+-]?\\b(?:0x[0-9a-fA-F][0-9a-fA-F]*|\\d[\\d]*)\\b",name:"constant.numeric.integer.wat"}]}]},instructions:{patterns:[{comment:"Non-trapping float-to-int conversions",patterns:[{captures:{1:{name:"support.class.wat"}},comment:"Conversion instruction [nontrapping-float-to-int-conversions]",match:"\\b(i32|i64)\\.trunc_sat_f(?:32|64)_[su]\\b",name:"keyword.operator.word.wat"}]},{comment:"Sign-extension operators",patterns:[{captures:{1:{name:"support.class.wat"}},comment:"Numeric instruction (i32) [sign-extension-ops]",match:"\\b(i32)\\.(?:extend(?:8|16)_s)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Numeric instruction (i64) [sign-extension-ops]",match:"\\b(i64)\\.(?:extend(?:8|16|32)_s)\\b",name:"keyword.operator.word.wat"}]},{comment:"Bulk memory operations",patterns:[{captures:{1:{name:"support.class.wat"}},comment:"Memory instruction [bulk-memory-operations]",match:"\\b(memory)\\.(?:copy|fill|init|drop)\\b",name:"keyword.operator.word.wat"}]},{comment:"Fixed-width SIMD",patterns:[{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (v128) [simd]",match:"\\b(v128)\\.(?:const|and|or|xor|not|andnot|bitselect|load|store)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (i8x16) [simd]",match:"\\b(i8x16)\\.(?:shuffle|swizzle|splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane_[su]|add_saturate_[su]|sub_saturate_[su]|avgr_u|narrow_i16x8_[su])\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (i16x8) [simd]",match:"\\b(i16x8)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane_[su]|add_saturate_[su]|sub_saturate_[su]|avgr_u|load8x8_[su]|narrow_i32x4_[su]|widen_(low|high)_i8x16_[su])\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (i32x4) [simd]",match:"\\b(i32x4)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane|load16x4_[su]|trunc_sat_f32x4_[su]|widen_(low|high)_i16x8_[su])\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (i64x2) [simd]",match:"\\b(i64x2)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|extract_lane|load32x2_[su])\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (f32x4) [simd]",match:"\\b(f32x4)\\.(?:splat|replace_lane|add|sub|mul|neg|extract_lane|eq|ne|lt|le|gt|ge|abs|min|max|div|sqrt|convert_i32x4_[su])\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (f64x2) [simd]",match:"\\b(f64x2)\\.(?:splat|replace_lane|add|sub|mul|neg|extract_lane|eq|ne|lt|le|gt|ge|abs|min|max|div|sqrt)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (v8x16) [simd]",match:"\\b(v8x16)\\.(?:load_splat|shuffle|swizzle)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (v16x8) [simd]",match:"\\b(v16x8)\\.load_splat\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (v32x4) [simd]",match:"\\b(v32x4)\\.load_splat\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (v64x2) [simd]",match:"\\b(v64x2)\\.load_splat\\b",name:"keyword.operator.word.wat"}]},{comment:"Threads",patterns:[{captures:{1:{name:"support.class.wat"},2:{name:"support.class.wat"},3:{name:"support.class.wat"},4:{name:"support.class.wat"}},comment:"Atomic instruction (i32) [threads]",match:"\\b(i32)\\.(atomic)\\.(?:load(?:8_u|16_u)?|store(?:8|16)?|wait|(rmw)\\.(?:add|sub|and|or|xor|xchg|cmpxchg)|(rmw8|rmw16)\\.(?:add_u|sub_u|and_u|or_u|xor_u|xchg_u|cmpxchg_u))\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"},2:{name:"support.class.wat"},3:{name:"support.class.wat"},4:{name:"support.class.wat"}},comment:"Atomic instruction (i64) [threads]",match:"\\b(i64)\\.(atomic)\\.(?:load(?:8_u|16_u|32_u)?|store(?:8|16|32)?|wait|(rmw)\\.(?:add|sub|and|or|xor|xchg|cmpxchg)|(rmw8|rmw16|rmw32)\\.(?:add_u|sub_u|and_u|or_u|xor_u|xchg_u|cmpxchg_u))\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Atomic instruction [threads]",match:"\\b(atomic)\\.(?:notify|fence)\\b",name:"keyword.operator.word.wat"},{comment:"Shared modifier [threads]",match:"\\bshared\\b",name:"storage.modifier.wat"}]},{comment:"Reference types",patterns:[{captures:{1:{name:"support.class.wat"}},comment:"Reference instruction [reference-types]",match:"\\b(ref)\\.(?:null|is_null|func|extern)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Table instruction [reference-types]",match:"\\b(table)\\.(?:get|size|grow|fill|init|copy)\\b",name:"keyword.operator.word.wat"},{comment:"Type name [reference-types]",match:"\\b(?:externref|funcref|nullref)\\b",name:"entity.name.type.wat"}]},{comment:"Tail Call",patterns:[{comment:"Control instruction [tail-call]",match:"\\breturn_call(?:_indirect)?\\b",name:"keyword.control.wat"}]},{comment:"Exception handling",patterns:[{comment:"Control instruction [exception-handling]",match:"\\b(?:try|catch|throw|rethrow|br_on_exn)\\b",name:"keyword.control.wat"},{comment:"Module element [exception-handling]",match:"(?<=\\()event\\b",name:"storage.type.wat"}]},{comment:"Binaryen extensions",patterns:[{captures:{1:{name:"support.class.wat"}},comment:"Pseudo stack instruction [binaryen]",match:"\\b(i32|i64|f32|f64|externref|funcref|nullref|exnref)\\.(?:push|pop)\\b",name:"keyword.operator.word.wat"}]},{comment:"MVP",patterns:[{captures:{1:{name:"support.class.type.wat"}},comment:"Memory instruction (i32) [mvp]",match:"\\b(i32)\\.(?:load|load(?:8|16)(?:_[su])?|store(?:8|16)?)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Memory instruction (i64) [mvp]",match:"\\b(i64)\\.(?:load|load(?:8|16|32)(?:_[su])?|store(?:8|16|32)?)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Memory instruction (f32/f64) [mvp]",match:"\\b(f32|f64)\\.(?:load|store)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.memory.wat"}},comment:"Memory instruction [mvp]",match:"\\b(memory)\\.(?:size|grow)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"entity.other.attribute-name.wat"}},comment:"Memory instruction attribute [mvp]",match:"\\b(offset|align)=\\b"},{captures:{1:{name:"support.class.local.wat"}},comment:"Variable instruction (local) [mvp]",match:"\\b(local)\\.(?:get|set|tee)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.global.wat"}},comment:"Variable instruction (global) [mvp]",match:"\\b(global)\\.(?:get|set)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Numeric instruction (i32/i64) [mvp]",match:"\\b(i32|i64)\\.(const|eqz|eq|ne|lt_[su]|gt_[su]|le_[su]|ge_[su]|clz|ctz|popcnt|add|sub|mul|div_[su]|rem_[su]|and|or|xor|shl|shr_[su]|rotl|rotr)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Numeric instruction (f32/f64) [mvp]",match:"\\b(f32|f64)\\.(const|eq|ne|lt|gt|le|ge|abs|neg|ceil|floor|trunc|nearest|sqrt|add|sub|mul|div|min|max|copysign)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Conversion instruction (i32) [mvp]",match:"\\b(i32)\\.(wrap_i64|trunc_(f32|f64)_[su]|reinterpret_f32)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Conversion instruction (i64) [mvp]",match:"\\b(i64)\\.(extend_i32_[su]|trunc_f(32|64)_[su]|reinterpret_f64)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Conversion instruction (f32) [mvp]",match:"\\b(f32)\\.(convert_i(32|64)_[su]|demote_f64|reinterpret_i32)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Conversion instruction (f64) [mvp]",match:"\\b(f64)\\.(convert_i(32|64)_[su]|promote_f32|reinterpret_i64)\\b",name:"keyword.operator.word.wat"},{comment:"Control instruction [mvp]",match:"\\b(?:unreachable|nop|block|loop|if|then|else|end|br|br_if|br_table|return|call|call_indirect)\\b",name:"keyword.control.wat"},{comment:"Parametric instruction [mvp]",match:"\\b(?:drop|select)\\b",name:"keyword.operator.word.wat"}]},{comment:"GC Instructions",patterns:[{captures:{1:{name:"support.class.wat"}},comment:"Reference Instructions [GC]",match:"\\b(ref)\\.(?:eq|test|cast)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Struct Instructions [GC]",match:"\\b(struct)\\.(?:new_canon|new_canon_default|get|get_s|get_u|set)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Array Instructions [GC]",match:"\\b(array)\\.(?:new_canon|new_canon_default|get|get_s|get_u|set|len|new_canon_fixed|new_canon_data|new_canon_elem)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"i31 Instructions [GC]",match:"\\b(i31)\\.(?:new|get_s|get_u)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Branch Instructions [GC]",match:"\\b(?:br_on_non_null|br_on_cast|br_on_cast_fail)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Reference Instructions [GC]",match:"\\b(extern)\\.(?:internalize|externalize)\\b",name:"keyword.operator.word.wat"}]}]},invalid:{patterns:[{match:"[^\\s()]+",name:"invalid.wat"}]},modules:{patterns:[{comment:"Bulk memory operations",patterns:[{captures:{1:{name:"storage.modifier.wat"}},comment:"Passive modifier [bulk-memory-operations]",match:"(?<=\\(data)\\s+(passive)\\b"}]},{comment:"MVP",patterns:[{comment:"Module element [mvp]",match:"(?<=\\()(?:module|import|export|memory|data|table|elem|start|func|type|param|result|global|local)\\b",name:"storage.type.wat"},{captures:{1:{name:"storage.modifier.wat"}},comment:"Mutable global modifier [mvp]",match:"(?<=\\()\\s*(mut)\\b",name:"storage.modifier.wat"},{captures:{1:{name:"entity.name.function.wat"}},comment:"Function name [mvp]",match:"(?<=\\(func|\\(start|call|return_call|ref\\.func)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)"},{begin:"\\)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)",beginCaptures:{1:{name:"entity.name.function.wat"}},comment:"Function name(s) (elem) [mvp]",end:"\\)",patterns:[{match:"(?<=\\s)\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*",name:"entity.name.function.wat"}]},{captures:{1:{name:"support.type.function.wat"}},comment:"Function type [mvp]",match:"(?<=\\(type)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)"},{comment:"Variable name or branch label [mvp]",match:"\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*\\b",name:"variable.other.wat"}]}]},strings:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin"}},comment:"String literal",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.double.wat",patterns:[{match:`\\\\(n|t|\\\\|'|"|[0-9a-fA-F]{2})`,name:"constant.character.escape.wat"}]},types:{patterns:[{comment:"Fixed-width SIMD",patterns:[{comment:"Type name [simd]",match:"\\bv128\\b(?!\\.)",name:"entity.name.type.wat"}]},{comment:"Reference types",patterns:[{comment:"Type name [reference-types]",match:"\\b(?:externref|funcref|nullref)\\b(?!\\.)",name:"entity.name.type.wat"}]},{comment:"Exception handling",patterns:[{comment:"Type name [exception-handling]",match:"\\bexnref\\b(?!\\.)",name:"entity.name.type.wat"}]},{comment:"MVP",patterns:[{comment:"Type name [mvp]",match:"\\b(?:i32|i64|f32|f64)\\b(?!\\.)",name:"entity.name.type.wat"}]},{comment:"GC Types",patterns:[{comment:"Type name [GC]",match:"\\b(?:i8|i16|ref|funcref|externref|anyref|eqref|i31ref|nullfuncref|nullexternref|structref|arrayref|nullref)\\b(?!\\.)",name:"entity.name.type.wat"}]},{comment:"GC Heap Types",patterns:[{comment:"Type name [GC]",match:"\\b(?:type|func|extern|any|eq|nofunc|noextern|struct|array|none)\\b(?!\\.)",name:"entity.name.type.wat"}]},{comment:"GC Structured and sub Types",patterns:[{comment:"Type name [GC]",match:"\\b(?:struct|array|sub|final|rec|field|mut)\\b(?!\\.)",name:"entity.name.type.wat"}]}]}},scopeName:"source.wat"});var e=[t];export{e as default}; diff --git a/assets/chunks/wasm.CsTmP73Z.js b/assets/chunks/wasm.CsTmP73Z.js new file mode 100644 index 000000000..96ed770f4 --- /dev/null +++ b/assets/chunks/wasm.CsTmP73Z.js @@ -0,0 +1 @@ +var Q=Uint8Array.from(atob("AGFzbQEAAAABoQEWYAJ/fwF/YAF/AX9gA39/fwF/YAR/f39/AX9gAX8AYAV/f39/fwF/YAN/f38AYAJ/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAAF/YAl/f39/f39/f38Bf2AIf39/f39/f38Bf2AAAGAEf39/fwBgA39+fwF+YAZ/fH9/f38Bf2AAAXxgBn9/f39/fwBgAnx/AXxgAn5/AX9gBX9/f39/AAJ1BANlbnYVZW1zY3JpcHRlbl9tZW1jcHlfYmlnAAYDZW52EmVtc2NyaXB0ZW5fZ2V0X25vdwARFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfd3JpdGUAAwNlbnYWZW1zY3JpcHRlbl9yZXNpemVfaGVhcAABA9MB0QENBAABAAECAgsCAAIEBAACAQEAAQMCAwkCBgUDBQgCAwwMAwkJAwgDAQIFAwMEAQUHCwgCAgsABQUBAgQCBgIAAQACBAIABwMHBgcAAwACAAICAAQBAgcAAgUCAAEBBgYABgQACAUICQsJDAAAAAAAAAACAgIDAAIDAgADAQABAAACBQICAAESAQEEAgIGAgUDAQUAAgEBAAoBAAEAAwMCAAACBgIOAgEPAQEBChMCBQkGAQ4UFRAHAwIBAAEECggCAQgIBwcNAQQABwABCgQBBQQFAXABMzMFBwEBgAKAgAIGDgJ/AUHQj9MCC38BQQALB5QCDwZtZW1vcnkCABFfX3dhc21fY2FsbF9jdG9ycwAEGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBABBfX2Vycm5vX2xvY2F0aW9uALABB29tYWxsb2MAwAEFb2ZyZWUAwQEQZ2V0TGFzdE9uaWdFcnJvcgDCARFjcmVhdGVPbmlnU2Nhbm5lcgDEAQ9mcmVlT25pZ1NjYW5uZXIAxQEYZmluZE5leHRPbmlnU2Nhbm5lck1hdGNoAMYBG2ZpbmROZXh0T25pZ1NjYW5uZXJNYXRjaERiZwDHAQlzdGFja1NhdmUA0QEMc3RhY2tSZXN0b3JlANIBCnN0YWNrQWxsb2MA0wEMZHluQ2FsbF9qaWppANQBCVIBAEEBCzIFCgsPHC9vcHRxcnN1ugG7Ab0BBgcICYABfoEBggGDAX97fIUBmwF9hAFvnAFvnQGeAZ8BoAGhAZIBogGYAZcBowGkAaUBqwGqAawB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ACADNgIEIA0oAgBBATYCCEEADwsgACgCDCABEE8iA0EASARAIAMPCyACIAIoAowBIgVBAWo2AowBIAFBOxBRIgQNCyABKAIIIANBBWo2AgQgAUHNABBRIgQNCyABKAIIIAU2AgQgASgCCEEANgIIIAAoAgwgASACEEIiBA0LIAFBPhBRIgAhBCAADQsgASgCCCAFNgIEIAFBPRBRIgAhBCAADQsgAUE5EFEPCyMAQRBrIgkkAAJAIAAoAhQgACgCGEYEQCACIAIoAowBIgdBAWo2AowBAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBkEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgVFDQIgASAFNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBjYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAc2AgQgASgCCEEANgIIAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBkEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgVFDQIgASAFNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBjYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHKADYCACABKAIIIAAoAhQ2AgQgASgCCEEANgIIIAEoAghBATYCDCAAKAIMIAEgAhBCIgMNAQJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhAyAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcwANgIAIAEoAgggBzYCBCABKAIIQQA2AggMAQsgACgCICIDBEAgAyABIAkgAkEAEF0iA0EASA0BAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiB0EATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgZFDQIgASAGNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBzYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHJADYCACABKAIIQQAgCSgCAGs2AgQgACgCICABIAIQQiIDDQELIAIgAigCjAEiB0EBajYCjAECQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiBUUNASABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc4ANgIAIAEoAghBAjYCBCABKAIIIAc2AggCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiBUUNASABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc8ANgIAIAEoAghBBDYCBCACIAIoAowBIgZBAWo2AowBAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAY2AgQgASgCCEEANgIIAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE7NgIAIAEoAghBAjYCBAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgVBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIIRQ0BIAEgCDYCACABKAIEIARBA3QQzQEiBEUNASABIAU2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOjYCACABKAIIQQM2AgQCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCEUNASABIAg2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc8ANgIAIAEoAghBAjYCBCABKAIIIAc2AgggASgCCEEANgIMAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE5NgIAIAFBygAQUSIDDQAgACgCGCEDIAEoAgggACgCFCIENgIEIAEoAghBfyADIARrIANBf0YbNgIIIAEoAghBAjYCDCABQcsAEFEiAw0AIAAoAgwgASACEEIiAw0AIAFBKBBRIgMNACABKAIIQQE2AgQgAUHMABBRIgMNACABKAIIIAY2AgQgASgCCEEANgIIIAFBzwAQUSIDDQAgASgCCEECNgIEIAEoAgggBzYCCCABKAIIQQE2AgxBACEDCyAJQRBqJAAgAw8LIwBBEGsiCiQAIAAoAgwgARBPIQggACgCGCEGIAAoAhQhBSACIAIoAowBIgdBAWo2AowBIAEoAhAhBCABKAIMIQMCQCAFIAZGBEACQCADIARJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAwtBeyEDIAEoAgAgBEEobBDNASIFRQ0CIAEgBTYCACABKAIEIARBA3QQzQEiBEUNAiABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzQA2AgAgASgCCCAHNgIEIAEoAghBADYCCAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAwtBeyEDIAEoAgAgBEEobBDNASIFRQ0CIAEgBTYCACABKAIEIARBA3QQzQEiBEUNAiABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOzYCACABKAIIIAhBBGo2AgQCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAMLQXshAyABKAIAIARBKGwQzQEiBUUNAiABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQIgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcoANgIAIAEoAgggACgCFDYCBCABKAIIQQA2AgggASgCCEEBNgIMIAAoAgwgASACEEIiAw0BAkAgASgCDCIAIAEoAhAiAkkNACACRQ0AIAJBAXQiAEEATARAQXUhAwwDC0F7IQMgASgCACACQShsEM0BIgRFDQIgASAENgIAIAEoAgQgAkEDdBDNASICRQ0CIAEgADYCECABIAI2AgQgASgCDCEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE+NgIAIAEoAgggBzYCBAJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIIABBADYCECAAQgA3AgggAEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOTYCAAJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhAyAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQT02AgAMAQsCQCADIARJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIFRQ0BIAEgBTYCACABKAIEIARBA3QQzQEiBEUNASABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzgA2AgAgASgCCEECNgIEIAEoAgggBzYCCAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIFRQ0BIAEgBTYCACABKAIEIARBA3QQzQEiBEUNASABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzwA2AgAgASgCCEEENgIEIAIgAigCjAEiBkEBajYCjAECQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCUUNASABIAk2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc0ANgIAIAEoAgggBjYCBCABKAIIQQA2AggCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCUUNASABIAk2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTs2AgAgASgCCCAIQQhqNgIEIAAoAiAiAwRAIAMgARBPIQMgASgCCCIEIAMgBCgCBGpBAWo2AgQgACgCICABIAogAkEAEF0iA0EASA0BAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIghFDQIgASAINgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHJADYCACABKAIIQQAgCigCAGs2AgQgACgCICABIAIQQiIDDQELAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHKADYCACAAKAIYIQMgASgCCCAA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AgANACAAKAIwDQAgACgCDCECIAAgAEEYaiIENgIMIAAgBCAAKAIQIAJrajYCEAsgBSgCAA0BIAUoAjANASAFKAIMIQAgBSAFQRhqIgI2AgwgBSACIAUoAhAgAGtqNgIQIAMQEAwGCyAGQcACaiIFIABBMGoiAikCADcDACAGQbgCaiIEIABBKGoiASkCADcDACAGQbACaiIJIABBIGoiCykCADcDACAGQagCaiIHIABBGGoiCikCADcDACAGQaACaiIOIABBEGoiDSkCADcDACAGQZgCaiIQIABBCGoiDCkCADcDACAGIAApAgA3A5ACIAIgA0EwaiIVKQIANwIAIAEgA0EoaiICKQIANwIAIAsgA0EgaiIBKQIANwIAIAogA0EYaiILKQIANwIAIA0gA0EQaiIKKQIANwIAIAwgA0EIaiINKQIANwIAIAAgAykCADcCACAVIAUpAwA3AgAgAiAEKQMANwIAIAEgCSkDADcCACALIAcpAwA3AgAgCiAOKQMANwIAIA0gECkDADcCACADIAYpA5ACNwIAAkAgACgCAA0AIAAoAjANACAAKAIMIQUgACAAQRhqIgI2AgwgACACIAAoAhAgBWtqNgIQCyADKAIADQAgAygCMA0AIAMoAgwhBSADIANBGGoiADYCDCADIAAgAygCECAFa2o2AhALIAMQEAwECyAGQcACaiIFIABBMGoiAikCADcDACAGQbgCaiIEIABBKGoiAykCADcDACAGQbACaiIBIABBIGoiCSkCADcDACAGQagCaiILIABBGGoiBykCADcDACAGQaACaiIKIABBEGoiDikCADcDACAGQZgCaiINIABBCGoiECkCADcDACAGIAApAgA3A5ACIAIgCEEwaiIMKQIANwIAIAMgCEEoaiICKQIANwIAIAkgCEEgaiIDKQIANwIAIAcgCEEYaiIJKQIANwIAIA4gCEEQaiIHKQIANwIAIBAgCEEIaiIOKQIANwIAIAAgCCkCADcCACAMIAUpAwA3AgAgAiAEKQMANwIAIAMgASkDADcCACAJIAspAwA3AgAgByAKKQMANwIAIA4gDSkDADcCACAIIAYpA5ACNwIAAkAgACgCAA0AIAAoAjANACAAKAIMIQUgACAAQRhqIgI2AgwgACACIAAoAhAgBWtqNgIQCwJAIAgoAgANACAIKAIwDQAgCCgC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QQFrQQZ0aiIBKAIAIAUoAhhHBEAgAUIANwIAIAFCADcCOCABQgA3AjAgAUIANwIoIAFCADcCICABQgA3AhggAUIANwIQIAFCADcCCCABIAUoAhg2AgALIAEoAghBACABKAIEGyECCyAAKAIIIgFBAEwNACAAKAIoKAIoIgUoAhwiBiABQQFrIghBBnRqIgEoAgAgBSgCGEcEQCABQgA3AgAgAUIANwI4IAFCADcCMCABQgA3AiggAUIANwIgIAFCADcCGCABQgA3AhAgAUIANwIIIAEgBSgCGDYCAAsCQCABKAIERQRAIAAoAgwgACgCCBAOIgFFDQIgASgCBEEBRw0CIAEoAkQiAyABKAJIIgUgBygCRCgCFBEAACEIQQAhBiAFIAMgBygCRCgCABEBACADaiIBSwRAIAEgBSAHKAJEKAIUEQAAIQZBmH4hAyABIAcoAkQoAgARAQAgAWogBUcNAwtBmH4hAwJ/AkACQAJAAkAgCEEhaw4eAQcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAgADBwtBACAGQT1GDQMaDAYLQQEgBkE9Rg0CGgwFC0EEIAZBPUYNARogBg0EQQIMAQtBBSAGQT1GDQAaIAYNA0EDCyEBQWIhAyAAKAIIIgdBAEwNAiAAKAIoKAIoIgMoAhwgB0EGdGpBQGoiAEEBNgIEIAAgBTYCDCAAIAE2AgggACADKAIYNgIADAELIAYgCEEGdGooAgghAQtBACEAAkACQAJAAkACQAJAAkAgAQ4GAAECAwQFBgsgAiAERiEADAULIAIgBEchAAwECyACIARKIQAMAwsgAiAESCEADAILIAIgBE4hAAwBCyACIARMIQALIABBAXMhAwsgAws/AQF/AkAgACgCDCIAIAIgAWsiA2oQywEiAkUNACACIAEgAxCmASEBIABBAEwNACABIANqQQAgABCoARoLIAILJgAgAiABIAIgACgCOBEAACIBSwR/IAEgACgCABEBACABagUgAQsLHgEBfyABIAJJBH8gASACQQFrIAAoAjgRAAAFIAMLCzsAAkAgAkUNAANAIANBAEwEQCACDwsgASACTw0BIANBAWshAyABIAJBAWsgACgCOBEAACICDQALC0EAC2gBBH8gASECA0ACQCACLQAADQAgACgCDCIDQQFHBEAgAiEEIANBAkgNAQNAIAQtAAENAiAEQQFqIQQgA0ECSiEFIANBAWshAyAFDQALCyACIAFrDwsgAiAAKAIAEQEAIAJqIQIMAAsAC3UBBH8jAEEQayIAJAACQANAIAAgBEEDdEHQJWoiAygCBCIFNgIMIAMoAgAiBiAAQQxqQQEgAiABEQMAIgMNASAAIAY2AgwgBSAAQQxqQQEgAiABEQMAIgMNASAEQQFqIgRBGkcNAAtBACEDCyAAQRBqJAAgAwtOAEEgIQACfyABLQAAIgJBwQBrQf8BcUEaTwRAQWAhAEEAIAJB4QBrQf8BcUEZSw0BGgsgA0KBgICAEDcCACADIAAgAS0AAGo2AghBAQsLBABBfgscAAJ/IAAgAUkEQEEBIAAtAABBCkYNARoLQQALCyUAIAMgASgCAC0AAEHQH2otAAA6AAAgASABKAIAQQFqNgIAQQELBABBAQsHACAALQAACw4AQQFB8HwgAEGAAkkbCwsAIAEgADoAAEEBCwQAIAELzgEBBn8gASACSQRAIAEhAwNAIAVBAWohBSADIAAoAgARAQAgA2oiAyACSQ0ACwtBAEHAmhFqIQMgBEHHCWohBANAAkAgBSADIgYuAQgiB0cNACAFIQggASEDAkAgB0EATA0AA0AgAiADSwRAIAMgAiAAKAIUEQAAIAQtAABHDQMgBEEBaiEEIAMgACgCABEBACADaiEDIAhBAUshByAIQQFrIQggBw0BDAILCyAELQAADQELIAYoAgQPCyAGQQxqIQMgBigCDCIEDQALQaF+C2gBAX8CQCAEQQBKBEADQCABIAJPBEAgAy0AAA8LIAEgAiAAKAIUEQAAIQUgAy0AACAFayIFDQIgA0EBaiEDIAEgACgCABEBACABaiEBIARBAUshBSAEQQFrIQQgBQ0ACwtBACEFCyAFCy4BAX8gASACIAAoAhQRAAAiAEH/AE0EfyAAQQF0QdAhai8BAEEMdkEBcQUgAwsLPgEDfwJAIAJBAEwNAANAIAAgA0ECdCIFaigCACABIAVqKAIARgRAIAIgA0EBaiIDRw0BDAILC0F/IQQLIAQLJwEBfyAAIAFBA20iAkECdGooAgBBECABIAJBA2xrQQN0a3ZB/wFxC7YIAQF/Qc0JIQECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB9ANqDvQDTU5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkxOTktKMzZOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTklIR0ZFRENCQUA/Pj08Ozo5ODc1NE4yMTAvLi0sKyopKE5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4nJiUkIyIhIB8eHRwbGhkYThcWFRQTEhFOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4QTk5OTk5ODw4NTgcGBQQDDAsKCU5OTk4IAk4BAE9OC0GzDA8LQbMNDwtBjQ4PC0GEDw8LQfAPDwtByRAPC0G+EQ8LQf8RDwtBwBIPC0HnEg8LQZYTDwtBuhMPC0HkEw8LQf4TDwtBvBQPC0GEFQ8LQZcVDwtBrhUPC0HNFQ8LQewVDwtBnhYPC0HyFg8LQYoXDwtBoBcPC0G5Fw8LQdUXDwtB9BcPC0GYGA8LQbsYDwtB7BgPC0GgJw8LQcUnDwtB3CcPC0H4Jw8LQZ8oDwtBtCgPC0HLKA8LQeAoDwtB+ygPC0GaKQ8LQb0pDwtBzCkPC0HsKQ8LQZgqDwtBsioPC0HlKg8LQZIrDwtBsisPC0HJKw8LQeUrDwtBliwPC0GoLA8LQcAsDwtB2SwPC0HsLA8LQYUtDwtBmS0P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AUYNAQsLIAILoQEBBH9BASEEAkAgACABTw0AA0BBACEEIAAtAAAiAkHAAXFBgAFGDQEgAEEBaiEDAkAgAkHAAWtBNEsEQCADIQAMAQsgAEECIAJBAnRBkIoRaigCACICIAJBAkwbIgVqIQBBASECA0AgASADRg0DIAMtAABBwAFxQYABRw0DIANBAWohAyACQQFqIgIgBUcNAAsLIAAgAUkNAAtBASEECyAEC4AEAQN/IAJBgARPBEAgACABIAIQACAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvoAgECfwJAIAAgAUYNACABIAAgAmoiA2tBACACQQF0a00EQCAAIAEgAhCmARoPCyAAIAFzQQNxIQQCQAJAIAAgAUkEQCAEBEAgACEDDAMLIABBA3FFBEAgACEDDAILIAAhAwNAIAJFDQQgAyABLQAAOgAAIAFBAWohASACQQFrIQIgA0EBaiIDQQNxDQALDAELAkAgBA0AIANBA3EEQANAIAJFDQUgACACQQFrIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBBGsi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AmogASACQf////8Hc0obIQELIAAgA0EBajYCACABIQIgAywAARCvAQ0ACyABC7YEAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBCWsOEgABAgUDBAYHCAkKCwwNDg8QERILIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAiADEQcACwuDAQIDfwF+AkAgAEKAgICAEFQEQCAAIQUMAQsDQCABQQFrIgEgACAAQgqAIgVCCn59p0EwcjoAACAAQv////+fAVYhAiAFIQAgAg0ACwsgBaciAgRAA0AgAUEBayIBIAIgAkEKbiIDQQpsa0EwcjoAACACQQlLIQQgAyECIAQNAAsLIAELcgEBfyMAQYACayIFJAACQCACIANMDQAgBEGAwARxDQAgBSABQf8BcSACIANrIgNBgAIgA0GAAkkiAhsQqAEaIAJFBEADQCAAIAVBgAIQtQEgA0GAAmsiA0H/AUsNAAsLIAAgBSADELUBCyAFQYACaiQAC8kYAxJ/AXwCfiMAQbAEayIKJAAgCkEANgIsAkAgAb0iGUIAUwRA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IQsgBUEgcSEIIAooAiwhByAGQQJrIg0gBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxIQkgCkEQaiEHA0AgByIGAn8gAZlEAAAAAAAA4EFjBEAgAaoMAQtBgICAgHgLIgdB4JURai0AACAIcjoAACABIAe3oUQAAAAAAAAwQKIhAQJAIAZBAWoiByAKQRBqa0EBRw0AAkAgCQ0AIANBAEoNACABRAAAAAAAAAAAYQ0BCyAGQS46AAEgBkECaiEHCyABRAAAAAAAAAAAYg0AC0F/IQlB/f///wcgCyASIA1rIhBqIgZrIANIDQAgAEEgIAICfwJAIANFDQAgByAKQRBqayIIQQJrIANODQAgA0ECagwBCyAHIApBEGprIggLIgcgBmoiBiAEELkBIAAgDiALELUBIABBMCACIAYgBEGAgARzELkBIAAgCkEQaiAIELUBIABBMCAHIAhrQQBBABC5ASAAIA0gEBC1ASAAQSAgAiAGIARBgMAAcxC5ASAGIAIgAiAGSBshCQsgCkGwBGokACAJC40FAgZ+An8gASABKAIAQQdqQXhxIgFBEGo2AgAgACABKQMAIQQgASkDCCEFIwBBIGsiACQAAkAgBUL///////////8AgyIDQoCAgICAgMCAPH0gA0KAgICAgIDA/8MAfVQEQCAFQgSGIARCPIiEIQMgBEL//////////w+DIgRCgYCAgICAgIAIWgRAIANCgYCAgICAgIDAAHwhAgwCCyADQoCAgICAgICAQH0hAiAEQoCAgICAgICACFINASACIANCAYN8IQIMAQsgBFAgA0KAgICAgIDA//8AVCADQoCAgICAgMD//wBRG0UEQCAFQgSGIARCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiADQv///////7//wwBWDQBCACECIANCMIinIgFBkfcASQ0AIABBEGohCSAEIQIgBUL///////8/g0KAgICAgIDAAIQiAyEGAkAgAUGB9wBrIghBwABxBEAgAiAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAkgAjcDACAJIAY3AwgCQEGB+AAgAWsiAUHAAHEEQCADIAFBQGqtiCEEQgAhAwwBCyABRQ0AIANBwAAgAWuthiAEIAGtIgKIhCEEIAMgAoghAwsgACAENwMAIAAgAzcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACACIAVCgICAgICAgICAf4OEvzkDAAugAQECfyMAQaABayIEJABBfyEFIAQgAUEBa0EAIAEbNgKUASAEIAAgBEGeAWogARsiADYCkAEgBEEAQZABEKgBIgRBfzYCTCAEQRA2AiQgBEF/NgJQIAQgBEGfAWo2AiwgBCAEQZABajYCVAJAIAFBAEgEQEHoyhJBPTYCAAwBCyAAQQA6AAAgBCACIANBDkEPELMBIQULIARBoAFqJAAgBQurAQEEfyAAKAJUIgMoAgQiBSAAKAIUIAAoAhwiBmsiBCAEIAVLGyIEBEAgAygCACAGIAQQpgEaIAMgAygCACAEajYCACADIAMoAgQgBGsiBTYCBAsgAygCACEEIAUgAiACIAVLGyIFBEAgBCABIAUQpgEaIAMgAygCACAFaiIENgIAIAMgAygCBCAFazYCBAsgBEEAOgAAIAAgACgCLCIDNgIcIAAgAzYCFCACCxYAIABFBEBBAA8LQejKEiAANgIAQX8LogIAIABFBEBBAA8LAn8CQCAABH8gAUH/AE0NAQJAQfzLEigCACgCAEUEQCABQYB/cUGAvwNGDQNB6MoSQRk2AgAMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAgwECyABQYBAcUGAwANHIAFBgLADT3FFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAwwECyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBAwEC0HoyhJBGTYCAAtBfwVBAQsMAQsgACABOgAAQQELCwcAIAAQywELBwAgABDMAQu9BQEJfyMAQRBrIggkACAIQZjMEjYCAEGUzBIoAgAhByMAQYABayIBJAAgASAINgJcAkAgB0GhfkcgB0HcAWpBBk9xRQRAIAEgASgCXCICQQRqNgJcAn9BACACKAIAIgAoAgQiAkUNABogACgCCCEEIAAoAgAiBigCDEECTgRAA0ACQCACIARPDQACfyACIAQgBigCFBEAACIAQYABTwRAAkAgAEGAgARJDQAgA0ERSg0AIAEgAEEYdjYCMCABQeAAaiADaiIFQQVBqzIgAUEwahCpASABIABBEHZB/wFxNgIgIAVBBGpBA0GmMiABQSBqEKkBIAEgAEEIdkH/AXE2AhAgBUEGakEDQaYyIAFBEGoQqQEgASAAQf8BcTYCACAFQQhqQQNBpjIgARCpASADQQpqDAILIANBFUoNAiABIABBCHZB/wFxNgJQIAFB4ABqIANqIgVBBUGrMiABQdAAahCpASABIABB/wFxNgJAIAVBBGpBA0GmMiABQUBrEKkBIANBBmoMAQsgAUHgAGogA2ogADoAACADQQFqCyEDIAIgBigCABEBACACaiECIANBG0gNAQsLIAIgBEkMAQsgAUHgAGogAkEbIAQgAmsiACAAQRtOGyIDEKYBGiAAQRtKCyEFIAcQigEhAkGwzBIhAANAAkACQCACLQAAIgRBJUcEQCAERQ0BDAILIAJBAWohBiACLQABIgRB7gBHBEAgBiECDAILIAAgAUHgAGogAxCmASADaiEAIAUEQCAAQaIyLwAAOwAAIABBpDItAAA6AAIgAEEDaiEACyAGQQFqIQIMAgsgAEEAOgAADAMLIAAgBDoAACAAQQFqIQAgAkEBaiECDAALAAtBlL0SIAcQigEiABB6IQJBsMwSIAAgAhCmASACakEAOgAACyABQYABaiQAIAhBEGokAEGwzBIL4wEBAX8CQAJAAkACfyAALQAQBEBBACEBIABBDGogACgCCCACIAIgA2oiBiACIARqIAYgACgCDCAFEG1BAE4NARpBACEGDAMLAkAgACgCFCABRw0AIAAoAhwgBUcNACAAKAIYIARKDQAgAC0AIEUEQEEADwsgACgCDCIGKAIIKAIAIARODQQLIAAgBTYCHCAAIAQ2AhggACABNgIUQQAhASAAKAIIIAIgAiADaiIGIAIgBGogBiAAKAIMIAUQbUEASA0BIABBDGoLKAIAIQZBASEBDAELQQAhBgsgACABOgAgCyAGC7gzARp/IwBBEGsiGCQAIAJBAnQiChDLASEbIAoQywEhGSACQQBKBEADQCAbIA1BAnQiCmogACAKaigCACEVIAEgCmooAgAhE0EAIQVBACEWQQAhFCMAQRBrIhokAEGUzBICf0HolxEoAgAhCCAaQQxqIhdBAUGIAxDPASIDNgIAQXsgA0UNABogEyAVaiEGQYyaESgCACEJAkACQAJAAkBB7L8SLQAARQRAQYjAEi0AAEUEQEGIwBJBAToAAAtB7L8SQQE6AABBaSEQAkACQEG4vhItAABBAXFFDQBB1L0SKAIAIgdFDQACQEGMwBIoAgAiBEEATA0AA0AgBUEDdEGQwBJqKAIAQZS9EkcEQCAFQQFqIgUgBEcNAQwCCwsgBUEDdEGQwBJqKAIEDQELIAcRCgAiBA0BQYzAEigCACIEQQBKBEBBACEFA0AgBUEDdEGQwBJqKAIAQZS9EkYEQCAFQQN0QZDAEmpBATYCBAwDCyAFQQFqIgUgBEcNAAsgBEESSg0BC0GMwBIgBEEBajYCACAEQQN0QZDAEmoiBUEBNgIEIAVBlL0SNgIACwJAQay+EigCACIHRQ0AAkBBjMASKAIAIgRBAEwNAEEAIQUDQCAFQQN0QZDAEmooAgBB7L0SRwRAIAVBAWoiBSAERw0BDAILC0EAIQQgBUEDdEGQwBJqKAIEDQILIAcRCgAiBA0BQYzAEigCACIHQQBKBEBBACEFA0AgBUEDdEGQwBJqKAIAQey9EkYEQCAFQQN0QZDAEmpBATYCBAwDCyAFQQFqIgUgB0cNAAtBACEEIAdBEkoNAgtBjMASIAdBAWo2AgAgB0EDdEGQwBJqIgVBATYCBCAFQey9EjYCAAtBACEECyAEDQFB7JcRKAIAIhBBAUcEQEGQCSAQEQQACwsMAQsgFygCABDMAQwBCyAIKAIMIQVBACEQIANBADYChAMgA0EANgJwIAMgCDYCTCADQey9EjYCRCADQgA3AlQgA0EANgIQIANCADcCCCADQQA2AgAgAyAFQYACciIINgJIIAMgCUH+/7//e3FBAXIgCSAIQYCAAnEbNgJQIBcoAgAhBCAVIQUgBiEDIwBBkAVrIggkACAIQQA2AhAgCEIANwMIAkACQAJAAkAgBCgCEEUEQCAEKAIAQaABEM0BIglFDQEgBCAJNgIAIAQoAgRBIBDNASIJRQ0BIARBCDYCECAEQQA2AgggBCAJNgIECyAEQQA2AgwgCEG8AWohEiAIQQhqIQwjAEEQayIJJAAgCUEANgIMIAQoAkQhC0GczBJBADYCAEGYzBIgCzYCACAJQQxqIREgCEEYaiIHIQYjAEFAaiILJAAgBEIANwIUIARCADcCPCAEQgA3AhwgBEEANgIkIAQoAlQiDwRAIA9BAkEAEJEBCyAGQgA3AiQgBkEANgIYIAZCADcCECAGQTBqQQBB9AAQqAEaIAYgBCgCSDYCACAGIAQoAlA2AgQgBiAEKAJENgIIIAQoAkwhDyAGIAQ2AiwgBiADNgIgIAYgBTYCHCAGIA82AgwgEUEANgIAAkAgBSADIAYoAggoAkgRAABFBEBB8HwhBQwBCyALIAU2AgwgC0EANgIUIAtBEGogC0EMaiADIAYQGiIFQQBIDQAgESALQRBqQQAgC0EMaiADIAZBABAbIgNBAEgEQCADQR91IANxIQUMAQsCQCAGLQCgAUEBcUUEQCAGKAI0IQUMAQsgESgCACEFQQFBOBDPASIDRQRAQXshBQwCCyADQQU2AgAgAyAFNgIMIANC/////x83AhggBigCNCIFQQBIBEAgAxARIAMQzAFBdSEFDAILIAYoAoABIg8gBkFAayAPGyADNgIAIBEgAzYCAAsgBCAFNgIcQQAhBSAEKAKEAyIORQ0AIA4oAgwiA0EATA0AIA4oAggiBgRAIAZBBSAOEJEBIA4oAgwiA0EATA0BCwNAAkAgDigCFCAWQdwAbGoiBigCBEEBRw0AIAYoAiQiBUEATA0AIAZBJGohA0EAIQYDQCADIAZBAnRqKAIIQRBGBEACQAJAIAQoAoQDIgVFDQAgBSgCCCIFRQ0AIAMgBkEDdGoiEUEYaiIcKAIAIQ8gCyARKAIcNgIUIAsgDzYCECAFIAtBEGogC0E8ahCPAQ0BC0GZfiEFDAULIAsoAjwiBUEASA0EIBwgBTYCACADKAIAIQULIAZBAWoiBiAFSA0ACyAOKAIMIQMLQQAhBSAWQQFqIhYgA0gNAAsLIAtBQGskAAJAAkAgBSIGDQACQCAHLQCgAUECcUUNAEEAIQUgCUEMaiEDQYh/IQYDQCADKAIAIgMoAgAiC0EHRwRAIAtBBUcNAyADKAIQQQFHDQMgAy0AB0EQcUUNAyAFQQFHDQIgAygCDA0DBUEBIAUgAygCEBshBSADQQxqIQMMAQsLCyAJKAIMIAQoAkQQQyIGDQACQCAHKAI4IgNBAEwNACAHKAIMLQAIQYABcUUNACAELQBJQQFxDQACfyAHKAI0IANHBEAgCUEMaiEGIAQhBSMAQRBrIgMhFiADJAAgAyAHKAI0IgtBAnQiDkETakFwcWsiDyQAIAtBAEoEQCAPQQRqQQAgDhCoARoLIBZBADYCDAJAIAYgDyAWQQxqEFUiA0EASA0AIAYoAgAgDxBWIgMNACAHKAI0Ig5BAEoEQCAHQUBrIRFBASELQQEhAwNAIA8gA0ECdGooAgBBAEoEQCAHKAKAASIGIBEgBhsiBiALQQN0aiAGIANBA3RqKQIANwIAIAcoAjQhDiALQQFqIQsLIAMgDkghBiADQQFqIQMgBg0ACwsgBygCECERQQAhDiAHQQA2AhBBASEDA0ACQCARIAN2IgZBAXFFDQAgDyADQQJ0aigCACILQR9KDQAgByAOQQEgC3RyIg42AhALIANBAWoiC0EgRwRAAkAgBkECcUUNACAPIAtBAnRqKAIAIgZBH0oNACAHIA5BASAGdHIiDjYCEAsgA0ECaiEDDAELCyAHIAcoAjgiAzYCNCAFIAM2AhwgBSgCVCIFBEAgBUEDIA8QkQELQQAhAwsgFkEQaiQAIAMMAQsgCSgCDBBECyIGDQELIAkoAgwgBxBFIgYNAAJAIAQgBygCMCIDQQBKBH8gA0EDdBDLASIFRQRAQXshBgwDCyAMIAU2AgggDCADNgIEIAxBADYCACAHIAw2ApgBIAkoAgwgB0EAEEYiBg0BIAkoAgwQRyAJKAIMIAdBABBIIgZBAEgNASAJKAIMIAcQSSIGDQEgCSgCDEEAEEogBygCMAUgAws2AiggCSgCDCAEQQAgBxBLIgYNACAHKAKEAQRAIAkoAgxBABBMIAkoAgxBACAHEE0gCSgCDCAHEE4LQQAhBiAJKAIMIQMMAgsgBygCMEEATA0AIAwoAggiA0UNACADEMwBCyAHKAIkIgMEQEGczBIgAzYCAEGgzBIgBygCKDYCAAsgCSgCDBAQQQAhAyAHKAKAASIFRQ0AIAUQzAELIBIgAzYCACAJQRBqJAAgBiIDDQMgBCAIKAIoIgU2AiwgBCAFIAgoAiwiB3IiAzYCMCAEKAKEAyIJBEAgCSgCDA0DCyAIKAIwIQkgA0EBcUUNASAFIAlyIQMMAgtBeyEDIAQoAkQhBEGczBJBADYCAEGYzBIgBDYCAAwCCyAHIAlxIAVyIQMLIARBADYC+AIgBEEANgJ0IAQgAzYCNCAEQgA3AlggBEIANwJgIARCADcCaCAEKAJwIgMEQCADEMwBIARBADYCcAsgCCgCvAEhDiAIIAQoAkQ2AsgBIAggBCgCUDYCzAEgCEIANwPAASAIIAhBGGo2AtABAkACQAJ/AkACQAJAIA4gCEHYAWogCEHAAWoQQCIDRQRAIARB1IABQdSAAyAIKALgASIFQQZxGyAFcSAIKALkASIDQYIDcXI2AmAgA0GAA3EEQCAEIAgoAtgBNgJkIAQgCCgC3AE2AmgLIAgoAvwBQQBMBEAgCCgCrAJBAEwNAgsgBCgCRCIHIAhB6AFqIAhBmAJqEEECQCAIKAKIAyIFQQBMBEAgCCgC/AEhAwwBC0HIASAFbiEJIAgoAvwBIQMgBUHIAUsNACADQTxsIgxBAEwNA0EAIQUCf0EAIAgoAuwBIhJBf0YNABpBASASIAgoAugBayISQeMASw0AGiASQQF0QbAZai4BAAsgDGwhBgJAIAgoAvwCIgxBf0YNAEEBIQUgDCAIKAL4AmsiDEHjAEsNACAMQQF0QbAZai4BACEFCyAFIAlsIgUgBkoNAyAFIAZIDQAgCCgC+AIgCCgC6AFJDQMLAkAgA0UEQEEAIQNBASEJDAELIAQgAxDLASIFNgJwQQAhCSAFRQRAQXshAwwBCyAEIAUgCEGAAmogAxCmASIFIANqIgM2AnRBASEGIAUgAyAHKAI8EQAAIQ8CQCAIKAL8ASIDQQFMBEAgA0EBRw0BIA9FDQELIAQoAnQhCyAEKAJwIQcgBCgCRCIRKAJMQQJ2QQdxIgVBB0YEQCAHIQMDQCADIAMgESgCABEBACIFaiIDIAtJDQALIAVBAUYhBQtBdSEDIAUgCyAHa2oiBkH+AUoNASAEIAU2AvgCIARB+ABqIAZBgAIQqAEhEiAHIAtJBEAgBSALakEBayEMA0BBACEDAkAgCyAHayAHIBEoAgARAQAiBSAFIAdqIAtLGyIGQQBMDQADQCAMIAMgB2oiBWsiCUEATA0BIBIgBS0AAGogCToAACADQQFqIgMgBkgNAAsLIAYgB2oiByALSQ0ACwtBAkEDIA8bIQYLIAQgBjYCWCAEIAgoAugBIgU2AvwCIAQgCCgC7AE2AoADQQAhA0EBIQkgBUF/Rg0AIAQgBSAEKAJ0aiAEKAJwazYCXAsgBCAIKAL0AUGABHEgBCgCbCAIKALwAUEgcXJyNgJsIAkNBQsgCCgCSEEATA0FIAgoAhAiBEUNBSAEEMwBDAULIAgoAogDQQBMDQELIARB+ABqIAhBjANqQYACEKYBGiAEQQQ2AlggBCAIKAL4AiIDNgL8AiAEIAgoAvwCNgKAAyADQX9HBEAgBCAEKAJEKAIMIANqNgJcCyAEKAJsIAgoAoADQSBxciEFIAgoAoQDIQMgBEHsAGoMAQsgBCAEKAJsIAVBIHFyIgU2AmwgCCgC3AENASAEQewAagsgBSADQYAEcXI2AgALIAgoApgBIgMEQCADEMwBIAhBADYCmAELAkACQAJAIA4gBCAIQRhqEEIiA0UEQCAIKAKgAUEASgRAAkAgBCgCDCIDIAQoAhAiBUkNACAFRQ0AIAVBAXQiCUEATARAQXUhAwwHC0F7IQMgBCgCACAFQShsEM0BIgdFDQYgBCAHNgIAIAQoAgQgBUEDdBDNASIFRQ0GIAQgCTYCECAEIAU2AgQgBCgCDCEDCyAEIANBAWo2AgwgBCAEKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgBCgCBCAEKAIIIAQoAgBrQRRtQQJ0akHPADYCACAEKAIIQQA2AgQgBCgCCEEANgIIIAQoAghBADYCDAsCQCAEKAIMIgMgBCgCECIFSQ0AIAVFDQAgBUEBdCIJQQBMBEBBdSEDDAYLQXshAyAEKAIAIAVBKGwQzQEiB0UNBSAEIAc2AgAgBCgCBCAFQQN0EM0BIgVFDQUgBCAJNgIQIAQgBTYCBCAEKAIMIQMLIAQgA0EBajYCDCAEIAQoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACAEKAIEIAQoAgggBCgCAGtBFG1BAnRqQQE2AgAgCCgCSEEASgRAAn9BACEFIAhBCGoiDCgCACILQQBKBEAgDCgCCCEDA0ACQCADIAVBA3RqIgcoAgQiCSgCBCIGQYACcUUEQCAGQYABcUUNAUF1DAQLIAQoAgAgBygCAGogCSgCGDYCACAMKAIAIQsLIAVBAWoiBSALSA0ACwtBAAshAyAIKAIQIgUEQCAFEMwBCyADDQULAn9BACEHAkAgBCgCDCIDIAQoAhBGDQBBdSADQQBMDQEaQXshByAEKAIAIANBFGwQzQEiBUUNACAEIAU2AgAgBCgCBCADQQJ0EM0BIgVFDQAgBCADNgIQIAQgBTYCBEEAIQcgBCAEKAIMIgUEfyAEKAIAIAVBFGxqQRRrBUEACzYCCAsgBwsiAw0EIAQoAiBBAEoEQEEAIQMDQCAEKAJAIANBDGxqIgUgBCgCACAFKAIIQRRsajYCCCADQQFqIgMgBCgCIEgNAAsLAkAgBCgCNA0AIAQoAoQDIgMEQCADKAIMDQEgCCgCSEEASg0BDAMLIAgoAkhBAEwNAgsgBEECNgI4DAILIAgoAkhBAEwNAiAIKAIQIgVFDQIgBRDMAQwCCyAEKAIwBEAgBEEBNgI4DAELIARBADYCOAsCf0EAIQdBACEGAkAgBCgCACIMRQ0AIAQoAgwiCUEATA0AIAQoAgQhBQNAAkACQAJAAkAgBSAHQQJ0aigCAEEHaw4HAQMDAwECAAMLIAwgB0EUbGoiAygCCCADKAIMbCAGaiEGDAILIAwgB0EUbGooAghBAXQgBmohBgwBCyAMIAdBFGxqKAIIQQNsIAZqIQYLIAdBAWoiByAJRw0ACyAGQQBKBEBBeyAGEMsBIgNFDQIaQQAhByADIQUDQCAEKAIAIQkCQCAFAn8CQAJAAkACQAJAIAQoAgQgB0ECdGooAgBBB2sOBwAGBgYBAgMGCyAJIAdBFGxqKAIIIQwMAwsgCSAHQRRsaigCCEEBdCEMDAILIAkgB0EUbGooAghBA2whDAwBCyAJIAdBFGxqIgkoAgggCSgCDGwhDCAJQQRqDAELIAkgB0EUbGpBBGoLIgkoAgAgDBCmASEFIAkoAgAQzAEgCSAFNgIAIAUgDGohBQsgB0EBaiIHIAQoAgxIDQALIAQgAzYCFCAEIAMgBmo2AhgLC0EACyIDDQFBACEDCyAOEBBBACELQQAhEgJAIAQoAgwiBUUNACAFQQNxIQYgBCgCBCEHIAQoAgAhBAJAIAVBAWtBA0kEQEEAIQUMAQsgBUF8cSEMQQAhBQNAIAQgByAFQQJ0IglqKAIAQQJ0QYAdaigCADYCACAEIAcgCUEEcmooAgBBAnRBgB1qKAIANgIUIAQgByAJQQhyaigCAEECdEGAHWooAgA2AiggBCAHIAlBDHJqKAIAQQJ0QYAdaigCADYCPCAFQQRqIQUgBEHQAGohBCALQQRqIgsgDEcNAAsLIAZFDQADQCAEIAcgBUECdGooAgBBAnRBgB1qKAIANgIAIAVBAWohBSAEQRRqIQQgEkEBaiISIAZHDQALCwwBCyAIKAI8IgQEQEGczBIgBDYCAEGgzBIgCCgCQDYCAAsgDhAQIAgoApgBIgRFDQAgBBDMAQsgCEGQBWokACADRQ0BIBcoAgAiCARAIAgQPyAIEMwBCyADIRALIBdBADYCAAsgEAsiAzYCACADRQRAQSQQywEiFCATNgIEIBQgExDLASIDNgIAIAMgFSATEKYBGiAUIBooAgw2AghBFBDLASIQBEAgEEIANwIAIBBBADYCECAQQgA3AggLIBQgEDYCDEEBIQVBACEDAkAgE0EATARAQQAhBQwBCwNAIAMiEEEBaiEDAkAgECAVai0AAEHcAEcNACADIBNODQAgAyAVai0AAEHHAEYNAgsgAyATSCEFIAMgE0cNAAsLIBRCADcCFCAUIAU6ABAgFEIANwAZCyAaQRBqJAAgFCIDNgIAIAogGWogAygCCDYCACANQQFqIg0gAkcNAAsLIAIhASAZIQAgGEEMaiIVQQA2AgACQAJAQSQQywEiCgR/QQogASABQQpMGyIFQQN0EMsBIgRFDQEgCiAFNgIIQQAhBSAKQQA2AgQgCiAENgIAIAFBAEoEQANAAn9BYiEDAkAgACAFQQJ0aigCACINLQBIQRBxDQAgCigCBCIGBEAgDSgCRCAKKAIMRw0BCyAKKAIIIgMgBkwEQEF7IAooAgAgA0EEdBDNASIGRQ0CGiAKIAY2AgAgCiADQQF0NgIIC0F7QRQQywEiA0UNARogA0IANwIAIANBADYCECADQgA3AgggCigCACAKKAIEIgZBA3RqIhAgAzYCBCAQIA02AgAgCiAGQQFqNgIEAkAgBkUEQCAKIA0oAkQ2AgwgCiANKAJgIgM2AhAgCiANKAJkNgIUIAogDSgCaDYCGCAKIA0oAlgEfyANKAKAA0F/RwVBAAs2AhwgA0EOdkEBcSENDAELIA0oAmAiBiAKKAIQcSIDBEAgDSgCZCEQIAogCigCGCIHIA0oAmgiBCAEIAdJGzYCGCAKIAooAhQiByAQIAcgEEkbNgIUCyAKIAM2AhACQCANKAJYBEAgDSgCgANBf0cNAQsgCkEANgIcC0EBIQ1BACEDIAZBgIABcUUNAQsgCiANNgIgQQAhAwsgAwsEQCAKKAIEIgBBAEoEQEEAIQEDQCAKKAIAIAFBA3RqKAIEIgUEQCAFKAIAQQBKBEAgBSgCCCIABEAgABDMAQsgBSgCDCIABEAgABDMAQsgBUEANgIACyAFKAIQIgAEQCAAEGYLIAUQzAEgCigCBCEACyABQQFqIgEgAEgNAAsLIAooAgAQzAEMBAsgBUEBaiIFIAFIDQALCyAVIAo2AgBBAAVBewsaDAELIAoQzAELIBkQzAFBDBDLASEKIBgoAgwhDSAKIAI2AgggCiAbNgIEIAogDTYCACAYQRBqJAAgCgu/AgEEfyAAKAIIQQBKBEADQCAAKAIEIANBAnRqKAIAIgQoAgAQzAEgBCgCDCIBBEAgASgCAEEASgRAIAEoAggiAgRAIAIQzAELIAEoAgwiAgRAIAIQzAELIAFBADYCAAsgASgCECICBEAgAhBmIAFBADYCEAsgARDMAQsgBBDMASADQQFqIgMgACgCCEgNAAsLIAAoAgQQzAFBACEEIAAoAgAiAygCBEEASgRAA0AgAygCACAEQQN0aiIBKAIEIQIgASgCACIBBEAgARA/IAEQzAELIAIEQCACKAIAQQBKBEAgAigCCCIBBEAgARDMAQsgAigCDCIBBEAgARDMAQsgAkEANgIACyACKAIQIgEEQCABEGYLIAIQzAELIARBAWoiBCADKAIESA0ACwsgAygCABDMASADEMwBIAAQzAFBAAvKHQETfyMAQRBrIhUkACAVQQA2AgwgBUEWdEGAgIAOcSEQAkACQCADQegHTgRAIAAoAghBAEwNAkEAIQUDQAJAIAAoAgQgBUECdGooAgAgASACIAMgBCAQEMMBIgZFDQAgBigCBEEATA0AIAUgESAMRSAGKAIIKAIAIhQgE0hyIggbIREgBiAMIAgbIQwgBCAURg0DIBQgEyAIGyETCyAFQQFqIgUgACgCCEgNAAsgDA0BQQAhEwwCCwJ/IAIgA2ohBUEAIQNBeyAAKAIAIgsoAgQiAUEobBDLASIRRQ0AGiACIARqIQogFUEMaiEWIBEgAUECdGohFAJAIAFBAEwNACABQQFxIQdBhMASKAIAIQRBgMASKAIAIQZB+L8SKAIAIQxBkJoRKAIAIQhB9L8SKAIAIQkgAUEBRwRAIAFBfnEhDQNAIBQgA0EkbGoiAUEANgIgIAFCADcCGCABIAQ2AhQgASAGNgIQIAFBADYCDCABIAw2AgggASAINgIEIAEgCTYCACARIANBAnRqIAE2AgAgFCADQQFyIg5BJGxqIgFBADYCICABQgA3AhggASAENgIUIAEgBjYCECABQQA2AgwgASAMNgIIIAEgCDYCBCABIAk2AgAgESAOQQJ0aiABNgIAIANBAmohAyAPQQJqIg8gDUcNAAsLIAdFDQAgFCADQSRsaiIBQQA2AiAgAUIANwIYIAEgBDYCFCABIAY2AhAgAUEANgIMIAEgDDYCCCABIAg2AgQgASAJNgIAIBEgA0ECdGogATYCAAsCfyACIQMgCiEBIAUhDCARIQlBACEOQX8gCygCBCIGRQ0AGkFiIQoCQCAQQYCQgBBxDQAgCygCDCESIAZBAEoEQANAIAsoAgAgDkEDdGoiBigCBCEHIAYoAgAiCigChAMhBiAJIA5BAnRqKAIAIghBADYCGAJAIAZFDQAgBigCDCINRQ0AAkAgCCgCICIPIA1OBEAgCCgCHCENDAELIA1BBnQhDUF7An8gCCgCHCIPBEAgDyANEM0BDAELIA0QywELIg1FDQUaIAggDTYCHCAIIAYoAgwiDzYCIAsgDUEAIA9BBnQQqAEaCwJAIAdFDQAgByAKKAIcQQFqEGciCg0DIAcoAgRBAEoEQCAHKAIIIQogBygCDCENQQAhBgNAIA0gBkECdCIIakF/NgIAIAggCmpBfzYCACAGQQFqIgYgBygCBEgNAAsLIAcoAhAiBkUNACAGEGYgB0EANgIQCyAOQQFqIg4gCygCBEgNAAsLQX8gASAFSw0BGkF/IAEgA0kNARogAyAFTyIGRQRAQWIhCiABIAxLDQELAkAgEEGAIHFFDQAgAyAFIBIoAkgRAAANAEHwfAwCCwJAAkACQAJAAkACQAJAAkACQCAGDQAgCygCECIGRQ0AIAZBwABxDQQgBkEQcQRAQX8hCiABIANHDQogAUEBaiEEIAEhAgwGCyAFIQggBkGAAXENAyAGQYACcUUNASASIAMgBUEBEHkiBiAFIAYgBSASKAIQEQAAIgcbIQggAyAGSSABIAZNcQ0DIAwhBCABIQIgB0UNAwwFCyAMIQQgASECIAMgBUcNBEF7IAsoAgQiDkE4bBDLASIPRQ0JGiAOQQBMBEBBfyEKDAYLIAsoAgAhAUEAIQgDQCABIAhBA3RqIgcoAgAhCiAPIAhBOGxqIgZBADYCACAGIAooAkggEHI2AgggBygCBCEHIAYgBTYCFCAGIAc2AgwgBiAJIAhBAnRqKAIAIgcoAgA2AhggBiAHKAIENgIcIAcoAgghDSAGQQA2AjQgBkEANgIkIAYgDTYCICAGQX82AiwgBiAHNgIoIAYgCigCHEEBdEECajYCECAIQQFqIgggDkcNAAsMAQsgDCEEIAEhAiAGQYCAAnENAgwDC0EAIQogDkEATARAQX8hCgwECwJAA0AgCygCACAKQQN0aigCACIGKAJcRQRAIAYgBSAFIAUgBSAPIApBOGxqEGgiBkF/Rw0CIAsoAgQhDgsgCkEBaiIKIA5IDQALQX8hCgwECyAGQQBIBEAgBiEKDAQLIBZBADYCAAwEC0F/IAsoAhQiBiAFIANrSw0GGgJAIAsoAhgiByAIIAFrTwRAIAEhAgwBCyAIIAdrIgIgBU8NACASIAMgAhB3IQIgCygCFCEGC0F/IQogAiAFIAZrQQFqIAwgBSAMa0EBaiAGSRsiBE0NAQwFCyABQQFqIQQgASECC0F7IAsoAgQiDkE4bBDLASIPRQ0EGiAOQQBKBEAgCygCACESQQAhCANAIA8gCEE4bGoiBkEANgIAIAYgEiAIQQN0aiIHKAIAIgooAkggEHI2AgggBygCBCEHIAYgATYCFCAGIAc2AgwgBiAJIAhBAnRqKAIAIgcoAgA2AhggBiAHKAIENgIcIAcoAgghDSAGQQA2AjQgBkEANgIkIAYgDTYCICAGQX82AiwgBiAHNgIoIAYgCigCHEEBdEECajYCECAIQQFqIgggDkcNAAsLIAMhECAFIQFBACEFIwBBEGsiBiQAIAsoAgwhFwJAIAsoAgQiCEEEdBDLASIHRQRAQXshAwwBCyAIQQBKBEAgASAEayENA0AgCygCACAFQQN0aigCACEJIAcgBUEEdGoiA0EANgIAAkAgCSgCWARAIAkoAoADIgpBf0cEQCAJIBAgASACIAQgCmogASAKIA1JGyIKIAZBDGogBkEIahBrRQ0CIANBATYCACADIAYoAgw2AgQgBigCCCEJIAMgCjYCDCADIAk2AggMAgsgCSAQIAEgAiABIAZBDGogBkEIahBrRQ0BCyADQQI2AgAgAyAENgIIIAMgAjYCBAsgBUEBaiIFIAhHDQALCwJAAkACQAJAIAQgAmtB9QNIDQAgCygCHEUNACAIQQBMIg4NAiAIQX5xIQ0gCEEBcSESIAhBAEohGANAQQAhCUEAIQUDQAJAIAcgBUEEdGoiAygCAEUNACACIAMoAgRJDQACQCADKAIIIAJNBEAgCygCACAFQQN0aigCACAQIAEgAiADKAIMIAZBDGogBkEIahBrRQ0BIAMgBigCDCIKNgIEIAMgBigCCDYCCCACIApJDQILIAsoAgAgBUEDdGooAgAgECABIAwgAiAPIAVBOGxqEGgiA0F/RwRAIANBAEgNBgwICyAJQQFqIQkMAQsgA0EANgIACyAFQQFqIgUgCEcNAAsgAiAETw0DAkAgCUUEQCAODQVBACEFIAQhAkEAIQMgCEEBRwRAA0AgByAFQQR0aiIJKAIAQQFGBEAgCSgCBCIJIAIgAiAJSxshAgsgByAFQQFyQQR0aiIJKAIAQQFGBEAgCSgCBCIJIAIgAiAJSxshAgsgBUECaiEFIANBAmoiAyANRw0ACwsCQCASRQ0AIAcgBUEEdGoiBSgCAEEBRw0AIAUoAgQiBSACIAIgBUsbIQILIAYgAjYCDCACIARHDQEMBQsgAiAXKAIAEQEAIAJqIQILIBgNAAsMAgsgCEEATCENQQEhCQNAIA1FBEBBACEFA0ACQAJAAkACQCAHIAVBBHRqIgMoAgAOAgMAAQsgAiADKAIESQ0CIAIgAygCCEkNACALKAIAIAVBA3RqKAIAIBAgASACIAMoAgwgBkEMaiAGQQhqEGtFDQEgAyAGKAIMIgo2AgQgAyAGKAIINgIIIAIgCkkNAgtBACALKAIAIAVBA3RqKAIAIgMtAGFBwABxIAkbDQEgAyAQIAEgDCACIA8gBUE4bGoQaCIDQX9GDQEgA0EATg0HDAULIANBADYCAAsgBUEBaiIFIAhHDQALCyACIARPDQIgCygCIARAIAIgASALKAIMKAIQEQAAIQkLIAIgFygCABEBACACaiECDAALAAsgBxDMAQwCCyAHEMwBQX8hAwwBCyAHEMwBIBYgAiAQazYCACAFIQMLIAZBEGokACADIgpBAE4NAQsgCygCBEEASgRAQQAhCQNAAkAgD0UNACAPIAlBOGxqKAIAIgZFDQAgBhDMAQsCQCALKAIAIAlBA3RqIgYoAgAtAEhBIHFFDQAgBigCBCIHRQ0AIAcoAgRBAEoEQCAHKAIIIQ0gBygCDCEOQQAhBgNAIA4gBkECdCIIakF/NgIAIAggDWpBfzYCACAGQQFqIgYgBygCBEgNAAsLIAcoAhAiBkUNACAGEGYgB0EANgIQCyAJQQFqIgkgCygCBEgNAAsLIA8NAQwCCyALKAIEQQBKBEBBACEJA0ACQCAPRQ0AIA8gCUE4bGooAgAiBkUNACAGEMwBCwJAIAsoAgAgCUEDdGoiBigCAC0ASEEgcUUNACAGKAIEIgdFDQAgBygCBEEASgRAIAcoAgghDSAHKAIMIQ5BACEGA0AgDiAGQQJ0IghqQX82AgAgCCANakF/NgIAIAZBAWoiBiAHKAIESA0ACwsgBygCECIGRQ0AIAYQZiAHQQA2AhALIAlBAWoiCSALKAIESA0ACwsgD0UNAQsgDxDMAQsgCgshDCALKAIEIgNBAEoEQEEAIQEDQCAUIAFBJGxqIgQoAhwiBgRAIAYQzAEgBEEANgIcIAsoAgQhAwsgAUEBaiIBIANIDQALCyAREMwBIAwLIgZBAEgNASAAKAIAIQBBACEBAkAgBkEASA0AIAAoAgQgBkwNACAAKAIAIAZBA3RqKAIEIQELIAEiDEUNASAMKAIEIgBB6AdKDQFBACEFQZTNEiAANgIAQZDNEiAGNgIAQZDNEiETIAwoAgRBAEwNASAMKAIMIQQgDCgCCCEDA0AgBUEDdCIGQZjNEmogAyAFQQJ0IgBqKAIANgIAIAZBnM0SaiAAIARqKAIANgIAIAVBAWoiBSAMKAIESA0ACwwBC0EAIRMgDCgCBCIGQegHSg0AQQAhBUGUzRIgBjYCAEGQzRIgETYCAEGQzRIhEyAMKAIEQQBMDQAgDCgCDCEEIAwoAgghAwNAIAVBA3QiBkGYzRJqIAMgBUECdCIAaigCADYCACAGQZzNEmogACAEaigCADYCACAFQQFqIgUgDCgCBEgNAAsLIBVBEGokACATC8MDAgh/AXwjAEFAaiIGJAAgBiACNgI0IAYgAzYCMEGQlhEgBkEwahDIAQJAIAAoAghBAEwEQBDKAQwBCyAFQRZ0QYCAgA5xIQ1BACEFAkACQANAIAYgBUECdCIHIAAoAgRqKAIAKQIAQiCJNwMgQc6WESAGQSBqEMgBEAEhDiAAKAIEIAdqKAIAIAEgAiADIAQgDRDDASEHEAEgDqEhDgJAAkAgB0UNACAHKAIEQQBMDQAgBiAHKAIIKAIAIgo2AhggBiAOOQMQQYqXESAGQRBqEMkBIAUgCyAIRSAJIApKciIMGyELIAcgCCAMGyEIIAQgCkYNAyAKIAkgDBshCQwBCyAGIA45AwBB8JURIAYQyQELIAVBAWoiBSAAKAIISA0ACxDKASAIDQFBACEJDAILEMoBC0EAIQkgCCgCBCIHQegHSg0AQQAhBUGUzRIgBzYCAEGQzRIgCzYCAEGQzRIhCSAIKAIEQQBMDQAgCCgCDCEKIAgoAgghBANAIAVBA3QiB0GYzRJqIAQgBUECdCIAaigCADYCACAHQZzNEmogACAKaigCADYCACAFQQFqIgUgCCgCBEgNAAsLIAZBQGskACAJCysBAX8jAEEQayICJAAgAiABNgIMQci+EiAAIAFBAEEAELMBGiACQRBqJAALKwEBfyMAQRBrIgIkACACIAE2AgxByL4SIAAgAUEOQQAQswEaIAJBEGokAAueAgECf0GUvxIoAgAaAkBBf0EAAn9B6JYREK0BIgACf0GUvxIoAgBBAEgEQEHolhEgAEHIvhIQsgEMAQtB6JYRIABByL4SELIBCyIBIABGDQAaIAELIABHG0EASA0AAkBBmL8SKAIAQQpGDQBB3L4SKAIAIgBB2L4SKAIARg0AQdy+EiAAQQFqNgIAIABBCjoAAAwBCyMAQRBrIgAkACAAQQo6AA8CQAJAQdi+EigCACIBBH8gAQVByL4SEK4BDQJB2L4SKAIAC0HcvhIoAgAiAUYNAEGYvxIoAgBBCkYNAEHcvhIgAUEBajYCACABQQo6AAAMAQtByL4SIABBD2pBAUHsvhIoAgARAgBBAUcNACAALQAPGgsgAEEQaiQACwugLgELfyMAQRBrIgskAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH0AU0EQEHYixMoAgAiBkEQIABBC2pBeHEgAEELSRsiBEEDdiIBdiIAQQNxBEACQCAAQX9zQQFxIAFqIgJBA3QiAUGAjBNqIgAgAUGIjBNqKAIAIgEoAggiBEYEQEHYixMgBkF+IAJ3cTYCAAwBCyAEIAA2AgwgACAENgIICyABQQhqIQAgASACQQN0IgJBA3I2AgQgASACaiIBIAEoAgRBAXI2AgQMDAsgBEHgixMoAgAiCE0NASAABEACQCAAIAF0QQIgAXQiAEEAIABrcnEiAEEBayAAQX9zcSIAIABBDHZBEHEiAHYiAUEFdkEIcSICIAByIAEgAnYiAEECdkEEcSIBciAAIAF2IgBBAXZBAnEiAXIgACABdiIAQQF2QQFxIgFyIAAgAXZqIgFBA3QiAEGAjBNqIgIgAEGIjBNqKAIAIgAoAggiA0YEQEHYixMgBkF+IAF3cSIGNgIADAELIAMgAjYCDCACIAM2AggLIAAgBEEDcjYCBCAAIARqIgMgAUEDdCIBIARrIgJBAXI2AgQgACABaiACNgIAIAgEQCAIQXhxQYCME2ohBEHsixMoAgAhAQJ/IAZBASAIQQN2dCIFcUUEQEHYixMgBSAGcjYCACAEDAELIAQoAggLIQUgBCABNgIIIAUgATYCDCABIAQ2AgwgASAFNgIICyAAQQhqIQBB7IsTIAM2AgBB4IsTIAI2AgAMDAtB3IsTKAIAIglFDQEgCUEBayAJQX9zcSIAIABBDHZBEHEiAHYiAUEFdkEIcSICIAByIAEgAnYiAEECdkEEcSIBciAAIAF2IgBBAXZBAnEiAXIgACABdiIAQQF2QQFxIgFyIAAgAXZqQQJ0QYiOE2ooAgAiAygCBEF4cSAEayEBIAMhAgNAAkAgAigCECIARQRAIAIoAhQiAEUNAQsgACgCBEF4cSAEayICIAEgASACSyICGyEBIAAgAyACGyEDIAAhAgwBCwsgAygCGCEKIAMgAygCDCIFRwRAIAMoAggiAEHoixMoAgBJGiAAIAU2AgwgBSAANgIIDAsLIANBFGoiAigCACIARQRAIAMoAhAiAEUNAyADQRBqIQILA0AgAiEHIAAiBUEUaiICKAIAIgANACAFQRBqIQIgBSgCECIADQALIAdBADYCAAwKC0F/IQQgAEG/f0sNACAAQQtqIgBBeHEhBEHcixMoAgAiCEUNAAJ/QQAgBEGAAkkNABpBHyAEQf///wdLDQAaIABBCHYiACAAQYD+P2pBEHZBCHEiAHQiASABQYDgH2pBEHZBBHEiAXQiAiACQYCAD2pBEHZBAnEiAnRBD3YgACABciACcmsiAEEBdCAEIABBFWp2QQFxckEcagshB0EAIARrIQECQAJAAkAgB0ECdEGIjhNqKAIAIgJFBEBBACEADAELQQAhACAEQRkgB0EBdmtBACAHQR9HG3QhAwNAAkAgAigCBEF4cSAEayIGIAFPDQAgAiEFIAYiAQ0AQQAhASACIQAMAwsgACACKAIUIgYgBiACIANBHXZBBHFqKAIQIgJGGyAAIAYbIQAgA0EBdCEDIAINAAsLIAAgBXJFBEBBACEFQQIgB3QiAEEAIABrciAIcSIARQ0DIABBAWsgAEF/c3EiACAAQQx2QRBxIgB2IgJBBXZBCHEiAyAAciACIAN2IgBBAnZBBHEiAnIgACACdiIAQQF2QQJxIgJyIAAgAnYiAEEBdkEBcSICciAAIAJ2akECdEGIjhNqKAIAIQALIABFDQELA0AgACgCBEF4cSAEayIGIAFJIQMgBiABIAMbIQEgACAFIAMbIQUgACgCECICBH8gAgUgACgCFAsiAA0ACwsgBUUNACABQeCLEygCACAEa08NACAFKAIYIQcgBSAFKAIMIgNHBEAgBSgCCCIAQeiLEygCAEkaIAAgAzYCDCADIAA2AggMCQsgBUEUaiICKAIAIgBFBEAgBSgCECIARQ0DIAVBEGohAgsDQCACIQYgACIDQRRqIgIoAgAiAA0AIANBEGohAiADKAIQIgANAAsgBkEANgIADAgLIARB4IsTKAIAIgBNBEBB7IsTKAIAIQECQCAAIARrIgJBEE8EQEHgixMgAjYCAEHsixMgASAEaiIDNgIAIAMgAkEBcjYCBCAAIAFqIAI2AgAgASAEQQNyNgIEDAELQeyLE0EANgIAQeCLE0EANgIAIAEgAEEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAsgAUEIaiEADAoLIARB5IsTKAIAIgNJBEBB5IsTIAMgBGsiATYCAEHwixNB8IsTKAIAIgAgBGoiAjYCACACIAFBAXI2AgQgACAEQQNyNgIEIABBCGohAAwKC0EAIQAgBEEvaiIIAn9BsI8TKAIABEBBuI8TKAIADAELQbyPE0J/NwIAQbSPE0KAoICAgIAENwIAQbCPEyALQQxqQXBxQdiq1aoFczYCAEHEjxNBADYCAEGUjxNBADYCAEGAIAsiAWoiBkEAIAFrIgdxIgUgBE0NCUGQjxMoAgAiAQRAQYiPEygCACICIAVqIgkgAk0NCiABIAlJDQoLQZSPEy0AAEEEcQ0EAkACQEHwixMoAgAiAQRAQZiPEyEAA0AgASAAKAIAIgJPBEAgAiAAKAIEaiABSw0DCyAAKAIIIgANAAsLQQAQ0AEiA0F/Rg0FIAUhBkG0jxMoAgAiAEEBayIBIANxBEAgBSADayABIANqQQAgAGtxaiEGCyAEIAZPDQUgBkH+////B0sNBUGQjxMoAgAiAARAQYiPEygCACIBIAZqIgIgAU0NBiAAIAJJDQYLIAYQ0AEiACADRw0BDAcLIAYgA2sgB3EiBkH+////B0sNBCAGENABIgMgACgCACAAKAIEakYNAyADIQALAkAgAEF/Rg0AIARBMGogBk0NAEG4jxMoAgAiASAIIAZrakEAIAFrcSIBQf7///8HSwRAIAAhAwwHCyABENABQX9HBEAgASAGaiEGIAAhAwwHC0EAIAZrENABGgwECyAAIQMgAEF/Rw0FDAMLQQAhBQwHC0EAIQMMBQsgA0F/Rw0CC0GUjxNBlI8TKAIAQQRyNgIACyAFQf7///8HSw0BIAUQ0AEhA0EAENABIQAgA0F/Rg0BIABBf0YNASAAIANNDQEgACADayIGIARBKGpNDQELQYiPE0GIjxMoAgAgBmoiADYCAEGMjxMoAgAgAEkEQEGMjxMgADYCAAsCQAJAAkBB8IsTKAIAIgEEQEGYjxMhAANAIAMgACgCACICIAAoAgQiBWpGDQIgACgCCCIADQALDAILQeiLEygCACIAQQAgACADTRtFBEBB6IsTIAM2AgALQQAhAEGcjxMgBjYCAEGYjxMgAzYCAEH4ixNBfzYCAEH8ixNBsI8TKAIANgIAQaSPE0EANgIAA0AgAEEDdCIBQYiME2ogAUGAjBNqIgI2AgAgAUGMjBNqIAI2AgAgAEEBaiIAQSBHDQALQeSLEyAGQShrIgBBeCADa0EHcUEAIANBCGpBB3EbIgFrIgI2AgBB8IsTIAEgA2oiATYCACABIAJBAXI2AgQgACADakEoNgIEQfSLE0HAjxMoAgA2AgAMAgsgAC0ADEEIcQ0AIAEgAkkNACABIANPDQAgACAFIAZqNgIEQfCLEyABQXggAWtBB3FBACABQQhqQQdxGyIAaiICNgIAQeSLE0HkixMoAgAgBmoiAyAAayIANgIAIAIgAEEBcjYCBCABIANqQSg2AgRB9IsTQcCPEygCADYCAAwBC0HoixMoAgAgA0sEQEHoixMgAzYCAAsgAyAGaiECQZiPEyEAAkACQAJAAkACQAJAA0AgAiAAKAIARwRAIAAoAggiAA0BDAILCyAALQAMQQhxRQ0BC0GYjxMhAANAIAEgACgCACICTwRAIAIgACgCBGoiAiABSw0DCyAAKAIIIQAMAAsACyAAIAM2AgAgACAAKAIEIAZqNgIEIANBeCADa0EHcUEAIANBCGpBB3EbaiIHIARBA3I2AgQgAkF4IAJrQQdxQQAgAkEIakEHcRtqIgYgBCAHaiIEayEAIAEgBkYEQEHwixMgBDYCAEHkixNB5IsTKAIAIABqIgA2AgAgBCAAQQFyNgIEDAMLQeyLEygCACAGRgRAQeyLEyAENgIAQeCLE0HgixMoAgAgAGoiADYCACAEIABBAXI2AgQgACAEaiAANgIADAMLIAYoAgQiAUEDcUEBRgRAIAFBeHEhCAJAIAFB/wFNBEAgBigCCCICIAFBA3YiBUEDdEGAjBNqRhogAiAGKAIMIgFGBEBB2IsTQdiLEygCAEF+IAV3cTYCAAwCCyACIAE2AgwgASACNgIIDAELIAYoAhghCQJAIAYgBigCDCIDRwRAIAYoAggiASADNgIMIAMgATYCCAwBCwJAIAZBFGoiASgCACICDQAgBkEQaiIBKAIAIgINAEEAIQMMAQsDQCABIQUgAiIDQRRqIgEoAgAiAg0AIANBEGohASADKAIQIgINAAsgBUEANgIACyAJRQ0AAkAgBigCHCICQQJ0QYiOE2oiASgCACAGRgRAIAEgAzYCACADDQFB3IsTQdyLEygCAEF+IAJ3cTYCAAwCCyAJQRBBFCAJKAIQIAZGG2ogAzYCACADRQ0BCyADIAk2AhggBigCECIBBEAgAyABNgIQIAEgAzYCGAsgBigCFCIBRQ0AIAMgATYCFCABIAM2AhgLIAYgCGoiBigCBCEBIAAgCGohAAsgBiABQX5xNgIEIAQgAEEBcjYCBCAAIARqIAA2AgAgAEH/AU0EQCAAQXhxQYCME2ohAQJ/QdiLEygCACICQQEgAEEDdnQiAHFFBEBB2IsTIAAgAnI2AgAgAQwBCyABKAIICyEAIAEgBDYCCCAAIAQ2AgwgBCABNgIMIAQgADYCCAwDC0EfIQEgAEH///8HTQRAIABBCHYiASABQYD+P2pBEHZBCHEiAXQiAiACQYDgH2pBEHZBBHEiAnQiAyADQYCAD2pBEHZBAnEiA3RBD3YgASACciADcmsiAUEBdCAAIAFBFWp2QQFxckEcaiEBCyAEIAE2AhwgBEIANwIQIAFBAnRBiI4TaiECAkBB3IsTKAIAIgNBASABdCIFcUUEQEHcixMgAyAFcjYCACACIAQ2AgAgBCACNgIYDAELIABBGSABQQF2a0EAIAFBH0cbdCEBIAIoAgAhAwNAIAMiAigCBEF4cSAARg0DIAFBHXYhAyABQQF0IQEgAiADQQRxakEQaiIFKAIAIgMNAAsgBSAENgIAIAQgAjYCGAsgBCAENgIMIAQgBDYCCAwCC0HkixMgBkEoayIAQXggA2tBB3FBACADQQhqQQdxGyIFayIHNgIAQfCLEyADIAVqIgU2AgAgBSAHQQFyNgIEIAAgA2pBKDYCBEH0ixNBwI8TKAIANgIAIAEgAkEnIAJrQQdxQQAgAkEna0EHcRtqQS9rIgAgACABQRBqSRsiBUEbNgIEIAVBoI8TKQIANwIQIAVBmI8TKQIANwIIQaCPEyAFQQhqNgIAQZyPEyAGNgIAQZiPEyADNgIAQaSPE0EANgIAIAVBGGohAANAIABBBzYCBCAAQQhqIQMgAEEEaiEAIAIgA0sNAAsgASAFRg0DIAUgBSgCBEF+cTYCBCABIAUgAWsiA0EBcjYCBCAFIAM2AgAgA0H/AU0EQCADQXhxQYCME2ohAAJ/QdiLEygCACICQQEgA0EDdnQiA3FFBEBB2IsTIAIgA3I2AgAgAAwBCyAAKAIICyECIAAgATYCCCACIAE2AgwgASAANgIMIAEgAjYCCAwEC0EfIQAgA0H///8HTQRAIANBCHYiACAAQYD+P2pBEHZBCHEiAHQiAiACQYDgH2pBEHZBBHEiAnQiBSAFQYCAD2pBEHZBAnEiBXRBD3YgACACciAFcmsiAEEBdCADIABBFWp2QQFxckEcaiEACyABIAA2AhwgAUIANwIQIABBAnRBiI4TaiECAkBB3IsTKAIAIgVBASAAdCIGcUUEQEHcixMgBSAGcjYCACACIAE2AgAgASACNgIYDAELIANBGSAAQQF2a0EAIABBH0cbdCEAIAIoAgAhBQNAIAUiAigCBEF4cSADRg0EIABBHXYhBSAAQQF0IQAgAiAFQQRxakEQaiIGKAIAIgUNAAsgBiABNgIAIAEgAjYCGAsgASABNgIMIAEgATYCCAwDCyACKAIIIgAgBDYCDCACIAQ2AgggBEEANgIYIAQgAjYCDCAEIAA2AggLIAdBCGohAAwFCyACKAIIIgAgATYCDCACIAE2AgggAUEANgIYIAEgAjYCDCABIAA2AggLQeSLEygCACIAIARNDQBB5IsTIAAgBGsiATYCAEHwixNB8IsTKAIAIgAgBGoiAjYCACACIAFBAXI2AgQgACAEQQNyNgIEIABBCGohAAwDC0HoyhJBMDYCAEEAIQAMAgsCQCAHRQ0AAkAgBSgCHCICQQJ0QYiOE2oiACgCACAFRgRAIAAgAzYCACADDQFB3IsTIAhBfiACd3EiCDYCAAwCCyAHQRBBFCAHKAIQIAVGG2ogAzYCACADRQ0BCyADIAc2AhggBSgCECIABEAgAyAANgIQIAAgAzYCGAsgBSgCFCIARQ0AIAMgADYCFCAAIAM2AhgLAkAgAUEPTQRAIAUgASAEaiIAQQNyNgIEIAAgBWoiACAAKAIEQQFyNgIEDAELIAUgBEEDcjYCBCAEIAVqIgMgAUEBcjYCBCABIANqIAE2AgAgAUH/AU0EQCABQXhxQYCME2ohAAJ/QdiLEygCACICQQEgAUEDdnQiAXFFBEBB2IsTIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgAzYCCCABIAM2AgwgAyAANgIMIAMgATYCCAwBC0EfIQAgAUH///8HTQRAIAFBCHYiACAAQYD+P2pBEHZBCHEiAHQiAiACQYDgH2pBEHZBBHEiAnQiBCAEQYCAD2pBEHZBAnEiBHRBD3YgACACciAEcmsiAEEBdCABIABBFWp2QQFxckEcaiEACyADIAA2AhwgA0IANwIQIABBAnRBiI4TaiECAkACQCAIQQEgAHQiBHFFBEBB3IsTIAQgCHI2AgAgAiADNgIAIAMgAjYCGAwBCyABQRkgAEEBdmtBACAAQR9HG3QhACACKAIAIQQDQCAEIgIoAgRBeHEgAUYNAiAAQR12IQQgAEEBdCEAIAIgBEEEcWpBEGoiBigCACIEDQALIAYgAzYCACADIAI2AhgLIAMgAzYCDCADIAM2AggMAQsgAigCCCIAIAM2AgwgAiADNgIIIANBADYCGCADIAI2AgwgAyAANgIICyAFQQhqIQAMAQsCQCAKRQ0AAkAgAygCHCICQQJ0QYiOE2oiACgCACADRgRAIAAgBTYCACAFDQFB3IsTIAlBfiACd3E2AgAMAgsgCkEQQRQgCigCECADRhtqIAU2AgAgBUUNAQsgBSAKNgIYIAMoAhAiAARAIAUgADYCECAAIAU2AhgLIAMoAhQiAEUNACAFIAA2AhQgACAFNgIYCwJAIAFBD00EQCADIAEgBGoiAEEDcjYCBCAAIANqIgAgACgCBEEBcjYCBAwBCyADIARBA3I2AgQgAyAEaiICIAFBAXI2AgQgASACaiABNgIAIAgEQCAIQXhxQYCME2ohBEHsixMoAgAhAAJ/QQEgCEEDdnQiBSAGcUUEQEHYixMgBSAGcjYCACAEDAELIAQoAggLIQUgBCAANgIIIAUgADYCDCAAIAQ2AgwgACAFNgIIC0HsixMgAjYCAEHgixMgATYCAAsgA0EIaiEACyALQRBqJAAgAAvKDAEHfwJAIABFDQAgAEEIayICIABBBGsoAgAiAUF4cSIAaiEFAkAgAUEBcQ0AIAFBA3FFDQEgAiACKAIAIgFrIgJB6IsTKAIASQ0BIAAgAWohAEHsixMoAgAgAkcEQCABQf8BTQRAIAIoAggiBCABQQN2IgdBA3RBgIwTakYaIAQgAigCDCIBRgRAQdiLE0HYixMoAgBBfiAHd3E2AgAMAwsgBCABNgIMIAEgBDYCCAwCCyACKAIYIQYCQCACIAIoAgwiA0cEQCACKAIIIgEgAzYCDCADIAE2AggMAQsCQCACQRRqIgEoAgAiBA0AIAJBEGoiASgCACIEDQBBACEDDAELA0AgASEHIAQiA0EUaiIBKAIAIgQNACADQRBqIQEgAygCECIEDQALIAdBADYCAAsgBkUNAQJAIAIoAhwiBEECdEGIjhNqIgEoAgAgAkYEQCABIAM2AgAgAw0BQdyLE0HcixMoAgBBfiAEd3E2AgAMAwsgBkEQQRQgBigCECACRhtqIAM2AgAgA0UNAgsgAyAGNgIYIAIoAhAiAQRAIAMgATYCECABIAM2AhgLIAIoAhQiAUUNASADIAE2AhQgASADNgIYDAELIAUoAgQiAUEDcUEDRw0AQeCLEyAANgIAIAUgAUF+cTYCBCACIABBAXI2AgQgACACaiAANgIADwsgAiAFTw0AIAUoAgQiAUEBcUUNAAJAIAFBAnFFBEBB8IsTKAIAIAVGBEBB8IsTIAI2AgBB5IsTQeSLEygCACAAaiIANgIAIAIgAEEBcjYCBCACQeyLEygCAEcNA0HgixNBADYCAEHsixNBADYCAA8LQeyLEygCACAFRgRAQeyLEyACNgIAQeCLE0HgixMoAgAgAGoiADYCACACIABBAXI2AgQgACACaiAANgIADwsgAUF4cSAAaiEAAkAgAUH/AU0EQCAFKAIIIgQgAUEDdiIHQQN0QYCME2pGGiAEIAUoAgwiAUYEQEHYixNB2IsTKAIAQX4gB3dxNgIADAILIAQgATYCDCABIAQ2AggMAQsgBSgCGCEGAkAgBSAFKAIMIgNHBEAgBSgCCCIBQeiLEygCAEkaIAEgAzYCDCADIAE2AggMAQsCQCAFQRRqIgEoAgAiBA0AIAVBEGoiASgCACIEDQBBACEDDAELA0AgASEHIAQiA0EUaiIBKAIAIgQNACADQRBqIQEgAygCECIEDQALIAdBADYCAAsgBkUNAAJAIAUoAhwiBEECdEGIjhNqIgEoAgAgBUYEQCABIAM2AgAgAw0BQdyLE0HcixMoAgBBfiAEd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAM2AgAgA0UNAQsgAyAGNgIYIAUoAhAiAQRAIAMgATYCECABIAM2AhgLIAUoAhQiAUUNACADIAE2AhQgASADNgIYCyACIABBAXI2AgQgACACaiAANgIAIAJB7IsTKAIARw0BQeCLEyAANgIADwsgBSABQX5xNgIEIAIgAEEBcjYCBCAAIAJqIAA2AgALIABB/wFNBEAgAEF4cUGAjBNqIQECf0HYixMoAgAiBEEBIABBA3Z0IgBxRQRAQdiLEyAAIARyNgIAIAEMAQsgASgCCAshACABIAI2AgggACACNgIMIAIgATYCDCACIAA2AggPC0EfIQEgAEH///8HTQRAIABBCHYiASABQYD+P2pBEHZBCHEiAXQiBCAEQYDgH2pBEHZBBHEiBHQiAyADQYCAD2pBEHZBAnEiA3RBD3YgASAEciADcmsiAUEBdCAAIAFBFWp2QQFxckEcaiEBCyACIAE2AhwgAkIANwIQIAFBAnRBiI4TaiEEAkACQAJAQdyLEygCACIDQQEgAXQiBXFFBEBB3IsTIAMgBXI2AgAgBCACNgIAIAIgBDYCGAwBCyAAQRkgAUEBdmtBACABQR9HG3QhASAEKAIAIQMDQCADIgQoAgRBeHEgAEYNAiABQR12IQMgAUEBdCEBIAQgA0EEcWpBEGoiBSgCACIDDQALIAUgAjYCACACIAQ2AhgLIAIgAjYCDCACIAI2AggMAQsgBCgCCCIAIAI2AgwgBCACNgIIIAJBADYCGCACIAQ2AgwgAiAANgIIC0H4ixNB+IsTKAIAQQFrIgJBfyACGzYCAAsLoAgBC38gAEUEQCABEMsBDwsgAUFATwRAQejKEkEwNgIAQQAPCwJ/QRAgAUELakF4cSABQQtJGyEDIABBCGsiBSgCBCIIQXhxIQICQCAIQQNxRQRAQQAgA0GAAkkNAhogA0EEaiACTQRAIAUhBCACIANrQbiPEygCAEEBdE0NAgtBAAwCCyACIAVqIQcCQCACIANPBEAgAiADayICQRBJDQEgBSAIQQFxIANyQQJyNgIEIAMgBWoiAyACQQNyNgIEIAcgBygCBEEBcjYCBCADIAIQzgEMAQtB8IsTKAIAIAdGBEBB5IsTKAIAIAJqIgIgA00NAiAFIAhBAXEgA3JBAnI2AgQgAyAFaiIIIAIgA2siA0EBcjYCBEHkixMgAzYCAEHwixMgCDYCAAwBC0HsixMoAgAgB0YEQEHgixMoAgAgAmoiAiADSQ0CAkAgAiADayIEQRBPBEAgBSAIQQFxIANyQQJyNgIEIAMgBWoiAyAEQQFyNgIEIAIgBWoiAiAENgIAIAIgAigCBEF+cTYCBAwBCyAFIAhBAXEgAnJBAnI2AgQgAiAFaiIDIAMoAgRBAXI2AgRBACEEQQAhAwtB7IsTIAM2AgBB4IsTIAQ2AgAMAQsgBygCBCIGQQJxDQEgBkF4cSACaiIJIANJDQEgCSADayELAkAgBkH/AU0EQCAHKAIIIgIgBkEDdiIMQQN0QYCME2pGGiACIAcoAgwiBEYEQEHYixNB2IsTKAIAQX4gDHdxNgIADAILIAIgBDYCDCAEIAI2AggMAQsgBygCGCEKAkAgByAHKAIMIgZHBEAgBygCCCICQeiLEygCAEkaIAIgBjYCDCAGIAI2AggMAQsCQCAHQRRqIgIoAgAiBA0AIAdBEGoiAigCACIEDQBBACEGDAELA0AgAiEMIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAxBADYCAAsgCkUNAAJAIAcoAhwiBEECdEGIjhNqIgIoAgAgB0YEQCACIAY2AgAgBg0BQdyLE0HcixMoAgBBfiAEd3E2AgAMAgsgCkEQQRQgCigCECAHRhtqIAY2AgAgBkUNAQsgBiAKNgIYIAcoAhAiAgRAIAYgAjYCECACIAY2AhgLIAcoAhQiAkUNACAGIAI2AhQgAiAGNgIYCyALQQ9NBEAgBSAIQQFxIAlyQQJyNgIEIAUgCWoiAyADKAIEQQFyNgIEDAELIAUgCEEBcSADckECcjYCBCADIAVqIgMgC0EDcjYCBCAFIAlqIgIgAigCBEEBcjYCBCADIAsQzgELIAUhBAsgBAsiBARAIARBCGoPCyABEMsBIgRFBEBBAA8LIAQgAEF8QXggAEEEaygCACIFQQNxGyAFQXhxaiIFIAEgASAFSxsQpgEaIAAQzAEgBAuJDAEGfyAAIAFqIQUCQAJAIAAoAgQiAkEBcQ0AIAJBA3FFDQEgACgCACICIAFqIQECQCAAIAJrIgBB7IsTKAIARwRAIAJB/wFNBEAgACgCCCIEIAJBA3YiB0EDdEGAjBNqRhogACgCDCICIARHDQJB2IsTQdiLEygCAEF+IAd3cTYCAAwDCyAAKAIYIQYCQCAAIAAoAgwiA0cEQCAAKAIIIgJB6IsTKAIASRogAiADNgIMIAMgAjYCCAwBCwJAIABBFGoiAigCACIEDQAgAEEQaiICKAIAIgQNAEEAIQMMAQsDQCACIQcgBCIDQRRqIgIoAgAiBA0AIANBEGohAiADKAIQIgQNAAsgB0EANgIACyAGRQ0CAkAgACgCHCIEQQJ0QYiOE2oiAigCACAARgRAIAIgAzYCACADDQFB3IsTQdyLEygCAEF+IAR3cTYCAAwECyAGQRBBFCAGKAIQIABGG2ogAzYCACADRQ0DCyADIAY2AhggACgCECICBEAgAyACNgIQIAIgAzYCGAsgACgCFCICRQ0CIAMgAjYCFCACIAM2AhgMAgsgBSgCBCICQQNxQQNHDQFB4IsTIAE2AgAgBSACQX5xNgIEIAAgAUEBcjYCBCAFIAE2AgAPCyAEIAI2AgwgAiAENgIICwJAIAUoAgQiAkECcUUEQEHwixMoAgAgBUYEQEHwixMgADYCAEHkixNB5IsTKAIAIAFqIgE2AgAgACABQQFyNgIEIABB7IsTKAIARw0DQeCLE0EANgIAQeyLE0EANgIADwtB7IsTKAIAIAVGBEBB7IsTIAA2AgBB4IsTQeCLEygCACABaiIBNgIAIAAgAUEBcjYCBCAAIAFqIAE2AgAPCyACQXhxIAFqIQECQCACQf8BTQRAIAUoAggiBCACQQN2IgdBA3RBgIwTakYaIAQgBSgCDCICRgRAQdiLE0HYixMoAgBBfiAHd3E2AgAMAgsgBCACNgIMIAIgBDYCCAwBCyAFKAIYIQYCQCAFIAUoAgwiA0cEQCAFKAIIIgJB6IsTKAIASRogAiADNgIMIAMgAjYCCAwBCwJAIAVBFGoiBCgCACICDQAgBUEQaiIEKAIAIgINAEEAIQMMAQsDQCAEIQcgAiIDQRRqIgQoAgAiAg0AIANBEGohBCADKAIQIgINAAsgB0EANgIACyAGRQ0AAkAgBSgCHCIEQQJ0QYiOE2oiAigCACAFRgRAIAIgAzYCACADDQFB3IsTQdyLEygCAEF+IAR3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogAzYCACADRQ0BCyADIAY2AhggBSgCECICBEAgAyACNgIQIAIgAzYCGAsgBSgCFCICRQ0AIAMgAjYCFCACIAM2AhgLIAAgAUEBcjYCBCAAIAFqIAE2AgAgAEHsixMoAgBHDQFB4IsTIAE2AgAPCyAFIAJBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAsgAUH/AU0EQCABQXhxQYCME2ohAgJ/QdiLEygCACIEQQEgAUEDdnQiAXFFBEBB2IsTIAEgBHI2AgAgAgwBCyACKAIICyEBIAIgADYCCCABIAA2AgwgACACNgIMIAAgATYCCA8LQR8hAiABQf///wdNBEAgAUEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIDIANBgIAPakEQdkECcSIDdEEPdiACIARyIANyayICQQF0IAEgAkEVanZBAXFyQRxqIQILIAAgAjYCHCAAQgA3AhAgAkECdEGIjhNqIQQCQAJAQdyLEygCACIDQQEgAnQiBXFFBEBB3IsTIAMgBXI2AgAgBCAANgIAIAAgBDYCGAwBCyABQRkgAkEBdmtBACACQR9HG3QhAiAEKAIAIQMDQCADIgQoAgRBeHEgAUYNAiACQR12IQMgAkEBdCECIAQgA0EEcWpBEGoiBSgCACIDDQALIAUgADYCACAAIAQ2AhgLIAAgADYCDCAAIAA2AggPCyAEKAIIIgEgADYCDCAEIAA2AgggAEEANgIYIAAgBDYCDCAAIAE2AggLC1wCAX8BfgJAAn9BACAARQ0AGiAArSABrX4iA6ciAiAAIAFyQYCABEkNABpBfyACIANCIIinGwsiAhDLASIARQ0AIABBBGstAABBA3FFDQAgAEEAIAIQqAEaCyAAC1IBAn9B2L8SKAIAIgEgAEEHakF4cSICaiEAAkAgAkEAIAAgAU0bDQAgAD8AQRB0SwRAIAAQA0UNAQtB2L8SIAA2AgAgAQ8LQejKEkEwNgIAQX8LBAAjAAsGACAAJAALEAAjACAAa0FwcSIAJAAgAAsiAQF+IAEgAq0gA61CIIaEIAQgABEPACIFQiCIpyQBIAWnCwvFrRKnAQBBgAgL9xIBAAAAAgAAAAIAAAAFAAAABAAAAAAAAAABAAAAAQAAAAEAAAAGAAAABgAAAAEAAAACAAAAAgAAAAEAAAAAAAAABgAAAAEAAAABAAAABAAAAAQAAAABAAAABAAAAAQAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAgAAAAMAAAAEAAAABAAAAAEAAABZb3UgZGlkbid0IGNhbGwgb25pZ19pbml0aWFsaXplKCkgZXhwbGljaXRseQAtKyAgIDBYMHgAQWxudW0AbWlzbWF0Y2gAJWQuJWQuJWQAXQBFVUMtVFcAU2hpZnRfSklTAEVVQy1LUgBLT0k4LVIARVVDLUpQAE1PTgBVUy1BU0NJSQBVVEYtMTZMRQBVVEYtMzJMRQBVVEYtMTZCRQBVVEYtMzJCRQBJU08tODg1OS05AFVURi04AElTTy04ODU5LTgASVNPLTg4NTktNwBJU08tODg1OS0xNgBJU08tODg1OS02AEJpZzUASVNPLTg4NTktMTUASVNPLTg4NTktNQBJU08tODg1OS0xNABJU08tODg1OS00AElTTy04ODU5LTEzAElTTy04ODU5LTMASVNPLTg4NTktMgBDUDEyNTEASVNPLTg4NTktMTEASVNPLTg4NTktMQBHQjE4MDMwAElTTy04ODU5LTEwAE9uaWd1cnVtYSAlZC4lZC4lZCA6IENvcHlyaWdodCAoQykgMjAwMi0yMDE4IEsuS29zYWtvAG5vIHN1cHBvcnQgaW4gdGhpcyBjb25maWd1cmF0aW9uAHJlZ3VsYXIgZXhwcmVzc2lvbiBoYXMgJyVzJyB3aXRob3V0IGVzY2FwZQBXb3JkAEFscGhhAEVVQy1DTgBGQUlMAChudWxsKQAARgBBAEkATAAAAEYAQQBJAEwAAAAAYWJvcnQAQmxhbmsAIyVkAEFscGhhAFsATUlTTUFUQ0gAAE0ASQBTAE0AQQBUAEMASAAAAE0ASQBTAE0AQQBUAEMASAAAAAAtMFgrMFggMFgtMHgrMHggMHgAZmFpbCB0byBtZW1vcnkgYWxsb2NhdGlvbgBDbnRybABIaXJhZ2FuYQBNQVgALQBPTklHLU1PTklUT1I6ICUtNHMgJXMgYXQ6ICVkIFslZCAtICVkXSBsZW46ICVkCgAATQBBAFgAAABNAEEAWAAAAABEaWdpdABtYXRjaC1zdGFjayBsaW1pdCBvdmVyAEFsbnVtAGluZgBjaGFyYWN0ZXIgY2xhc3MgaGFzICclcycgd2l0aG91dCBlc2NhcGUARVJST1IAPT4AAEUAUgBSAE8AUgAAAEUAUgBSAE8AUgAAAABwYXJzZSBkZXB0aCBsaW1pdCBvdmVyAGFsbnVtAEdyYXBoAEthdGFrYW5hAENPVU5UAElORgA8PQAAQwBPAFUATgBUAAAAQwBPAFUATgBUAAAAAExvd2VyAHJldHJ5LWxpbWl0LWluLW1hdGNoIG92ZXIAbmFuAGFscGhhAFRPVEFMX0NPVU5UAEFTQ0lJAABUAE8AVABBAEwAXwBDAE8AVQBOAFQAAABUAE8AVABBAEwAXwBDAE8AVQBOAFQAAAAAUHJpbnQAWERpZ2l0AHJldHJ5LWxpbWl0LWluLXNlYXJjaCBvdmVyAGJsYW5rAENNUABOQU4AAEMATQBQAAAAQwBNAFAAAAAAUHVuY3QAc3ViZXhwLWNhbGwtbGltaXQtaW4tc2VhcmNoIG92ZXIAY250cmwAQ250cmwALgBkaWdpdABCbGFuawBTcGFjZQB1bmRlZmluZWQgdHlwZSAoYnVnKQBQdW5jdABVcHBlcgBncmFwaABpbnRlcm5hbCBwYXJzZXIgZXJyb3IgKGJ1ZykAUHJpbnQAWERpZ2l0AGxvd2VyAHN0YWNrIGVycm9yIChidWcpAHByaW50AFVwcGVyAEFTQ0lJAHVuZGVmaW5lZCBieXRlY29kZSAoYnVnKQBwdW5jdABTcGFjZQBXb3JkAHVuZXhwZWN0ZWQgYnl0ZWNvZGUgKGJ1ZykAZGVmYXVsdCBtdWx0aWJ5dGUtZW5jb2RpbmcgaXMgbm90IHNldABMb3dlcgBzcGFjZQB1cHBlcgBHcmFwaABjYW4ndCBjb252ZXJ0IHRvIHdpZGUtY2hhciBvbiBzcGVjaWZpZWQgbXVsdGlieXRlLWVuY29kaW5nAHhkaWdpdABEaWdpdABmYWlsIHRvIGluaXRpYWxpemUAaW52YWxpZCBhcmd1bWVudABhc2NpaQBlbmQgcGF0dGVybiBhdCBsZWZ0IGJyYWNlAHdvcmQAZW5kIHBhdHRlcm4gYXQgbGVmdCBicmFja2V0ADpdAGVtcHR5IGNoYXItY2xhc3MAcmVkdW5kYW50IG5lc3RlZCByZXBlYXQgb3BlcmF0b3IAcHJlbWF0dXJlIGVuZCBvZiBjaGFyLWNsYXNzAG5lc3RlZCByZXBlYXQgb3BlcmF0b3IgJXMgYW5kICVzIHdhcyByZXBsYWNlZCB3aXRoICclcycAZW5kIHBhdHRlcm4gYXQgZXNjYXBlAD8AZW5kIHBhdHRlcm4gYXQgbWV0YQAqAGVuZCBwYXR0ZXJuIGF0IGNvbnRyb2wAKwBpbnZhbGlkIG1ldGEtY29kZSBzeW50YXgAPz8AaW52YWxpZCBjb250cm9sLWNvZGUgc3ludGF4ACo/AGNoYXItY2xhc3MgdmFsdWUgYXQgZW5kIG9mIHJhbmdlACs/AGNoYXItY2xhc3MgdmFsdWUgYXQgc3RhcnQgb2YgcmFuZ2UAdW5tYXRjaGVkIHJhbmdlIHNwZWNpZmllciBpbiBjaGFyLWNsYXNzACsgYW5kID8/AHRhcmdldCBvZiByZXBlYXQgb3BlcmF0b3IgaXMgbm90IHNwZWNpZmllZAArPyBhbmQgPwAPAAAADgAAAHQ+AwB8PgMA6AP0AU0B+gDIAKcAjwB9AG8AZABbAFMATQBHAEMAPwA7ADgANQAyADAALQArACoAKAAmACUAJAAiACEAIAAfAB4AHQAdABwAGwAaABoAGQAYABgAFwAXABYAFgAVABUAFAAUABQAEwATABMAEgASABIAEQARABEAEAAQABAAEAAPAA8ADwAPAA4ADgAOAA4ADgAOAA0ADQANAA0ADQANAAwADAAMAAwADAAMAAsACwALAAsACwALAAsACwALAAoACgAKAAoA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b2RlIHJhbmdlcyBhcmUgc3BlY2lmaWVkAHRvbyBzaG9ydCBtdWx0aWJ5dGUgY29kZSBzdHJpbmcAdG9vIGJpZyBiYWNrcmVmIG51bWJlcgBpbnZhbGlkIGJhY2tyZWYgbnVtYmVyL25hbWUAbnVtYmVyZWQgYmFja3JlZi9jYWxsIGlzIG5vdCBhbGxvd2VkLiAodXNlIG5hbWUpAHRvbyBtYW55IGNhcHR1cmVzAHRvbyBiaWcgd2lkZS1jaGFyIHZhbHVlAHRvbyBsb25nIHdpZGUtY2hhciB2YWx1ZQB1bmRlZmluZWQgb3BlcmF0b3IAaW52YWxpZCBjb2RlIHBvaW50IHZhbHVlAGdyb3VwIG5hbWUgaXMgZW1wdHkAaW52YWxpZCBncm91cCBuYW1lIDwlbj4AaW52YWxpZCBjaGFyIGluIGdyb3VwIG5hbWUgPCVuPgB1bmRlZmluZWQgbmFtZSA8JW4+IHJlZmVyZW5jZQB1bmRlZmluZWQgZ3JvdXAgPCVuPiByZWZlcmVuY2UAbXVsdGlwbGV4IGRlZmluZWQgbmFtZSA8JW4+AG11bHRpcGxleCBkZWZpbml0aW9uIG5hbWUgPCVuPiBjYWxsAG5ldmVyIGVuZGluZyByZWN1cnNpb24AZ3JvdXAgbnVtYmVyIGlzIHRvbyBiaWcgZm9yIGNhcHR1cmUgaGlzdG9yeQBpbnZhbGlkIGNoYXJhY3RlciBwcm9wZXJ0eSBuYW1lIHslbn0AaW52YWxpZCBpZi1lbHNlIHN5bnRheABpbnZhbGlkIGFic2VudCBncm91cCBwYXR0ZXJuAGludmFsaWQgYWJzZW50IGdyb3VwIGdlbmVyYXRvciBwYXR0ZXJuAGludmFsaWQgY2FsbG91dCBwYXR0ZXJuAGludmFsaWQgY2FsbG91dCBuYW1lAHVuZGVmaW5lZCBjYWxsb3V0IG5hbWUAaW52YWxpZCBjYWxsb3V0IGJvZHkAaW52YWxpZCBjYWxsb3V0IHRhZyBuYW1lAGludmFsaWQgY2FsbG91dCBhcmcAbm90IHN1cHBvcnRlZCBlbmNvZGluZyBjb21iaW5hdGlvbgBpbnZhbGlkIGNvbWJpbmF0aW9uIG9mIG9wdGlvbnMAdmVyeSBpbmVmZmljaWVudCBwYXR0ZXJuAGxpYnJhcnkgaXMg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ALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdgoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAPoLAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAAB3DAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE8NAABUDQAAYw0AAGYNAAB/DQAAgQ0AAIMNAACFDQAAlg0AAJoNAACxDQAAsw0AALsNAAC9DQAAvQ0AAMANAADGDQAAyg0AAMoNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADmDQAA7w0AAPINAAD0DQAAAQ4AADoOAAA/DgAAWw4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAARw8AAEkPAABsDwAAcQ8AAJcPAACZDwAAvA8AAL4PAADMDwAAzg8AANoPAAAAEAAAxRAAAMcQAADHEAAAzRAAAM0QAADQEAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAAB8EwAAgBMAAJkTAACgEwAA9RMAAPgTAAD9EwAAABQAAH8WAACBFgAAnBYAAKAWAAD4FgAAABcAABUXAAAfFwAANhcAAEAXAABTFwAAYBcAAGwXAABuFwAAcBcAAHIXAABzFwAAgBcAAN0XAADgFwAA6RcAAPAXAAD5FwAAABgAABkYAAAgGAAAeBgAAIAYAACqGAAAsBgAAPUYAAAAGQAAHhkAACAZAAArGQAAMBkAADsZAABAGQAAQBkAAEQZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAA0BkAANoZAADeGQAAGxoAAB4aAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAAoBoAAK0aAACwGgAAzhoAAAAbAABMGwAAUBsAAH4bAACAGwAA8xsAAPwbAAA3HAAAOxwAAEkcAABNHAAAiBwAAJAcAAC6HAAAvRwAAMccAADQHAAA+hwAAAAdAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AAMQfAADGHwAA0x8AANYfAADbHwAA3R8AAO8fAADyHwAA9B8AAPYfAAD+HwAACyAAACcgAAAqIAAALiAAADAgAABeIAAAYCAAAGQgAABmIAAAcSAAAHQgAACOIAAAkCAAAJwgAACgIAAAwCAAANAgAADwIAAAACEAAIshAACQIQAAJiQAAEAkAABKJAAAYCQAAHMrAAB2KwAAlSsAAJcrAADzLAAA+SwAACUtAAAnLQAAJy0AAC0tAAAtLQAAMC0AAGctAABvLQAAcC0AAH8tAACWLQAAoC0AAKYtAACoLQAAri0AALAtAAC2LQAAuC0AAL4tAADALQAAxi0AAMgtAADOLQAA0C0AANYtAADYLQAA3i0AAOAtAABdLgAAgC4AAJkuAACbLgAA8y4AAAAvAADVLwAA8C8AAPsvAAABMAAAPzAAAEEwAACWMAAAmTAAAP8wAAAFMQAALzEAADExAACOMQAAkDEAAOMxAADwMQAAHjIAACAyAACMpAAAkKQAAMakAADQpAAAK6YAAECmAAD3pgAAAKcAAMqnAADQpwAA0acAANOnAADTpwAA1acAANmnAADypwAALKgAADCoAAA5qAAAQKgAAHeoAACAqAAAxagAAM6oAADZqAAA4KgAAFOpAABfqQAAfKkAAICpAADNqQAAz6kAANmpAADeqQAA/qkAAACqAAA2qgAAQKoAAE2qAABQqgAAWaoAAFyqAADCqgAA26oAAPaqAAABqwAABqsAAAmrAAAOqwAAEasAABarAAAgqwAAJqsAACirAAAuqwAAMKsAAGurAABwqwAA7asAAPCrAAD5qwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAOAAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAANvsAADj7AAA8+wAAPvsAAD77AABA+wAAQfsAAEP7AABE+wAARvsAAML7AADT+wAAj/0AAJL9AADH/QAAz/0AAM/9AADw/QAAGf4AACD+AABS/gAAVP4AAGb+AABo/gAAa/4AAHD+AAB0/gAAdv4AAPz+AAD//gAA//4AAAH/AAC+/wAAwv8AAMf/AADK/wAAz/8AANL/AADX/wAA2v8AANz/AADg/wAA5v8AAOj/AADu/wAA+f8AAP3/AAAAAAEACwABAA0AAQAmAAEAKAABADoAAQA8AAEAPQABAD8AAQBNAAEAUAABAF0AAQCAAAEA+gABAAABAQACAQEABwEBADMBAQA3AQEAjgEBAJABAQCcAQEAoAEBAKABAQDQAQEA/QEBAIACAQCcAgEAoAIBANACAQDgAgEA+wIBAAADAQAjAwEALQMBAEoDAQBQAwEAegMBAIADAQCdAwEAnwMBAMMDAQDIAwEA1QMBAAAEAQCdBAEAoAQBAKkEAQCwBAEA0wQBANgEAQD7BAEAAAUBACcFAQAwBQEAYwUBAG8FAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQAABgEANgcBAEAHAQBVBwEAYAcBAGcHAQCABwEAhQcBAIcHAQCwBwEAsgcBALoHAQAACAEABQgBAAgIAQAICAEACggBADUIAQA3CAEAOAgBADwIAQA8CAEAPwgBAFUIAQBXCAEAnggBAKcIAQCvCAEA4AgBAPIIAQD0CAEA9QgBAPsIAQAbCQEAHwkBADkJAQA/CQEAPwkBAIAJAQC3CQEAvAkBAM8JAQDSCQEAAwoBAAUKAQAGCgEADAoBABMKAQAVCgEAFwoBABkKAQA1CgEAOAoBADoKAQA/CgEASAoBAFAKAQBYCgEAYAoBAJ8KAQDACgEA5goBAOsKAQD2CgEAAAsBADULAQA5CwEAVQsBAFgLAQByCwEAeAsBAJELAQCZCwEAnAsBAKkLAQCvCwEAAAwBAEgMAQCADAEAsgwBAMAMAQDyDAEA+gwBACcNAQAwDQEAOQ0BAGAOAQB+DgEAgA4BAKkOAQCrDgEArQ4BALAOAQCxDgEAAA8BACcPAQAwDwEAWQ8BAHAPAQCJDwEAsA8BAMsPAQDgDwEA9g8BAAAQAQBNEAEAUhABAHUQAQB/EAEAwhABAM0QAQDNEAEA0BABAOgQAQDwEAEA+RABAAARAQA0EQEANhEBAEcRAQBQEQEAdhEBAIARAQDfEQEA4REBAPQRAQAAEgEAERIBABMSAQA+EgEAgBIBAIYSAQCIEgEAiBIBAIoSAQCNEgEAjxIBAJ0SAQCfEgEAqRIBALASAQDqEgEA8BIBAPkSAQAAEwEAAxMBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBADsTAQBEEwEARxMBAEgTAQBLEwEATRMBAFATAQBQEwEAVxMBAFcTAQBdEwEAYxMBAGYTAQBsEwEAcBMBAHQTAQAAFAEAWxQBAF0UAQBhFAEAgBQBAMcUAQDQFAEA2RQBAIAVAQC1FQEAuBUBAN0VAQAAFgEARBYBAFAWAQBZFgEAYBYBAGwWAQCAFgEAuRYBAMAWAQDJFgEAABcBABoXAQAdFwEAKxcBADAXAQBGFwEAABgBADsYAQCgGAEA8hgBAP8YAQAGGQEACRkBAAkZAQAMGQEAExkBABUZAQAWGQEAGBkBADUZAQA3GQEAOBkBADsZAQBGGQEAUBkBAFkZAQCgGQEApxkBAKoZAQDXGQEA2hkBAOQZAQAAGgEARxoBAFAaAQCiGgEAsBoBAPgaAQAAHAEACBwBAAocAQA2HAEAOBwBAEUcAQBQHAEAbBwBAHAcAQCPHAEAkhwBAKccAQCpHAEAthwBAAAdAQAGHQEACB0BAAkdAQALHQEANh0BADodAQA6HQEAPB0BAD0dAQA/HQEARx0BAFAdAQBZHQEAYB0BAGUdAQBnHQEAaB0BAGodAQCOHQEAkB0BAJEdAQCTHQEAmB0BAKAdAQCpHQEA4B4BAPgeAQCwHwEAsB8BAMAfAQDxHwEA/x8BAJkjAQAAJAEAbiQBAHAkAQB0JAEAgCQBAEMlAQCQLwEA8i8BAAAwAQAuNAEAMDQBADg0AQAARAEARkYBAABoAQA4agEAQGoBAF5qAQBgagEAaWoBAG5qAQC+agEAwGoBAMlqAQDQagEA7WoBAPBqAQD1agEAAGsBAEVrAQBQawEAWWsBAFtrAQBhawEAY2sBAHdrAQB9awEAj2sBAEBuAQCabgEAAG8BAEpvAQBPbwEAh28BAI9vAQCfbwEA4G8BAORvAQDwbwEA8W8BAABwAQD3hwEAAIgBANWMAQAAjQEACI0BAPCvAQDzrwEA9a8BAPuvAQD9rwEA/q8BAACwAQAisQEAULEBAFKxAQBksQEAZ7EBAHCxAQD7sgEAALwBAGq8AQBwvAEAfLwBAIC8AQCIvAEAkLwBAJm8AQCcvAEAo7wBAADPAQAtzwEAMM8BAEbPAQBQzwEAw88BAADQAQD10AEAANEBACbRAQAp0QEA6tEBAADSAQBF0gEA4NIBAPPSAQAA0wEAVtMBAGDTAQB40wEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAy9cBAM7XAQCL2gEAm9oBAJ/aAQCh2gEAr9oBAADfAQAe3wEAAOABAAbgAQAI4AEAGOABABvgAQAh4AEAI+ABACTgAQAm4AEAKuABAADhAQAs4QEAMOEBAD3hAQBA4QEASeEBAE7hAQBP4QEAkOIBAK7iAQDA4gEA+eIBAP/iAQD/4gEA4OcBAObnAQDo5wEA6+cBAO3nAQDu5wEA8OcBAP7nAQAA6AEAxOgBAMfoAQDW6AEAAOkBAEvpAQBQ6QEAWekBAF7pAQBf6QEAcewBALTsAQAB7QEAPe0BAADuAQAD7gEABe4BAB/uAQAh7gEAIu4BACTuAQAk7gEAJ+4BACfuAQAp7gEAMu4BADTuAQA37gEAOe4BADnuAQA77gEAO+4BAELuAQBC7gEAR+4BAEfuAQBJ7gEASe4BAEvuAQBL7gEATe4BAE/uAQBR7gEAUu4BAFTuAQBU7gEAV+4BAFfuAQBZ7gEAWe4BAFvuAQBb7gEAXe4BAF3uAQBf7gEAX+4BAGHuAQBi7gEAZO4BAGTuAQBn7gEAau4BAGzuAQBy7gEAdO4BAHfuAQB57gEAfO4BAH7uAQB+7gEAgO4BAInuAQCL7gEAm+4BAKHuAQCj7gEApe4BAKnuAQCr7gEAu+4BAPDuAQDx7gEAAPABACvwAQAw8AEAk/ABAKDwAQCu8AEAsfABAL/wAQDB8AEAz/ABANHwAQD18AEAAPEBAK3xAQDm8QEAAvIBABDyAQA78gEAQPIBAEjyAQBQ8gEAUfIBAGDyAQBl8gEAAPMBANf2AQDd9gEA7PYBAPD2AQD89gEAAPcBAHP3AQCA9wEA2PcBAOD3AQDr9wEA8PcBAPD3AQAA+AEAC/gBABD4AQBH+AEAUPgBAFn4AQBg+AEAh/gBAJD4AQCt+AEAsPgBALH4AQAA+QEAU/oBAGD6AQBt+gEAcPoBAHT6AQB4+gEAfPoBAID6AQCG+gEAkPoBAKz6AQCw+gEAuvoBAMD6AQDF+gEA0PoBANn6AQDg+gEA5/oBAPD6AQD2+gEAAPsBAJL7AQCU+wEAyvsBAPD7AQD5+wEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwABAA4AAQAOACAADgB/AA4AAAEOAO8BDgAAAA8A/f8PAAAAEAD9/xAAAAAAAJwCAABhAAAAegAAAKoAAACqAAAAtQAAALUAAAC6AAAAugAAAN8AAAD2AAAA+AAAAP8AAAABAQAAAQEAAAMBAAADAQAABQEAAAUBAAAHAQAABwEAAAkBAAAJAQAACwEAAAsBAAANAQAADQEAAA8BAAAPAQAAEQEAABEBAAATAQAAEwEAABUBAAAVAQAAFwEAABcBAAAZAQAAGQEAABsBAAAbAQAAHQEAAB0BAAAfAQAAHwEAACEBAAAhAQAAIwEAACMBAAAlAQAAJQEAACcBAAAnAQAAKQEAACkBAAArAQAAKwEAAC0BAAAtAQAALwEAAC8BAAAxAQAAMQEAADMBAAAzAQAANQEAADUBAAA3AQAAOAEAADoBAAA6AQAAPAEAADwBAAA+AQAAPgEAAEABAABAAQAAQgEAAEIBAABEAQAARAEAAEYBAABGAQAASAEAAEkBAABLAQAASwEAAE0BAABNAQAATwEAAE8BAABRAQAAUQEAAFMBAABTAQAAVQEAAFUBAABXAQAAVwEAAFkBAABZAQAAWwEAAFsBAABdAQAAXQEAAF8BAABfAQAAYQEAAGEBAABjAQAAYwEAAGUBAABlAQAAZwEAAGcBAABpAQAAaQEAAGsBAABrAQAAbQEAAG0BAABvAQAAbwEAAHEBAABxAQAAcwEAAHMBAAB1AQAAdQEAAHcBAAB3AQAAegEAAHoBAAB8AQAAfAEAAH4BAACAAQAAgwEAAIMBAACFAQAAhQEAAIgBAACIAQAAjAEAAI0BAACSAQAAkgEAAJUBAACVAQAAmQEAAJsBAACeAQAAngEAAKEBAAChAQAAowEAAKMBAAClAQAApQEAAKgBAACoAQAAqgEAAKsBAACtAQAArQEAALABAACwAQAAtAEAALQBAAC2AQAAtgEAALkBAAC6AQAAvQEAAL8BAADGAQAAxgEAAMkBAADJAQAAzAEAAMwBAADOAQAAzgEAANABAADQAQAA0gEAANIBAADUAQAA1AEAANYBAADWAQAA2AEAANgBAADaAQAA2gEAANwBAADdAQAA3wEAAN8BAADhAQAA4QEAAOMBAADjAQAA5QEAAOUBAADnAQAA5wEAAOkBAADpAQAA6wEAAOsBAADtAQAA7QEAAO8BAADwAQAA8wEAAPMBAAD1AQAA9QEAAPkBAAD5AQAA+wEAAPsBAAD9AQAA/QEAAP8BAAD/AQAAAQIAAAECAAADAgAAAwIAAAUCAAAFAgAABwIAAAcCAAAJAgAACQIAAAsCAAALAgAADQIAAA0CAAAPAgAADwIAABECAAARAgAAEwIAABMCAAAVAgAAFQIAABcCAAAXAgAAGQIAABkCAAAbAgAAGwIAAB0CAAAdAgAAHwIAAB8CAAAhAgAAIQIAACMCAAAjAgAAJQIAACUCAAAnAgAAJwIAACkCAAApAgAAKwIAACsCAAAtAgAALQIAAC8CAAAvAgAAMQIAADECAAAzAgAAOQIAADwCAAA8AgAAPwIAAEACAABCAgAAQgIAAEcCAABHAgAASQIAAEkCAABLAgAASwIAAE0CAABNAgAATwIAAJMCAACVAgAAuAIAAMACAADBAgAA4AIAAOQCAABFAwAARQMAAHEDAABxAwAAcwMAAHMDAAB3AwAAdwMAAHoDAAB9AwAAkAMAAJADAACsAwAAzgMAANADAADRAwAA1QMAANcDAADZAwAA2QMAANsDAADbAwAA3QMAAN0DAADfAwAA3wMAAOEDAADhAwAA4wMAAOMDAADlAwAA5QMAAOcDAADnAwAA6QMAAOkDAADrAwAA6wMAAO0DAADtAwAA7wMAAPMDAAD1AwAA9QMAAPgDAAD4AwAA+wMAAPwDAAAwBAAAXwQAAGEEAABhBAAAYwQAAGMEAABlBAAAZQQAAGcEAABnBAAAaQQAAGkEAABrBAAAawQAAG0EAABtBAAAbwQAAG8EAABxBAAAcQQAAHMEAABzBAAAdQQAAHUEAAB3BAAAdwQAAHkEAAB5BAAAewQAAHsEAAB9BAAAfQQAAH8EAAB/BAAAgQQAAIEEAACLBAAAiwQAAI0EAACNBAAAjwQAAI8EAACRBAAAkQQAAJMEAACTBAAAlQQAAJUEAACXBAAAlwQAAJkEAACZBAAAmwQAAJsEAACdBAAAnQQAAJ8EAACfBAAAoQQAAKEEAACjBAAAowQAAKUEAAClBAAApwQAAKcEAACpBAAAqQQAAKsEAACrBAAArQQAAK0EAACvBAAArwQAALEEAACxBAAAswQAALMEAAC1BAAAtQQAALcEAAC3BAAAuQQAALkEAAC7BAAAuwQAAL0EAAC9BAAAvwQAAL8EAADCBAAAwgQAAMQEAADEBAAAxgQAAMYEAADIBAAAyAQAAMoEAADKBAAAzAQAAMwEAADOBAAAzwQAANEEAADRBAAA0wQAANMEAADVBAAA1QQAANcEAADXBAAA2QQAANkEAADbBAAA2wQAAN0EAADdBAAA3wQAAN8EAADhBAAA4QQAAOMEAADjBAAA5QQAAOUEAADnBAAA5wQAAOkEAADpBAAA6wQAAOsEAADtBAAA7QQAAO8EAADvBAAA8QQAAPEEAADzBAAA8wQAAPUEAAD1BAAA9wQAAPcEAAD5BAAA+QQAAPsEAAD7BAAA/QQAAP0EAAD/BAAA/wQAAAEFAAABBQAAAwUAAAMFAAAFBQAABQUAAAcFAAAHBQAACQUAAAkFAAALBQAACwUAAA0FAAANBQAADwUAAA8FAAARBQAAEQUAABMFAAATBQAAFQUAABUFAAAXBQAAFwUAABkFAAAZBQAAGwUAABsFAAAdBQAAHQUAAB8FAAAfBQAAIQUAACEFAAAjBQAAIwUAACUFAAAlBQAAJwUAACcFAAApBQAAKQUAACsFAAArBQAALQUAAC0FAAAvBQAALwUAAGAFAACIBQAA0BAAAPoQAAD9EAAA/xAAAPgTAAD9EwAAgBwAAIgcAAAAHQAAvx0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAnR4AAJ8eAACfHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAhx8AAJAfAACXHwAAoB8AAKcfAACwHwAAtB8AALYfAAC3HwAAvh8AAL4fAADCHwAAxB8AAMYfAADHHwAA0B8AANMfAADWHwAA1x8AAOAfAADnHwAA8h8AAPQfAAD2HwAA9x8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAohAAAKIQAADiEAAA8hAAATIQAAEyEAAC8hAAAvIQAANCEAADQhAAA5IQAAOSEAADwhAAA9IQAARiEAAEkhAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHEsAABxLAAAcywAAHQsAAB2LAAAfSwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOQsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAnaYAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAxpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacA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XR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAxB8AAMYfAADTHwAA1h8AANsfAADdHwAA7x8AAPIfAAD0HwAA9h8AAP4fAAAAIAAAJyAAACogAABkIAAAZiAAAHEgAAB0IAAAjiAAAJAgAACcIAAAoCAAAMAgAADQIAAA8CAAAAAhAACLIQAAkCEAACYkAABAJAAASiQAAGAkAABzKwAAdisAAJUrAACXKwAA8ywAAPksAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAHAtAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAAXS4AAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAPAvAAD7LwAAADAAAD8wAABBMAAAljAAAJkwAAD/MAAABTEAAC8xAAAxMQAAjjEAAJAxAADjMQAA8DEAAB4yAAAgMgAAjKQAAJCkAADGpAAA0KQAACumAABApgAA96YAAACnAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAACyoAAAwqAAAOagAAECoAAB3qAAAgKgAAMWoAADOqAAA2agAAOCoAABTqQAAX6kAAHypAACAqQAAzakAAM+pAADZqQAA3qkAAP6pAAAAqgAANqoAAECqAABNqgAAUKoAAFmqAABcqgAAwqoAANuqAAD2qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABrqwAAcKsAAO2rAADwqwAA+asAAACsAACj1wAAsNcAAMbXAADL1wAA+9cAAADgAABt+gAAcPoAANn6AAAA+wAABvsAABP7AAAX+wAAHfsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AADC+wAA0/sAAI/9AACS/QAAx/0AAM/9AADP/QAA8P0AABn+AAAg/gAAUv4AAFT+AABm/gAAaP4AAGv+AABw/gAAdP4AAHb+AAD8/gAA//4AAP/+AAAB/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAA4P8AAOb/AADo/wAA7v8AAPn/AAD9/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEA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AAIBAAACAQAABAEAAAQBAAAGAQAABgEAAAgBAAAIAQAACgEAAAoBAAAMAQAADAEAAA4BAAAOAQAAEAEAABABAAASAQAAEgEAABQBAAAUAQAAFgEAABYBAAAYAQAAGAEAABoBAAAaAQAAHAEAABwBAAAeAQAAHgEAACABAAAgAQAAIgEAACIBAAAkAQAAJAEAACYBAAAmAQAAKAEAACgBAAAqAQAAKgEAACwBAAAsAQAALgEAAC4BAAAwAQAAMAEAADIBAAAyAQAANAEAADQBAAA2AQAANgEAADkBAAA5AQAAOwEAADsBAAA9AQAAPQEAAD8BAAA/AQAAQQEAAEEBAABDAQAAQwEAAEUBAABFAQAARwEAAEcBAABKAQAASgEAAEwBAABMAQAATgEAAE4BAABQAQAAUAEAAFIBAABSAQAAVAEAAFQBAABWAQAAVgEAAFgBAABYAQAAWgEAAFoBAABcAQAAXAEAAF4BAABeAQAAYAEAAGABAABiAQAAYgEAAGQBAABkAQAAZgEAAGYBAABoAQAAaAEAAGoBAABqAQAAbAEAAGwBAABuAQAAbgEAAHABAABwAQAAcgEAAHIBAAB0AQAAdAEAAHYBAAB2AQAAeAEAAHkBAAB7AQAAewEAAH0BAAB9AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxAEAAMcBAADHAQAAygEAAMoBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPEBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABwAwAAcAMAAHIDAAByAwAAdgMAAHYDAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAACPAwAAkQMAAKEDAACjAwAAqwMAAM8DAADPAwAA0gMAANQDAADYAwAA2AMAANoDAADaAwAA3AMAANwDAADeAwAA3gMAAOADAADgAwAA4gMAAOIDAADkAwAA5AMAAOYDAADmAwAA6AMAAOgDAADqAwAA6gMAAOwDAADsAwAA7gMAAO4DAAD0AwAA9AMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAAoBMAAPUTAACQHAAAuhwAAL0cAAC/HAAAAB4AAAAeAAACHgAAAh4AAAQeAAAEHgAABh4AAAYeAAAIHgAACB4AAAoeAAAKHgAADB4AAAweAAAOHgAADh4AABAeAAAQHgAAEh4AABIeAAAUHgAAFB4AABYeAAAWHgAAGB4AABgeAAAaHgAAGh4AABweAAAcHgAAHh4AAB4eAAAgHgAAIB4AACIeAAAiHgAAJB4AACQeAAAmHgAAJh4AACgeAAAoHgAAKh4AACoeAAAsHgAALB4AAC4eAAAuHgAAMB4AADAeAAAyHgAAMh4AADQeAAA0HgAANh4AADYeAAA4HgAAOB4AADoeAAA6HgAAPB4AADweAAA+HgAAPh4AAEAeAABAHgAAQh4AAEIeAABEHgAARB4AAEYeAABGHgAASB4AAEgeAABKHgAASh4AAEweAABMHgAATh4AAE4eAABQHgAAUB4AAFIeAABSHgAAVB4AAFQeAABWHgAAVh4AAFgeAABYHgAAWh4AAFoeAABcHgAAXB4AAF4eAABeHgAAYB4AAGAeAABiHgAAYh4AAGQeAABkHgAAZh4AAGYeAABoHgAAaB4AAGoeAABqHgAAbB4AAGweAABuHgAAbh4AAHAeAABwHgAAch4AAHIeAAB0HgAAdB4AAHYeAAB2HgAAeB4AAHgeAAB6HgAAeh4AAHweAAB8HgAAfh4AAH4eAACAHgAAgB4AAIIeAACCHgAAhB4AAIQeAACGHgAAhh4AAIgeAACIHgAAih4AAIoeAACMHgAAjB4AAI4eAACOHgAAkB4AAJAeAACSHgAAkh4AAJQeAACUHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADUAQAZ1AEANNQBAE3UAQBo1AEAgdQBAJzUAQCc1AEAntQBAJ/UAQCi1AEAotQBAKXUAQCm1AEAqdQBAKzUAQCu1AEAtdQBANDUAQDp1AEABNUBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQA41QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAbNUBAIXVAQCg1QEAudUBANTVAQDt1QEACNYBACHWAQA81gEAVdYBAHDWAQCJ1gEAqNYBAMDWAQDi1gEA+tYBABzXAQA01wEAVtcBAG7XAQCQ1wEAqNcBAMrXAQDK1wEAAOkBACHpAQAw8QEASfEBAFDxAQBp8QEAcPEBAInxAQAAAAAAAwAAADAAAAA5AAAAQQAAAEYAAABhAAAAZgAAAAAAAAD2AgAAMAAAADkAAABBAAAAWgAAAF8AAABfAAAAYQAAAHoAAACqAAAAqgAAALUAAAC1AAAAugAAALoAAADAAAAA1gAAANgAAAD2AAAA+AAAAMECAADGAgAA0QIAAOACAADkAgAA7AIAAOwCAADuAgAA7gIAAAADAAB0AwAAdgMAAHcDAAB6AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAgwQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAACRBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAA0AUAAOoFAADvBQAA8gUAABAGAAAaBgAAIAYAAGkGAABuBgAA0wYAANUGAADcBgAA3wYAAOgGAADqBgAA/AYAAP8GAAD/BgAAEAcAAEoHAABNBwAAsQcAAMAHAAD1BwAA+gcAAPoHAAD9BwAA/QcAAAAIAAAtCAAAQAgAAFsIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACYCAAA4QgAAOMIAABjCQAAZgkAAG8JAABxCQAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAALwJAADECQAAxwkAAMgJAADLCQAAzgkAANcJAADXCQAA3AkAAN0JAADfCQAA4wkAAOYJAADxCQAA/AkAAPwJAAD+CQAA/gkAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA8CgAAPAoAAD4KAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAGYKAAB1CgAAgQoAAIMKAACFCgAAjQoAAI8KAACRCgAAkwoAAKgKAACqCgAAsAoAALIKAACzCgAAtQoAALkKAAC8CgAAxQoAAMcKAADJCgAAywoAAM0KAADQCgAA0AoAAOAKAADjCgAA5goAAO8KAAD5CgAA/woAAAELAAADCwAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPAsAAEQLAABHCwAASAsAAEsLAABNCwAAVQsAAFcLAABcCwAAXQsAAF8LAABjCwAAZgsAAG8LAABxCwAAcQsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA0AsAANALAADXCwAA1wsAAOYLAADvCwAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAgAwAAIMMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE4NAABUDQAAVw0AAF8NAABjDQAAZg0AAG8NAAB6DQAAfw0AAIENAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA5g0AAO8NAADyDQAA8w0AAAEOAAA6DgAAQA4AAE4OAABQDgAAWQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAAAA8AABgPAAAZDwAAIA8AACkPAAA1DwAANQ8AADcPAAA3DwAAOQ8AADkPAAA+DwAARw8AAEkPAABsDwAAcQ8AAIQPAACGDwAAlw8AAJkPAAC8DwAAxg8AAMYPAAAAEAAASRAAAFAQAACdEAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAABfEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADuFgAA+BYAAAAXAAAVFwAAHxcAADQXAABAFwAAUxcAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAIAXAADTFwAA1xcAANcXAADcFwAA3RcAAOAXAADpFwAACxgAAA0YAAAPGAAAGRgAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOxkAAEYZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAA0BkAANkZAAAAGgAAGxoAACAaAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAApxoAAKcaAACwGgAAzhoAAAAbAABMGwAAUBsAAFkbAABrGwAAcxsAAIAbAADzGwAAABwAADccAABAHAAASRwAAE0cAAB9HAAAgBwAAIgcAACQHAAAuhwAAL0cAAC/HAAA0BwAANIcAADUHAAA+hwAAAAdAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMwfAADQHwAA0x8AANYfAADbHwAA4B8AAOwfAADyHwAA9B8AAPYfAAD8HwAAPyAAAEAgAABUIAAAVCAAAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAANAgAADwIAAAAiEAAAIhAAAHIQAAByEAAAohAAATIQAAFSEAABUhAAAZIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAAtIQAALyEAADkhAAA8IQAAPyEAAEUhAABJIQAATiEAAE4hAABgIQAAiCEAALYkAADpJAAAACwAAOQsAADrLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAA/y0AAC8uAAAvLgAABTAAAAcwAAAhMAAALzAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJkwAACaMAAAnTAAAJ8wAAChMAAA+jAAAPwwAAD/MAAABTEAAC8xAAAxMQAAjjEAAKAxAAC/MQAA8DEAAP8xAAAANAAAv00AAABOAACMpAAA0KQAAP2kAAAApQAADKYAABCmAAArpgAAQKYAAHKmAAB0pgAAfaYAAH+mAADxpgAAF6cAAB+nAAAipwAAiKcAAIunAADKpwAA0KcA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AIQDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAAAvBQAAMQUAAFYFAABZBQAAigUAAI0FAACPBQAAkQUAAMcFAADQBQAA6gUAAO8FAAD0BQAAAAYAAA0HAAAPBwAASgcAAE0HAACxBwAAwAcAAPoHAAD9BwAALQgAADAIAAA+CAAAQAgAAFsIAABeCAAAXggAAGAIAABqCAAAcAgAAI4IAACQCAAAkQgAAJgIAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdgoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAPoLAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAAB3DAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwA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AMUJAADGCQAAyQkAAMoJAADPCQAA1gkAANgJAADbCQAA3gkAAN4JAADkCQAA5QkAAP8JAAAACgAABAoAAAQKAAALCgAADgoAABEKAAASCgAAKQoAACkKAAAxCgAAMQoAADQKAAA0CgAANwoAADcKAAA6CgAAOwoAAD0KAAA9CgAAQwoAAEYKAABJCgAASgoAAE4KAABQCgAAUgoAAFgKAABdCgAAXQoAAF8KAABlCgAAdwoAAIAKAACECgAAhAoAAI4KAACOCgAAkgoAAJIKAACpCgAAqQoAALEKAACxCgAAtAoAALQKAAC6CgAAuwoAAMYKAADGCgAAygoAAMoKAADOCgAAzwoAANEKAADfCgAA5AoAAOUKAADyCgAA+AoAAAALAAAACwAABAsAAAQLAAANCwAADgsAABELAAASCwAAKQsAACkLAAAxCwAAMQsAADQLAAA0CwAAOgsAADsLAABFCwAARgsAAEkLAABKCwAATgsAAFQLAABYCwAAWwsAAF4LAABeCwAAZAsAAGULAAB4CwAAgQsAAIQLAACECwAAiwsAAI0LAACRCwAAkQsAAJYLAACYCwAAmwsAAJsLAACdCwAAnQsAAKALAACiCwAApQsAAKcLAACrCwAArQsAALoLAAC9CwAAwwsAAMULAADJCwAAyQsAAM4LAADPCwAA0QsAANYLAADYCwAA5QsAAPsLAAD/CwAADQwAAA0MAAARDAAAEQwAACkMAAApDAAAOgwAADsMAABFDAAARQwAAEkMAABJDAAATgwAAFQMAABXDAAAVwwAAFsMAABcDAAAXgwAAF8MAABkDAAAZQwAAHAMAAB2DAAAjQwAAI0MAACRDAAAkQwAAKkMAACpDAAAtAwAALQMAAC6DAAAuwwAAMUMAADFDAAAyQwAAMkMAADODAAA1AwAANcMAADcDAAA3wwAAN8MAADkDAAA5QwAAPAMAADwDAAA8wwAAP8MAAANDQAADQ0AABENAAARDQAARQ0AAEUNAABJDQAASQ0AAFANAABTDQAAZA0AAGUNAACADQAAgA0AAIQNAACEDQAAlw0AAJkNAACyDQAAsg0AALwNAAC8DQAAvg0AAL8NAADHDQAAyQ0AAMsNAADODQAA1Q0AANUNAADXDQAA1w0AAOANAADlDQAA8A0AAPENAAD1DQAAAA4AADsOAAA+DgAAXA4A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AQAAcAEAAHIBAAByAQAAdAEAAHQBAAB2AQAAdgEAAHgBAAB5AQAAewEAAHsBAAB9AQAAfQEAAH8BAAB/AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxQEAAMcBAADIAQAAygEAAMsBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPIBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABFAwAARQMAAHADAABwAwAAcgMAAHIDAAB2AwAAdgMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAI8DAACRAwAAoQMAAKMDAACrAwAAwgMAAMIDAADPAwAA0QMAANUDAADWAwAA2AMAANgDAADaAwAA2gMAANwDAADcAwAA3gMAAN4DAADgAwAA4AMAAOIDAADiAwAA5AMAAOQDAADmAwAA5gMAAOgDAADoAwAA6gMAAOoDAADsAwAA7AMAAO4DAADuAwAA8AMAAPEDAAD0AwAA9QMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAhwUAAIcFAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAAD4EwAA/RMAAIAcAACIHAAAkBwAALocAAC9HAAAvxwAAAAeAAAAHgAAAh4AAAIeAAAEHgAABB4AAAYeAAAGHgAACB4AAAgeAAAKHgAACh4AAAweAAAMHgAADh4AAA4eAAAQHgAAEB4AABIeAAASHgAAFB4AABQeAAAWHgAAFh4AABgeAAAYHgAAGh4AABoeAAAcHgAAHB4AAB4eAAAeHgAAIB4AACAeAAAiHgAAIh4AACQeAAAkHgAAJh4AACYeAAAoHgAAKB4AACoeAAAqHgAALB4AACweAAAuHgAALh4AADAeAAAwHgAAMh4AADIeAAA0HgAANB4AADYeAAA2HgAAOB4AADgeAAA6HgAAOh4AADweAAA8HgAAPh4AAD4eAABAHgAAQB4AAEIeAABCHgAARB4AAEQeAABGHgAARh4AAEgeAABIHgAASh4AAEoeAABMHgAATB4AAE4eAABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJoeAACbHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AAIAfAACvHwAAsh8AALQfAAC3HwAAvB8AAMIfAADEHwAAxx8AAMwfAADYHwAA2x8AAOgfAADsHwAA8h8AAPQfAAD3HwAA/B8AACYhAAAmIQAAKiEAACshAAAyIQAAMiEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAABwqwAAv6sAAAD7AAAG+wAAE/sAABf7AAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADpAQAh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AABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJ4eAACeHgAAoB4AAKAeAACiHgAAoh4AAKQeAACkHgAAph4AAKYeAACoHgAAqB4AAKoeAACqHgAArB4AAKweAACuHgAArh4AALAeAACwHgAAsh4AALIeAAC0HgAAtB4AALYeAAC2HgAAuB4AALgeAAC6HgAAuh4AALweAAC8HgAAvh4AAL4eAADAHgAAwB4AAMIeAADCHgAAxB4AAMQeAADGHgAAxh4AAMgeAADIHgAAyh4AAMoeAADMHgAAzB4AAM4eAADOHgAA0B4AANAeAADSHgAA0h4AANQeAADUHgAA1h4AANYeAADYHgAA2B4AANoeAADaHgAA3B4AANweAADeHgAA3h4AAOAeAADgHgAA4h4AAOIeAADkHgAA5B4AAOYeAADmHgAA6B4AAOgeAADqHgAA6h4AAOweAADsHgAA7h4AAO4eAADwHgAA8B4AAPIeAADyHgAA9B4AAPQeAAD2HgAA9h4AAPgeAAD4HgAA+h4AAPoeAAD8HgAA/B4AAP4eAAD+HgAACB8AAA8fAAAYHwAAHR8AACgfAAAvHwAAOB8AAD8fAABIHwAATR8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAABfHwAAaB8AAG8fAACIHwAAjx8AAJgfAACfHwAAqB8AAK8fAAC4HwAAvB8AAMgfAADMHwAA2B8AANsfAADoHwAA7B8AAPgfAAD8HwAAJiEAACYhAAAqIQAAKyEAADIhAAAyIQAAYCEAAG8hAACDIQAAgyEAALYkAADPJAAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEan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AAC/HgAAwR4AAMEeAADDHgAAwx4AAMUeAADFHgAAxx4AAMceAADJHgAAyR4AAMseAADLHgAAzR4AAM0eAADPHgAAzx4AANEeAADRHgAA0x4AANMeAADVHgAA1R4AANceAADXHgAA2R4AANkeAADbHgAA2x4AAN0eAADdHgAA3x4AAN8eAADhHgAA4R4AAOMeAADjHgAA5R4AAOUeAADnHgAA5x4AAOkeAADpHgAA6x4AAOseAADtHgAA7R4AAO8eAADvHgAA8R4AAPEeAADzHgAA8x4AAPUeAAD1HgAA9x4AAPceAAD5HgAA+R4AAPseAAD7HgAA/R4AAP0eAAD/HgAABx8AABAfAAAVHwAAIB8AACcfAAAwHwAANx8AAEAfAABFHwAAUB8AAFcfAABgHwAAZx8AAHAfAAB9HwAAgB8AAIcfAACQHwAAlx8AAKAfAACnHwAAsB8AALQfAAC2HwAAtx8AAL4fAAC+HwAAwh8AAMQfAADGHwAAxx8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHMsAABzLAAAdiwAAHYsAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADjLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAL6cAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAeqcAAHqnAAB8pwAAfKcAAH+nAAB/pwAAgacAAIGnAACDpwAAg6cAAIWnAACFpwAAh6cAAIenAACMpwAAjKcAAJGnAACRpwAAk6cAAJSnAACXpwAAl6cAAJmnAACZpwAAm6cAAJunAACdpwAAnacAAJ+nAACfpwAAoacAAKGnAACjpwAAo6cAAKWnAAClpwAAp6cAAKenAACppwAAqacAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADXpwAA16cAANmnAADZpwAA9qcAAPanAABTqwAAU6sAAHCrAAC/qwAAAPsAAAb7AAAT+wAAF/sAAEH/AABa/wAAKAQBAE8EAQDYBAEA+wQBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAwAwBAPIMAQDAGAEA3xgBAGBuAQB/bgEAIukBAEPpAQBBoOQGC8cncwIAAGEAAAB6AAAAtQAAALUAAADfAAAA9gAAAPgAAAD/AAAAAQEAAAEBAAADAQAAAwEAAAUBAAAFAQAABwEAAAcBAAAJAQAACQEAAAsBAAALAQAADQEAAA0BAAAPAQAADwEAABEBAAARAQAAEwEAABMBAAAVAQAAFQEAABcBAAAXAQAAGQEAABkBAAAbAQAAGwEAAB0BAAAdAQAAHwEAAB8BAAAhAQAAIQEAACMBAAAjAQAAJQEAACUBAAAnAQAAJwEAACkBAAApAQAAKwEAACsBAAAtAQAALQEAAC8BAAAvAQAAMQEAADEBAAAzAQAAMwEAADUBAAA1AQAANwEAADcBAAA6AQAAOgEAADwBAAA8AQAAPgEAAD4BAABAAQAAQAEAAEIBAABCAQAARAEAAEQBAABGAQAARgEAAEgBAABJAQAASwEAAEsBAABNAQAATQEAAE8BAABPAQAAUQEAAFEBAABTAQAAUwEAAFUBAABVAQAAVwEAAFcBAABZAQAAWQEAAFsBAABbAQAAXQEAAF0BAABfAQAAXwEAAGEBAABhAQAAYwEAAGMBAABlAQAAZQEAAGcBAABnAQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACMAQAAkgEAAJIBAACVAQAAlQEAAJkBAACaAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAK0BAACtAQAAsAEAALABAAC0AQAAtAEAALYBAAC2AQAAuQEAALkBAAC9AQAAvQEAAL8BAAC/AQAAxQEAAMYBAADIAQAAyQEAAMsBAADMAQAAzgEAAM4BAADQAQAA0AEAANIBAADSAQAA1AEAANQBAADWAQAA1gEAANgBAADYAQAA2gEAANoBAADcAQAA3QEAAN8BAADfAQAA4QEAAOEBAADjAQAA4wEAAOUBAADlAQAA5wEAAOcBAADpAQAA6QEAAOsBAADrAQAA7QEAAO0BAADvAQAA8AEAAPIBAADzAQAA9QEAAPUBAAD5AQAA+QEAAPsBAAD7AQAA/QEAAP0BAAD/AQAA/wEAAAECAAABAgAAAwIAAAMCAAAFAgAABQIAAAcCAAAHAgAACQIAAAkCAAALAgAACwIAAA0CAAANAgAADwIAAA8CAAARAgAAEQIAABMCAAATAgAAFQIAABUCAAAXAgAAFwIAABkCAAAZAgAAGwIAABsCAAAdAgAAHQIAAB8CAAAfAgAAIwIAACMCAAAlAgAAJQIAACcCAAAnAgAAKQIAACkCAAArAgAAKwIAAC0CAAAtAgAALwIAAC8CAAAxAgAAMQIAADMCAAAzAgAAPAIAADwCAAA/AgAAQAIAAEICAABCAgAARwIAAEcCAABJAgAASQIAAEsCAABLAgAATQIAAE0CAABPAgAAVAIAAFYCAABXAgAAWQIAAFkCAABbAgAAXAIAAGACAABhAgAAYwIAAGMCAABlAgAAZgIAAGgCAABsAgAAbwIAAG8CAABxAgAAcgIAAHUCAAB1AgAAfQIAAH0CAACAAgAAgAIAAIICAACDAgAAhwIAAIwCAACSAgAAkgIAAJ0CAACeAgAARQMAAEUDAABxAwAAcQMAAHMDAABzAwAAdwMAAHcDAAB7AwAAfQMAAJADAACQAwAArAMAAM4DAADQAwAA0QMAANUDAADXAwAA2QMAANkDAADbAwAA2wMAAN0DAADdAwAA3wMAAN8DAADhAwAA4QMAAOMDAADjAwAA5QMAAOUDAADnAwAA5wMAAOkDAADpAwAA6wMAAOsDAADtAwAA7QMAAO8DAADzAwAA9QMAAPUDAAD4AwAA+AMAAPsDAAD7AwAAMAQAAF8EAABhBAAAYQQAAGMEAABjBAAAZQQAAGUEAABnBAAAZwQAAGkEAABpBAAAawQAAGsEAABtBAAAbQQAAG8EAABvBAAAcQQAAHEEAABzBAAAcwQAAHUEAAB1BAAAdwQAAHcEAAB5BAAAeQQAAHsEAAB7BAAAfQQAAH0EAAB/BAAAfwQAAIEEAACBBAAAiwQAAIsEAACNBAAAjQQAAI8EAACPBAAAkQQAAJEEAACTBAAAkwQAAJUEAACVBAAAlwQAAJcEAACZBAAAmQQAAJsEAACbBAAAnQQAAJ0EAACfBAAAnwQAAKEEAAChBAAAowQAAKMEAAClBAAApQQAAKcEAACnBAAAqQQAAKkEAACrBAAAqwQAAK0EAACtBAAArwQAAK8EAACxBAAAsQQAALMEAACzBAAAtQQAALUEAAC3BAAAtwQAALkEAAC5BAAAuwQAALsEAAC9BAAAvQQAAL8EAAC/BAAAwgQAAMIEAADEBAAAxAQAAMYEAADGBAAAyAQAAMgEAADKBAAAygQAAMwEAADMBAAAzgQAAM8EAADRBAAA0QQAANMEAADTBAAA1QQAANUEAADXBAAA1wQAANkEAADZBAAA2wQAANsEAADdBAAA3QQAAN8EAADfBAAA4QQAAOEEAADjBAAA4wQAAOUEAADlBAAA5wQAAOcEAADpBAAA6QQAAOsEAADrBAAA7QQAAO0EAADvBAAA7wQAAPEEAADxBAAA8wQAAPMEAAD1BAAA9QQAAPcEAAD3BAAA+QQAAPkEAAD7BAAA+wQAAP0EAAD9BAAA/wQAAP8EAAABBQAAAQUAAAMFAAADBQAABQUAAAUFAAAHBQAABwUAAAkFAAAJBQAACwUAAAsFAAANBQAADQUAAA8FAAAPBQAAEQUAABEFAAATBQAAEwUAABUFAAAVBQAAFwUAABcFAAAZBQAAGQUAABsFAAAbBQAAHQUAAB0FAAAfBQAAHwUAACEFAAAhBQAAIwUAACMFAAAlBQAAJQUAACcFAAAnBQAAKQUAACkFAAArBQAAKwUAAC0FAAAtBQAALwUAAC8FAABhBQAAhwUAANAQAAD6EAAA/RAAAP8QAAD4EwAA/RMAAIAcAACIHAAAeR0AAHkdAAB9HQAAfR0AAI4dAACOHQAAAR4AAAEeAAADHgAAAx4AAAUeAAAFHgAABx4AAAceAAAJHgAACR4AAAseAAALHgAADR4AAA0eAAAPHgAADx4AABEeAAARHgAAEx4AABMeAAAVHgAAFR4AABceAAAXHgAAGR4AABkeAAAbHgAAGx4AAB0eAAAdHgAAHx4AAB8eAAAhHgAAIR4AACMeAAAjHgAAJR4AACUeAAAnHgAAJx4AACkeAAApHgAAKx4AACseAAAtHgAALR4AAC8eAAAvHgAAMR4AADEeAAAzHgAAMx4AADUeAAA1HgAANx4AADceAAA5HgAAOR4AADseAAA7HgAAPR4AAD0eAAA/HgAAPx4AAEEeAABBHgAAQx4AAEMeAABFHgAARR4AAEceAABHHgAASR4AAEkeAABLHgAASx4AAE0eAABNHgAATx4AAE8eAABRHgAAUR4AAFMeAABTHgAAVR4AAFUeAABXHgAAVx4AAFkeAABZHgAAWx4AAFseAABdHgAAXR4AAF8eAABfHgAAYR4AAGEeAABjHgAAYx4AAGUeAABlHgAAZx4AAGceAABpHgAAaR4AAGseAABrHgAAbR4AAG0eAABvHgAAbx4AAHEeAABxHgAAcx4AAHMeAAB1HgAAdR4AAHceAAB3HgAAeR4AAHkeAAB7HgAAex4AAH0eAAB9HgAAfx4AAH8eAACBHgAAgR4AAIMeAACDHgAAhR4AAIUeAACHHgAAhx4AAIkeAACJHgAAix4AAIseAACNHgAAjR4AAI8eAACPHgAAkR4AAJEeAACTHgAAkx4AAJUeAACbHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAtB8AALYfAAC3HwAAvB8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADMHwAAzB8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAAD8HwAA/B8AAE4hAABOIQAAcCEAAH8hAACEIQAAhCEAANAkAADpJAAAMCwAAF8sAABhLAAAYSwAAGUsAABmLAAAaCwAAGgsAABqLAAAaiwAAGwsAABsLAAAcywAAHMsAAB2LAAAdiwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOMsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAm6YAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAvpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAG+nAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAkacAAJGnAACTpwAAlKcAAJenAACXpwAAmacAAJmnAACbpwAAm6cAAJ2nAACdpwAAn6cAAJ+nAAChpwAAoacAAKOnAACjpwAApacAAKWnAACnpwAAp6cAAKmnAACppwAAtacAALWnAAC3pwAAt6cAALmnAAC5pwAAu6cAALunAAC9pwAAvacAAL+nAAC/pwAAwacAAMGnAADDpwAAw6cAAMinAADIpwAAyqcAAMqnAADRpwAA0acAANenAADXpwAA2acAANmnAAD2pwAA9qcAAFOrAABTqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAQf8AAFr/AAAoBAEATwQBANgEAQD7BAEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQDADAEA8gwBAMAYAQDfGAEAYG4BAH9uAQAi6QEAQ+kBAAAAAAADAAAAoBMAAPUTAAD4EwAA/RMAAHCrAAC/qwAAAQAAALAPAQDLDwEAQfCLBwvTK7oCAAB4AwAAeQMAAIADAACDAwAAiwMAAIsDAACNAwAAjQMAAKIDAACiAwAAMAUAADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAP8FAAAOBwAADgcAAEsHAABMBwAAsgcAAL8HAAD7BwAA/AcAAC4IAAAvCAAAPwgAAD8IAABcCAAAXQgAAF8IAABfCAAA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CQAAggkAAIMJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC9CQAAvQkAAL8JAADACQAAxwkAAMgJAADLCQAAzAkAAM4JAADOCQAA3AkAAN0JAADfCQAA4QkAAOYJAAD9CQAAAwoAAAMKAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAD4KAABACgAAWQoAAFwKAABeCgAAXgoAAGYKAABvCgAAcgoAAHQKAAB2CgAAdgoAAIMKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAMAKAADJCgAAyQoAAMsKAADMCgAA0AoAANAKAADgCgAA4QoAAOYKAADxCgAA+QoAAPkKAAACCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAAD0LAAA9CwAAQAsAAEALAABHCwAASAsAAEsLAABMCwAAXAsAAF0LAABfCwAAYQsAAGYLAAB3CwAAgwsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC/CwAAvwsAAMELAADCCwAAxgsAAMgLAADKCwAAzAsAANALAADQCwAA5gsAAPoLAAABDAAAAwwAAAUMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPQwAAD0MAABBDAAARAwAAFgMAABaDAAAXQwAAF0MAABgDAAAYQwAAGYMAABvDAAAdwwAAIAMAACCDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvQwAAL4MAADADAAAwQwAAMMMAADEDAAAxwwAAMgMAADKDAAAywwAAN0MAADeDAAA4AwAAOEMAADmDAAA7wwAAPEMAADyDAAAAg0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAD0NAAA/DQAAQA0AAEYNAABIDQAASg0AAEwNAABODQAATw0AAFQNAABWDQAAWA0AAGENAABmDQAAfw0AAIINAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AANANAADRDQAA2A0AAN4NAADmDQAA7w0AAPINAAD0DQAAAQ4AADAOAAAyDgAAMw4AAD8OAABGDgAATw4AAFsOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AALAOAACyDgAAsw4AAL0OAAC9DgAAwA4AAMQOAADGDgAAxg4AANAOAADZDgAA3A4AAN8OAAAADwAAFw8AABoPAAA0DwAANg8AADYPAAA4DwAAOA8AADoPAABHDwAASQ8AAGwPAAB/DwAAfw8AAIUPAACFDwAAiA8AAIwPAAC+DwAAxQ8AAMcPAADMDwAAzg8AANoPAAAAEAAALBAAADEQAAAxEAAAOBAAADgQAAA7EAAAPBAAAD8QAABXEAAAWhAAAF0QAABhEAAAcBAAAHUQAACBEAAAgxAAAIQQAACHEAAAjBAAAI4QAACcEAAAnhAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAEgSAABKEgAATRIAAFASAABWEgAAWBIAAFgSAABaEgAAXRIAAGASAACIEgAAihIAAI0SAACQEgAAsBIAALISAAC1EgAAuBIAAL4SAADAEgAAwBIAAMISAADFEgAAyBIAANYSAADYEgAAEBMAABITAAAVEwAAGBMAAFoTAABgEwAAfBMAAIATAACZEwAAoBMAAPUTAAD4EwAA/RMAAAAUAACcFgAAoBYAAPgWAAAAFwAAERcAABUXAAAVFwAAHxcAADEXAAA0FwAANhcAAEAXAABRFwAAYBcAAGwXAABuFwAAcBcAAIAXAACzFwAAthcAALYXAAC+FwAAxRcAAMcXAADIFwAA1BcAANwXAADgFwAA6RcAAPAXAAD5FwAAABgAAAoYAAAQGAAAGRgAACAYAAB4GAAAgBgAAIQYAACHGAAAqBgAAKoYAACqGAAAsBgAAPUYAAAAGQAAHhkAACMZAAAmGQAAKRkAACsZAAAwGQAAMRkAADMZAAA4GQAAQBkAAEAZAABEGQAAbRkAAHAZAAB0GQAAgBkAAKsZAACwGQAAyRkAANAZAADaGQAA3hkAABYaAAAZGgAAGhoAAB4aAABVGgAAVxoAAFcaAABhGgAAYRoAAGMaAABkGgAAbRoAAHIaAACAGgAAiRoAAJAaAACZGgAAoBoAAK0aAAAEGwAAMxsAADsbAAA7GwAAPRsAAEEbAABDGwAATBsAAFAbAABqGwAAdBsAAH4bAACCGwAAoRsAAKYbAACnGwAAqhsAAKobAACuGwAA5RsAAOcbAADnGwAA6hsAAOwbAADuGwAA7hsAAPIbAADzGwAA/BsAACscAAA0HAAANRwAADscAABJHAAATRwAAIgcAACQHAAAuhwAAL0cAADHHAAA0xwAANMcAADhHAAA4RwAAOkcAADsHAAA7hwAAPMcAAD1HAAA9xwAAPocAAD6HAAAAB0AAL8dAAAAHgAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAADEHwAAxh8AANMfAADWHwAA2x8AAN0fAADvHwAA8h8AAPQfAAD2HwAA/h8AAAAgAAAKIAAAECAAACcgAAAvIAAAXyAAAHAgAABxIAAAdCAAAI4gAACQIAAAnCAAAKAgAADAIAAAACEAAIshAACQIQAAJiQAAEAkAABKJAAAYCQAAHMrAAB2KwAAlSsAAJcrAADuLAAA8iwAAPMsAAD5LAAAJS0AACctAAAnLQAALS0AAC0tAAAwLQAAZy0AAG8tAABwLQAAgC0AAJYtAACgLQAApi0AAKgtAACuLQAAsC0AALYtAAC4LQAAvi0AAMAtAADGLQAAyC0AAM4tAADQLQAA1i0AANgtAADeLQAAAC4AAF0uAACALgAAmS4AAJsuAADzLgAAAC8AANUvAADwLwAA+y8AAAAwAAApMAAAMDAAAD8wAABBMAAAljAAAJswAAD/MAAABTEAAC8xAAAxMQAAjjEAAJAxAADjMQAA8DEAAB4yAAAgMgAAjKQAAJCkAADGpAAA0KQAACumAABApgAAbqYAAHOmAABzpgAAfqYAAJ2mAACgpgAA76YAAPKmAAD3pgAAAKcAAMqnAADQpwAA0acAANOnAADTpwAA1acAANmnAADypwAAAagAAAOoAAAFqAAAB6gAAAqoAAAMqAAAJKgAACeoAAArqAAAMKgAADmoAABAqAAAd6gAAICoAADDqAAAzqgAANmoAADyqAAA/qgAAACpAAAlqQAALqkAAEapAABSqQAAU6kAAF+pAAB8qQAAg6kAALKpAAC0qQAAtakAALqpAAC7qQAAvqkAAM2pAADPqQAA2akAAN6pAADkqQAA5qkAAP6pAAAAqgAAKKoAAC+qAAAwqgAAM6oAADSqAABAqgAAQqoAAESqAABLqgAATaoAAE2qAABQqgAAWaoAAFyqAAB7qgAAfaoAAK+qAACxqgAAsaoAALWqAAC2qgAAuaoAAL2qAADAqgAAwKoAAMKqAADCqgAA26oAAOuqAADuqgAA9aoAAAGrAAAGqwAACasAAA6rAAARqwAAFqsAACCrAAAmqwAAKKsAAC6rAAAwqwAAa6sAAHCrAADkqwAA5qsAAOerAADpqwAA7KsAAPCrAAD5qwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAPkAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAAHfsAAB/7AAA2+wAAOPsAADz7AAA++wAAPvsAAED7AABB+wAAQ/sAAET7AABG+wAAwvsAANP7AACP/QAAkv0AAMf9AADP/QAAz/0AAPD9AAD//QAAEP4AABn+AAAw/gAAUv4AAFT+AABm/gAAaP4AAGv+AABw/gAAdP4AAHb+AAD8/gAAAf8AAJ3/AACg/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAA4P8AAOb/AADo/wAA7v8AAPz/AAD9/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQAAAQEAAgEBAAcBAQAzAQEANwEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAPwBAQCAAgEAnAIBAKACAQDQAgEA4QIBAPsCAQAAAwEAIwMBAC0DAQBKAwEAUAMBAHUDAQCAAwEAnQMBAJ8DAQDDAwEAyAMBANUDAQAABAEAnQQBAKAEAQCpBAEAsAQBANMEAQDYBAEA+wQBAAAFAQAnBQEAMAUBAGMFAQBvBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAAAYBADYHAQBABwEAVQcBAGAHAQBnBwEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQBVCAEAVwgBAJ4IAQCnCAEArwgBAOAIAQDyCAEA9AgBAPUIAQD7CAEAGwkBAB8JAQA5CQEAPwkBAD8JAQCACQEAtwkBALwJAQDPCQEA0gkBAAAKAQAQCgEAEwoBABUKAQAXCgEAGQoBADUKAQBACgEASAoBAFAKAQBYCgEAYAoBAJ8KAQDACgEA5AoBAOsKAQD2CgEAAAsBADULAQA5CwEAVQsBAFgLAQByCwEAeAsBAJELAQCZCwEAnAsBAKkLAQCvCwEAAAwBAEgMAQCADAEAsgwBAMAMAQDyDAEA+gwBACMNAQAwDQEAOQ0BAGAOAQB+DgEAgA4BAKkOAQCtDgEArQ4BALAOAQCxDgEAAA8BACcPAQAwDwEARQ8BAFEPAQBZDwEAcA8BAIEPAQCGDwEAiQ8BALAPAQDLDwEA4A8BAPYPAQAAEAEAABABAAIQAQA3EAEARxABAE0QAQBSEAEAbxABAHEQAQByEAEAdRABAHUQAQCCEAEAshABALcQAQC4EAEAuxABALwQAQC+EAEAwRABANAQAQDoEAEA8BABAPkQAQADEQEAJhEBACwRAQAsEQEANhEBAEcRAQBQEQEAchEBAHQRAQB2EQEAghEBALURAQC/EQEAyBEBAM0RAQDOEQEA0BEBAN8RAQDhEQEA9BEBAAASAQAREgEAExIBAC4SAQAyEgEAMxIBADUSAQA1EgEAOBIBAD0SAQCAEgEAhhIBAIgSAQCIEgEAihIBAI0SAQCPEgEAnRIBAJ8SAQCpEgEAsBIBAN4SAQDgEgEA4hIBAPASAQD5EgEAAhMBAAMTAQAFEwEADBMBAA8TAQAQEwEAExMBACgTAQAqEwEAMBMBADITAQAzEwEANRMBADkTAQA9EwEAPRMBAD8TAQA/EwEAQRMBAEQTAQBHEwEASBMBAEsTAQBNEwEAUBMBAFATAQBdEwEAYxMBAAAUAQA3FAEAQBQBAEEUAQBFFAEARRQBAEcUAQBbFAEAXRQBAF0UAQBfFAEAYRQBAIAUAQCvFAEAsRQBALIUAQC5FAEAuRQBALsUAQC8FAEAvhQBAL4UAQDBFAEAwRQBAMQUAQDHFAEA0BQBANkUAQCAFQEArhUBALAVAQCxFQEAuBUBALsVAQC+FQEAvhUBAMEVAQDbFQEAABYBADIWAQA7FgEAPBYBAD4WAQA+FgEAQRYBAEQWAQBQFgEAWRYBAGAWAQBsFgEAgBYBAKoWAQCsFgEArBYBAK4WAQCvFgEAthYBALYWAQC4FgEAuRYBAMAWAQDJFgEAABcBABoXAQAgFwEAIRcBACYXAQAmFwEAMBcBAEYXAQAAGAEALhgBADgYAQA4GAEAOxgBADsYAQCgGAEA8hgBAP8YAQAGGQEACRkBAAkZAQAMGQEAExkBABUZAQAWGQEAGBkBAC8ZAQAxGQEANRkBADcZAQA4GQEAPRkBAD0ZAQA/GQEAQhkBAEQZAQBGGQEAUBkBAFkZAQCgGQEApxkBAKoZAQDTGQEA3BkBAN8ZAQDhGQEA5BkBAAAaAQAAGgEACxoBADIaAQA5GgEAOhoBAD8aAQBGGgEAUBoBAFAaAQBXGgEAWBoBAFwaAQCJGgEAlxoBAJcaAQCaGgEAohoBALAaAQD4GgEAABwBAAgcAQAKHAEALxwBAD4cAQA+HAEAQBwBAEUcAQBQHAEAbBwBAHAcAQCPHAEAqRwBAKkcAQCxHAEAsRwBALQcAQC0HAEAAB0BAAYdAQAIHQEACR0BAAsdAQAwHQEARh0BAEYdAQBQHQEAWR0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAjh0BAJMdAQCUHQEAlh0BAJYdAQCYHQEAmB0BAKAdAQCpHQEA4B4BAPIeAQD1HgEA+B4BALAfAQCwHwEAwB8BAPEfAQD/HwEAmSMBAAAkAQBuJAEAcCQBAHQkAQCAJAEAQyUBAJAvAQDyLwEAADABAC40AQAARAEARkYBAABoAQA4agEAQGoBAF5qAQBgagEAaWoBAG5qAQC+agEAwGoBAMlqAQDQagEA7WoBAPVqAQD1agEAAGsBAC9rAQA3awEARWsBAFBrAQBZawEAW2sBAGFrAQBjawEAd2sBAH1rAQCPawEAQG4BAJpuAQAAbwEASm8BAFBvAQCHbwEAk28BAJ9vAQDgbwEA428BAPBvAQDxbwEAAHABAPeHAQAAiAEA1YwBAACNAQAIjQEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAALABACKxAQBQsQEAUrEBAGSxAQBnsQEAcLEBAPuyAQAAvAEAarwBAHC8AQB8vAEAgLwBAIi8AQCQvAEAmbwBAJy8AQCcvAEAn7wBAJ+8AQBQzwEAw88BAADQAQD10AEAANEBACbRAQAp0QEAZNEBAGbRAQBm0QEAatEBAG3RAQCD0QEAhNEBAIzRAQCp0QEArtEBAOrRAQAA0gEAQdIBAEXSAQBF0gEA4NIBAPPSAQAA0wEAVtMBAGDTAQB40wEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAy9cBAM7XAQD/2QEAN9oBADraAQBt2gEAdNoBAHbaAQCD2gEAhdoBAIvaAQAA3wEAHt8BAADhAQAs4QEAN+EBAD3hAQBA4QEASeEBAE7hAQBP4QEAkOIBAK3iAQDA4gEA6+IBAPDiAQD54gEA/+IBAP/iAQDg5wEA5ucBAOjnAQDr5wEA7ecBAO7nAQDw5wEA/ucBAADoAQDE6AEAx+gBAM/oAQAA6QEAQ+kBAEvpAQBL6QEAUOkBAFnpAQBe6QEAX+kBAHHsAQC07AEAAe0BAD3tAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQDw7gEA8e4BAADwAQAr8AEAMPABAJPwAQCg8AEArvABALHwAQC/8AEAwfABAM/wAQDR8AEA9fABAADxAQCt8QEA5vEBAALyAQAQ8gEAO/IBAEDyAQBI8gEAUPIBAFHyAQBg8gEAZfIBAADzAQDX9gEA3fYBAOz2AQDw9gEA/PYBAAD3AQBz9wEAgPcBANj3AQDg9wEA6/cBAPD3AQDw9wEAAPgBAAv4AQAQ+AEAR/gBAFD4AQBZ+AEAYPgBAIf4AQCQ+AEArfgBALD4AQCx+AEAAPkBAFP6AQBg+gEAbfoBAHD6AQB0+gEAePoBAHz6AQCA+gEAhvoBAJD6AQCs+gEAsPoBALr6AQDA+gEAxfoBAND6AQDZ+gEA4PoBAOf6AQDw+gEA9voBAAD7AQCS+wEAlPsBAMr7AQDw+wEA+fsBAAAAAgDfpgIAAKcCADi3AgBAtwIAHbgCACC4AgChzgIAsM4CAODrAgAA+AIAHfoCAAAAAwBKEwMAAAAAAGEBAAAAAwAAbwMAAIMEAACJBAAAkQUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAABAGAAAaBgAASwYAAF8GAABwBgAAcAYAANYGAADcBgAA3wYAAOQGAADnBgAA6AYAAOoGAADtBgAAEQcAABEHAAAwBwAASgcAAKYHAACwBwAA6wcAAPMHAAD9BwAA/QcAABYIAAAZCAAAGwgAACMIAAAlCAAAJwgAACkIAAAtCAAAWQgAAFsIAACYCAAAnwgAAMoIAADhCAAA4wgAAAIJAAA6CQAAOgkAADwJAAA8CQAAQQkAAEgJAABNCQAATQkAAFEJAABXCQAAYgkAAGMJAACBCQAAgQkAALwJAAC8CQAAvgkAAL4JAADBCQAAxAkAAM0JAADNCQAA1wkAANcJAADiCQAA4wkAAP4JAAD+CQAAAQoAAAIKAAA8CgAAPAoAAEEKAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAcAoAAHEKAAB1CgAAdQoAAIEKAACCCgAAvAoAALwKAADBCgAAxQoAAMcKAADICgAAzQoAAM0KAADiCgAA4woAAPoKAAD/CgAAAQsAAAELAAA8CwAAPAsAAD4LAAA/CwAAQQsAAEQLAABNCwAATQsAAFULAABXCwAAYgsAAGMLAACCCwAAggsAAL4LAAC+CwAAwAsAAMALAADNCwAAzQsAANcLAADXCwAAAAwAAAAMAAAEDAAABAwAADwMAAA8DAAAPgwAAEAMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABiDAAAYwwAAIEMAACBDAAAvAwAALwMAAC/DAAAvwwAAMIMAADCDAAAxgwAAMYMAADMDAAAzQwAANUMAADWDAAA4gwAAOMMAAAADQAAAQ0AADsNAAA8DQAAPg0AAD4NAABBDQAARA0AAE0NAABNDQAAVw0AAFcNAABiDQAAYw0AAIENAACBDQAAyg0AAMoNAADPDQAAzw0AANINAADUDQAA1g0AANYNAADfDQAA3w0AADEOAAAxDgAANA4AADoOAABHDgAATg4AALEOAACxDgAAtA4AALwOAADIDgAAzQ4AABgPAAAZDwAANQ8AADUPAAA3DwAANw8AADkPAAA5DwAAcQ8AAH4PAACADwAAhA8AAIYPAACHDwAAjQ8AAJcPAACZDwAAvA8AAMYPAADGDwAALRAAADAQAAAyEAAANxAAADkQAAA6EAAAPRAAAD4QAABYEAAAWRAAAF4QAABgEAAAcRAAAHQQAACCEAAAghAAAIUQAACGEAAAjRAAAI0QAACdEAAAnRAAAF0TAABfEwAAEhcAABQXAAAyFwAAMxcAAFIXAABTFwAAchcAAHMXAAC0FwAAtRcAALcXAAC9FwAAxhcAAMYXAADJFwAA0xcAAN0XAADdFwAACxgAAA0YAAAPGAAADxgAAIUYAACGGAAAqRgAAKkYAAAgGQAAIhkAACcZAAAoGQAAMhkAADIZAAA5GQAAOxkAABcaAAAYGgAAGxoAABsaAABWGgAAVhoAAFgaAABeGgAAYBoAAGAaAABiGgAAYhoAAGUaAABsGgAAcxoAAHwaAAB/GgAAfxoAALAaAADOGgAAABsAAAMbAAA0GwAAOhsAADwbAAA8GwAAQhsAAEIbAABrGwAAcxsAAIAbAACBGwAAohsAAKUbAACoGwAAqRsAAKsbAACtGwAA5hsAAOYbAADoGwAA6RsAAO0bAADtGwAA7xsAAPEbAAAsHAAAMxwAADYcAAA3HAAA0BwAANIcAADUHAAA4BwAAOIcAADoHAAA7RwAAO0cAAD0HAAA9BwAAPgcAAD5HAAAwB0AAP8dAAAMIAAADCAAANAgAADwIAAA7ywAAPEsAAB/LQAAfy0AAOAtAAD/LQAAKjAAAC8wAACZMAAAmjAAAG+mAABypgAAdKYAAH2mAACepgAAn6YAAPCmAADxpgAAAqgAAAKoAAAGqAAABqgAAAuoAAALqAAAJagAACaoAAAsqAAALKgAAMSoAADFqAAA4KgAAPGoAAD/qAAA/6gAACapAAAtqQAAR6kAAFGpAACAqQAAgqkAALOpAACzqQAAtqkAALmpAAC8qQAAvakAAOWpAADlqQAAKaoAAC6qAAAxqgAAMqoAADWqAAA2qgAAQ6oAAEOqAABMqgAATKoAAHyqAAB8qgAAsKoAALCqAACyqgAAtKoAALeqAAC4qgAAvqoAAL+qAADBqgAAwaoAAOyqAADtqgAA9qoAAPaqAADlqwAA5asAAOirAADoqwAA7asAAO2rAAAe+wAAHvsAAAD+AAAP/gAAIP4AAC/+AACe/wAAn/8AAP0BAQD9AQEA4AIBAOACAQB2AwEAegMBAAEKAQADCgEABQoBAAYKAQAMCgEADwoBADgKAQA6CgEAPwoBAD8KAQDlCgEA5goBACQNAQAnDQEAqw4BAKwOAQBGDwEAUA8BAIIPAQCFDwEAARABAAEQAQA4EAEARhABAHAQAQBwEAEAcxABAHQQAQB/EAEAgRABALMQAQC2EAEAuRABALoQAQDCEAEAwhABAAARAQACEQEAJxEBACsRAQAtEQEANBEBAHMRAQBzEQEAgBEBAIERAQC2EQEAvhEBAMkRAQDMEQEAzxEBAM8RAQAvEgEAMRIBADQSAQA0EgEANhIBADcSAQA+EgEAPhIBAN8SAQDfEgEA4xIBAOoSAQAAEwEAARMBADsTAQA8EwEAPhMBAD4TAQBAEwEAQBMBAFcTAQBXEwEAZhMBAGwTAQBwEwEAdBMBADgUAQA/FAEAQhQBAEQUAQBGFAEARhQBAF4UAQBeFAEAsBQBALAUAQCzFAEAuBQBALoUAQC6FAEAvRQBAL0UAQC/FAEAwBQBAMIUAQDDFAEArxUBAK8VAQCyFQEAtRUBALwVAQC9FQEAvxUBAMAVAQDcFQEA3RUBADMWAQA6FgEAPRYBAD0WAQA/FgEAQBYBAKsWAQCrFgEArRYBAK0WAQCwFgEAtRYBALcWAQC3FgEAHRcBAB8XAQAiFwEAJRcBACcXAQArFwEALxgBADcYAQA5GAEAOhgBADAZAQAwGQEAOxkBADwZAQA+GQEAPhkBAEMZAQBDGQEA1BkBANcZAQDaGQEA2xkBAOAZAQDgGQEAARoBAAoaAQAzGgEAOBoBADsaAQA+GgEARxoBAEcaAQBRGgEAVhoBAFkaAQBbGgEAihoBAJYaAQCYGgEAmRoBADAcAQA2HAEAOBwBAD0cAQA/HAEAPxwBAJIcAQCnHAEAqhwBALAcAQCyHAEAsxwBALUcAQC2HAEAMR0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEUdAQBHHQEARx0BAJAdAQCRHQEAlR0BAJUdAQCXHQEAlx0BAPMeAQD0HgEA8GoBAPRqAQAwawEANmsBAE9vAQBPbwEAj28BAJJvAQDkbwEA5G8BAJ28AQCevAEAAM8BAC3PAQAwzwEARs8BAGXRAQBl0QEAZ9EBAGnRAQBu0QEActEBAHvRAQCC0QEAhdEBAIvRAQCq0QEArdEBAELSAQBE0gEAANoBADbaAQA72gEAbNoBAHXaAQB12gEAhNoBAITaAQCb2gEAn9oBAKHaAQCv2gEAAOABAAbgAQAI4AEAGOABABvgAQAh4AEAI+ABACTgAQAm4AEAKuABADDhAQA24QEAruIBAK7iAQDs4gEA7+IBANDoAQDW6AEAROkBAErpAQAgAA4AfwAOAAABDgDvAQ4AAAAAADcAAABNCQAATQkAAM0JAADNCQAATQoAAE0KAADNCgAAzQoAAE0LAABNCwAAzQsAAM0LAABNDAAATQwAAM0MAADNDAAAOw0AADwNAABNDQAATQ0AAMoNAADKDQAAOg4AADoOAAC6DgAAug4AAIQPAACEDwAAORAAADoQAAAUFwAAFRcAADQXAAA0FwAA0hcAANIXAABgGgAAYBoAAEQbAABEGwAAqhsAAKsbAADyGwAA8xsAAH8tAAB/LQAABqgAAAaoAAAsqAAALKgAAMSoAADEqAAAU6kAAFOpAADAqQAAwKkAAPaqAAD2qgAA7asAAO2rAAA/CgEAPwoBAEYQAQBGEAEAcBABAHAQAQB/EAEAfxABALkQAQC5EAEAMxEBADQRAQDAEQEAwBEBADUSAQA1EgEA6hIBAOoSAQBNEwEATRMBAEIUAQBCFAEAwhQBAMIUAQC/FQEAvxUBAD8WAQA/FgEAthYBALYWAQArFwEAKxcBADkYAQA5GAEAPRkBAD4ZAQDgGQEA4BkBADQaAQA0GgEARxoBAEcaAQCZGgEAmRoBAD8cAQA/HAEARB0BAEUdAQCXHQEAlx0BAAAAAAAkAAAAcAMAAHMDAAB1AwAAdwMAAHoDAAB9AwAAfwMAAH8DAACEAwAAhAMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAOEDAADwAwAA/wMAACYdAAAqHQAAXR0AAGEdAABmHQAAah0AAL8dAAC/HQAAAB8AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAxB8AAMYfAADTHwAA1h8AANsfAADdHwAA7x8AAPIfAAD0HwAA9h8AAP4fAAAmIQAAJiEAAGWrAABlqwAAQAEBAI4BAQCgAQEAoAEBAADSAQBF0gEAQeDFCAtyDgAAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAEHgxggLMwYAAABgHQEAZR0BAGcdAQBoHQEAah0BAI4dAQCQHQEAkR0BAJMdAQCYHQEAoB0BAKkdAQBBoMcIC4IBEAAAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA8CgAAPAoAAD4KAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAGYKAAB2CgBBsMgIC6MBFAAAAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAAUwAAAFMAAABzAAAAcwAAAhMAAAKTAAADgwAAA7MAAAADQAAL9NAAAATgAA/58AAAD5AABt+gAAcPoAANn6AADibwEA428BAPBvAQDxbwEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwBB4MkIC3IOAAAAABEAAP8RAAAuMAAALzAAADExAACOMQAAADIAAB4yAABgMgAAfjIAAGCpAAB8qQAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAoP8AAL7/AADC/wAAx/8AAMr/AADP/wAA0v8AANf/AADa/wAA3P8AQeDKCAvCAQIAAAAADQEAJw0BADANAQA5DQEAAQAAACAXAAA0FwAAAwAAAOAIAQDyCAEA9AgBAPUIAQD7CAEA/wgBAAAAAAAJAAAAkQUAAMcFAADQBQAA6gUAAO8FAAD0BQAAHfsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AABP+wAAAAAAAAYAAAAwAAAAOQAAAEEAAABGAAAAYQAAAGYAAAAQ/wAAGf8AACH/AAAm/wAAQf8AAEb/AEGwzAgLQgUAAABBMAAAljAAAJ0wAACfMAAAAbABAB+xAQBQsQEAUrEBAADyAQAA8gEAAQAAAKGkAADzpAAAAQAAAJ+CAADxggBBgM0IC1IKAAAALQAAAC0AAACtAAAArQAAAIoFAACKBQAABhgAAAYYAAAQIAAAESAAABcuAAAXLgAA+zAAAPswAABj/gAAY/4AAA3/AAAN/wAAZf8AAGX/AEHgzQgLwy8CAAAA8C8AAPEvAAD0LwAA+y8AAAEAAADyLwAA8y8AAPQCAAAwAAAAOQAAAEEAAABaAAAAXwAAAF8AAABhAAAAegAAAKoAAACqAAAAtQAAALUAAAC3AAAAtwAAALoAAAC6AAAAwAAAANYAAADYAAAA9gAAAPgAAADBAgAAxgIAANECAADgAgAA5AIAAOwCAADsAgAA7gIAAO4CAAAAAwAAdAMAAHYDAAB3AwAAegMAAH0DAAB/AwAAfwMAAIYDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAAD1AwAA9wMAAIEEAACDBAAAhwQAAIoEAAAvBQAAMQUAAFYFAABZBQAAWQUAAGAFAACIBQAAkQUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAANAFAADqBQAA7wUAAPIFAAAQBgAAGgYAACAGAABpBgAAbgYAANMGAADVBgAA3AYAAN8GAADoBgAA6gYAAPwGAAD/BgAA/wYAABAHAABKBwAATQcAALEHAADABwAA9QcAAPoHAAD6BwAA/QcAAP0HAAAACAAALQgAAEAIAABbCAAAYAgAAGoIAABwCAAAhwgAAIkIAACOCAAAmAgAAOEIAADjCAAAYwkAAGYJAABvCQAAcQkAAIMJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC8CQAAxAkAAMcJAADICQAAywkAAM4JAADXCQAA1wkAANwJAADdCQAA3wkAAOMJAADmCQAA8QkAAPwJAAD8CQAA/gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdQoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADvCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAABvCwAAcQsAAHELAACCCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAAL4LAADCCwAAxgsAAMgLAADKCwAAzQsAANALAADQCwAA1wsAANcLAADmCwAA7wsAAAAMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPAwAAEQMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABYDAAAWgwAAF0MAABdDAAAYAwAAGMMAABmDAAAbwwAAIAMAACDDAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAALwMAADEDAAAxgwAAMgMAADKDAAAzQwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAOYMAADvDAAA8QwAAPIMAAAADQAADA0AAA4NAAAQDQAAEg0AAEQNAABGDQAASA0AAEoNAABODQAAVA0AAFcNAABfDQAAYw0AAGYNAABvDQAAeg0AAH8NAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADKDQAAyg0AAM8NAADUDQAA1g0AANYNAADYDQAA3w0AAOYNAADvDQAA8g0AAPMNAAABDgAAOg4AAEAOAABODgAAUA4AAFkOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AAL0OAADADgAAxA4AAMYOAADG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vx4AAMEeAADBHgAAwx4AAMMeAADFHgAAxR4AAMceAADHHgAAyR4AAMkeAADLHgAAyx4AAM0eAADNHgAAzx4AAM8eAADRHgAA0R4AANMeAADTHgAA1R4AANUeAADXHgAA1x4AANkeAADZHgAA2x4AANseAADdHgAA3R4AAN8eAADfHgAA4R4AAOEeAADjHgAA4x4AAOUeAADlHgAA5x4AAOceAADpHgAA6R4AAOseAADrHgAA7R4AAO0eAADvHgAA7x4AAPEeAADxHgAA8x4AAPMeAAD1HgAA9R4AAPceAAD3HgAA+R4AAPkeAAD7HgAA+x4AAP0eAAD9HgAA/x4AAAcfAAAQHwAAFR8AACAfAAAnHwAAMB8AADcfAABAHwAARR8AAFAfAABXHwAAYB8AAGcfAABwHwAAfR8AAIAfAACHHwAAkB8AAJcfAACgHwAApx8AALAfAAC0HwAAth8AALcfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADQHwAA0x8AANYfAADXHwAA4B8AAOcfAADyHwAA9B8AAPYfAAD3HwAACiEAAAohAAAOIQAADyEAABMhAAATIQAALyEAAC8hAAA0IQAANCEAADkhAAA5IQAAPCEAAD0hAABGIQAASSEAAE4hAABOIQAAhCEAAIQhAAAwLAAAXywAAGEsAABhLAAAZSwAAGYsAABoLAAAaCwAAGosAABqLAAAbCwAAGwsAABxLAAAcSwAAHMsAAB0LAAAdiwAAHssAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADkLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAMacAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAcacAAHinAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAjqcAAI6nAACRpwAAkacAAJOnAACVpwAAl6cAAJenAACZpwAAmacAAJunAACbpwAAnacAAJ2nAACfpwAAn6cAAKGnAAChpwAAo6cAAKOnAAClpwAApacAAKenAACnpwAAqacAAKmnAACvpwAA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AACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAIMhAACDIQAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqnAACcpwAAnKcAAJ6nAACepwAAoKcAAKCnAACipwAAoqcAAKSnAACkpwAApqcAAKanAACopwAAqKcAAKqnAACupwAAsKcAALSnAAC2pwAAtqcAALinAAC4pwAAuqcAALqnAAC8pwAAvKcAAL6nAAC+pwAAwKcAAMCnAADCpwAAwqcAAMSnAADHpwAAyacAAMmnAADQpwAA0KcAANanAADWpwAA2KcAANinAAD1pwAA9acAACH/AAA6/wAAAAQBACcEAQCwBAEA0wQBAHAFAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAgAwBALIMAQCgGAEAvxgBAEBuAQBfbgEAANQBABnUAQA01AEATdQBAGjUAQCB1AEAnNQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC11AEA0NQBAOnUAQAE1QEABdUBAAfVAQAK1QEADdUBABTVAQAW1QEAHNUBADjVAQA51QEAO9UBAD7VAQBA1QEARNUBAEbVAQBG1QEAStUBAFDVAQBs1QEAhdUBAKDVAQC51QEA1NUBAO3VAQAI1gEAIdYBADzWAQBV1gEAcNYBAInWAQCo1gEAwNYBAOLWAQD61gEAHNcBADTXAQBW1wEAbtcBAJDXAQCo1wEAytcBAMrXAQAA6QEAIekBAAEAAACAAgEAnAIBAAIAAAAgCQEAOQkBAD8JAQA/CQEAQaDcCgvzEisBAAAAAwAAbwMAAIMEAACJBAAAkQUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAABAGAAAaBgAASwYAAF8GAABwBgAAcAYAANYGAADcBgAA3wYAAOQGAADnBgAA6AYAAOoGAADtBgAAEQcAABEHAAAwBwAASgcAAKYHAACwBwAA6wcAAPMHAAD9BwAA/QcAABYIAAAZCAAAGwgAACMIAAAlCAAAJwgAACkIAAAtCAAAWQgAAFsIAACYCAAAnwgAAMoIAADhCAAA4wgAAAMJAAA6CQAAPAkAAD4JAABPCQAAUQkAAFcJAABiCQAAYwkAAIEJAACDCQAAvAkAALwJAAC+CQAAxAkAAMcJAADICQAAywkAAM0JAADXCQAA1wkAAOIJAADjCQAA/gkAAP4JAAABCgAAAwoAADwKAAA8CgAAPgoAAEIKAABHCgAASAoAAEsKAABNCgAAUQoAAFEKAABwCgAAcQoAAHUKAAB1CgAAgQoAAIMKAAC8CgAAvAoAAL4KAADFCgAAxwoAAMkKAADLCgAAzQoAAOIKAADjCgAA+goAAP8KAAABCwAAAwsAADwLAAA8CwAAPgsAAEQLAABHCwAASAsAAEsLAABNCwAAVQsAAFcLAABiCwAAYwsAAIILAACCCwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA1wsAANcLAAAADAAABAwAADwMAAA8DAAAPgwAAEQMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABiDAAAYwwAAIEMAACDDAAAvAwAALwMAAC+DAAAxAwAAMYMAADIDAAAygwAAM0MAADVDAAA1gwAAOIMAADjDAAAAA0AAAMNAAA7DQAAPA0AAD4NAABEDQAARg0AAEgNAABKDQAATQ0AAFcNAABXDQAAYg0AAGMNAACBDQAAgw0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA8g0AAPMNAAAxDgAAMQ4AADQOAAA6DgAARw4AAE4OAACxDgAAsQ4AALQOAAC8DgAAyA4AAM0OAAAYDwAAGQ8AADUPAAA1DwAANw8AADcPAAA5DwAAOQ8AAD4PAAA/DwAAcQ8AAIQPAACGDwAAhw8AAI0PAACXDwAAmQ8AALwPAADGDwAAxg8AACsQAAA+EAAAVhAAAFkQAABeEAAAYBAAAGIQAABkEAAAZxAAAG0QAABxEAAAdBAAAIIQAACNEAAAjxAAAI8QAACaEAAAnRAAAF0TAABfEwAAEhcAABUXAAAyFwAANBcAAFIXAABTFwAAchcAAHMXAAC0FwAA0xcAAN0XAADdFwAACxgAAA0YAAAPGAAADxgAAIUYAACGGAAAqRgAAKkYAAAgGQAAKxkAADAZAAA7GQAAFxoAABsaAABVGgAAXhoAAGAaAAB8GgAAfxoAAH8aAACwGgAAzhoAAAAbAAAEGwAANBsAAEQbAABrGwAAcxsAAIAbAACCGwAAoRsAAK0bAADmGwAA8xsAACQcAAA3HAAA0BwAANIcAADUHAAA6BwAAO0cAADtHAAA9BwAAPQcAAD3HAAA+RwAAMAdAAD/HQAA0CAAAPAgAADvLAAA8SwAAH8tAAB/LQAA4C0AAP8tAAAqMAAALzAAAJkwAACaMAAAb6YAAHKmAAB0pgAAfaYAAJ6mAACfpgAA8KYAAPGmAAACqAAAAqgAAAaoAAAGqAAAC6gAAAuoAAAjqAAAJ6gAACyoAAAsqAAAgKgAAIGoAAC0qAAAxagAAOCoAADxqAAA/6gAAP+oAAAmqQAALakAAEepAABTqQAAgKkAAIOpAACzqQAAwKkAAOWpAADlqQAAKaoAADaqAABDqgAAQ6oAAEyqAABNqgAAe6oAAH2qAACwqgAAsKoAALKqAAC0qgAAt6oAALiqAAC+qgAAv6oAAMGqAADBqgAA66oAAO+qAAD1qgAA9qoAAOOrAADqqwAA7KsAAO2rAAAe+wAAHvsAAAD+AAAP/gAAIP4AAC/+AAD9AQEA/QEBAOACAQDgAgEAdgMBAHoDAQABCgEAAwoBAAUKAQAGCgEADAoBAA8KAQA4CgEAOgoBAD8KAQA/CgEA5QoBAOYKAQAkDQEAJw0BAKsOAQCsDgEARg8BAFAPAQCCDwEAhQ8BAAAQAQACEAEAOBABAEYQAQBwEAEAcBABAHMQAQB0EAEAfxABAIIQAQCwEAEAuhABAMIQAQDCEAEAABEBAAIRAQAnEQEANBEBAEURAQBGEQEAcxEBAHMRAQCAEQEAghEBALMRAQDAEQEAyREBAMwRAQDOEQEAzxEBACwSAQA3EgEAPhIBAD4SAQDfEgEA6hIBAAATAQADEwEAOxMBADwTAQA+EwEARBMBAEcTAQBIEwEASxMBAE0TAQBXEwEAVxMBAGITAQBjEwEAZhMBAGwTAQBwEwEAdBMBADUUAQBGFAEAXhQBAF4UAQCwFAEAwxQBAK8VAQC1FQEAuBUBAMAVAQDcFQEA3RUBADAWAQBAFgEAqxYBALcWAQAdFwEAKxcBACwYAQA6GAEAMBkBADUZAQA3GQEAOBkBADsZAQA+GQEAQBkBAEAZAQBCGQEAQxkBANEZAQDXGQEA2hkBAOAZAQDkGQEA5BkBAAEaAQAKGgEAMxoBADkaAQA7GgEAPhoBAEcaAQBHGgEAURoBAFsaAQCKGgEAmRoBAC8cAQA2HAEAOBwBAD8cAQCSHAEApxwBAKkcAQC2HAEAMR0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEUdAQBHHQEARx0BAIodAQCOHQEAkB0BAJEdAQCTHQEAlx0BAPMeAQD2HgEA8GoBAPRqAQAwawEANmsBAE9vAQBPbwEAUW8BAIdvAQCPbwEAkm8BAORvAQDkbwEA8G8BAPFvAQCdvAEAnrwBAADPAQAtzwEAMM8BAEbPAQBl0QEAadEBAG3RAQBy0QEAe9EBAILRAQCF0QEAi9EBAKrRAQCt0QEAQtIBAETSAQAA2gEANtoBADvaAQBs2gEAddoBAHXaAQCE2gEAhNoBAJvaAQCf2gEAodoBAK/aAQAA4AEABuABAAjgAQAY4AEAG+ABACHgAQAj4AEAJOABACbgAQAq4AEAMOEBADbhAQCu4gEAruIBAOziAQDv4gEA0OgBANboAQBE6QEASukBAAABDgDvAQ4AAQAAAFARAQB2EQEAAQAAAOAeAQD4HgEAQaDvCgtSBwAAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE8NAABUDQAAYw0AAGYNAAB/DQAAAAAAAAIAAABACAAAWwgAAF4IAABeCABBgPAKCxMCAAAAwAoBAOYKAQDrCgEA9goBAEGg8AoLswkDAAAAcBwBAI8cAQCSHAEApxwBAKkcAQC2HAEAAAAAAAcAAAAAHQEABh0BAAgdAQAJHQEACx0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEcdAQBQHQEAWR0BAAAAAACKAAAAKwAAACsAAAA8AAAAPgAAAF4AAABeAAAAfAAAAHwAAAB+AAAAfgAAAKwAAACsAAAAsQAAALEAAADXAAAA1wAAAPcAAAD3AAAA0AMAANIDAADVAwAA1QMAAPADAADxAwAA9AMAAPYDAAAGBgAACAYAABYgAAAWIAAAMiAAADQgAABAIAAAQCAAAEQgAABEIAAAUiAAAFIgAABhIAAAZCAAAHogAAB+IAAAiiAAAI4gAADQIAAA3CAAAOEgAADhIAAA5SAAAOYgAADrIAAA7yAAAAIhAAACIQAAByEAAAchAAAKIQAAEyEAABUhAAAVIQAAGCEAAB0hAAAkIQAAJCEAACghAAApIQAALCEAAC0hAAAvIQAAMSEAADMhAAA4IQAAPCEAAEkhAABLIQAASyEAAJAhAACnIQAAqSEAAK4hAACwIQAAsSEAALYhAAC3IQAAvCEAANshAADdIQAA3SEAAOQhAADlIQAA9CEAAP8iAAAIIwAACyMAACAjAAAhIwAAfCMAAHwjAACbIwAAtSMAALcjAAC3IwAA0CMAANAjAADcIwAA4iMAAKAlAAChJQAAriUAALclAAC8JQAAwSUAAMYlAADHJQAAyiUAAMslAADPJQAA0yUAAOIlAADiJQAA5CUAAOQlAADnJQAA7CUAAPglAAD/JQAABSYAAAYmAABAJgAAQCYAAEImAABCJgAAYCYAAGMmAABtJgAAbyYAAMAnAAD/JwAAACkAAP8qAAAwKwAARCsAAEcrAABMKwAAKfsAACn7AABh/gAAZv4AAGj+AABo/gAAC/8AAAv/AAAc/wAAHv8AADz/AAA8/wAAPv8AAD7/AABc/wAAXP8AAF7/AABe/wAA4v8AAOL/AADp/wAA7P8AAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMvXAQDO1wEA/9cBAADuAQAD7gEABe4BAB/uAQAh7gEAIu4BACTuAQAk7gEAJ+4BACfuAQAp7gEAMu4BADTuAQA37gEAOe4BADnuAQA77gEAO+4BAELuAQBC7gEAR+4BAEfuAQBJ7gEASe4BAEvuAQBL7gEATe4BAE/uAQBR7gEAUu4BAFTuAQBU7gEAV+4BAFfuAQBZ7gEAWe4BAFvuAQBb7gEAXe4BAF3uAQBf7gEAX+4BAGHuAQBi7gEAZO4BAGTuAQBn7gEAau4BAGzuAQBy7gEAdO4BAHfuAQB57gEAfO4BAH7uAQB+7gEAgO4BAInuAQCL7gEAm+4BAKHuAQCj7gEApe4BAKnuAQCr7gEAu+4BAPDuAQDx7gEAQeD5CgvHC7EAAAADCQAAAwkAADsJAAA7CQAAPgkAAEAJAABJCQAATAkAAE4JAABPCQAAggkAAIMJAAC+CQAAwAkAAMcJAADICQAAywkAAMwJAADXCQAA1wkAAAMKAAADCgAAPgoAAEAKAACDCgAAgwoAAL4KAADACgAAyQoAAMkKAADLCgAAzAoAAAILAAADCwAAPgsAAD4LAABACwAAQAsAAEcLAABICwAASwsAAEwLAABXCwAAVwsAAL4LAAC/CwAAwQsAAMILAADGCwAAyAsAAMoLAADMCwAA1wsAANcLAAABDAAAAwwAAEEMAABEDAAAggwAAIMMAAC+DAAAvgwAAMAMAADEDAAAxwwAAMgMAADKDAAAywwAANUMAADWDAAAAg0AAAMNAAA+DQAAQA0AAEYNAABIDQAASg0AAEwNAABXDQAAVw0AAIINAACDDQAAzw0AANENAADYDQAA3w0AAPINAADzDQAAPg8AAD8PAAB/DwAAfw8AACsQAAAsEAAAMRAAADEQAAA4EAAAOBAAADsQAAA8EAAAVhAAAFcQAABiEAAAZBAAAGcQAABtEAAAgxAAAIQQAACHEAAAjBAAAI8QAACPEAAAmhAAAJwQAAAVFwAAFRcAADQXAAA0FwAAthcAALYXAAC+FwAAxRcAAMcXAADIFwAAIxkAACYZAAApGQAAKxkAADAZAAAxGQAAMxkAADgZAAAZGgAAGhoAAFUaAABVGgAAVxoAAFcaAABhGgAAYRoAAGMaAABkGgAAbRoAAHIaAAAEGwAABBsAADUbAAA1GwAAOxsAADsbAAA9GwAAQRsAAEMbAABEGwAAghsAAIIbAAChGwAAoRsAAKYbAACnGwAAqhsAAKobAADnGwAA5xsAAOobAADsGwAA7hsAAO4bAADyGwAA8xsAACQcAAArHAAANBwAADUcAADhHAAA4RwAAPccAAD3HAAALjAAAC8wAAAjqAAAJKgAACeoAAAnqAAAgKgAAIGoAAC0qAAAw6gAAFKpAABTqQAAg6kAAIOpAAC0qQAAtakAALqpAAC7qQAAvqkAAMCpAAAvqgAAMKoAADOqAAA0qgAATaoAAE2qAAB7qgAAe6oAAH2qAAB9qgAA66oAAOuqAADuqgAA76oAAPWqAAD1qgAA46sAAOSrAADmqwAA56sAAOmrAADqqwAA7KsAAOyrAAAAEAEAABABAAIQAQACEAEAghABAIIQAQCwEAEAshABALcQAQC4EAEALBEBACwRAQBFEQEARhEBAIIRAQCCEQEAsxEBALURAQC/EQEAwBEBAM4RAQDOEQEALBIBAC4SAQAyEgEAMxIBADUSAQA1EgEA4BIBAOISAQACEwEAAxMBAD4TAQA/EwEAQRMBAEQTAQBHEwEASBMBAEsTAQBNEwEAVxMBAFcTAQBiEwEAYxMBADUUAQA3FAEAQBQBAEEUAQBFFAEARRQBALAUAQCyFAEAuRQBALkUAQC7FAEAvhQBAMEUAQDBFAEArxUBALEVAQC4FQEAuxUBAL4VAQC+FQEAMBYBADIWAQA7FgEAPBYBAD4WAQA+FgEArBYBAKwWAQCuFgEArxYBALYWAQC2FgEAIBcBACEXAQAmFwEAJhcBACwYAQAuGAEAOBgBADgYAQAwGQEANRkBADcZAQA4GQEAPRkBAD0ZAQBAGQEAQBkBAEIZAQBCGQEA0RkBANMZAQDcGQEA3xkBAOQZAQDkGQEAORoBADkaAQBXGgEAWBoBAJcaAQCXGgEALxwBAC8cAQA+HAEAPhwBAKkcAQCpHAEAsRwBALEcAQC0HAEAtBwBAIodAQCOHQEAkx0BAJQdAQCWHQEAlh0BAPUeAQD2HgEAUW8BAIdvAQDwbwEA8W8BAGXRAQBm0QEAbdEBAHLRAQAAAAAABQAAAIgEAACJBAAAvhoAAL4aAADdIAAA4CAAAOIgAADkIAAAcKYAAHKmAAABAAAAQG4BAJpuAQBBsIULCzMDAAAA4KoAAPaqAADAqwAA7asAAPCrAAD5qwAAAAAAAAIAAAAA6AEAxOgBAMfoAQDW6AEAQfCFCwsnAwAAAKAJAQC3CQEAvAkBAM8JAQDSCQEA/wkBAAEAAACACQEAnwkBAEGghgsLoxUDAAAAAG8BAEpvAQBPbwEAh28BAI9vAQCfbwEAAAAAAFABAAAAAwAAbwMAAIMEAACHBAAAkQUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAABAGAAAaBgAASwYAAF8GAABwBgAAcAYAANYGAADcBgAA3wYAAOQGAADnBgAA6AYAAOoGAADtBgAAEQcAABEHAAAwBwAASgcAAKYHAACwBwAA6wcAAPMHAAD9BwAA/QcAABYIAAAZCAAAGwgAACMIAAAlCAAAJwgAACkIAAAtCAAAWQgAAFsIAACYCAAAnwgAAMoIAADhCAAA4wgAAAIJAAA6CQAAOgkAADwJAAA8CQAAQQkAAEgJAABNCQAATQkAAFEJAABXCQAAYgkAAGMJAACBCQAAgQkAALwJAAC8CQAAwQkAAMQJAADNCQAAzQkAAOIJAADjCQAA/gkAAP4JAAABCgAAAgoAADwKAAA8CgAAQQoAAEIKAABHCgAASAoAAEsKAABNCgAAUQoAAFEKAABwCgAAcQoAAHUKAAB1CgAAgQoAAIIKAAC8CgAAvAoAAMEKAADFCgAAxwoAAMgKAADNCgAAzQoAAOIKAADjCgAA+goAAP8KAAABCwAAAQsAADwLAAA8CwAAPwsAAD8LAABBCwAARAsAAE0LAABNCwAAVQsAAFYLAABiCwAAYwsAAIILAACCCwAAwAsAAMALAADNCwAAzQsAAAAMAAAADAAABAwAAAQMAAA8DAAAPAwAAD4MAABADAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAYgwAAGMMAACBDAAAgQwAALwMAAC8DAAAvwwAAL8MAADGDAAAxgwAAMwMAADNDAAA4gwAAOMMAAAADQAAAQ0AADsNAAA8DQAAQQ0AAEQNAABNDQAATQ0AAGINAABjDQAAgQ0AAIENAADKDQAAyg0AANINAADUDQAA1g0AANYNAAAxDgAAMQ4AADQOAAA6DgAARw4AAE4OAACxDgAAsQ4AALQOAAC8DgAAyA4AAM0OAAAYDwAAGQ8AADUPAAA1DwAANw8AADcPAAA5DwAAOQ8AAHEPAAB+DwAAgA8AAIQPAACGDwAAhw8AAI0PAACXDwAAmQ8AALwPAADGDwAAxg8AAC0QAAAwEAAAMhAAADcQAAA5EAAAOhAAAD0QAAA+EAAAWBAAAFkQAABeEAAAYBAAAHEQAAB0EAAAghAAAIIQAACFEAAAhhAAAI0QAACNEAAAnRAAAJ0QAABdEwAAXxMAABIXAAAUFwAAMhcAADMXAABSFwAAUxcAAHIXAABzFwAAtBcAALUXAAC3FwAAvRcAAMYXAADGFwAAyRcAANMXAADdFwAA3RcAAAsYAAANGAAADxgAAA8YAACFGAAAhhgAAKkYAACpGAAAIBkAACIZAAAnGQAAKBkAADIZAAAyGQAAORkAADsZAAAXGgAAGBoAABsaAAAbGgAAVhoAAFYaAABYGgAAXhoAAGAaAABgGgAAYhoAAGIaAABlGgAAbBoAAHMaAAB8GgAAfxoAAH8aAACwGgAAvRoAAL8aAADOGgAAABsAAAMbAAA0GwAANBsAADYbAAA6GwAAPBsAADwbAABCGwAAQhsAAGsbAABzGwAAgBsAAIEbAACiGwAApRsAAKgbAACpGwAAqxsAAK0bAADmGwAA5hsAAOgbAADpGwAA7RsAAO0bAADvGwAA8RsAACwcAAAzHAAANhwAADccAADQHAAA0hwAANQcAADgHAAA4hwAAOgcAADtHAAA7RwAAPQcAAD0HAAA+BwAAPkcAADAHQAA/x0AANAgAADcIAAA4SAAAOEgAADlIAAA8CAAAO8sAADxLAAAfy0AAH8tAADgLQAA/y0AACowAAAtMAAAmTAAAJowAABvpgAAb6YAAHSmAAB9pgAAnqYAAJ+mAADwpgAA8aYAAAKoAAACqAAABqgAAAaoAAALqAAAC6gAACWoAAAmqAAALKgAACyoAADEqAAAxagAAOCoAADxqAAA/6gAAP+oAAAmqQAALakAAEepAABRqQAAgKkAAIKpAACzqQAAs6kAALapAAC5qQAAvKkAAL2pAADlqQAA5akAACmqAAAuqgAAMaoAADKqAAA1qgAANqoAAEOqAABDqgAATKoAAEyqAAB8qgAAfKoAALCqAACwqgAAsqoAALSqAAC3qgAAuKoAAL6qAAC/qgAAwaoAAMGqAADsqgAA7aoAAPaqAAD2qgAA5asAAOWrAADoqwAA6KsAAO2rAADtqwAAHvsAAB77AAAA/gAAD/4AACD+AAAv/gAA/QEBAP0BAQDgAgEA4AIBAHYDAQB6AwEAAQoBAAMKAQAFCgEABgoBAAwKAQAPCgEAOAoBADoKAQA/CgEAPwoBAOUKAQDmCgEAJA0BACcNAQCrDgEArA4BAEYPAQBQDwEAgg8BAIUPAQABEAEAARABADgQAQBGEAEAcBABAHAQAQBzEAEAdBABAH8QAQCBEAEAsxABALYQAQC5EAEAuhABAMIQAQDCEAEAABEBAAIRAQAnEQEAKxEBAC0RAQA0EQEAcxEBAHMRAQCAEQEAgREBALYRAQC+EQEAyREBAMwRAQDPEQEAzxEBAC8SAQAxEgEANBIBADQSAQA2EgEANxIBAD4SAQA+EgEA3xIBAN8SAQDjEgEA6hIBAAATAQABEwEAOxMBADwTAQBAEwEAQBMBAGYTAQBsEwEAcBMBAHQTAQA4FAEAPxQBAEIUAQBEFAEARhQBAEYUAQBeFAEAXhQBALMUAQC4FAEAuhQBALoUAQC/FAEAwBQBAMIUAQDDFAEAshUBALUVAQC8FQEAvRUBAL8VAQDAFQEA3BUBAN0VAQAzFgEAOhYBAD0WAQA9FgEAPxYBAEAWAQCrFgEAqxYBAK0WAQCtFgEAsBYBALUWAQC3FgEAtxYBAB0XAQAfFwEAIhcBACUXAQAnFwEAKxcBAC8YAQA3GAEAORgBADoYAQA7GQEAPBkBAD4ZAQA+GQEAQxkBAEMZAQDUGQEA1xkBANoZAQDbGQEA4BkBAOAZAQABGgEAChoBADMaAQA4GgEAOxoBAD4aAQBHGgEARxoBAFEaAQBWGgEAWRoBAFsaAQCKGgEAlhoBAJgaAQCZGgEAMBwBADYcAQA4HAEAPRwBAD8cAQA/HAEAkhwBAKccAQCqHAEAsBwBALIcAQCzHAEAtRwBALYcAQAxHQEANh0BADodAQA6HQEAPB0BAD0dAQA/HQEARR0BAEcdAQBHHQEAkB0BAJEdAQCVHQEAlR0BAJcdAQCXHQEA8x4BAPQeAQDwagEA9GoBADBrAQA2awEAT28BAE9vAQCPbwEAkm8BAORvAQDkbwEAnbwBAJ68AQAAzwEALc8BADDPAQBGzwEAZ9EBAGnRAQB70QEAgtEBAIXRAQCL0QEAqtEBAK3RAQBC0gEARNIBAADaAQA22gEAO9oBAGzaAQB12gEAddoBAITaAQCE2gEAm9oBAJ/aAQCh2gEAr9oBAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQAw4QEANuEBAK7iAQCu4gEA7OIBAO/iAQDQ6AEA1ugBAETpAQBK6QEAAAEOAO8BDgBB0JsLCxMCAAAAABYBAEQWAQBQFgEAWRYBAEHwmwsLMwYAAAAAGAAAARgAAAQYAAAEGAAABhgAABkYAAAgGAAAeBgAAIAYAACqGAAAYBYBAGwWAQBBsJwLC6MJAwAAAEBqAQBeagEAYGoBAGlqAQBuagEAb2oBAAAAAAAFAAAAgBIBAIYSAQCIEgEAiBIBAIoSAQCNEgEAjxIBAJ0SAQCfEgEAqRIBAAAAAAADAAAAABAAAJ8QAADgqQAA/qkAAGCqAAB/qgAAAAAAAIYAAAAwAAAAOQAAALIAAACzAAAAuQAAALkAAAC8AAAAvgAAAGAGAABpBgAA8AYAAPkGAADABwAAyQcAAGYJAABvCQAA5gkAAO8JAAD0CQAA+QkAAGYKAABvCgAA5goAAO8KAABmCwAAbwsAAHILAAB3CwAA5gsAAPILAABmDAAAbwwAAHgMAAB+DAAA5gwAAO8MAABYDQAAXg0AAGYNAAB4DQAA5g0AAO8NAABQDgAAWQ4AANAOAADZDgAAIA8AADMPAABAEAAASRAAAJAQAACZEAAAaRMAAHwTAADuFgAA8BYAAOAXAADpFwAA8BcAAPkXAAAQGAAAGRgAAEYZAABPGQAA0BkAANoZAACAGgAAiRoAAJAaAACZGgAAUBsAAFkbAACwGwAAuRsAAEAcAABJHAAAUBwAAFkcAABwIAAAcCAAAHQgAAB5IAAAgCAAAIkgAABQIQAAgiEAAIUhAACJIQAAYCQAAJskAADqJAAA/yQAAHYnAACTJwAA/SwAAP0sAAAHMAAABzAAACEwAAApMAAAODAAADowAACSMQAAlTEAACAyAAApMgAASDIAAE8yAABRMgAAXzIAAIAyAACJMgAAsTIAAL8yAAAgpgAAKaYAAOamAADvpgAAMKgAADWoAADQqAAA2agAAACpAAAJqQAA0KkAANmpAADwqQAA+akAAFCqAABZqgAA8KsAAPmrAAAQ/wAAGf8AAAcBAQAzAQEAQAEBAHgBAQCKAQEAiwEBAOECAQD7AgEAIAMBACMDAQBBAwEAQQMBAEoDAQBKAwEA0QMBANUDAQCgBAEAqQQBAFgIAQBfCAEAeQgBAH8IAQCnCAEArwgBAPsIAQD/CAEAFgkBABsJAQC8CQEAvQkBAMAJAQDPCQEA0gkBAP8JAQBACgEASAoBAH0KAQB+CgEAnQoBAJ8KAQDrCgEA7woBAFgLAQBfCwEAeAsBAH8LAQCpCwEArwsBAPoMAQD/DAEAMA0BADkNAQBgDgEAfg4BAB0PAQAmDwEAUQ8BAFQPAQDFDwEAyw8BAFIQAQBvEAEA8BABAPkQAQA2EQEAPxEBANARAQDZEQEA4REBAPQRAQDwEgEA+RIBAFAUAQBZFAEA0BQBANkUAQBQFgEAWRYBAMAWAQDJFgEAMBcBADsXAQDgGAEA8hgBAFAZAQBZGQEAUBwBAGwcAQBQHQEAWR0BAKAdAQCpHQEAwB8BANQfAQAAJAEAbiQBAGBqAQBpagEAwGoBAMlqAQBQawEAWWsBAFtrAQBhawEAgG4BAJZuAQDg0gEA89IBAGDTAQB40wEAztcBAP/XAQBA4QEASeEBAPDiAQD54gEAx+gBAM/oAQBQ6QEAWekBAHHsAQCr7AEArewBAK/sAQCx7AEAtOwBAAHtAQAt7QEAL+0BAD3tAQAA8QEADPEBAPD7AQD5+wEAQeClCwsTAgAAAIAIAQCeCAEApwgBAK8IAQBBgKYLC0IDAAAAoBkBAKcZAQCqGQEA1xkBANoZAQDkGQEAAAAAAAQAAACAGQAAqxkAALAZAADJGQAA0BkAANoZAADeGQAA3xkAQdCmCwsTAgAAAAAUAQBbFAEAXRQBAGEUAQBB8KYLCxICAAAAwAcAAPoHAAD9BwAA/wcAQZCnCwtjDAAAAO4WAADwFgAAYCEAAIIhAACFIQAAiCEAAAcwAAAHMAAAITAAACkwAAA4MAAAOjAAAOamAADvpgAAQAEBAHQBAQBBAwEAQQMBAEoDAQBKAwEA0QMBANUDAQAAJAEAbiQBAEGAqAsL0wVHAAAAsgAAALMAAAC5AAAAuQAAALwAAAC+AAAA9AkAAPkJAAByCwAAdwsAAPALAADyCwAAeAwAAH4MAABYDQAAXg0AAHANAAB4DQAAKg8AADMPAABpEwAAfBMAAPAXAAD5FwAA2hkAANoZAABwIAAAcCAAAHQgAAB5IAAAgCAAAIkgAABQIQAAXyEAAIkhAACJIQAAYCQAAJskAADqJAAA/yQAAHYnAACTJwAA/SwAAP0sAACSMQAAlTEAACAyAAApMgAASDIAAE8yAABRMgAAXzIAAIAyAACJMgAAsTIAAL8yAAAwqAAANagAAAcBAQAzAQEAdQEBAHgBAQCKAQEAiwEBAOECAQD7AgEAIAMBACMDAQBYCAEAXwgBAHkIAQB/CAEApwgBAK8IAQD7CAEA/wgBABYJAQAbCQEAvAkBAL0JAQDACQEAzwkBANIJAQD/CQEAQAoBAEgKAQB9CgEAfgoBAJ0KAQCfCgEA6woBAO8KAQBYCwEAXwsBAHgLAQB/CwEAqQsBAK8LAQD6DAEA/wwBAGAOAQB+DgEAHQ8BACYPAQBRDwEAVA8BAMUPAQDLDwEAUhABAGUQAQDhEQEA9BEBADoXAQA7FwEA6hgBAPIYAQBaHAEAbBwBAMAfAQDUHwEAW2sBAGFrAQCAbgEAlm4BAODSAQDz0gEAYNMBAHjTAQDH6AEAz+gBAHHsAQCr7AEArewBAK/sAQCx7AEAtOwBAAHtAQAt7QEAL+0BAD3tAQAA8QEADPEBAAAAAAASAAAA0P0AAO/9AAD+/wAA//8AAP7/AQD//wEA/v8CAP//AgD+/wMA//8DAP7/BAD//wQA/v8FAP//BQD+/wYA//8GAP7/BwD//wcA/v8IAP//CAD+/wkA//8JAP7/CgD//woA/v8LAP//CwD+/wwA//8MAP7/DQD//w0A/v8OAP//DgD+/w8A//8PAP7/EAD//xAAQeCtCwsTAgAAAOFvAQDhbwEAcLEBAPuyAQBBgK4LC9MBBAAAAADhAQAs4QEAMOEBAD3hAQBA4QEASeEBAE7hAQBP4QEAAQAAAIAWAACcFgAAAQAAAFAcAAB/HAAAAAAAAAMAAACADAEAsgwBAMAMAQDyDAEA+gwBAP8MAQAAAAAAAgAAAAADAQAjAwEALQMBAC8DAQABAAAAgAoBAJ8KAQABAAAAUAMBAHoDAQAAAAAAAgAAAKADAQDDAwEAyAMBANUDAQABAAAAAA8BACcPAQABAAAAYAoBAH8KAQABAAAAAAwBAEgMAQABAAAAcA8BAIkPAQBB4K8LC3IOAAAAAQsAAAMLAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA8CwAARAsAAEcLAABICwAASwsAAE0LAABVCwAAVwsAAFwLAABdCwAAXwsAAGMLAABmCwAAdwsAQeCwCwsTAgAAALAEAQDTBAEA2AQBAPsEAQBBgLELCxMCAAAAgAQBAJ0EAQCgBAEAqQQBAEGgsQsLohHpAAAARQMAAEUDAACwBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAAEAYAABoGAABLBgAAVwYAAFkGAABfBgAAcAYAAHAGAADWBgAA3AYAAOEGAADkBgAA5wYAAOgGAADtBgAA7QYAABEHAAARBwAAMAcAAD8HAACmBwAAsAcAABYIAAAXCAAAGwgAACMIAAAlCAAAJwgAACkIAAAsCAAA1AgAAN8IAADjCAAA6QgAAPAIAAADCQAAOgkAADsJAAA+CQAATAkAAE4JAABPCQAAVQkAAFcJAABiCQAAYwkAAIEJAACDCQAAvgkAAMQJAADHCQAAyAkAAMsJAADMCQAA1wkAANcJAADiCQAA4wkAAAEKAAADCgAAPgoAAEIKAABHCgAASAoAAEsKAABMCgAAUQoAAFEKAABwCgAAcQoAAHUKAAB1CgAAgQoAAIMKAAC+CgAAxQoAAMcKAADJCgAAywoAAMwKAADiCgAA4woAAPoKAAD8CgAAAQsAAAMLAAA+CwAARAsAAEcLAABICwAASwsAAEwLAABWCwAAVwsAAGILAABjCwAAggsAAIILAAC+CwAAwgsAAMYLAADICwAAygsAAMwLAADXCwAA1wsAAAAMAAADDAAAPgwAAEQMAABGDAAASAwAAEoMAABMDAAAVQwAAFYMAABiDAAAYwwAAIEMAACDDAAAvgwAAMQMAADGDAAAyAwAAMoMAADMDAAA1QwAANYMAADiDAAA4wwAAAANAAADDQAAPg0AAEQNAABGDQAASA0AAEoNAABMDQAAVw0AAFcNAABiDQAAYw0AAIENAACDDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA8g0AAPMNAAAxDgAAMQ4AADQOAAA6DgAATQ4AAE0OAACxDgAAsQ4AALQOAAC5DgAAuw4AALwOAADNDgAAzQ4AAHEPAACBDwAAjQ8AAJcPAACZDwAAvA8AACsQAAA2EAAAOBAAADgQAAA7EAAAPhAAAFYQAABZEAAAXhAAAGAQAABiEAAAZBAAAGcQAABtEAAAcRAAAHQQAACCEAAAjRAAAI8QAACPEAAAmhAAAJ0QAAASFwAAExcAADIXAAAzFwAAUhcAAFMXAAByFwAAcxcAALYXAADIFwAAhRgAAIYYAACpGAAAqRgAACAZAAArGQAAMBkAADgZAAAXGgAAGxoAAFUaAABeGgAAYRoAAHQaAAC/GgAAwBoAAMwaAADOGgAAABsAAAQbAAA1GwAAQxsAAIAbAACCGwAAoRsAAKkbAACsGwAArRsAAOcbAADxGwAAJBwAADYcAADnHQAA9B0AALYkAADpJAAA4C0AAP8tAAB0pgAAe6YAAJ6mAACfpgAAAqgAAAKoAAALqAAAC6gAACOoAAAnqAAAgKgAAIGoAAC0qAAAw6gAAMWoAADFqAAA/6gAAP+oAAAmqQAAKqkAAEepAABSqQAAgKkAAIOpAAC0qQAAv6kAAOWpAADlqQAAKaoAADaqAABDqgAAQ6oAAEyqAABNqgAAe6oAAH2qAACwqgAAsKoAALKqAAC0qgAAt6oAALiqAAC+qgAAvqoAAOuqAADvqgAA9aoAAPWqAADjqwAA6qsAAB77AAAe+wAAdgMBAHoDAQABCgEAAwoBAAUKAQAGCgEADAoBAA8KAQAkDQEAJw0BAKsOAQCsDgEAABABAAIQAQA4EAEARRABAHMQAQB0EAEAghABAIIQAQCwEAEAuBABAMIQAQDCEAEAABEBAAIRAQAnEQEAMhEBAEURAQBGEQEAgBEBAIIRAQCzEQEAvxEBAM4RAQDPEQEALBIBADQSAQA3EgEANxIBAD4SAQA+EgEA3xIBAOgSAQAAEwEAAxMBAD4TAQBEEwEARxMBAEgTAQBLEwEATBMBAFcTAQBXEwEAYhMBAGMTAQA1FAEAQRQBAEMUAQBFFAEAsBQBAMEUAQCvFQEAtRUBALgVAQC+FQEA3BUBAN0VAQAwFgEAPhYBAEAWAQBAFgEAqxYBALUWAQAdFwEAKhcBACwYAQA4GAEAMBkBADUZAQA3GQEAOBkBADsZAQA8GQEAQBkBAEAZAQBCGQEAQhkBANEZAQDXGQEA2hkBAN8ZAQDkGQEA5BkBAAEaAQAKGgEANRoBADkaAQA7GgEAPhoBAFEaAQBbGgEAihoBAJcaAQAvHAEANhwBADgcAQA+HAEAkhwBAKccAQCpHAEAthwBADEdAQA2HQEAOh0BADodAQA8HQEAPR0BAD8dAQBBHQEAQx0BAEMdAQBHHQEARx0BAIodAQCOHQEAkB0BAJEdAQCTHQEAlh0BAPMeAQD2HgEAT28BAE9vAQBRbwEAh28BAI9vAQCSbwEA8G8BAPFvAQCevAEAnrwBAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQBH6QEAR+kBADDxAQBJ8QEAUPEBAGnxAQBw8QEAifEBAAAAAAALAAAATwMAAE8DAABfEQAAYBEAALQXAAC1FwAAZSAAAGUgAABkMQAAZDEAAKD/AACg/wAA8P8AAPj/AAAAAA4AAAAOAAIADgAfAA4AgAAOAP8ADgDwAQ4A/w8OAAAAAAAZAAAAvgkAAL4JAADXCQAA1wkAAD4LAAA+CwAAVwsAAFcLAAC+CwAAvgsAANcLAADXCwAAwgwAAMIMAADVDAAA1gwAAD4NAAA+DQAAVw0AAFcNAADPDQAAzw0AAN8NAADfDQAANRsAADUbAAAMIAAADCAAAC4wAAAvMAAAnv8AAJ//AAA+EwEAPhMBAFcTAQBXEwEAsBQBALAUAQC9FAEAvRQBAK8VAQCvFQEAMBkBADAZAQBl0QEAZdEBAG7RAQBy0QEAIAAOAH8ADgAAAAAABAAAALcAAAC3AAAAhwMAAIcDAABpEwAAcRMAANoZAADaGQBB0MILCyIEAAAAhRgAAIYYAAAYIQAAGCEAAC4hAAAuIQAAmzAAAJwwAEGAwwsLwwEYAAAAqgAAAKoAAAC6AAAAugAAALACAAC4AgAAwAIAAMECAADgAgAA5AIAAEUDAABFAwAAegMAAHoDAAAsHQAAah0AAHgdAAB4HQAAmx0AAL8dAABxIAAAcSAAAH8gAAB/IAAAkCAAAJwgAABwIQAAfyEAANAkAADpJAAAfCwAAH0sAACcpgAAnaYAAHCnAABwpwAA+KcAAPmnAABcqwAAX6sAAIAHAQCABwEAgwcBAIUHAQCHBwEAsAcBALIHAQC6BwEAQdDECwuzCIYAAABeAAAAXgAAANADAADSAwAA1QMAANUDAADwAwAA8QMAAPQDAAD1AwAAFiAAABYgAAAyIAAANCAAAEAgAABAIAAAYSAAAGQgAAB9IAAAfiAAAI0gAACOIAAA0CAAANwgAADhIAAA4SAAAOUgAADmIAAA6yAAAO8gAAACIQAAAiEAAAchAAAHIQAACiEAABMhAAAVIQAAFSEAABkhAAAdIQAAJCEAACQhAAAoIQAAKSEAACwhAAAtIQAALyEAADEhAAAzIQAAOCEAADwhAAA/IQAARSEAAEkhAACVIQAAmSEAAJwhAACfIQAAoSEAAKIhAACkIQAApSEAAKchAACnIQAAqSEAAK0hAACwIQAAsSEAALYhAAC3IQAAvCEAAM0hAADQIQAA0SEAANMhAADTIQAA1SEAANshAADdIQAA3SEAAOQhAADlIQAACCMAAAsjAAC0IwAAtSMAALcjAAC3IwAA0CMAANAjAADiIwAA4iMAAKAlAAChJQAAriUAALYlAAC8JQAAwCUAAMYlAADHJQAAyiUAAMslAADPJQAA0yUAAOIlAADiJQAA5CUAAOQlAADnJQAA7CUAAAUmAAAGJgAAQCYAAEAmAABCJgAAQiYAAGAmAABjJgAAbSYAAG4mAADFJwAAxicAAOYnAADvJwAAgykAAJgpAADYKQAA2ykAAPwpAAD9KQAAYf4AAGH+AABj/gAAY/4AAGj+AABo/gAAPP8AADz/AAA+/wAAPv8AAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMDWAQDC1gEA2tYBANzWAQD61gEA/NYBABTXAQAW1wEANNcBADbXAQBO1wEAUNcBAG7XAQBw1wEAiNcBAIrXAQCo1wEAqtcBAMLXAQDE1wEAy9cBAM7XAQD/1wEAAO4BAAPuAQAF7gEAH+4BACHuAQAi7gEAJO4BACTuAQAn7gEAJ+4BACnuAQAy7gEANO4BADfuAQA57gEAOe4BADvuAQA77gEAQu4BAELuAQBH7gEAR+4BAEnuAQBJ7gEAS+4BAEvuAQBN7gEAT+4BAFHuAQBS7gEAVO4BAFTuAQBX7gEAV+4BAFnuAQBZ7gEAW+4BAFvuAQBd7gEAXe4BAF/uAQBf7gEAYe4BAGLuAQBk7gEAZO4BAGfuAQBq7gEAbO4BAHLuAQB07gEAd+4BAHnuAQB87gEAfu4BAH7uAQCA7gEAie4BAIvuAQCb7gEAoe4BAKPuAQCl7gEAqe4BAKvuAQC77gEAQZDNCwtnBQAAAGAhAABvIQAAtiQAAM8kAAAw8QEASfEBAFDxAQBp8QEAcPEBAInxAQAAAAAABQAAAABrAQBFawEAUGsBAFlrAQBbawEAYWsBAGNrAQB3awEAfWsBAI9rAQABAAAAYAgBAH8IAQBBgM4LC+IBHAAAACEAAAAvAAAAOgAAAEAAAABbAAAAXgAAAGAAAABgAAAAewAAAH4AAAChAAAApwAAAKkAAACpAAAAqwAAAKwAAACuAAAArgAAALAAAACxAAAAtgAAALYAAAC7AAAAuwAAAL8AAAC/AAAA1wAAANcAAAD3AAAA9wAAABAgAAAnIAAAMCAAAD4gAABBIAAAUyAAAFUgAABeIAAAkCEAAF8kAAAAJQAAdScAAJQnAAD/KwAAAC4AAH8uAAABMAAAAzAAAAgwAAAgMAAAMDAAADAwAAA+/QAAP/0AAEX+AABG/gBB8M8LCzcFAAAACQAAAA0AAAAgAAAAIAAAAIUAAACFAAAADiAAAA8gAAAoIAAAKSAAAAEAAADAGgEA+BoBAEGw0AsLMgYAAABfAAAAXwAAAD8gAABAIAAAVCAAAFQgAAAz/gAANP4AAE3+AABP/gAAP/8AAD//AEHw0AsLggYTAAAALQAAAC0AAACKBQAAigUAAL4FAAC+BQAAABQAAAAUAAAGGAAABhgAABAgAAAVIAAAFy4AABcuAAAaLgAAGi4AADouAAA7LgAAQC4AAEAuAABdLgAAXS4AABwwAAAcMAAAMDAAADAwAACgMAAAoDAAADH+AAAy/gAAWP4AAFj+AABj/gAAY/4AAA3/AAAN/wAArQ4BAK0OAQAAAAAATAAAACkAAAApAAAAXQAAAF0AAAB9AAAAfQAAADsPAAA7DwAAPQ8AAD0PAACcFgAAnBYAAEYgAABGIAAAfiAAAH4gAACOIAAAjiAAAAkjAAAJIwAACyMAAAsjAAAqIwAAKiMAAGknAABpJwAAaycAAGsnAABtJwAAbScAAG8nAABvJwAAcScAAHEnAABzJwAAcycAAHUnAAB1JwAAxicAAMYnAADnJwAA5ycAAOknAADpJwAA6ycAAOsnAADtJwAA7ScAAO8nAADvJwAAhCkAAIQpAACGKQAAhikAAIgpAACIKQAAiikAAIopAACMKQAAjCkAAI4pAACOKQAAkCkAAJApAACSKQAAkikAAJQpAACUKQAAlikAAJYpAACYKQAAmCkAANkpAADZKQAA2ykAANspAAD9KQAA/SkAACMuAAAjLgAAJS4AACUuAAAnLgAAJy4AACkuAAApLgAAVi4AAFYuAABYLgAAWC4AAFouAABaLgAAXC4AAFwuAAAJMAAACTAAAAswAAALMAAADTAAAA0wAAAPMAAADzAAABEwAAARMAAAFTAAABUwAAAXMAAAFzAAABkwAAAZMAAAGzAAABswAAAeMAAAHzAAAD79AAA+/QAAGP4AABj+AAA2/gAANv4AADj+AAA4/gAAOv4AADr+AAA8/gAAPP4AAD7+AAA+/gAAQP4AAED+AABC/gAAQv4AAET+AABE/gAASP4AAEj+AABa/gAAWv4AAFz+AABc/gAAXv4AAF7+AAAJ/wAACf8AAD3/AAA9/wAAXf8AAF3/AABg/wAAYP8AAGP/AABj/wBBgNcLC3MKAAAAuwAAALsAAAAZIAAAGSAAAB0gAAAdIAAAOiAAADogAAADLgAAAy4AAAUuAAAFLgAACi4AAAouAAANLgAADS4AAB0uAAAdLgAAIS4AACEuAAABAAAAQKgAAHeoAAACAAAAAAkBABsJAQAfCQEAHwkBAEGA2AsLpxMLAAAAqwAAAKsAAAAYIAAAGCAAABsgAAAcIAAAHyAAAB8gAAA5IAAAOSAAAAIuAAACLgAABC4AAAQuAAAJLgAACS4AAAwuAAAMLgAAHC4AABwuAAAgLgAAIC4AAAAAAAC5AAAAIQAAACMAAAAlAAAAJwAAACoAAAAqAAAALAAAACwAAAAuAAAALwAAADoAAAA7AAAAPwAAAEAAAABcAAAAXAAAAKEAAAChAAAApwAAAKcAAAC2AAAAtwAAAL8AAAC/AAAAfgMAAH4DAACHAwAAhwMAAFoFAABfBQAAiQUAAIkFAADABQAAwAUAAMMFAADDBQAAxgUAAMYFAADzBQAA9AUAAAkGAAAKBgAADAYAAA0GAAAbBgAAGwYAAB0GAAAfBgAAagYAAG0GAADUBgAA1AYAAAAHAAANBwAA9wcAAPkHAAAwCAAAPggAAF4IAABeCAAAZAkAAGUJAABwCQAAcAkAAP0JAAD9CQAAdgoAAHYKAADwCgAA8AoAAHcMAAB3DAAAhAwAAIQMAAD0DQAA9A0AAE8OAABPDgAAWg4AAFsOAAAEDwAAEg8AABQPAAAUDwAAhQ8AAIUPAADQDwAA1A8AANkPAADaDwAAShAAAE8QAAD7EAAA+xAAAGATAABoEwAAbhYAAG4WAADrFgAA7RYAADUXAAA2FwAA1BcAANYXAADYFwAA2hcAAAAYAAAFGAAABxgAAAoYAABEGQAARRkAAB4aAAAfGgAAoBoAAKYaAACoGgAArRoAAFobAABgGwAAfRsAAH4bAAD8GwAA/xsAADscAAA/HAAAfhwAAH8cAADAHAAAxxwAANMcAADTHAAAFiAAABcgAAAgIAAAJyAAADAgAAA4IAAAOyAAAD4gAABBIAAAQyAAAEcgAABRIAAAUyAAAFMgAABVIAAAXiAAAPksAAD8LAAA/iwAAP8sAABwLQAAcC0AAAAuAAABLgAABi4AAAguAAALLgAACy4AAA4uAAAWLgAAGC4AABkuAAAbLgAAGy4AAB4uAAAfLgAAKi4AAC4uAAAwLgAAOS4AADwuAAA/LgAAQS4AAEEuAABDLgAATy4AAFIuAABULgAAATAAAAMwAAA9MAAAPTAAAPswAAD7MAAA/qQAAP+kAAANpgAAD6YAAHOmAABzpgAAfqYAAH6mAADypgAA96YAAHSoAAB3qAAAzqgAAM+oAAD4qAAA+qgAAPyoAAD8qAAALqkAAC+pAABfqQAAX6kAAMGpAADNqQAA3qkAAN+pAABcqgAAX6oAAN6qAADfqgAA8KoAAPGqAADrqwAA66sAABD+AAAW/gAAGf4AABn+AAAw/gAAMP4AAEX+AABG/gAASf4AAEz+AABQ/gAAUv4AAFT+AABX/gAAX/4AAGH+AABo/gAAaP4AAGr+AABr/gAAAf8AAAP/AAAF/wAAB/8AAAr/AAAK/wAADP8AAAz/AAAO/wAAD/8AABr/AAAb/wAAH/8AACD/AAA8/wAAPP8AAGH/AABh/wAAZP8AAGX/AAAAAQEAAgEBAJ8DAQCfAwEA0AMBANADAQBvBQEAbwUBAFcIAQBXCAEAHwkBAB8JAQA/CQEAPwkBAFAKAQBYCgEAfwoBAH8KAQDwCgEA9goBADkLAQA/CwEAmQsBAJwLAQBVDwEAWQ8BAIYPAQCJDwEARxABAE0QAQC7EAEAvBABAL4QAQDBEAEAQBEBAEMRAQB0EQEAdREBAMURAQDIEQEAzREBAM0RAQDbEQEA2xEBAN0RAQDfEQEAOBIBAD0SAQCpEgEAqRIBAEsUAQBPFAEAWhQBAFsUAQBdFAEAXRQBAMYUAQDGFAEAwRUBANcVAQBBFgEAQxYBAGAWAQBsFgEAuRYBALkWAQA8FwEAPhcBADsYAQA7GAEARBkBAEYZAQDiGQEA4hkBAD8aAQBGGgEAmhoBAJwaAQCeGgEAohoBAEEcAQBFHAEAcBwBAHEcAQD3HgEA+B4BAP8fAQD/HwEAcCQBAHQkAQDxLwEA8i8BAG5qAQBvagEA9WoBAPVqAQA3awEAO2sBAERrAQBEawEAl24BAJpuAQDibwEA4m8BAJ+8AQCfvAEAh9oBAIvaAQBe6QEAX+kBAAAAAAAHAAAAAAYAAAUGAADdBgAA3QYAAA8HAAAPBwAAkAgAAJEIAADiCAAA4ggAAL0QAQC9EAEAzRABAM0QAQAAAAAATwAAACgAAAAoAAAAWwAAAFsAAAB7AAAAewAAADoPAAA6DwAAPA8AADwPAACbFgAAmxYAABogAAAaIAAAHiAAAB4gAABFIAAARSAAAH0gAAB9IAAAjSAAAI0gAAAIIwAACCMAAAojAAAKIwAAKSMAACkjAABoJwAAaCcAAGonAABqJwAAbCcAAGwnAABuJwAAbicAAHAnAABwJwAAcicAAHInAAB0JwAAdCcAAMUnAADFJwAA5icAAOYnAADoJwAA6CcAAOonAADqJwAA7CcAAOwnAADuJwAA7icAAIMpAACDKQAAhSkAAIUpAACHKQAAhykAAIkpAACJKQAAiykAAIspAACNKQAAjSkAAI8pAACPKQAAkSkAAJEpAACTKQAAkykAAJUpAACVKQAAlykAAJcpAADYKQAA2CkAANopAADaKQAA/CkAAPwpAAAiLgAAIi4AACQuAAAkLgAAJi4AACYuAAAoLgAAKC4AAEIuAABCLgAAVS4AAFUuAABXLgAAVy4AAFkuAABZLgAAWy4AAFsuAAAIMAAACDAAAAowAAAKMAAADDAAAAwwAAAOMAAADjAAABAwAAAQMAAAFDAAABQwAAAWMAAAFjAAABgwAAAYMAAAGjAAABowAAAdMAAAHTAAAD/9AAA//QAAF/4AABf+AAA1/gAANf4AADf+AAA3/gAAOf4AADn+AAA7/gAAO/4AAD3+AAA9/gAAP/4AAD/+AABB/gAAQf4AAEP+AABD/gAAR/4AAEf+AABZ/gAAWf4AAFv+AABb/gAAXf4AAF3+AAAI/wAACP8AADv/AAA7/wAAW/8AAFv/AABf/wAAX/8AAGL/AABi/wAAAAAAAAMAAACACwEAkQsBAJkLAQCcCwEAqQsBAK8LAQAAAAAADQAAACIAAAAiAAAAJwAAACcAAACrAAAAqwAAALsAAAC7AAAAGCAAAB8gAAA5IAAAOiAAAEIuAABCLgAADDAAAA8wAAAdMAAAHzAAAEH+AABE/gAAAv8AAAL/AAAH/wAAB/8AAGL/AABj/wAAAAAAAAMAAACALgAAmS4AAJsuAADzLgAAAC8AANUvAAABAAAA5vEBAP/xAQBBsOsLCxICAAAAMKkAAFOpAABfqQAAX6kAQdDrCwsSAgAAAKAWAADqFgAA7hYAAPgWAEHw6wsL0w7qAAAAJAAAACQAAAArAAAAKwAAADwAAAA+AAAAXgAAAF4AAABgAAAAYAAAAHwAAAB8AAAAfgAAAH4AAACiAAAApgAAAKgAAACpAAAArAAAAKwAAACuAAAAsQAAALQAAAC0AAAAuAAAALgAAADXAAAA1wAAAPcAAAD3AAAAwgIAAMUCAADSAgAA3wIAAOUCAADrAgAA7QIAAO0CAADvAgAA/wIAAHUDAAB1AwAAhAMAAIUDAAD2AwAA9gMAAIIEAACCBAAAjQUAAI8FAAAGBgAACAYAAAsGAAALBgAADgYAAA8GAADeBgAA3gYAAOkGAADpBgAA/QYAAP4GAAD2BwAA9gcAAP4HAAD/BwAAiAgAAIgIAADyCQAA8wkAAPoJAAD7CQAA8QoAAPEKAABwCwAAcAsAAPMLAAD6CwAAfwwAAH8MAABPDQAATw0AAHkNAAB5DQAAPw4AAD8OAAABDwAAAw8AABMPAAATDwAAFQ8AABcPAAAaDwAAHw8AADQPAAA0DwAANg8AADYPAAA4DwAAOA8AAL4PAADFDwAAxw8AAMwPAADODwAAzw8AANUPAADYDwAAnhAAAJ8QAACQEwAAmRMAAG0WAABtFgAA2xcAANsXAABAGQAAQBkAAN4ZAAD/GQAAYRsAAGobAAB0GwAAfBsAAL0fAAC9HwAAvx8AAMEfAADNHwAAzx8AAN0fAADfHwAA7R8AAO8fAAD9HwAA/h8AAEQgAABEIAAAUiAAAFIgAAB6IAAAfCAAAIogAACMIAAAoCAAAMAgAAAAIQAAASEAAAMhAAAGIQAACCEAAAkhAAAUIQAAFCEAABYhAAAYIQAAHiEAACMhAAAlIQAAJSEAACchAAAnIQAAKSEAACkhAAAuIQAALiEAADohAAA7IQAAQCEAAEQhAABKIQAATSEAAE8hAABPIQAAiiEAAIshAACQIQAAByMAAAwjAAAoIwAAKyMAACYkAABAJAAASiQAAJwkAADpJAAAACUAAGcnAACUJwAAxCcAAMcnAADlJwAA8CcAAIIpAACZKQAA1ykAANwpAAD7KQAA/ikAAHMrAAB2KwAAlSsAAJcrAAD/KwAA5SwAAOosAABQLgAAUS4AAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAPAvAAD7LwAABDAAAAQwAAASMAAAEzAAACAwAAAgMAAANjAAADcwAAA+MAAAPzAAAJswAACcMAAAkDEAAJExAACWMQAAnzEAAMAxAADjMQAAADIAAB4yAAAqMgAARzIAAFAyAABQMgAAYDIAAH8yAACKMgAAsDIAAMAyAAD/MwAAwE0AAP9NAACQpAAAxqQAAACnAAAWpwAAIKcAACGnAACJpwAAiqcAACioAAArqAAANqgAADmoAAB3qgAAeaoAAFurAABbqwAAaqsAAGurAAAp+wAAKfsAALL7AADC+wAAQP0AAE/9AADP/QAAz/0AAPz9AAD//QAAYv4AAGL+AABk/gAAZv4AAGn+AABp/gAABP8AAAT/AAAL/wAAC/8AABz/AAAe/wAAPv8AAD7/AABA/wAAQP8AAFz/AABc/wAAXv8AAF7/AADg/wAA5v8AAOj/AADu/wAA/P8AAP3/AAA3AQEAPwEBAHkBAQCJAQEAjAEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAPwBAQB3CAEAeAgBAMgKAQDICgEAPxcBAD8XAQDVHwEA8R8BADxrAQA/awEARWsBAEVrAQCcvAEAnLwBAFDPAQDDzwEAANABAPXQAQAA0QEAJtEBACnRAQBk0QEAatEBAGzRAQCD0QEAhNEBAIzRAQCp0QEArtEBAOrRAQAA0gEAQdIBAEXSAQBF0gEAANMBAFbTAQDB1gEAwdYBANvWAQDb1gEA+9YBAPvWAQAV1wEAFdcBADXXAQA11wEAT9cBAE/XAQBv1wEAb9cBAInXAQCJ1wEAqdcBAKnXAQDD1wEAw9cBAADYAQD/2QEAN9oBADraAQBt2gEAdNoBAHbaAQCD2gEAhdoBAIbaAQBP4QEAT+EBAP/iAQD/4gEArOwBAKzsAQCw7AEAsOwBAC7tAQAu7QEA8O4BAPHuAQAA8AEAK/ABADDwAQCT8AEAoPABAK7wAQCx8AEAv/ABAMHwAQDP8AEA0fABAPXwAQAN8QEArfEBAObxAQAC8gEAEPIBADvyAQBA8gEASPIBAFDyAQBR8gEAYPIBAGXyAQAA8wEA1/YBAN32AQDs9gEA8PYBAPz2AQAA9wEAc/cBAID3AQDY9wEA4PcBAOv3AQDw9wEA8PcBAAD4AQAL+AEAEPgBAEf4AQBQ+AEAWfgBAGD4AQCH+AEAkPgBAK34AQCw+AEAsfgBAAD5AQBT+gEAYPoBAG36AQBw+gEAdPoBAHj6AQB8+gEAgPoBAIb6AQCQ+gEArPoBALD6AQC6+gEAwPoBAMX6AQDQ+gEA2foBAOD6AQDn+gEA8PoBAPb6AQAA+wEAkvsBAJT7AQDK+wEAQdD6CwsSAgAAAAAIAAAtCAAAMAgAAD4IAEHw+gsLEgIAAACAqAAAxagAAM6oAADZqABBkPsLC8MGFQAAACQAAAAkAAAAogAAAKUAAACPBQAAjwUAAAsGAAALBgAA/gcAAP8HAADyCQAA8wkAAPsJAAD7CQAA8QoAAPEKAAD5CwAA+QsAAD8OAAA/DgAA2xcAANsXAACgIAAAwCAAADioAAA4qAAA/P0AAPz9AABp/gAAaf4AAAT/AAAE/wAA4P8AAOH/AADl/wAA5v8AAN0fAQDgHwEA/+IBAP/iAQCw7AEAsOwBAAAAAABPAAAAIQAAACEAAAAuAAAALgAAAD8AAAA/AAAAiQUAAIkFAAAdBgAAHwYAANQGAADUBgAAAAcAAAIHAAD5BwAA+QcAADcIAAA3CAAAOQgAADkIAAA9CAAAPggAAGQJAABlCQAAShAAAEsQAABiEwAAYhMAAGcTAABoEwAAbhYAAG4WAAA1FwAANhcAAAMYAAADGAAACRgAAAkYAABEGQAARRkAAKgaAACrGgAAWhsAAFsbAABeGwAAXxsAAH0bAAB+GwAAOxwAADwcAAB+HAAAfxwAADwgAAA9IAAARyAAAEkgAAAuLgAALi4AADwuAAA8LgAAUy4AAFQuAAACMAAAAjAAAP+kAAD/pAAADqYAAA+mAADzpgAA86YAAPemAAD3pgAAdqgAAHeoAADOqAAAz6gAAC+pAAAvqQAAyKkAAMmpAABdqgAAX6oAAPCqAADxqgAA66sAAOurAABS/gAAUv4AAFb+AABX/gAAAf8AAAH/AAAO/wAADv8AAB//AAAf/wAAYf8AAGH/AABWCgEAVwoBAFUPAQBZDwEAhg8BAIkPAQBHEAEASBABAL4QAQDBEAEAQREBAEMRAQDFEQEAxhEBAM0RAQDNEQEA3hEBAN8RAQA4EgEAORIBADsSAQA8EgEAqRIBAKkSAQBLFAEATBQBAMIVAQDDFQEAyRUBANcVAQBBFgEAQhYBADwXAQA+FwEARBkBAEQZAQBGGQEARhkBAEIaAQBDGgEAmxoBAJwaAQBBHAEAQhwBAPceAQD4HgEAbmoBAG9qAQD1agEA9WoBADdrAQA4awEARGsBAERrAQCYbgEAmG4BAJ+8AQCfvAEAiNoBAIjaAQABAAAAgBEBAN8RAQABAAAAUAQBAH8EAQBB4IEMCxMCAAAAgBUBALUVAQC4FQEA3RUBAEGAggwLkwcDAAAAANgBAIvaAQCb2gEAn9oBAKHaAQCv2gEAAAAAAA0AAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADKDQAAyg0AAM8NAADUDQAA1g0AANYNAADYDQAA3w0AAOYNAADvDQAA8g0AAPQNAADhEQEA9BEBAAAAAAAfAAAAXgAAAF4AAABgAAAAYAAAAKgAAACoAAAArwAAAK8AAAC0AAAAtAAAALgAAAC4AAAAwgIAAMUCAADSAgAA3wIAAOUCAADrAgAA7QIAAO0CAADvAgAA/wIAAHUDAAB1AwAAhAMAAIUDAACICAAAiAgAAL0fAAC9HwAAvx8AAMEfAADNHwAAzx8AAN0fAADfHwAA7R8AAO8fAAD9HwAA/h8AAJswAACcMAAAAKcAABanAAAgpwAAIacAAImnAACKpwAAW6sAAFurAABqqwAAa6sAALL7AADC+wAAPv8AAD7/AABA/wAAQP8AAOP/AADj/wAA+/MBAP/zAQAAAAAAQAAAACsAAAArAAAAPAAAAD4AAAB8AAAAfAAAAH4AAAB+AAAArAAAAKwAAACxAAAAsQAAANcAAADXAAAA9wAAAPcAAAD2AwAA9gMAAAYGAAAIBgAARCAAAEQgAABSIAAAUiAAAHogAAB8IAAAiiAAAIwgAAAYIQAAGCEAAEAhAABEIQAASyEAAEshAACQIQAAlCEAAJohAACbIQAAoCEAAKAhAACjIQAAoyEAAKYhAACmIQAAriEAAK4hAADOIQAAzyEAANIhAADSIQAA1CEAANQhAAD0IQAA/yIAACAjAAAhIwAAfCMAAHwjAACbIwAAsyMAANwjAADhIwAAtyUAALclAADBJQAAwSUAAPglAAD/JQAAbyYAAG8mAADAJwAAxCcAAMcnAADlJwAA8CcAAP8nAAAAKQAAgikAAJkpAADXKQAA3CkAAPspAAD+KQAA/yoAADArAABEKwAARysAAEwrAAAp+wAAKfsAAGL+AABi/gAAZP4AAGb+AAAL/wAAC/8AABz/AAAe/wAAXP8AAFz/AABe/wAAXv8AAOL/AADi/wAA6f8AAOz/AADB1gEAwdYBANvWAQDb1gEA+9YBAPvWAQAV1wEAFdcBADXXAQA11wEAT9cBAE/XAQBv1wEAb9cBAInXAQCJ1wEAqdcBAKnXAQDD1wEAw9cBAPDuAQDx7gEAQaCJDAvTC7oAAACmAAAApgAAAKkAAACpAAAArgAAAK4AAACwAAAAsAAAAIIEAACCBAAAjQUAAI4FAAAOBgAADwYAAN4GAADeBgAA6QYAAOkGAAD9BgAA/gYAAPYHAAD2BwAA+gkAAPoJAABwCwAAcAsAAPMLAAD4CwAA+gsAAPoLAAB/DAAAfwwAAE8NAABPDQAAeQ0AAHkNAAABDwAAAw8AABMPAAATDwAAFQ8AABcPAAAaDwAAHw8AADQPAAA0DwAANg8AADYPAAA4DwAAOA8AAL4PAADFDwAAxw8AAMwPAADODwAAzw8AANUPAADYDwAAnhAAAJ8QAACQEwAAmRMAAG0WAABtFgAAQBkAAEAZAADeGQAA/xkAAGEbAABqGwAAdBsAAHwbAAAAIQAAASEAAAMhAAAGIQAACCEAAAkhAAAUIQAAFCEAABYhAAAXIQAAHiEAACMhAAAlIQAAJSEAACchAAAnIQAAKSEAACkhAAAuIQAALiEAADohAAA7IQAASiEAAEohAABMIQAATSEAAE8hAABPIQAAiiEAAIshAACVIQAAmSEAAJwhAACfIQAAoSEAAKIhAACkIQAApSEAAKchAACtIQAAryEAAM0hAADQIQAA0SEAANMhAADTIQAA1SEAAPMhAAAAIwAAByMAAAwjAAAfIwAAIiMAACgjAAArIwAAeyMAAH0jAACaIwAAtCMAANsjAADiIwAAJiQAAEAkAABKJAAAnCQAAOkkAAAAJQAAtiUAALglAADAJQAAwiUAAPclAAAAJgAAbiYAAHAmAABnJwAAlCcAAL8nAAAAKAAA/ygAAAArAAAvKwAARSsAAEYrAABNKwAAcysAAHYrAACVKwAAlysAAP8rAADlLAAA6iwAAFAuAABRLgAAgC4AAJkuAACbLgAA8y4AAAAvAADVLwAA8C8AAPsvAAAEMAAABDAAABIwAAATMAAAIDAAACAwAAA2MAAANzAAAD4wAAA/MAAAkDEAAJExAACWMQAAnzEAAMAxAADjMQAAADIAAB4yAAAqMgAARzIAAFAyAABQMgAAYDIAAH8yAACKMgAAsDIAAMAyAAD/MwAAwE0AAP9NAACQpAAAxqQAACioAAArqAAANqgAADeoAAA5qAAAOagAAHeqAAB5qgAAQP0AAE/9AADP/QAAz/0AAP39AAD//QAA5P8AAOT/AADo/wAA6P8AAO3/AADu/wAA/P8AAP3/AAA3AQEAPwEBAHkBAQCJAQEAjAEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAPwBAQB3CAEAeAgBAMgKAQDICgEAPxcBAD8XAQDVHwEA3B8BAOEfAQDxHwEAPGsBAD9rAQBFawEARWsBAJy8AQCcvAEAUM8BAMPPAQAA0AEA9dABAADRAQAm0QEAKdEBAGTRAQBq0QEAbNEBAIPRAQCE0QEAjNEBAKnRAQCu0QEA6tEBAADSAQBB0gEARdIBAEXSAQAA0wEAVtMBAADYAQD/2QEAN9oBADraAQBt2gEAdNoBAHbaAQCD2gEAhdoBAIbaAQBP4QEAT+EBAKzsAQCs7AEALu0BAC7tAQAA8AEAK/ABADDwAQCT8AEAoPABAK7wAQCx8AEAv/ABAMHwAQDP8AEA0fABAPXwAQAN8QEArfEBAObxAQAC8gEAEPIBADvyAQBA8gEASPIBAFDyAQBR8gEAYPIBAGXyAQAA8wEA+vMBAAD0AQDX9gEA3fYBAOz2AQDw9gEA/PYBAAD3AQBz9wEAgPcBANj3AQDg9wEA6/cBAPD3AQDw9wEAAPgBAAv4AQAQ+AEAR/gBAFD4AQBZ+AEAYPgBAIf4AQCQ+AEArfgBALD4AQCx+AEAAPkBAFP6AQBg+gEAbfoBAHD6AQB0+gEAePoBAHz6AQCA+gEAhvoBAJD6AQCs+gEAsPoBALr6AQDA+gEAxfoBAND6AQDZ+gEA4PoBAOf6AQDw+gEA9voBAAD7AQCS+wEAlPsBAMr7AQBBgJUMC/ICIAAAAGkAAABqAAAALwEAAC8BAABJAgAASQIAAGgCAABoAgAAnQIAAJ0CAACyAgAAsgIAAPMDAADzAwAAVgQAAFYEAABYBAAAWAQAAGIdAABiHQAAlh0AAJYdAACkHQAApB0AAKgdAACoHQAALR4AAC0eAADLHgAAyx4AAHEgAABxIAAASCEAAEkhAAB8LAAAfCwAACLUAQAj1AEAVtQBAFfUAQCK1AEAi9QBAL7UAQC/1AEA8tQBAPPUAQAm1QEAJ9UBAFrVAQBb1QEAjtUBAI/VAQDC1QEAw9UBAPbVAQD31QEAKtYBACvWAQBe1gEAX9YBAJLWAQCT1gEAGt8BABrfAQABAAAAMA8BAFkPAQACAAAA0BABAOgQAQDwEAEA+RABAAEAAABQGgEAohoBAAIAAACAGwAAvxsAAMAcAADHHAAAAQAAAACoAAAsqAAABAAAAAAHAAANBwAADwcAAEoHAABNBwAATwcAAGAIAABqCABBgJgMCxICAAAAABcAABUXAAAfFwAAHxcAQaCYDAsyAwAAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAAAAAAACAAAAUBkAAG0ZAABwGQAAdBkAQeCYDAtCBQAAACAaAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAAoBoAAK0aAAAAAAAAAgAAAICqAADCqgAA26oAAN+qAEGwmQwLEwIAAACAFgEAuRYBAMAWAQDJFgEAQdCZDAuTARIAAACCCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAAL4LAADCCwAAxgsAAMgLAADKCwAAzQsAANALAADQCwAA1wsAANcLAADmCwAA+gsAAMAfAQDxHwEA/x8BAP8fAQBB8JoMCxMCAAAAcGoBAL5qAQDAagEAyWoBAEGQmwwLIwQAAADgbwEA4G8BAABwAQD3hwEAAIgBAP+KAQAAjQEACI0BAEHAmwwL1gcNAAAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAdwwAAH8MAAAAAAAAawAAACEAAAAhAAAALAAAACwAAAAuAAAALgAAADoAAAA7AAAAPwAAAD8AAAB+AwAAfgMAAIcDAACHAwAAiQUAAIkFAADDBQAAwwUAAAwGAAAMBgAAGwYAABsGAAAdBgAAHwYAANQGAADUBgAAAAcAAAoHAAAMBwAADAcAAPgHAAD5BwAAMAgAAD4IAABeCAAAXggAAGQJAABlCQAAWg4AAFsOAAAIDwAACA8AAA0PAAASDwAAShAAAEsQAABhEwAAaBMAAG4WAABuFgAA6xYAAO0WAAA1FwAANhcAANQXAADWFwAA2hcAANoXAAACGAAABRgAAAgYAAAJGAAARBkAAEUZAACoGgAAqxoAAFobAABbGwAAXRsAAF8bAAB9GwAAfhsAADscAAA/HAAAfhwAAH8cAAA8IAAAPSAAAEcgAABJIAAALi4AAC4uAAA8LgAAPC4AAEEuAABBLgAATC4AAEwuAABOLgAATy4AAFMuAABULgAAATAAAAIwAAD+pAAA/6QAAA2mAAAPpgAA86YAAPemAAB2qAAAd6gAAM6oAADPqAAAL6kAAC+pAADHqQAAyakAAF2qAABfqgAA36oAAN+qAADwqgAA8aoAAOurAADrqwAAUP4AAFL+AABU/gAAV/4AAAH/AAAB/wAADP8AAAz/AAAO/wAADv8AABr/AAAb/wAAH/8AAB//AABh/wAAYf8AAGT/AABk/wAAnwMBAJ8DAQDQAwEA0AMBAFcIAQBXCAEAHwkBAB8JAQBWCgEAVwoBAPAKAQD1CgEAOgsBAD8LAQCZCwEAnAsBAFUPAQBZDwEAhg8BAIkPAQBHEAEATRABAL4QAQDBEAEAQREBAEMRAQDFEQEAxhEBAM0RAQDNEQEA3hEBAN8RAQA4EgEAPBIBAKkSAQCpEgEASxQBAE0UAQBaFAEAWxQBAMIVAQDFFQEAyRUBANcVAQBBFgEAQhYBADwXAQA+FwEARBkBAEQZAQBGGQEARhkBAEIaAQBDGgEAmxoBAJwaAQChGgEAohoBAEEcAQBDHAEAcRwBAHEcAQD3HgEA+B4BAHAkAQB0JAEAbmoBAG9qAQD1agEA9WoBADdrAQA5awEARGsBAERrAQCXbgEAmG4BAJ+8AQCfvAEAh9oBAIraAQABAAAAgAcAALEHAEGgowwLEgIAAAABDgAAOg4AAEAOAABbDgBBwKMMC5MBBwAAAAAPAABHDwAASQ8AAGwPAABxDwAAlw8AAJkPAAC8DwAAvg8AAMwPAADODwAA1A8AANkPAADaDwAAAAAAAAMAAAAwLQAAZy0AAG8tAABwLQAAfy0AAH8tAAAAAAAAAgAAAIAUAQDHFAEA0BQBANkUAQABAAAAkOIBAK7iAQACAAAAgAMBAJ0DAQCfAwEAnwMBAEHgpAwL8ywPAAAAADQAAL9NAAAATgAA/58AAA76AAAP+gAAEfoAABH6AAAT+gAAFPoAAB/6AAAf+gAAIfoAACH6AAAj+gAAJPoAACf6AAAp+gAAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAAAAwBKEwMAAAAAALgCAAB4AwAAeQMAAIADAACDAwAAiwMAAIsDAACNAwAAjQMAAKIDAACiAwAAMAUAADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAP8FAAAOBwAADgcAAEsHAABMBwAAsgcAAL8HAAD7BwAA/AcAAC4IAAAvCAAAPwgAAD8IAABcCAAAXQgAAF8IAABfCAAAawgAAG8IAACPCAAAjwgAAJIIAACXCAAAhAkAAIQJAACNCQAAjgkAAJEJAACSCQAAqQkAAKkJAACxCQAAsQkAALMJAAC1CQAAugkAALsJAADFCQAAxgkAAMkJAADKCQAAzwkAANYJAADYCQAA2wkAAN4JAADeCQAA5AkAAOUJAAD/CQAAAAoAAAQKAAAECgAACwoAAA4KAAARCgAAEgoAACkKAAApCgAAMQoAADEKAAA0CgAANAoAADcKAAA3CgAAOgoAADsKAAA9CgAAPQoAAEMKAABGCgAASQoAAEoKAABOCgAAUAoAAFIKAABYCgAAXQoAAF0KAABfCgAAZQoAAHcKAACACgAAhAoAAIQKAACOCgAAjgoAAJIKAACSCgAAqQoAAKkKAACxCgAAsQoAALQKAAC0CgAAugoAALsKAADGCgAAxgoAAMoKAADKCgAAzgoAAM8KAADRCgAA3woAAOQKAADlCgAA8goAAPgKAAAACwAAAAsAAAQLAAAECwAADQsAAA4LAAARCwAAEgsAACkLAAApCwAAMQsAADELAAA0CwAANAsAADoLAAA7CwAARQsAAEYLAABJCwAASgsAAE4LAABUCwAAWAsAAFsLAABeCwAAXgsAAGQLAABlCwAAeAsAAIELAACECwAAhAsAAIsLAACNCwAAkQsAAJELAACWCwAAmAsAAJsLAACbCwAAnQsAAJ0LAACgCwAAogsAAKULAACnCwAAqwsAAK0LAAC6CwAAvQsAAMMLAADFCwAAyQsAAMkLAADOCwAAzwsAANELAADWCwAA2AsAAOULAAD7CwAA/wsAAA0MAAANDAAAEQwAABEMAAApDAAAKQwAADoMAAA7DAAARQwAAEUMAABJDAAASQwAAE4MAABUDAAAVwwAAFcMAABbDAAAXAwAAF4MAABfDAAAZAwAAGUMAABwDAAAdgwAAI0MAACNDAAAkQwAAJEMAACpDAAAqQwAALQMAAC0DAAAugwAALsMAADFDAAAxQwAAMkMAADJDAAAzgwAANQMAADXDAAA3AwA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AD0AAwH//wAAQgCdAEcADQH//wAA//8AAP//AAD//wAA//8AAP//AABMACQB//8AAFIANwD//wAA//8AAFUAlwD//wAA//8AAP//AABYAIcA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXABWAP//AABhANIA//8AAP//AAD//wAAZACBAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABsAI0A//8AAHEAJwB2ACcA//8AAP//AAB9ANMAgACaAP//AAD//wAAjQBaAP//AACSAM4A//8AAP//AACVAJkA//8AAKEA2AGuAFMAswBaAP//AAD//wAA//8AALkAoQC9AKEA//8AAMIAdADHAJwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADMAI0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzgCUANMALQD//wAA//8AAP//AAD//wAA2ADIAf//AAD//wAA4gDbAf//AAD//wAA//8AAO8AHgH//wAA//8AAP//AAD//wAA+gATAgABGAL//wAA//8AAP//AAAHASUA//8AAP//AAD//wAA//8AAP//AAD//wAACQHtAf//AAD//wAAEgE4AP//AAD//wAAGQGRAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACEBNwH//wAA//8AAP//AAD//wAAKwEIAv//AAD//wAA//8AAP//AAA1AW0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADoBGQL//wAA//8AAP//AABdAUQB//8AAP//AABlASYA//8AAGoB1AD//wAAhQGFAIgBkwD//wAA//8AAP//AAD//wAA//8AAP//AACNAcwAogE/AaoBvwH//wAAswHcAf//AAC9AY0AywEMAv//AAD//wAA//8AAP//AADsAZsA//8AAP//AAD//wAA//8AAP//AADxAegB/gG1AAMC+wEKAhgB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABoCPAH//wAA//8AAP//AAD//wAA//8AACUC7wH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALwKPAP//AAD//wAA//8AADcCYgH//wAA//8AAP//AAD//wAAQAJ8AP//AABDApQA//8AAP//AAD//wAAUAILAv//AAD//wAA//8AAP//AAD//wAA//8AAFwClgD//wAA//8AAF8CKwD//wAA//8AAP//AABiAgACdAIRAf//AAD//wAA//8AAIICFgD//wAA//8AAIcC1wCNAmwA//8AAP//AACSAiUB//8AAP//AAD//wAA//8AAP//AAD//wAAngIWAP//AACnAgUCsQIGAv//AADAAjkA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADFAswA//8AAP//AAD//wAA//8AAMgCbwDeAn4A//8AAP//AAD//wAA4wJ+AP//AADpAtkA//8AAP//AADsAiMB//8AAP//AAD//wAA//8AAP//AAD//wAA9QJKAf//AAD//wAABAOBAQ8DHAEaAzQB//8AACEDnwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAKAPrAf//AAD//wAA//8AADEDEwE0A5kA//8AAP//AAD//wAA//8AAP//AAD//wAAOQPSAP//AAD//wAA//8AAEwDOgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABPAyEB//8AAFgD1AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXAP6Af//AAD//wAA//8AAP//AABkA9UA//8AAP//AABnA5EA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGwDIAL//wAA//8AAP//AAD//wAAfAOaAIEDnwD//wAAhgN0AP//AACPA2sA//8AAJQDbwD//wAA//8AAP//AACZAw0B//8AAP//AACgA34B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAwwMLAc8DIgD//wAA//8AAP//AAD//wAA1AMOAP//AADaAzcA//8AAP//AADlAxUA//8AAP//AADsA6AB/wPjAf//AAD//wAA//8AABQEewD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAGwT/Af//AAD//wAA//8AAP//AAD//wAAKQSmAf//AAD//wAA//8AAP//AAD//wAA//8AADcE2gH//wAA//8AAEkEswFhBHMA//8AAP//AABmBHMAbgStAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAiwR7AP//AACNBPgB//8AAP//AAD//wAAlAS3Af//AAD//wAA//8AAP//AAD//wAA//8AAJ8EQQK4BDQCxwSrAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1AQXAuIECwHnBEYC//8AAP//AAD//wAA//8AAP//AAD2BD8C//8AAP//AAD//wAA//8AAP//AAACBc0B//8AAP//AAD//wAA//8AAP//AAAMBTUB//8AAP//AAASBSEA//8AABkFwQH//wAA//8AAP//AAD//wAA//8AAP//AAAlBW0B//8AAP//AABJBaAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFMFDAFYBdYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAZwVZAP//AAD//wAA//8AAP//AABuBXcA//8AAP//AAD//wAAcwVPAX8F5QH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAjAVVAJMFvAH//wAA//8AAP//AACkBZsA//8AAP//AAC0BXUA//8AAP//AAC5BSsA//8AAP//AADBBcoA0wU1Av//AAD//wAA//8AAP//AAD//wAA2wXmAP//AADeBYkA//8AAP//AAD//wAA//8AAOEFJgH//wAA//8AAP//AAD//wAA//8AAOsFlgEEBk4C//8AACsG6AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAC4GaQAyBtkB//8AAP//AAD//wAA//8AAP//AAD//wAARAbIAP//AABJBr4B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFIGMQL//wAA//8AAP//AAD//wAA//8AAFkGZwD//wAAawYfAnwGhgH//wAA//8AAIkG6wCOBhoA//8AAP//AAD//wAAlAZmAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALIGOgL//wAA//8AAP//AADABhwAxQZYAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADLBhwA//8AANEGygD//wAA//8AAP//AAD//wAA//8AAP//AADXBjIB//8AAOMGkwH//wAA//8AAP//AAD//wAA//8AAP//AAD5BiECDgcbAP//AAD//wAA//8AAP//AAD//wAA//8AABMHagD//wAA//8AABcHBwD//wAA//8AAB0HuQH//wAA//8AADAHTAE6BycC//8AAP//AAD//wAA//8AAP//AABLByUC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGUH3QD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGoHlQH//wAAeAf1AX8H3QD//wAA//8AAP//AACJB9wA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACLB3EAkQdlAf//AAD//wAAoweDAKgHywCtB2sB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMQHKALiB3MB//8AAAII5wD//wAA//8AAAUIPgL//wAAKgjEAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1CM0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADgIswD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAD0IDQD//wAA//8AAP//AAD//wAA//8AAP//AABDCG0A//8AAEgI/QH//wAA//8AAP//AABVCBYB//8AAP//AAD//wAA//8AAP//AABmCJgBcwhIAf//AAB7COAB//8AAIcIaQD//wAA//8AAP//AAD//wAA//8AAJII4gH//wAA//8AAKMI3wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAApghoAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKsIpAG8CAYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADCCBkA//8AAMcIgAH//wAA//8AAP//AADSCMsB5gjGAf//AAD//wAA8AgCAP//AAD//wAA9ggZAQ8JNAD//wAA//8AAP//AAAYCdUB//8AACEJ0QD//wAA//8AACwJNAD//wAAMQkdADkJkwD//wAA//8AAEEJMgL//wAA//8AAP//AAD//wAA//8AAEoJWQD//wAA//8AAFcJGQBgCWoA//8AAP//AAD//wAAaAkvAf//AABwCfIB//8AAP//AAD//wAA//8AAP//AAB6CS4A//8AAH8JLQD//wAAhglyAI0J7gGYCVcA//8AAP//AAD//wAA//8AAKUJPgH//wAA//8AAP//AACtCSkA//8AAP//AACzCaIB//8AAP//AADLCXkA0gm7Af//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADoCdsA7Ql2AP//AAD//wAA//8AAP//AADyCZIA/QmIAAcKJgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABoKUgEkCp0A//8AAP//AAApCjoB//8AAP//AAD//wAANAp6AP//AAD//wAA//8AAP//AAA5CjAA//8AAD4KDQL//wAA//8AAFcKhAD//wAA//8AAP//AABaChEB//8AAP//AABdCjMB//8AAP//AAD//wAA//8AAP//AABnCvMB//8AAP//AABzCgwB//8AAP//AAD//wAA//8AAHwKCwD//wAAgwofAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAiQo1AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACUCvcB//8AAP//AAD//wAAngorAv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAtAoRALkKNQD//wAA//8AAP//AAD//wAA//8AAL4KeADDCucB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM8K9AH//wAA2QoaAP//AADeCm4A//8AAP//AADzClwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD4CqAA//8AAP//AAD//wAA//8AAP0KdQEOC0kB//8AAP//AAD//wAA//8AAP//AAD//wAAGgsQAB8LyQH//wAA//8AAP//AAD//wAA//8AACcLXAE8C1MA//8AAEULdgBQC+UA//8AAP//AAD//wAA//8AAFgLeAD//wAA//8AAP//AAD//wAA//8AAF4L4AD//wAAZAt8AP//AAD//wAAcAuiAP//AAD//wAAeAtcAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAhQuVAP//AACKCx0B//8AAP//AACfCzgB//8AAKoLVQD//wAA//8AAP//AAD//wAA//8AAP//AACvC6UBxAtUAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzwvXAN0LAgH//wAA4wuKAf//AAAEDHEAEAzbAP//AAD//wAA//8AAP//AAD//wAA//8AABYMRQH//wAA//8AAP//AAD//wAA//8AAP//AAAiDEsA//8AACgMTAJJDFYA//8AAP//AAD//wAA//8AAP//AABRDPYB//8AAFsM0wH//wAA//8AAP//AAD//wAA//8AAP//AABkDBAA//8AAP//AAD//wAAagyKAP//AABtDBwC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAIEMcgD//wAAhgwsAf//AACRDO0A//8AAP//AAD//wAA//8AAP//AAD//wAAmwzhAf//AAD//wAA//8AAP//AACqDPUAsAwKAsIMuwDIDJABzgwhAP//AAD//wAA//8AANMMZAH//wAA7AwFAfAMBQH//wAA//8AAPUM3gD//wAA//8AAP//AAD//wAA//8AAP//AAD6DF0A//8AAP8M8gD//wAA//8AAP//AAAFDW0A//8AAA8NywD//wAA//8AABkNEAEeDQgA//8AACQNggD//wAA//8AAP//AAD//wAAKQ1dADIN9QD//wAA//8AAP//AAD//wAANw3SAf//AAD//wAA//8AAP//AABDDYQB//8AAEwNhwBiDQQC//8AAG4NSgL//wAA//8AAI8NWACeDcoB//8AAP//AACoDewB//8AAP//AAC2DV4A//8AAP//AAD//wAA//8AALoNXgC/DYAA//8AAP//AADFDTYA//8AANAN2AD//wAA//8AANgNYQD//wAA3Q2EAP//AAD//wAA//8AAP//AAD//wAA//8AAO0NAwD//wAA8w2MAf//AAD//wAACg6CAP//AAD//wAA//8AAP//AAD//wAAEg4RAv//AAApDmEA//8AAP//AAD//wAA//8AADEO8QE6DloBVA5nAf//AABsDhMA//8AAP//AACBDqQA//8AAIMOTQD//wAA//8AAJEO6QD//wAA//8AAP//AAD//wAAlA5lAP//AAD//wAA//8AAJkO4wD//wAA//8AAP//AAD//wAA//8AAP//AACeDoAA//8AAKMOHgD//wAAqA5uAP//AACtDqYA//8AAP//AAC5DqwAvA7eAP//AADHDhQC0A4yANQOHgD//wAA//8AAN4OGwHvDqoA8w6qAPgO+gD//wAA//8AAP0OvAADD7YA//8AAAgP9wD//wAADQ/3ABQPmgH//wAA//8AAB4PxgD//wAA//8AACAPLgH//wAAKA/kATEPIAE6D9QB//8AAP//AABHD8cBUQ8fAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXQ89Av//AAB9DwkB//8AAIIPogD//wAA//8AAIcP1gGdD+UA//8AAP//AACiD+IA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKoPfQH//wAA//8AAP//AAD//wAA//8AALsPlwD//wAAyQ8VAM4P8AH//wAA//8AAOYPIgD//wAA7g9BAf//AAD4D70A//8AAP//AAD9Dx0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAAhAUAQ8QrwH//wAA//8AACoQPQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALxDZAP//AAD//wAA//8AAEEQPAJiEE4A//8AAHQQWwH//wAA//8AAP//AAD//wAA//8AAIQQfwCJEPwBkRAsAP//AAD//wAA//8AAP//AACYEIsAnRCLAP//AAD//wAApBBEAP//AACoEL0B//8AAP//AAD//wAAtxBAAP//AAD//wAAuhBFAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAL8QAwHHEFcA//8AAM4QowD//wAA//8AANMQowD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANsQSwL//wAA/BBNAP//AAD//wAA//8AAP//AAABEWoB//8AABMRDgL//wAAIRFVAf//AAD//wAA//8AADcRAAH//wAA//8AADwRVABBEfQA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEkRDwBXEb8A//8AAFsRxgD//wAA//8AAP//AABnEQYB//8AAP//AAD//wAAahHtAG8RAQJ5EdAB//8AAP//AAD//wAA//8AAP//AAD//wAAixFQAZMRlAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKQRIgL//wAA//8AAKwRNgH//wAA//8AAP//AAC2EasB//8AAP//AAD//wAA//8AAMYRYgDNEWkB//8AAP//AAD//wAA//8AAP//AAD//wAA3RHmAecRbAH//wAA//8AAPIR6QH//wAA//8AAPwRKgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAJEkwA//8AAP//AAD//wAAGBKHAf//AAD//wAA//8AAP//AAA1EmsAQRI5AP//AABIEmEB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFYSYgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFsSiQH//wAA//8AAG4SHgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAfhLJAIwSGACUEikB//8AAP//AAD//wAAphLqAP//AAD//wAArhK3ALMSGgL//wAAvBI5AMESBQD//wAA//8AAP//AAD//wAAxxLBAP//AAD//wAAzBImAv//AAD//wAA5hLdAf4SRAD//wAACBPeAf//AAD//wAA//8AAP//AAAfEykC//8AAP//AAAvE54B//8AAP//AAD//wAA//8AAP//AABCE1ACSRNwAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAE4TPAD//wAAUxOmAP//AAD//wAA//8AAP//AAD//wAAWBPJAF8T8gD//wAAZBPCAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGkT4AD//wAAehNsAP//AAD//wAA//8AAIoT+gCeE4wAoxOMAP//AACqEyAA//8AAP//AAD//wAArxNwAP//AAC4EzEA//8AALwTQwLWE8UB//8AAP//AADjE0AC//8AAP//AAD//wAA//8AAPgTbwH//wAAChSwAR8UKAD//wAA//8AAP//AAAtFI4B//8AAP//AAD//wAA//8AAP//AAD//wAAOhRUAkQUsQH//wAA//8AAP//AAD//wAAVBQ7Af//AAD//wAA//8AAP//AABpFOEA//8AAP//AAD//wAA//8AAHEUTgH//wAAfBRWAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAI4UDACTFHEB//8AALcU9gD//wAAvBSxAMEUZwD//wAA//8AAP//AADGFMMA//8AAP//AAD//wAAzRSnANsUGAD//wAA4BR6Af//AAD//wAA//8AAP//AAD0FLEA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPwU4QD//wAA//8AAAEVKgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAFhWhASAVAQH//wAA//8AACUVfwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABAFSAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEkVjwH//wAA//8AAP//AABQFcMB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFwV4wBkFRAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB0FRcA//8AAP//AAD//wAAfRWYAP//AACCFc4AkxW4AJgV6wD//wAA//8AAP//AACkFVECwxU5AdAVmADcFdAA4RUJAv//AAD//wAA8hV2AfsVJwH//wAA//8AAP//AAD//wAADhacAf//AAD//wAAJBY+AP//AAD//wAA//8AAP//AAD//wAA//8AACkWJAL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEMWUwH//wAA//8AAFcWWwD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFwWMwD//wAAYBZbAP//AAD//wAA//8AAGkWlgD//wAA//8AAHUWAQB7FpAA//8AAIAW0QH//wAA//8AAIwWkAD//wAA//8AAP//AAD//wAAlhYJAP//AAD//wAAnBZRAf//AAD//wAA//8AAKUWyAD//wAA//8AAP//AAD//wAArxbsAP//AAD//wAA//8AAP//AAD//wAA//8AALQWnAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADIFjsA//8AAM0WMAH//wAA//8AANYWmQH//wAA6xbXAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD9FkIAAhf7AP//AAD//wAA//8AAP//AAAHF/sADhcjABMX/AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAGBfqAP//AAAdF4kA//8AAP//AAD//wAALRcsAv//AAD//wAA//8AAE8XuQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFQXKgD//wAA//8AAP//AABmF5IB//8AAG4XQgD//wAA//8AAHYXdwGLFyMA//8AAJQXDwH//wAA//8AAP//AAD//wAA//8AAJ4XtAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAshf/AP//AAD//wAA//8AALcX6gH//wAA//8AAP//AADAF6cA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMMX0QD//wAA//8AAP//AAD//wAA//8AAP//AADIF6kA//8AAP//AAD//wAA//8AAM0XGgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOkXjgDuF18B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABQYtgD//wAAHxiOAP//AAAoGPMA//8AAP//AAD//wAAMBioADoYAAD//wAA//8AAEIY7wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABHGPkB//8AAP//AAD//wAAXRgCAv//AAD//wAAixjiAP//AAD//wAA//8AAP//AAD//wAAkBgkAJUYBwGeGKQA//8AAP//AAD//wAApRgtArkYBgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAyxhQAP//AADQGH8A//8AAP//AAD//wAA1xj/AP//AAD//wAA3xhgAP//AAD//wAA//8AAP//AAD//wAA//8AAOQYDwD//wAA//8AAP//AAD//wAA//8AAP//AADpGMAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP4YCAH//wAA//8AAP//AAD//wAABRlPAv//AAD//wAA//8AAP//AAAmGXkA//8AAP//AAD//wAA//8AAP//AAD//wAAKxk7AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1GSMC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEAZAQFJGUcC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGoZtQD//wAA//8AAP//AAD//wAAdBlZAf//AAD//wAA//8AAP//AAD//wAA//8AAJoZegD//wAA//8AAP//AAD//wAApBn4AKkZ7wD//wAA//8AALAZ8QD//wAA//8AAP//AAD//wAAuRmFAP//AAD//wAA//8AAP//AAD//wAAyBleAf//AADaGTAC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADxGfYA//8AAP//AAD//wAA//8AAPcZqAD//wAA/BnCAf//AAD//wAA//8AAAUaPQEqGggB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALxpNAVMasABYGvkAXRpoAP//AAD//wAA//8AAP//AABwGisBehqrAP//AAD//wAA//8AAP//AAB9GjoA//8AAP//AAD//wAA//8AAP//AAD//wAAhxpOAP//AAD//wAAjRpfAJIaSwH//wAA//8AAP//AAD//wAA//8AAJ0a5wCoGswB//8AAP//AACzGgcB//8AAP//AAD//wAAuBp8Af//AAD//wAA//8AAP//AAD//wAA0BotAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA2xp0AegaBwL//wAA//8AAP//AAD3GtAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8aLwAEG60AChvBABobCgH//wAA//8AAP//AAD//wAA//8AAP//AAAlG7gBOBvkAP//AAD//wAA//8AAD0bJQD//wAA//8AAP//AAD//wAA//8AAEMbZQD//wAATBuXAVYbrABiG5sB//8AAP//AAD//wAA//8AAP//AABrG7wAcBtJAv//AAD//wAA//8AAP//AAD//wAAkRtAAZsbFQL//wAA//8AAP//AAD//wAA//8AAKYb+AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAK0bxwCyG4gB//8AAP//AAD//wAA//8AAP//AAD//wAA0BvfAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAN8bRwH//wAA//8AAOcbQgH//wAA//8AAP//AAD//wAA//8AAO8bowEDHO4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAgcPwD//wAADRwJAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAYHL4AHxyzAP//AAD//wAA//8AACkcNwL//wAA//8AAP//AAD//wAA//8AAD8cEwH//wAAThwVAf//AAD//wAA//8AAP//AABhHL4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAHEcMAD//wAAhxy6Af//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAlxxGAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADEHCQA//8AAP//AAD//wAAyhydAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADVHD4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADeHEYA//8AAOQcrQD//wAA//8AAP//AAD//wAA//8AAP//AAD6HKcB//8AAP//AAD//wAADB0bAP//AAAVHWAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACkdsgE+HTgC//8AAP//AAD//wAA//8AAP//AABkHbsA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAaR2sAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB6HTIAkB1GAP//AAD//wAA//8AAP//AAD//wAAlR1jAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAJodQwH//wAA//8AAP//AAD//wAA//8AAP//AAClHXgB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAsB2CAf//AAD//wAA//8AAP//AAD//wAA//8AALsdtADAHdoA//8AAP//AADFHa4B4x1NAv//AAAEHkgC//8AAP//AAD//wAA//8AACAesgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALR7PAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA+HgMCSh7fAf//AAD//wAA//8AAP//AAD//wAAWx4SAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAF4e1gD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGMetQH//wAA//8AAP//AAD//wAA//8AAP//AAB+Hp4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAI0eQwD//wAA//8AAP//AAD//wAA//8AAP//AACSHvQAlx6vAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACcHkMA//8AAP//AAD//wAA//8AAP//AACnHncA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAC5HnUA//8AAP//AAD//wAA//8AAMEeEgL//wAA0x7uAP//AAD//wAA3x79AP//AAD//wAA//8AAOQeTwD//wAA6h79AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA8h5JAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD3Hr0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/Hv4B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAwfuQD//wAA//8AAP//AAD//wAA//8AABYfMQD//wAA//8AAP//AAD//wAALB89ADgfeQH//wAA//8AAP//AAD//wAASx9PAP//AAD//wAAXR8UAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAYR/DAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAcB+6AHUfHwF+H+kA//8AAIkfYwH//wAA//8AAKEfQgK1HzkCxB9fAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADLH1IA//8AAP//AADPH8QA1R8bAv//AAD//wAA//8AAOgfhgD//wAA//8AAPQfpQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA+R+lAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAMgrgAIIBIB//8AAP//AAD//wAA//8AAP//AAAbICgB//8AAP//AAD//wAA//8AAP//AAAtIC4C//8AAP//AAD//wAA//8AAP//AAA+IDMA//8AAP//AAD//wAA//8AAFQgsgBZIDsCaCAiAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAeyCLAf//AAD//wAA//8AAJMgVwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKggxQC3IMIA//8AAP//AAD//wAA//8AAMQgSQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMwgSgD//wAA//8AAP//AADRICwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1CA2Av//AAD//wAA6CDoAP//AAD//wAA//8AAP//AAD0IFIA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD9IFEA//8AAP//AAD//wAA//8AAP//AAAFIQoB//8AAP//AAD//wAADCHPAP//AAAPIUoA//8AAP//AAD//wAA//8AAP//AAAXIR0C//8AACohPAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAyIdwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAOSGRAf//AABNIV0B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABpIY0B//8AAP//AAD//wAA//8AAP//AAD//wAAdyFYAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACWIbcA//8AAP//AAChIVQB//8AAP//AAD//wAA//8AAP//AAD//wAAtCETAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAuSEEAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAvyGoAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANUhqgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPAhFgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/iGwAP//AAD//wAA//8AAP//AAD//wAA//8AAAQibgH//wAA//8AABoixQD//wAA//8AACEiKgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACYixAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADAirgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADYi7AA+IhcB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAE8iEgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABaIkQC//8AAP//AABwInIB//8AAP//AAD//wAAlCK/AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAsyJBAP//AAD//wAAviK0AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAziLPAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA4SJRAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD2IgIB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAHI8cA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAEyNFAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAB4j5AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAKiPxAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAvI/4A//8AAP//AAA4IwoA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAD4jtgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAWyMEAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGUjUAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABuI+YA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAfSPTAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACOI9oA//8AAJUjMwL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAqSP+AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAK4jZAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALIjewH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzCPwAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADRI84B//8AAP//AAD//wAA//8AAOIj8AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADqI2AA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPkjTAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8jLwL//wAA//8AAP//AAD//wAA//8AABYkZAD//wAAHyQvAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1JM0A//8AAP//AAD//wAA//8AAP//AABFJLgAVSRHAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAWiQPAv//AABwJPkA//8AAP//AAD//wAAdySKAP//AAD//wAA//8AAP//AAD//wAA//8AAIckEAL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACqJGYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACxJGMA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALgkqQH//wAA//8AAMkkOAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM4kwAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADVJMAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOkkQQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAO0kcAH//wAA//8AAAMlQAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAdJYMB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA3JboA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEElUgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABgJYUB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABzJUUC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACXJa8A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKwl1QD//wAA//8AAP//AAD//wAA//8AAP//AAC8JUgA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADBJUcA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMolaAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1yVIAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOslUwJsYW5hAGxpbmEAegB5aQBtbgBjbgBtYWthAHlpaWkAbWFuaQBpbmthbm5hZGEAY2kAbG8AbGFvAGxhb28Aenp6egBtaWFvAHllemkAaW5ua28AY28AbWUAbG9lAGdyYW4AcGkAbGluZWFyYQBtYXJrAGNhcmkAY2FyaWFuAHBvAG1lbmRla2lrYWt1aQBncmVrAHBlAG1lZXRlaW1heWVrAGlua2hhcm9zaHRoaQBnZW9yAGdyZWVrAG1ybwBtcm9vAGthbmEAbWVybwBtAGdvbm0AY2FrbQBpbm9zbWFueWEAaW5tYW5pY2hhZWFuAGluYXJtZW5pYW4AaW5tcm8AaW5taWFvAGMAaW5jaGFrbWEAY29tbW9uAG1hbmRhaWMAaW5teWFubWFyAGlubWFrYXNhcgBxYWFpAGluaWRlb2dyYXBoaWNzeW1ib2xzYW5kcHVuY3R1YXRpb24AaW5raG1lcgBjYW5zAHByZXBlbmRlZGNvbmNhdGVuYXRpb25tYXJrAGxtAG1hcmMAY29ubmVjdG9ycHVuY3R1YXRpb24AaW5ydW5pYwBpbmNhcmlhbgBpbmF2ZXN0YW4AY29tYmluaW5nbWFyawBpbmN1bmVpZm9ybW51bWJlcnNhbmRwdW5jdHVhdGlvbgBtZXJjAGluY2hvcmFzbWlhbgBwZXJtAGluYWhvbQBpbmlwYWV4dGVuc2lvbnMAaW5jaGVyb2tlZQBpbnNoYXJhZGEAbWFrYXNhcgBpbmFycm93cwBsYwBtYXNhcmFtZ29uZGkAaW5jdW5laWZvcm0AbWMAY2MAaW56YW5hYmF6YXJzcXVhcmUAbGluZXNlcGFyYXRvcgBhcm1uAHFtYXJrAGFybWkAaW5zYW1hcml0YW4AYXJtZW5pYW4AaW5tYXJjaGVuAGlubWFzYXJhbWdvbmRpAHFhYWMAcGMAaW5zY3JpcHRpb25hbHBhcnRoaWFuAGxhdG4AbGF0aW4AcmkAaW50aGFhbmEAaW5raG1lcnN5bWJvbHMAaW5rYXRha2FuYQBpbmN5cmlsbGljAGludGhhaQBpbmNoYW0AaW5rYWl0aGkAenMAbXRlaQBpbml0aWFscHVuY3R1YXRpb24AY3MAaW5zeXJpYWMAcGNtAGludGFrcmkAcHMAbWFuZABpbmthbmFleHRlbmRlZGEAbWVuZABtb2RpAGthdGFrYW5hAGlkZW8AcHJ0aQB5ZXppZGkAaW5pZGVvZ3JhcGhpY2Rlc2NyaXB0aW9uY2hhcmFjdGVycwB4aWRjb250aW51ZQBicmFpAGFzY2lpAHByaXZhdGV1c2UAYXJhYmljAGlubXlhbm1hcmV4dGVuZGVkYQBpbnJ1bWludW1lcmFsc3ltYm9scwBsZXR0ZXIAaW5uYW5kaW5hZ2FyaQBpbm1lZXRlaW1heWVrAGlub2xkbm9ydGhhcmFiaWFuAGluY2prY29tcGF0aWJpbGl0eWZvcm1zAGtuZGEAa2FubmFkYQBpbmNqa2NvbXBhdGliaWxpdHlpZGVvZ3JhcGhzAGwAaW5tb2RpAGluc3BlY2lhbHMAaW50cmFuc3BvcnRhbmRtYXBzeW1ib2xzAGlubWVuZGVraWtha3VpAGxldHRlcm51bWJlcgBpbm1lZGVmYWlkcmluAHhpZGMAaW5jaGVzc3N5bWJvbHMAaW5lbW90aWNvbnMAaW5saW5lYXJhAGlubGFvAGJyYWhtaQBpbm9sZGl0YWxpYwBpbm1pc2NlbGxhbmVvdXNtYXRoZW1hdGljYWxzeW1ib2xzYQBtb25nb2xpYW4AeGlkcwBwc2FsdGVycGFobGF2aQBncmxpbmsAa2l0cwBpbnN1bmRhbmVzZQBpbm9sZHNvZ2RpYW4AZ290aGljAGluYW5jaWVudHN5bWJvbHMAbWVyb2l0aWNjdXJzaXZlAGthbGkAY29udHJvbABwYXR0ZXJud2hpdGVzcGFjZQBpbmFkbGFtAHNrAGx0AGlubWFuZGFpYwBpbmNvbW1vbmluZGljbnVtYmVyZm9ybXMAaW5jamtjb21wYXRpYmlsaXR5aWRlb2dyYXBoc3N1cHBsZW1lbnQAc28AaWRjAGlub2xkc291dGhhcmFiaWFuAHBhbG0AaW5seWNpYW4AaW50b3RvAGlkc2JpbmFyeW9wZXJhdG9yAGlua2FuYXN1cHBsZW1lbnQAaW5jamtzdHJva2VzAHNvcmEAYmFtdW0AaW5vcHRpY2FsY2hhcmFjdGVycmVjb2duaXRpb24AaW5kb21pbm90aWxlcwBiYXRrAGdyZXh0AGJhdGFrAHBhdHdzAGlubWFsYXlhbGFtAGlubW9kaWZpZXJ0b25lbGV0dGVycwBpbnNtYWxsa2FuYWV4dGVuc2lvbgBiYXNzAGlkcwBwcmludABpbmxpbmVhcmJpZGVvZ3JhbXMAaW50YWl0aGFtAGlubXVzaWNhbHN5bWJvbHMAaW56bmFtZW5ueW11c2ljYWxub3RhdGlvbgBzYW1yAGluc3lsb3RpbmFncmkAaW5uZXdhAHNhbWFyaXRhbgBzAGpvaW5jAGluY29udHJvbHBpY3R1cmVzAGxpc3UAcGF1YwBpbm1pc2NlbGxhbmVvdXNzeW1ib2xzAGluYW5jaWVudGdyZWVrbXVzaWNhbG5vdGF0aW9uAGlubWlzY2VsbGFuZW91c3N5bWJvbHNhbmRhcnJvd3MAc20AaW5taXNjZWxsYW5lb3Vzc3ltYm9sc2FuZHBpY3RvZ3JhcGhzAGludWdhcml0aWMAcGQAaXRhbABhbG51bQB6aW5oAGlud2FyYW5nY2l0aQBpbmxhdGluZXh0ZW5kZWRhAGluc2F1cmFzaHRyYQBpbnRhaWxlAGlub2xkdHVya2ljAGlkY29udGludWUAaW5oYW5pZmlyb2hpbmd5YQBzYwBpZHN0AGlubGF0aW5leHRlbmRlZGUAbG93ZXIAYmFsaQBpbmhpcmFnYW5hAGluY2F1Y2FzaWFuYWxiYW5pYW4AaW5kZXNlcmV0AGJsYW5rAGluc3BhY2luZ21vZGlmaWVybGV0dGVycwBjaGVyb2tlZQBpbmx5ZGlhbgBwaG9lbmljaWFuAGNoZXIAYmVuZ2FsaQBtYXJjaGVuAGlud2FuY2hvAGdyYXBoZW1lbGluawBiYWxpbmVzZQBpZHN0YXJ0AGludGFtaWwAaW5tdWx0YW5pAGNoYW0AY2hha21hAGthaXRoaQBpbm1haGFqYW5pAGdyYXBoZW1lYmFzZQBpbm9naGFtAGNhc2VkAGlubWVldGVpbWF5ZWtleHRlbnNpb25zAGtob2praQBpbmFuY2llbnRncmVla251bWJlcnMAcnVucgBraGFyAG1hbmljaGFlYW4AbG93ZXJjYXNlAGNhbmFkaWFuYWJvcmlnaW5hbABpbm9sY2hpa2kAcGxyZABpbmV0aGlvcGljAHNpbmQAY3djbQBpbmVhcmx5ZHluYXN0aWNjdW5laWZvcm0AbGwAemwAaW5zaW5oYWxhAGlua2h1ZGF3YWRpAHhpZHN0YXJ0AHhkaWdpdABiaWRpYwBjaG9yYXNtaWFuAGluc2lkZGhhbQBpbmNvdW50aW5ncm9kbnVtZXJhbHMAYWhvbQBjaHJzAGtobXIAaW5vbGR1eWdodXIAaW5ncmFudGhhAGJhbXUAaW5zY3JpcHRpb25hbHBhaGxhdmkAZ29uZwBtb25nAGlubGF0aW5leHRlbmRlZGMAaW5uZXd0YWlsdWUAYWRsbQBpbm9zYWdlAGluZ2VuZXJhbHB1bmN0dWF0aW9uAGdlb3JnaWFuAGtoYXJvc2h0aGkAc2luaGFsYQBraG1lcgBzdGVybQBjYXNlZGxldHRlcgBtdWx0YW5pAGd1bmphbGFnb25kaQBtYXRoAGluY3lyaWxsaWNzdXBwbGVtZW50AGluZ2VvcmdpYW4AZ290aABpbmNoZXJva2Vlc3VwcGxlbWVudABnbGFnb2xpdGljAHF1b3RhdGlvbm1hcmsAdWlkZW8AaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmEAam9pbmNvbnRyb2wAcnVuaWMAaW5tb25nb2xpYW4AZW1vamkAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmUAZ3JhbnRoYQBpbnRpcmh1dGEAaW5oYXRyYW4AYWRsYW0AbHUAaW5raGl0YW5zbWFsbHNjcmlwdABrdGhpAGluZ3VybXVraGkAc3VuZGFuZXNlAGlub2xkaHVuZ2FyaWFuAHRha3JpAGludGFtaWxzdXBwbGVtZW50AG9yaXlhAGludmFpAGJyYWgAaW5taXNjZWxsYW5lb3VzdGVjaG5pY2FsAHZhaQB2YWlpAHNhdXIAZ3VydQB0YWlsZQBpbmhlcml0ZWQAcGF1Y2luaGF1AHphbmIAcHVuY3QAbGluYgBndXJtdWtoaQB0YWtyAGlubmFiYXRhZWFuAGlua2FuYnVuAGxvZ2ljYWxvcmRlcmV4Y2VwdGlvbgBpbmJoYWlrc3VraQBpbmNqa3VuaWZpZWRpZGVvZ3JhcGhzZXh0ZW5zaW9uYwBncmFwaGVtZWV4dGVuZABpbmVsYmFzYW4AaW5zb3Jhc29tcGVuZwBoYW4AaGFuaQBsaW1idQB1bmFzc2lnbmVkAHJhZGljYWwAaGFubwBsb3dlcmNhc2VsZXR0ZXIAY250cmwAaW5jamt1bmlmaWVkaWRlb2dyYXBocwBsaW5lYXJiAGluYW5hdG9saWFuaGllcm9nbHlwaHMAaGFudW5vbwBpbmtob2praQBpbmxhdGluZXh0ZW5kZWRhZGRpdGlvbmFsAGluZW5jbG9zZWRhbHBoYW51bWVyaWNzAGFuYXRvbGlhbmhpZXJvZ2x5cGhzAG4AZW1vamltb2RpZmllcgBzZABoaXJhAHNpZGQAbGltYgBiaGtzAHBobGkAbmFuZGluYWdhcmkAbm8Ac2F1cmFzaHRyYQBpbnRhbmdzYQBjd3QAYmhhaWtzdWtpAGluZ3JlZWthbmRjb3B0aWMAbmtvAG5rb28AdGVybQBvc2FnZQB4cGVvAHRuc2EAdGFuZ3NhAGlua2F5YWhsaQBwAGlub3JpeWEAaW55ZXppZGkAaW5hcmFiaWMAaW5waG9lbmljaWFuAGluc2hhdmlhbgBiaWRpY29udHJvbABpbmVuY2xvc2VkaWRlb2dyYXBoaWNzdXBwbGVtZW50AHdhcmEAbXVsdABpbm1lcm9pdGljaGllcm9nbHlwaHMAc2luaABzaGF2aWFuAGlua2FuZ3hpcmFkaWNhbHMAZW5jbG9zaW5nbWFyawBhcmFiAGluc2luaGFsYWFyY2hhaWNudW1iZXJzAGJyYWlsbGUAaW5oYW51bm9vAG9zbWEAYmVuZwBpbmJhc2ljbGF0aW4AaW5hcmFiaWNwcmVzZW50YXRpb25mb3Jtc2EAY3BtbgByZWdpb25hbGluZGljYXRvcgBpbmVuY2xvc2VkYWxwaGFudW1lcmljc3VwcGxlbWVudABlbW9qaW1vZGlmaWVyYmFzZQBpbmdyZWVrZXh0ZW5kZWQAbGVwYwBpbmRvZ3JhAGZvcm1hdABseWNpAGx5Y2lhbgBkaWEAaW5waGFpc3Rvc2Rpc2MAZGkAZGlhawB1bmtub3duAGdyYmFzZQBteW1yAG15YW5tYXIAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmQAZW1vZABpbmdlb21ldHJpY3NoYXBlcwBpbmN5cHJvbWlub2FuAGluc3VuZGFuZXNlc3VwcGxlbWVudAB0b3RvAGdsYWcAdGFpdmlldABhc2NpaWhleGRpZ2l0AG9kaQBwdW5jdHVhdGlvbgB2cwBzdW5kAGluc295b21ibwBpbmltcGVyaWFsYXJhbWFpYwBpbmJhdGFrAGlubGF0aW5leHRlbmRlZGQAaW5udXNodQBpbnRpYmV0YW4AaW5sb3dzdXJyb2dhdGVzAGhhdHJhbgBpbmJsb2NrZWxlbWVudHMAaW5zb2dkaWFuAGluZGluZ2JhdHMAaW5lbHltYWljAGluZGV2YW5hZ2FyaQBlbW9qaWNvbXBvbmVudABpbmthdGFrYW5hcGhvbmV0aWNleHRlbnNpb25zAGlkZW9ncmFwaGljAGNvcHRpYwBpbm51bWJlcmZvcm1zAGhhdHIAaW5jamtjb21wYXRpYmlsaXR5AGlua2FuYWV4dGVuZGVkYgBwYXR0ZXJuc3ludGF4AGF2ZXN0YW4AaW5hcmFiaWNleHRlbmRlZGEAc29nZGlhbgBzb2dvAGludGFuZ3V0AGNvcHQAZ3JhcGgAb2lkYwBpbmJ5emFudGluZW11c2ljYWxzeW1ib2xzAGluaW5zY3JpcHRpb25hbHBhcnRoaWFuAGRpYWNyaXRpYwBpbmluc2NyaXB0aW9uYWxwYWhsYXZpAGlubWF5YW5udW1lcmFscwBpbm15YW5tYXJleHRlbmRlZGIAaW50YWdzAGphdmEAY3BydABuYW5kAHBhdHN5bgB0YWxlAG9pZHMAc2VudGVuY2V0ZXJtaW5hbABpbXBlcmlhbGFyYW1haWMAdGVybWluYWxwdW5jdHVhdGlvbgBseWRpAGx5ZGlhbgBib3BvAGphdmFuZXNlAGN3bABpbmdlb21ldHJpY3NoYXBlc2V4dGVuZGVkAGlub2xkcGVyc2lhbgBpbm9ybmFtZW50YWxkaW5nYmF0cwBpbmJyYWlsbGVwYXR0ZXJucwBpbnZhcmlhdGlvbnNlbGVjdG9ycwBjYXNlaWdub3JhYmxlAGlueWlyYWRpY2FscwBpbm5vYmxvY2sAaW52ZXJ0aWNhbGZvcm1zAGluZXRoaW9waWNzdXBwbGVtZW50AHNoYXJhZGEAaW5iYWxpbmVzZQBpbnZlZGljZXh0ZW5zaW9ucwB3b3JkAGlubWlzY2VsbGFuZW91c21hdGhlbWF0aWNhbHN5bWJvbHNiAHRhbWwAb2xjawBpZHNiAG9sb3dlcgBkZWNpbWFsbnVtYmVyAGF2c3QAaW5jeXJpbGxpY2V4dGVuZGVkYQBvbGNoaWtpAHNocmQAaW50YWl4dWFuamluZ3N5bWJvbHMAaW50YWl2aWV0AHVnYXIAaW5jamtzeW1ib2xzYW5kcHVuY3R1YXRpb24AYm9wb21vZm8AaW5saXN1AGlub2xkcGVybWljAHNpZGRoYW0AemFuYWJhemFyc3F1YXJlAGFzc2lnbmVkAG1lZGYAY2xvc2VwdW5jdHVhdGlvbgBzYXJiAHNvcmFzb21wZW5nAGludmFyaWF0aW9uc2VsZWN0b3Jzc3VwcGxlbWVudABpbmhhbmd1bGphbW8AbWVkZWZhaWRyaW4AcGhhZwBpbmxpc3VzdXBwbGVtZW50AGluY29wdGljAGluc3lyaWFjc3VwcGxlbWVudABpbmhhbmd1bGphbW9leHRlbmRlZGEAY3lybABpbnNob3J0aGFuZGZvcm1hdGNvbnRyb2xzAGluY3lyaWxsaWNleHRlbmRlZGMAZ3VqcgBjd3UAZ3VqYXJhdGkAc3BhY2luZ21hcmsAYWxwaGEAbWx5bQBpbnBhbG15cmVuZQBtYWxheWFsYW0Ac3BhY2UAaW5sZXBjaGEAcGFsbXlyZW5lAHNveW8AbWVyb2l0aWNoaWVyb2dseXBocwB4c3V4AGludGVsdWd1AGluZGV2YW5hZ2FyaWV4dGVuZGVkAGlubWVyb2l0aWNjdXJzaXZlAGRzcnQAdGhhYQB0aGFhbmEAYnVnaQB0aGFpAHNvZ2QAdGl0bGVjYXNlbGV0dGVyAGlubWF0aGVtYXRpY2FsYWxwaGFudW1lcmljc3ltYm9scwBvcmtoAGNhdWNhc2lhbmFsYmFuaWFuAGluYmFtdW0AZGVzZXJldABpbmdlb3JnaWFuc3VwcGxlbWVudABidWdpbmVzZQBzZXBhcmF0b3IAaW5zbWFsbGZvcm12YXJpYW50cwB0aXJoAGluYnJhaG1pAG5kAHBobngAbmV3YQBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3MAbWFoagBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3Nmb3JzeW1ib2xzAG9sZHBlcnNpYW4AbWFoYWphbmkAdGFpdGhhbQBuZXd0YWlsdWUAbmV3bGluZQBzeXJjAGlubW9uZ29saWFuc3VwcGxlbWVudABpbnVuaWZpZWRjYW5hZGlhbmFib3JpZ2luYWxzeWxsYWJpY3NleHRlbmRlZGEAc2hhdwBidWhkAHZpdGhrdXFpAG51bWJlcgBpbnN1dHRvbnNpZ253cml0aW5nAHZhcmlhdGlvbnNlbGVjdG9yAGV0aGkAbGVwY2hhAHRpcmh1dGEAcm9oZwBhaGV4AGluY29wdGljZXBhY3RudW1iZXJzAHdhbmNobwBpbmNqa3VuaWZpZWRpZGVvZ3JhcGhzZXh0ZW5zaW9uZwBraG9qAGN1bmVpZm9ybQBpbmR1cGxveWFuAHVnYXJpdGljAGluc3ltYm9sc2FuZHBpY3RvZ3JhcGhzZXh0ZW5kZWRhAG9sZHBlcm1pYwBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3NzdXBwbGVtZW50AGtodWRhd2FkaQB0YW5nAHN5cmlhYwB0YWdiYW53YQBtb2RpZmllcmxldHRlcgBpbmN1cnJlbmN5c3ltYm9scwBpbm55aWFrZW5ncHVhY2h1ZWhtb25nAHRhbWlsAHRhbHUAaW5nb3RoaWMAaW51bmlmaWVkY2FuYWRpYW5hYm9yaWdpbmFsc3lsbGFiaWNzAHdjaG8AaW5jb21iaW5pbmdkaWFjcml0aWNhbG1hcmtzZXh0ZW5kZWQAb2dhbQB0ZWx1AGlkc3RyaW5hcnlvcGVyYXRvcgBpbmJlbmdhbGkAbmwAc3Vycm9nYXRlAGViYXNlAGhhbmcAaW5idWdpbmVzZQBtYXRoc3ltYm9sAGludml0aGt1cWkAdml0aABpbmNqa3JhZGljYWxzc3VwcGxlbWVudABpbmd1amFyYXRpAGluZ2xhZ29saXRpYwBpbmd1bmphbGFnb25kaQBwaGFnc3BhAGN3Y2YAbmNoYXIAb3RoZXJpZGNvbnRpbnVlAHdoaXRlc3BhY2UAaW5saW5lYXJic3lsbGFiYXJ5AHNnbncAb3RoZXIAaGlyYWdhbmEAaW5waGFnc3BhAG90aGVybnVtYmVyAGlucmVqYW5nAG9zZ2UAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmIAaW50YWdhbG9nAGluYmFzc2F2YWgAdGFuZ3V0AGhtbmcAaW5lbmNsb3NlZGNqa2xldHRlcnNhbmRtb250aHMAY3VycmVuY3lzeW1ib2wAaW5saW1idQBpbmJ1aGlkAGluZXRoaW9waWNleHRlbmRlZGEAc3lsbwBkYXNoAHdhcmFuZ2NpdGkAb2FscGhhAG9sZGl0YWxpYwBpbm90dG9tYW5zaXlhcW51bWJlcnMAc3BhY2VzZXBhcmF0b3IAaW5sYXRpbjFzdXBwbGVtZW50AG90aGVyYWxwaGFiZXRpYwBjaGFuZ2Vzd2hlbmNhc2VtYXBwZWQAaW5hZWdlYW5udW1iZXJzAGludW5pZmllZGNhbmFkaWFuYWJvcmlnaW5hbHN5bGxhYmljc2V4dGVuZGVkAGJ1aGlkAGluamF2YW5lc2UAY3lyaWxsaWMAZG9ncmEAbm9uY2hhcmFjdGVyY29kZXBvaW50AGluaGFuZ3Vsc3lsbGFibGVzAGJhc3NhdmFoAGlubGV0dGVybGlrZXN5bWJvbHMAaW5jb21iaW5pbmdoYWxmbWFya3MAaW5hcmFiaWNtYXRoZW1hdGljYWxhbHBoYWJldGljc3ltYm9scwBvcnlhAGlucHJpdmF0ZXVzZWFyZWEAY2hhbmdlc3doZW50aXRsZWNhc2VkAGRvZ3IAaGVicgBpbnRhZ2JhbndhAGludGlmaW5hZ2gAaW5ib3BvbW9mbwBuYXJiAHJqbmcAaW5hbHBoYWJldGljcHJlc2VudGF0aW9uZm9ybXMAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmYAaW5zeW1ib2xzZm9ybGVnYWN5Y29tcHV0aW5nAG9sZGh1bmdhcmlhbgBmaW5hbHB1bmN0dWF0aW9uAGlucGF1Y2luaGF1AGlucHNhbHRlcnBhaGxhdmkAenAAcGhscABpbmFyYWJpY3ByZXNlbnRhdGlvbmZvcm1zYgBub25zcGFjaW5nbWFyawBkZXZhAHRhdnQAaG1ucABkZXZhbmFnYXJpAGtoaXRhbnNtYWxsc2NyaXB0AGtheWFobGkAaW5iYW11bXN1cHBsZW1lbnQAc3lsb3RpbmFncmkAdGlidABlcHJlcwB0aWJldGFuAGVsYmEAb3NtYW55YQBpbmRpdmVzYWt1cnUAb2xkdHVya2ljAGNoYW5nZXN3aGVubG93ZXJjYXNlZABjeXByb21pbm9hbgBpbmV0aGlvcGljZXh0ZW5kZWQAZW1vamlwcmVzZW50YXRpb24AYW55AG90aGVybG93ZXJjYXNlAG91Z3IAaW5oZWJyZXcAc29mdGRvdHRlZABpbm1hdGhlbWF0aWNhbG9wZXJhdG9ycwBpbmFsY2hlbWljYWxzeW1ib2xzAGlubWFoam9uZ3RpbGVzAGhhbmd1bABleHQAb21hdGgAaW50YW5ndXRjb21wb25lbnRzAG90aGVybGV0dGVyAG5iYXQAbmFiYXRhZWFuAG5zaHUAcGFyYWdyYXBoc2VwYXJhdG9yAGluYXJhYmljZXh0ZW5kZWRiAGlubGF0aW5leHRlbmRlZGcAY2hhbmdlc3doZW51cHBlcmNhc2VkAGh1bmcAaW5wbGF5aW5nY2FyZHMAaW5hcmFiaWNzdXBwbGVtZW50AGlueWlqaW5naGV4YWdyYW1zeW1ib2xzAGlucGhvbmV0aWNleHRlbnNpb25zAG90aGVydXBwZXJjYXNlAG90aGVyaWRzdGFydABlbGJhc2FuAGVseW0AY2YAaW5pbmRpY3NpeWFxbnVtYmVycwBvdGhlcnN5bWJvbABleHRlbmRlcgBleHRwaWN0AHdzcGFjZQBwZgBlbHltYWljAGludGFuZ3V0c3VwcGxlbWVudABjeXByaW90AHN5bWJvbABpbmN5cmlsbGljZXh0ZW5kZWRiAGluc3VwZXJzY3JpcHRzYW5kc3Vic2NyaXB0cwBpbnlpc3lsbGFibGVzAGlucGhvbmV0aWNleHRlbnNpb25zc3VwcGxlbWVudABvbGRzb2dkaWFuAGluZ2VvcmdpYW5leHRlbmRlZABobHV3AGRpZ2l0AGluaGFuZ3VsamFtb2V4dGVuZGVkYgBpbmhpZ2hwcml2YXRldXNlc3Vycm9nYXRlcwBpbnBhaGF3aGhtb25nAG9naGFtAGluc3VwcGxlbWVudGFsYXJyb3dzYQBvdXBwZXIAYWdoYgBvdGhlcm1hdGgAbnVzaHUAc295b21ibwBpbmxhdGluZXh0ZW5kZWRiAGFscGhhYmV0aWMAaW5zdXBwbGVtZW50YWxhcnJvd3NjAGluc3VwcGxlbWVudGFsbWF0aGVtYXRpY2Fsb3BlcmF0b3JzAG90aGVyZGVmYXVsdGlnbm9yYWJsZWNvZGVwb2ludABkZXByZWNhdGVkAG9sZG5vcnRoYXJhYmlhbgBpbmN5cHJpb3RzeWxsYWJhcnkAZXh0ZW5kZWRwaWN0b2dyYXBoaWMAdW5pZmllZGlkZW9ncmFwaABwYWhhd2hobW9uZwBkaXZlc2FrdXJ1AHNpZ253cml0aW5nAHRhZ2IAdGlmaW5hZ2gAdXBwZXIAaW5oYWxmd2lkdGhhbmRmdWxsd2lkdGhmb3JtcwB1cHBlcmNhc2UAZXRoaW9waWMAbW9kaWZpZXJzeW1ib2wAb3RoZXJwdW5jdHVhdGlvbgByZWphbmcAaW5ldGhpb3BpY2V4dGVuZGVkYgB0Zm5nAGhleABpbnN1cHBsZW1lbnRhbHB1bmN0dWF0aW9uAHRnbGcAaW5sYXRpbmV4dGVuZGVkZgB0YWdhbG9nAGhhbmlmaXJvaGluZ3lhAGVjb21wAGluZ2xhZ29saXRpY3N1cHBsZW1lbnQAaGV4ZGlnaXQAY2hhbmdlc3doZW5jYXNlZm9sZGVkAGRhc2hwdW5jdHVhdGlvbgBvbGRzb3V0aGFyYWJpYW4AZHVwbABpbmVneXB0aWFuaGllcm9nbHlwaHMAdGVsdWd1AHVwcGVyY2FzZWxldHRlcgBpbmVneXB0aWFuaGllcm9nbHlwaGZvcm1hdGNvbnRyb2xzAGh5cGhlbgBoZWJyZXcAaW5oaWdoc3Vycm9nYXRlcwB6eXl5AG9ncmV4dABvdGhlcmdyYXBoZW1lZXh0ZW5kAGRlcABpbnN1cHBsZW1lbnRhbGFycm93c2IAZGVmYXVsdGlnbm9yYWJsZWNvZGVwb2ludABpbmhhbmd1bGNvbXBhdGliaWxpdHlqYW1vAG9sZHV5Z2h1cgBpbnN1cHBsZW1lbnRhcnlwcml2YXRldXNlYXJlYWEAaW5ib3BvbW9mb2V4dGVuZGVkAGluc3VwcGxlbWVudGFsc3ltYm9sc2FuZHBpY3RvZ3JhcGhzAG55aWFrZW5ncHVhY2h1ZWhtb25nAG9wZW5wdW5jdHVh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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7KBQnJiUOBSQUBxkiHSAQOx87OwIBOxkPOw47Oxw7Ajs7Ows7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Oxg7Fjs7Czs7Ozs7BzsAOzsQOwE7OxA7OzsPOzs7Bjs7OzsAOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwYDDg4ODg4OAQ4ODg4ODg4ODg4ADg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgAODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgQODgUODgQODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgoODg4ODgkOAQ4ODg4ODg4ODg4OAA4ODggODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg44ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAADChk4OB4AODgAFDg4OA84OBQ4HjgAADg4ODg4ODg4Dzg4ODg4GTgKODg4OAU4ADgAOAU4OBQ4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgAAwoZODgeADg4ABQ4ODgPODgUOB44AAA4ODg4ODg4OA84ODg4OBk4Cjg4ODgFOAA4ADgFODgUODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4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AGwHAQBKbgEAzw8BABYBAADMAAEA2iwAAD8LAQDaBAAAwwQBANoeAACECAEA2h8AAF8JAQC8JAAA1AkBAJoDAAAKAwEAxBAAAMMLAQDaAAAAmQABABQEAQCnDQEAFCwAAEwKAQAUBAAAjQMBABQeAABpBwEAuiQAAM4JAQAUAQAAyQABAP///////wAAwhAAAL0LAQCOAwAARwMBABoEAQC5DQEAGiwAAF4KAQAaBAAAoAMBABoeAAByBwEAGh8AANsIAQAaAQAA0gABAP///////wAAtiQAAMIJAQD///////8AAP///////wAAigMAAOYCAQAYBAEAsw0BABgsAABYCgEAGAQAAJoDAQAYHgAAbwcBABgfAADVCAEAGAEAAM8AAQAOBAEAlQ0BAA4sAAA6CgEADgQAABEEAQAOHgAAYAcBAA4fAADPCAEADgEAAMAAAQAC6QEAFxABAP///////wAAxyQAAPUJAQAMBAEAjw0BAAwsAAA0CgEADAQAAAsEAQAMHgAAXQcBAAwfAADJCAEADAEAAL0AAQAIBAEAgw0BAAgsAAAoCgEACAQAAP8DAQAIHgAAVwcBAAgfAAC9CAEACAEAALcAAQAGBAEAfQ0BAAYsAAAiCgEABgQAAPkDAQAGHgAAVAcBAP///////wAABgEAALQAAQD///////8AAAIFAAD/BAEABAQBAHcNAQAELAAAHAoBAAQEAADzAwEABB4AAFEHAQD///////8AAAQBAACxAAEAAAQBAGsNAQAALAAAEAoBAAAEAADnAwEAAB4AAEsHAQD///////8AAAABAACrAAEA////////AAB1BQEAXg4BAJQFAQCyDgEAKiwAAI4KAQAqBAAA1AMBACoeAACKBwEAKh8AAO0IAQAqAQAA6gABACqnAABLDAEAwgMAACYDAQAmBAEA3Q0BACYsAACCCgEAJgQAAMgDAQAmHgAAhAcBALcEAQD4DQEAJgEAAOQAAQAmpwAARQwBAJ4DAAAYAwEAtx8AAAoAAwC3AQAAwgIBAJIFAQCvDgEAt6sAABUHAQD///////8AALccAAArBgEAewEAAFwBAQB7pwAAtAwBAHurAABhBgEAjAMAAEQDAQAuLAAAmgoBAC4EAADhAwEALh4AAJAHAQAuHwAA+QgBAC4BAADwAAEALqcAAFEMAQCPHwAApAACAI8BAABxAgEA////////AACPqwAAnQYBAAL7AAAMAAIAiAMAAOACAQCPDAEA5Q4BAP///////wAALCwAAJQKAQAsBAAA2wMBACweAACNBwEALB8AAPMIAQAsAQAA7QABACynAABODAEAKCwAAIgKAQAoBAAAzgMBACgeAACHBwEAKB8AAOcIAQAoAQAA5wABACinAABIDAEA////////AAD///////8AAIYFAQCODgEAJAQBANcNAQAkLAAAfAoBACQEAADCAwEAJB4AAIEHAQBHBQAAhgUBACQBAADhAAEAJKcAAEIMAQAiBAEA0Q0BACIsAAB2CgEAIgQAALoDAQAiHgAAfgcBADP/AABTDQEAIgEAAN4AAQAipwAAPwwBANoDAABTAwEAwAQBABMOAQDALAAAGAsBAMAEAACxBAEAwB4AAF0IAQAx/wAATQ0BADsCAABBAgEAwKcAAAINAQCzBAEA7A0BAMAAAABNAAEA////////AAAqIQAAGwABALMfAAA+AAIAswEAAJIBAQCzpwAAGg0BALOrAAAJBwEA////////AACzHAAAHwYBAP///////wAAJiEAADoDAQA1BQAAUAUBALcQAACcCwEAsQQBAOYNAQD///////8AALcYAQCWDwEASgIAAFMCAQCOBQEAow4BALEBAAC5AgEAsacAALACAQCxqwAAAwcBAP///////wAAsRwAABkGAQCxDAEASw8BADwFAABlBQEA////////AAAcAgAAIAIBAE4eAADABwEAigUBAJoOAQBOAQAAGgEBAE6nAAB+DAEAqx8AAOAAAgBOAAAAJQABAKunAAB3AgEAq6sAAPEGAQAWAgAAFwIBAKscAAAHBgEAqwwBADkPAQCXHgAAIgACAJcfAADMAAIAlwEAAIkCAQBOpgAA5QsBAJerAAC1BgEAggUBAIIOAQCXHAAAywUBAJcMAQD9DgEA////////AABObgEA2w8BAHEFAQBSDgEAFAIAABQCAQDEJAAA7AkBAH4sAABEAgEAfgQAAEUEAQB+HgAACQgBACr/AAA4DQEAgAUBAHwOAQB+pwAAtwwBAH6rAABqBgEAGgIAAB0CAQDCJAAA5gkBAKkfAADWAAIAqQEAAK0CAQAm/wAALA0BAKmrAADrBgEAjQUBAKAOAQCpHAAAAQYBAKkMAQAzDwEA////////AAD///////8AABgCAAAaAgEAwBAAALcLAQAgBAEAyw0BACAsAABwCgEAIAQAALMDAQAgHgAAewcBAA4CAAALAgEAIAEAANsAAQCzEAAAkAsBAP///////wAALv8AAEQNAQCzGAEAig8BAP///////wAAkR8AAK4AAgCRAQAAcQEBAAwCAAAIAgEAkasAAKMGAQD///////8AAJEcAAC5BQEAkQwBAOsOAQD///////8AAAgCAAACAgEAsRAAAIoLAQDVAQAAuQEBACz/AAA+DQEAsRgBAIQPAQDVAAAAjQABAAYCAAD/AQEAjwMAAEoDAQD///////8AACj/AAAyDQEA1CwAADYLAQDUBAAAugQBANQeAAB7CAEAjAUBAJ0OAQAEAgAA/AEBAKsQAAB4CwEAOwUAAGIFAQDUAAAAigABAKsYAQByDwEAJP8AACYNAQAAAgAA9gEBAP///////wAA////////AAAc6QEAZRABAP///////wAAiAUBAJQOAQAi/wAAIA0BAP///////wAAKgIAADICAQD///////8AAP4EAAD5BAEA/h4AALoIAQAW6QEAUxABAP4BAADzAQEA////////AABKBQAAjwUBACYCAAAsAgEAHgQBAMUNAQAeLAAAagoBAB4EAACsAwEAHh4AAHgHAQD///////8AAB4BAADYAAEA////////AACpEAAAcgsBABwFAAAmBQEAFOkBAE0QAQCpGAEAbA8BANIEAQBJDgEA0iwAADMLAQDSBAAAtwQBANIeAAB4CAEA0h8AABQAAwAuAgAAOAIBABYFAAAdBQEAGukBAF8QAQDSAAAAhAABAKcfAAD0AAIApwEAAIkBAQD///////8AAKerAADlBgEA////////AACnHAAA+wUBAKcMAQAtDwEA////////AAD///////8AABjpAQBZEAEALAIAADUCAQAUBQAAGgUBAHwEAABCBAEAfB4AAAYIAQAzBQAASgUBAA7pAQA7EAEAKAIAAC8CAQB8qwAAZAYBAEgeAAC3BwEASB8AABcJAQAaBQAAIwUBAEinAAB1DAEAMQUAAEQFAQBIAAAAFQABAAzpAQA1EAEAaywAAK8KAQAkAgAAKQIBAKsDAABBAwEAax8AAD4JAQD///////8AAAjpAQApEAEAGAUAACAFAQBIpgAA2wsBACICAAAmAgEA////////AACXAwAA/QIBAAbpAQAjEAEADgUAABEFAQBIbgEAyQ8BAP///////wAAVh4AAMwHAQBWHwAAPgADAFYBAAAmAQEAVqcAAIoMAQAE6QEAHRABAFYAAAA+AAEADAUAAA4FAQD///////8AABb7AAB9AAIA////////AAAA6QEAERABAP///////wAACAUAAAgFAQD///////8AAFamAADxCwEA////////AACpAwAAOgMBAP///////wAABgUAAAUFAQD///////8AAFZuAQDzDwEA////////AAAU+wAAbQACAP///////wAAtyQAAMUJAQD///////8AAAQFAAACBQEA4iwAAEsLAQDiBAAAzwQBAOIeAACQCAEA4h8AACQAAwDiAQAAzgEBAAAFAAD8BAEATgIAAFkCAQCnEAAAbAsBAP///////wAA////////AACnGAEAZg8BAJEDAADpAgEA////////AAAqBQAAOwUBAFQeAADJBwEAVB8AADkAAwBUAQAAIwEBAFSnAACHDAEA////////AABUAAAAOAABANUDAAAwAwEAJgUAADUFAQA5HwAAAgkBADkBAAD8AAEAEgQBAKENAQASLAAARgoBABIEAACGAwEAEh4AAGYHAQBUpgAA7gsBABIBAADGAAEAEAQBAJsNAQAQLAAAQAoBABAEAACAAwEAEB4AAGMHAQBUbgEA7Q8BABABAADDAAEA////////AABrIQAAsAkBAC4FAABBBQEAjwUBAKYOAQA/HwAAFAkBAD8BAAAFAQEABvsAAB0AAgBSHgAAxgcBAFIfAAA0AAMAUgEAACABAQBSpwAAhAwBAP///////wAAUgAAADEAAQD///////8AAAT7AAAFAAMA/gMAANcCAQAsBQAAPgUBACACAAB9AQEA////////AADAJAAA4AkBAAD7AAAEAAIAUqYAAOsLAQAoBQAAOAUBAFAeAADDBwEAUB8AAFQAAgBQAQAAHQEBAFCnAACBDAEAUm4BAOcPAQBQAAAAKwABAP///////wAAygQBADEOAQDKLAAAJwsBACQFAAAyBQEAyh4AAGwIAQDKHwAAWQkBAMoBAACpAQEA////////AABQpgAA6AsBAMoAAABsAAEAIgUAAC8FAQCnAwAANAMBAPAEAADkBAEA8B4AAKUIAQBQbgEA4Q8BAPABAAAUAAIA2CwAADwLAQDYBAAAwAQBANgeAACBCAEA2B8AAH0JAQD///////8AANinAAAUDQEA////////AADYAAAAkwABANYsAAA5CwEA1gQAAL0EAQDWHgAAfggBANYfAABMAAIA////////AADWpwAAEQ0BAP///////wAA1gAAAJAAAQDIBAEAKw4BAMgsAAAkCwEAuQQBAP4NAQDIHgAAaQgBAMgfAABTCQEAyAEAAKUBAQC5HwAAegkBAP///////wAAyAAAAGYAAQC5qwAAGwcBAP///////wAAuRwAADEGAQAeAgAAIwIBAMYEAQAlDgEAxiwAACELAQD///////8AAMYeAABmCAEAxh8AAEMAAgBOBQAAmwUBAManAABIBwEAxQQBACIOAQDGAAAAYAABAMUEAACiBAEAuwQBAAQOAQC1BAEA8g0BAMUBAAChAQEAxacAAKoCAQC7HwAAUAkBAMUAAABcAAEAtQEAAJUBAQC7qwAAIQcBALWrAAAPBwEAtQAAABEDAQC1HAAAJQYBAK8fAAD0AAIArwEAAI8BAQD///////8AAK+rAAD9BgEAaSwAAKwKAQCvHAAAEwYBAK8MAQBFDwEAaR8AADgJAQB+BQEAdg4BACDpAQBxEAEA////////AAClHwAA6gACAP///////wAASAIAAFACAQClqwAA3wYBAOIDAABfAwEApRwAAPUFAQClDAEAJw8BAP///////wAAOf8AAGUNAQCjHwAA4AACAP///////wAA////////AACjqwAA2QYBAKEfAADWAAIAoxwAAO8FAQCjDAEAIQ8BAKGrAADTBgEA////////AAChHAAA6QUBAKEMAQAbDwEAIAUAACwFAQCHHwAApAACAIcBAABrAQEA////////AACHqwAAhQYBAJEFAQCsDgEAhxwAABoEAQCHDAEAzQ4BAP///////wAA////////AAByLAAAsgoBAHIEAAAzBAEAch4AAPcHAQBNHwAAJgkBAHIBAABQAQEAuRAAAKILAQByqwAARgYBAE0AAAAiAAEAuRgBAJwPAQBwLAAAYgIBAHAEAAAwBAEAcB4AAPQHAQD///////8AAHABAABNAQEA////////AABwqwAAQAYBAG4sAACbAgEAbgQAAC0EAQBuHgAA8QcBAG4fAABHCQEAbgEAAEoBAQBupwAArgwBAE1uAQDYDwEAxRAAAMYLAQAe6QEAaxABAEUBAAAOAQEAuxAAAKgLAQC1EAAAlgsBAEUAAAAMAAEAuxgBAKIPAQC1GAEAkA8BAO4EAADhBAEA7h4AAKIIAQCvEAAAhAsBAO4BAADgAQEA////////AACvGAEAfg8BAGwEAAAqBAEAbB4AAO4HAQBsHwAAQQkBAGwBAABHAQEAbKcAAKsMAQBpIQAAqgkBAEVuAQDADwEApRAAAGYLAQD///////8AAB4FAAApBQEApRgBAGAPAQASAgAAEQIBAP///////wAA8AMAAAoDAQD///////8AAGymAAASDAEAoxAAAGALAQAQAgAADgIBANgDAABQAwEAoxgBAFoPAQChEAAAWgsBAP///////wAA////////AAChGAEAVA8BAP///////wAA////////AADWAwAAHgMBAGoEAAAnBAEAah4AAOsHAQBqHwAAOwkBAGoBAABEAQEAaqcAAKgMAQBoBAAAJAQBAGgeAADoBwEAaB8AADUJAQBoAQAAQQEBAGinAAClDAEAfAUBAHAOAQD///////8AAP///////wAARh4AALQHAQD///////8AAGqmAAAPDAEARqcAAHIMAQBIBQAAiQUBAEYAAAAPAAEA////////AABopgAADAwBAGQsAACkAgEAZAQAAB4EAQBkHgAA4gcBAP///////wAAZAEAADsBAQBkpwAAnwwBAEamAADYCwEA3iwAAEULAQDeBAAAyQQBAN4eAACKCAEAbiEAALkJAQDeAQAAyAEBAEZuAQDDDwEA////////AADeAAAApQABADAeAACTBwEAZKYAAAYMAQAwAQAABQECAFYFAACzBQEAYiwAAJICAQBiBAAAGgQBAGIeAADfBwEA////////AABiAQAAOAEBAGKnAACcDAEA////////AAD///////8AAP///////wAApQMAAC0DAQD///////8AAGwhAACzCQEARB4AALEHAQD///////8AAP///////wAARKcAAG8MAQBipgAAAwwBAEQAAAAJAAEAowMAACYDAQB5AQAAWQEBAHmnAACxDAEAeasAAFsGAQChAwAAIgMBAGAsAACgCgEAYAQAABcEAQBgHgAA2wcBAESmAADVCwEAYAEAADUBAQBgpwAAmQwBAP///////wAA////////AAAS6QEARxABAERuAQC9DwEAMh4AAJYHAQD///////8AADIBAADzAAEAMqcAAFQMAQAQ6QEAQRABAGohAACtCQEAYKYAAAAMAQBUBQAArQUBAP///////wAAcgMAAM4CAQBoIQAApwkBAM0EAQA6DgEA////////AADNBAAArgQBADkFAABcBQEA////////AADNAQAArQEBAP///////wAAcAMAAMsCAQDNAAAAdQABABIFAAAXBQEAzAQBADcOAQDMLAAAKgsBAM8EAQBADgEAzB4AAG8IAQDMHwAARwACABAFAAAUBQEAZCEAAJsJAQDPAQAAsAEBAMwAAAByAAEARQMAAAUDAQDPAAAAewABAD8FAABuBQEAywQBADQOAQDKJAAA/gkBAMsEAACrBAEAUgUAAKcFAQDLHwAAXAkBAMsBAACpAQEA7gMAAHEDAQDDBAEAHA4BAMsAAABvAAEAwwQAAJ8EAQDJBAEALg4BAMMfAABHAAIAyQQAAKgEAQBiIQAAlQkBAMkfAABWCQEAwwAAAFYAAQDJpwAACw0BAL8EAQAQDgEAyQAAAGkAAQBQBQAAoQUBAFUAAAA7AAEAvQQBAAoOAQB2BAAAOQQBAHYeAAD9BwEAv6sAAC0HAQB2AQAAVgEBAL8cAAA9BgEAdqsAAFIGAQC9qwAAJwcBAP///////wAAvRwAADcGAQD///////8AAMgkAAD4CQEA////////AAC5JAAAywkBAFVuAQDwDwEAYCEAAI8JAQCfHwAAzAACAJ8BAAChAgEAwQQBABYOAQCfqwAAzQYBAMEEAACcBAEAnxwAAOMFAQCfDAEAFQ8BADIhAACMCQEAxiQAAPIJAQBFAgAAvwIBAMEAAABQAAEAnR8AAMIAAgCdAQAAngIBAP///////wAAnasAAMcGAQDFJAAA7wkBAJ0cAADdBQEAnQwBAA8PAQC7JAAA0QkBAM0QAADMCwEAmx4AANsHAQCbHwAAuAACADD/AABKDQEA////////AACbqwAAwQYBAEMBAAALAQEAmxwAANcFAQCbDAEACQ8BAEMAAAAGAAEAmR4AACoAAgCZHwAArgACAN4DAABZAwEA////////AACZqwAAuwYBAJUfAADCAAIAmRwAANEFAQCZDAEAAw8BAJWrAACvBgEA////////AACVHAAAxQUBAJUMAQD3DgEAkx8AALgAAgCTAQAAegIBAENuAQC6DwEAk6sAAKkGAQD///////8AAJMcAAC/BQEAkwwBAPEOAQDDEAAAwAsBAIMfAACQAAIAOh4AAKIHAQA6HwAABQkBAIOrAAB5BgEAOqcAAGAMAQCDHAAAtgMBAIMMAQDBDgEASR8AABoJAQBJAQAALgACAL8QAAC0CwEAMv8AAFANAQBJAAAAdxABAL8YAQCuDwEAvRAAAK4LAQBGAgAATQIBAH8sAABHAgEAvRgBAKgPAQCBHwAAhgACAIEBAABlAgEAfwEAADQAAQCBqwAAcwYBAH+rAABtBgEAgRwAAI0DAQCBDAEAuw4BAGYEAAAhBAEAZh4AAOUHAQBJbgEAzA8BAGYBAAA+AQEAZqcAAKIMAQD///////8AAFoeAADSBwEAwRAAALoLAQBaAQAALAEBAFqnAACQDAEAhwUBAJEOAQBaAAAASgABAIcFAABpAAIAMAIAADsCAQBYHgAAzwcBAGamAAAJDAEAWAEAACkBAQBYpwAAjQwBAEIeAACuBwEAWAAAAEQAAQBapgAA9wsBAEKnAABsDAEAcgUBAFUOAQBCAAAAAwABAE0FAACYBQEA////////AABabgEA/w8BAM8DAABNAwEAWKYAAPQLAQBEAgAAtgIBAP///////wAAcAUBAE8OAQBCpgAA0gsBAP///////wAAWG4BAPkPAQD///////8AAM4EAQA9DgEAziwAAC0LAQBCbgEAtw8BAM4eAAByCAEA+gQAAPMEAQD6HgAAtAgBAPofAABxCQEA+gEAAO0BAQDOAAAAeAABAEUFAACABQEA9AQAAOoEAQD0HgAAqwgBAPQfAABlAAIA9AEAAOcBAQAyAgAAPgIBAP///////wAAgyEAAL8JAQDsBAAA3gQBAOweAACfCAEA7B8AAIkJAQDsAQAA3QEBAHYDAADRAgEA8iwAAFQLAQDyBAAA5wQBAPIeAACoCAEA8h8AAAEBAgDyAQAA4wEBAOoEAADbBAEA6h4AAJwIAQDqHwAAawkBAOoBAADaAQEAIQQBAM4NAQAhLAAAcwoBACEEAAC2AwEAnwMAABsDAQDoBAAA2AQBAOgeAACZCAEA6B8AAIMJAQDoAQAA1wEBAP///////wAAPh4AAKgHAQA+HwAAEQkBAGYhAAChCQEAPqcAAGYMAQD///////8AAJ0DAAAVAwEA5gQAANUEAQDmHgAAlggBAOYfAABYAAIA5gEAANQBAQDkBAAA0gQBAOQeAACTCAEA5B8AAFAAAgDkAQAA0QEBADYeAACcBwEAmwMAAA4DAQA2AQAA+QABADanAABaDAEA3CwAAEILAQDcBAAAxgQBANweAACHCAEA////////AAD///////8AAEYFAACDBQEAmQMAAAUDAQDcAAAAnwABAEAeAACrBwEAUwAAADQAAQCVAwAA9gIBAECnAABpDAEAOv8AAGgNAQCLHwAAkAACAIsBAABuAQEAi6cAAMYMAQCLqwAAkQYBAJMDAADwAgEA+hMAADYHAQCLDAEA2Q4BAHgEAAA8BAEAeB4AAAAIAQBApgAAzwsBAHgBAACoAAEAU24BAOoPAQB4qwAAWAYBAHQEAAA2BAEAdB4AAPoHAQBAbgEAsQ8BAHQBAABTAQEAQQEAAAgBAQB0qwAATAYBAF4eAADYBwEAQQAAAAAAAQBeAQAAMgEBAF6nAACWDAEAXB4AANUHAQD///////8AAFwBAAAvAQEAXKcAAJMMAQAXBAEAsA0BABcsAABVCgEAFwQAAJcDAQB/AwAAdwMBAEQFAAB9BQEA////////AABepgAA/QsBAHkFAQBqDgEAQW4BALQPAQBDAgAAYgEBAFymAAD6CwEAzSQAAAcKAQBebgEACxABAFEAAAAuAAEAOB4AAJ8HAQA4HwAA/wgBAFxuAQAFEAEAOKcAAF0MAQAdBAEAwg0BAB0sAABnCgEAHQQAAKkDAQDMJAAABAoBAB0fAADkCAEAzyQAAA0KAQA0HgAAmQcBADIFAABHBQEANAEAAPYAAQA0pwAAVwwBAFFuAQDkDwEAKywAAJEKAQArBAAA2AMBAP///////wAAKx8AAPAIAQDLJAAAAQoBAE8AAAAoAAEA////////AAA6AgAAowoBABsEAQC8DQEAGywAAGEKAQAbBAAAowMBAMMkAADpCQEAGx8AAN4IAQD///////8AAMkkAAD7CQEAGQQBALYNAQAZLAAAWwoBABkEAACdAwEA0QQBAEYOAQAZHwAA2AgBAE9uAQDeDwEAvyQAAN0JAQD6AwAAfQMBANEBAACzAQEA////////AAC9JAAA1wkBANEAAACBAAEA////////AAD0AwAAAAMBABUEAQCqDQEAFSwAAE8KAQAVBAAAkQMBABMEAQCkDQEAEywAAEkKAQATBAAAigMBAOwDAABuAwEAIf8AAB0NAQAPBAEAmA0BAA8sAAA9CgEADwQAABQEAQD///////8AAA8fAADSCAEA////////AADBJAAA4wkBAFUFAACwBQEA6gMAAGsDAQD///////8AAA0EAQCSDQEADSwAADcKAQANBAAADgQBAHYFAQBhDgEADR8AAMwIAQD///////8AAOgDAABoAwEA////////AAD///////8AADb/AABcDQEACwQBAIwNAQALLAAAMQoBAAsEAAAIBAEA////////AAALHwAAxggBAP///////wAA////////AADmAwAAZQMBAAkEAQCGDQEACSwAACsKAQAJBAAAAgQBAOQDAABiAwEACR8AAMAIAQAFBAEAeg0BAAUsAAAfCgEABQQAAPYDAQADBAEAdA0BAAMsAAAZCgEAAwQAAPADAQD///////8AANwDAABWAwEA////////AAArIQAAXAABAAEEAQBuDQEAASwAABMKAQABBAAA6gMBAPwEAAD2BAEA/B4AALcIAQD8HwAAYAACAPwBAADwAQEA////////AAD///////8AAEMFAAB6BQEA+AQAAPAEAQD4HgAAsQgBAPgfAABlCQEA+AEAAOoBAQAnBAEA4A0BACcsAACFCgEAJwQAAMsDAQCVBQEAtQ4BAPYEAADtBAEA9h4AAK4IAQD2HwAAXAACAPYBAAB0AQEAegQAAD8EAQB6HgAAAwgBAEsfAAAgCQEA////////AAA+AgAApgoBAHqrAABeBgEASwAAABsAAQAfBAEAyA0BAB8sAABtCgEAHwQAALADAQCDBQEAhQ4BAP///////wAAOP8AAGINAQD///////8AADoFAABfBQEALywAAJ0KAQAvBAAA5AMBAP///////wAALx8AAPwIAQBJBQAAjAUBAP///////wAAS24BANIPAQA0/wAAVg0BAC0sAACXCgEALQQAAN4DAQD///////8AAC0fAAD2CAEAgQUBAH8OAQB/BQEAeQ4BACv/AAA7DQEAKSwAAIsKAQApBAAA0QMBAP///////wAAKR8AAOoIAQAlBAEA2g0BACUsAAB/CgEAJQQAAMUDAQAjBAEA1A0BACMsAAB5CgEAIwQAAL8DAQARBAEAng0BABEsAABDCgEAEQQAAIMDAQAHBAEAgA0BAAcsAAAlCgEABwQAAPwDAQD///////8AAP///////wAAziQAAAoKAQD///////8AAEECAABKAgEA////////AAD///////8AAPwTAAA8BwEA////////AABCBQAAdwUBAP///////wAA////////AAD///////8AAP///////wAA+BMAADAHAQD///////8AAP///////wAA0QMAAAADAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAh6QEAdBABAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAD4FAABrBQEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAn/wAALw0BAP///////wAA////////AAA2BQAAUwUBAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAUwUAAKoFAQD///////8AAP///////wAA////////AABABQAAcQUBAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAC//AABHDQEA////////AAD///////8AAP///////wAAeAUBAGcOAQD///////8AABfpAQBWEAEA////////AAAt/wAAQQ0BAP///////wAAdAUBAFsOAQD///////8AAP///////wAAQQUAAHQFAQD///////8AACn/AAA1DQEA////////AAD///////8AAP///////wAA////////AAAl/wAAKQ0BAP///////wAA////////AAAj/wAAIw0BAB3pAQBoEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAFEFAACkBQEA////////AAD///////8AAP///////wAA////////AAD///////8AADgFAABZBQEA////////AAD///////8AAP///////wAAG+kBAGIQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAANAUAAE0FAQAZ6QEAXBABAP///////wAA////////AAD///////8AAE8FAACeBQEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAFekBAFAQAQD///////8AAP///////wAAE+kBAEoQAQD///////8AAP///////wAA////////AAD///////8AAA/pAQA+EAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAF/sAAHUAAgD///////8AAP///////wAADekBADgQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAL6QEAMhABAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAACekBACwQAQD///////8AAP///////wAA////////AAD///////8AAAXpAQAgEAEA////////AAD///////8AAAPpAQAaEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAAekBABQQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAV+wAAcQACAP///////wAA////////AAAT+wAAeQACAP///////wAA////////AAD///////8AAB/pAQBuEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAB6BQEAbQ4BAP///////wAASwUAAJIFAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AABHpAQBEEAEABfsAAB0AAgD///////8AAAfpAQAmEAEAA/sAAAAAAwD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAB+wAACAACAP//////////cgdLB9IAqwBuDYcHzwznAG4BIwX8BEgMxgxzDjgFHQL2ATAIbwSDAS8CvwLrCuQMcA7rBycERAHACBsA8wioDEwGMQBiBZUNwwiUA3cFnwCSAiIKDwxJBp4C4gceBDsB0g8MAKMKnwznD9UIUAVGBlMJQA6uCO0EgwKVCQYMEQleDtsHFwQ1AcAPAACgCpkMRAlSDkQF+A2KCMkEyAEFBH0CRQsADI4K/g2NCMwEywG0D1AASAtXBzgJtwBxDagLWgtxAcMLXQcIBb0A/QYRBF0L+QMCApoKDgWCCsICAweGCWgNCAIKDpMI0gTRAWsCXACHC6sLBA6QCM8EzgGxC1YASwuFDnsHawHbALkC8g2HCMYExQFcDSwFQgsPB4kJaQezAskACQB9DV4GCQe9CE0FGgXmDYEIwAQrBuoIFAI8CxQN9wZgBHcBFQ+9D9wK1QxVDkEJ5Ah+CL0EGw/jBacFOQsRDTkMegHrBqoCswXpBVgOcgsWDpkI2ATXAbUOaQC/DX4LwgMLAXcN5QZMClkDEA6WCNUE1AEnD2MA7wkLBFwDlAaaBpQKIQ8bB/UF9QmfC64PVwtcASMJdwLvBbQMDw+6C5UFFQcmDewNhAjDBAMA+QjdBT8LjgZHBZYLYgMFEAAIPAQDD3EJRwABCl8DrQWzCYwFtw+lANEF+wk7CfEGdQi0BFYD/Q6ZCzALDg38D4EL6QmoBGgJfQHLBb8JCw2qCWQOYwQzD6gPUAPfCtgMWw7IAtMGgAndCQEGvA2uB78DLQ88DL4GSQpsDE0DnA/fBxoEOAH7BQYA1wmcDEMO0gtKBREDGAOTAHsLaAOAApYPAwwgCScIVwQNCgkPug/TCswMIw0+CWUD9wczBFAB1wU0ALIKBwowDAoDegX0BzAETQF1Cy4A1wJvCz0O//90BesOOgaQAOoPFw2bAnkOVglTA9YOuQVvCJgJ5A///+MJKgtQCTQOqAjnBOMBkgmHAFQLUgaiDygOogjhBOABag57ACIOnwjeBN0BxwZ1ALoI+QTzAcUJqAA+AzkHHA6cCNsE2gFABm8A//+EDy0H6AckBEEBLgZ3ECcHpQxvD5UBXAXlByEEPgGmDhIAjAKiDAwMIQdWBQ0ONw4XEMwPJhBgAIoACQx6A8YH8AMgAYIGxg95CoQM7QhKCToOqwjqBOcBKAaNAGUC3w7rCxIHPAfOAv/////MB/wDJgFNECwJhQqKDMsCaw3//0UPHwZTDT8HoAZuAj8P8QuuBK0BEwb9BzkEVgHnCEEADQYyCUcDOQ+GBT0GwwfqAx0BXw13A3MKgQwHBv//sAH//8oG9g9xA3gPXwJiCegL//9uA70LpAngDcAH5AMaASoPKQltCn4MKRD//2sD0AZ9CU0N+AUiBlkC///lC9oNvQfeAxcBuA76AmcKewzUDboH2AMUAf//JQZhCngMVgJHDeILtwtMDrQI8wTtAVMCnADeCwQKtg2rB7YDXwElAOIOQwppDEENawWbBR4Dewi6BP//NRA7DTYLzwuMDZYHigPzANsPCxAZClQM6A4aCVEP+gc2BFMBuQk7AD4CHQ22Bd8GgAVKA3gItwT//9ECoQIzCwgJ//9RCJAEmAGsDvAPDAv2DK8OXAl7D/EHLQRKAZ4JKAAvEK4M///ZBm4FwgndDYgG4QMdEJgCiwZqCu4HKgRHAYEPIgDeD6sMdgb//2gFzwcCBCkB//9mBIsKjQwSDOIK2wxhDv/////YD/cOcQKMCfQLxQJEDckH9gMjAf//xQV/CocMhAf//+QAfQP/////RQxpBGUNNQXuC+UK3gxnDv//LALxDs4NtwfRAy8J/////1sKdQz//78F/AhZDdEJyA20B8sDUAL//9sLVQpyDPMDegKQD3QQfArCDbEHxQNNArEP2AtPCm8MNQloAjUNuQ0AA7oDCAHLCQUDRgrVCy4OpQjkBP//Lw2BAOwCig9KAiYJVg2PAZgNnAeXA/kAlw4pDSUKWgwdCUgH//+SDZkHkQP2ADMHIA0fClcMeg2NB8kL7QBwBncJgQdODOEAFAk+Bf//QgwGCEIEMgU1An4H///eAA4JKQKYBT8M+w3//y8F7w2kAk0AwgHpDSYC9gi/AeMNCBBpCLwBpQF0CWAIJAtiAfAItgkbCwUNRQiEBKEFAAeDCQAL9AaaDqcC/wPuBksPXQiICugGuwb//xgLAg2pBv//GQYREFoImQSeAXMGegkVC/8MpQtXCJYEmwFUCJMEEgv8DKMGDwv5DLIO//9iDeEITgiNBP//zAudBgkL8wypDsYLPwh+BIwBlwbtA/oKkQaODnYKWQHAC0oAGA+xDP//DA+PBYUGYgIGDyMQ///mBQAP0w7aBWcGSQ7BDtQF/w///5kAzgVrCdoCSwiKBFANrQn//wYL8AyjDrANqAewA7sO2wj//z0KZgznA///8gn//3AK5gmTCzoDRALgCX8GJgP//9oJXAL//6UP///pAs8Inw8zCHIEhgGZD2wP7grnDHYOWg8iAy0IbASAAUoN///oCuEMbQ7JCF0EGwMDCD8E2QrSDE8OTwZUDxUD//+SBQ4DDwiRDmUBNgxDBrsKvQz//24QqgX9Ao0LAhC5Af//rQJuCRgMQgfgAmoGsAk0BtIHCAQsATEORBCRCpAMsw2EALMDBQFpC///QAriBnQCJQ73C4YNkweDA3gAUQtHAhMK//+ADZAH///wADYHYwv2AlEMOwIXCUEFdA2KB/UN6gD//zgCKgdLDP//Agk7Bf//Rg6xCPAE6gEyApYAHw7//xMOBw62AXIATgtmAFkAAQ6zAfoG/////1MAcgixBKsEqQFsCC0LZgj6Dv//Jwv//yELJAfcBhgHDAebDcgFmgPWBtQCBgcoCk4P///jAs0GxAYgEKUEwQb//7UGHAYIDacNQg+mA/8A/////zQK//+iBKEBYwgQBgwISATUCR4LQQK4CroMuAaLDqQF//90AxIPkw///x8ArwoVDEgIhwRlBbIG4AUDC68GnQ6VAmQGPA/0DjAPJA8xBv//1Q/uDnEQHg8KBsIF/gXyBeUO3A55BrwF2Q7sBc0O//9CCIEE/////+wJ/QpQEJQO////////iQGqDaUHqQOrD38OShA3CmMM0A7OCQoK/gn//zIQbQbICUQD+AkaEEEDjQ80A8oOWAb//8cOhw8bCEsEFBD//ysOxwp+D3UP//9+AHIP//9mDzkIeAS8AjcDJAz0Cu0Mgg42CHUECQhFBP//8QrqDHwOtwwwAzAHngUtA2kPEgjdAmgB//9bBr4KwAz/////sAX//w4QVQZjDz4AtQpgDxsM8AKDBbwJDwCmCrcI9gTwAVMFogD//9gHFAQyAYYC8w+dCpYMZgdfCcYA///DD///oQn//0cJFwX9C9UHDgQvAeYCEQKXCpMMpA2iB6MD/////0gPMQpgDJ8E3gj6C54NnwedA2MHFgbDACsKXQxUBxkOtABRBxQFsQBsAP////8FBQ4CTgcCBa4ArAb/ATwIewT8Af///wT3CtgIiA5oEP//+QHSCB4H///MCCoIWgR0ASQIVATWCv//xgjQCskM//9hBv//////////FQgzDDcGRAAtDMEKwwz//4kFOADLDZALzgMRAX0FsAJYCh4M//8rAP//jw35D40DcQX//2UJHArtD///xA6nCVkJ//8YAKwK//+bCeEPXwX/////TQmKCzYPjwIyDY8JbAsLCf//ZgucBM8PBAYVAKkK/////2ALWQXFDf//yAMOASoDiQJSCmsQrQ3//6wDAgH//8kPOgr//6YGoQ0+EKAD/AD//10PLgoYCIkNOBCGA4MNxAqAAxYK//94BxAK2AAsDSwQ//+2Av//IQwpBXUH1w3VANsD//8jApIBZAr//yYFBQmgDm8H/wjPACACbAdgB8wAwABaByAFugAhCFEEHQURBRoCzQoLBXwGFwILAh4ITgQFAr4OPg3KCtENKgzUA///UxD//14K//////////8nDP////////////////////////////9fEEUH/////////////////////////////zgN////////////////////////tAv///////9XD/////////////+uC/////////////////////////////+iC////////5wLhAv/////eAv////////////////////////////////zAv//////////////////YhD/////////////Gg3//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1wQ//////////////////////////9WEP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0cQ/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2UQ/////////////////////1kQ//////////////////9BEP////87EAAAAAAAAGUA/QBMAB0AGADvAGAARwBcAEMABAA+AAgAOgDqAG0ApABYAFQAUADWAAAANgAFATIAaQB5AH0AAQEqACYA+QAuAHUADABxAPQA5QDgANsA0QAQAMwAxwDCAL0AuACzAK4AqQAUACIAnwCaAJUAkACLAIYAgQBB8IkRC+EIPgAvAB8AOQApABkANAAkABQAQwAPAAoABQAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMA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AAAABAUAAAcFAAABAAAABgUAAAkFAAABAAAACAUAAAsFAAABAAAACgUAAA0FAAABAAAADAUAAA8FAAABAAAADgUAABEFAAABAAAAEAUAABMFAAABAAAAEgUAABUFAAABAAAAFAUAABcFAAABAAAAFgUAABkFAAABAAAAGAUAABsFAAABAAAAGgUAAB0FAAABAAAAHAUAAB8FAAABAAAAHgUAACEFAAABAAAAIAUAACMFAAABAAAAIgUAACUFAAABAAAAJAUAACcFAAABAAAAJgUAACkFAAABAAAAKAUAACsFAAABAAAAKgUAAC0FAAABAAAALAUAAC8FAAABAAAALgUAAGEFAAABAAAAMQUAAGIFAAABAAAAMgUAAGMFAAABAAAAMwUAAGQFAAABAAAANAUAAGUFAAABAAAANQUAAGYFAAABAAAANgUAAGcFAAABAAAANwUAAGgFAAABAAAAOAUAAGkFAAABAAAAOQUAAGoFAAABAAAAOgUAAGsFAAABAAAAOwUAAGwFAAABAAAAPAUAAG0FAAABAAAAPQUAAG4FAAABAAAAPgUAAG8FAAABAAAAPwUAAHAFAAABAAAAQAUAAHEFAAABAAAAQQUAAHIFAAABAAAAQgUAAHMFAAABAAAAQwUAAHQFAAABAAAARAUAAHUFAAABAAAARQUAAHYFAAABAAAARgUAAHcFAAABAAAARwUAAHgFAAABAAAASAUAAHkFAAABAAAASQUAAHoFAAABAAAASgUAAHsFAAABAAAASwUAAHwFAAABAAAATAUAAH0FAAABAAAATQUAAH4FAAABAAAATgUAAH8FAAABAAAATwUAAIAFAAABAAAAUAUAAIEFAAABAAAAUQUAAIIFAAABAAAAUgUAAIMFAAABAAAAUwUAAIQFAAABAAAAVAUAAIUFAAABAAAAVQUAAIYFAAABAAAAVgUAANAQAAABAAAAkBwAANEQAAABAAAAkRwAANIQAAABAAAAkhwAANMQAAABAAAAkxwAANQQAAABAAAAlBwAANUQAAABAAAAlRwAANYQAAABAAAAlhwAANcQAAABAAAAlxwAANgQAAABAAAAmBwAANkQAAABAAAAmRwAANoQAAABAAAAmhwAANsQAAABAAAAmxwAANwQAAABAAAAnBwAAN0QAAABAAAAnRwAAN4QAAABAAAAnhwAAN8QAAABAAAAnxwAAOAQAAABAAAAoBwAAOEQAAABAAAAoRwAAOIQAAABAAAAohwAAOMQAAABAAAAoxwAAOQQAAABAAAApBwAAOUQAAABAAAApRwAAOYQAAABAAAAphwAAOcQAAABAAAApxwAAOgQAAABAAAAqBwAAOkQAAABAAAAqRwAAOoQAAABAAAAqhwAAOsQAAABAAAAqxwAAOwQAAABAAAArBwAAO0QAAABAAAArRwAAO4QAAABAAAArhwAAO8QAAABAAAArxwAAPAQAAABAAAAsBwAAPEQAAABAAAAsRwAAPIQAAABAAAAshwAAPMQAAABAAAAsxwAAPQQAAABAAAAtBwAAPUQAAABAAAAtRwAAPYQAAABAAAAthwAAPcQAAABAAAAtxwAAPgQAAABAAAAuBwAAPkQAAABAAAAuRwAAPoQAAABAAAAuhwAAP0QAAABAAAAvRwAAP4QAAABAAAAvhwAAP8QAAABAAAAvxwAAKATAAABAAAAcKsAAKETAAABAAAAcasAAKITAAABAAAAcqsAAKMTAAABAAAAc6sAAKQTAAABAAAAdKsAAKUTAAABAAAAdasAAKYTAAABAAAAdqsAAKcTAAABAAAAd6sAAKgTAAABAAAAeKsAAKkTAAABAAAAeasAAKoTAAABAAAAeqsAAKsTAAABAAAAe6sAAKwTAAABAAAAfKsAAK0TAAABAAAAfasAAK4TAAABAAAAfqsAAK8TAAABAAAAf6sAALATAAABAAAAgKsAALETAAABAAAAgasAALITAAABAAAAgqsAALMTAAABAAAAg6sAALQTAAABAAAAhKsAALUTAAABAAAAhasAALYTAAABAAAAhqsAALcTAAABAAAAh6sAALgTAAABAAAAiKsAALkTAAABAAAAiasAALoTAAABAAAAiqsAALsTAAABAAAAi6sAALwTAAABAAAAjKsAAL0TAAABAAAAjasAAL4TAAABAAAAjqsAAL8TAAABAAAAj6sAAMATAAABAAAAkKsAAMETAAABAAAAkasAAMITAAABAAAAkqsAAMMTAAABAAAAk6sAAMQTAAABAAAAlKsAAMUTAAABAAAAlasAAMYTAAABAAAAlqsAAMcTAAABAAAAl6sAAMgTAAABAAAAmKsAAMkTAAABAAAAmasAAMoTAAABAAAAmqsAAMsTAAABAAAAm6sAAMwTAAABAAAAnKsAAM0TAAABAAAAnasAAM4TAAABAAAAnqsAAM8TAAABAAAAn6sAANATAAABAAAAoKsAANETAAABAAAAoasAANITAAABAAAAoqsAANMTAAABAAAAo6sAANQTAAABAAAApKsAANUTAAABAAAApasAANYTAAABAAAApqsAANcTAAABAAAAp6sAANgTAAABAAAAqKsAANkTAAABAAAAqasAANoTAAABAAAAqqsAANsTAAABAAAAq6sAANwTAAABAAAArKsAAN0TAAABAAAArasAAN4TAAABAAAArqsAAN8TAAABAAAAr6sAAOATAAABAAAAsKsAAOETAAABAAAAsasAAOITAAABAAAAsqsAAOMTAAABAAAAs6sAAOQTAAABAAAAtKsAAOUTAAABAAAAtasAAOYTAAABAAAAtqsAAOcTAAABAAAAt6sAAOgTAAABAAAAuKsAAOkTAAABAAAAuasAAOoTAAABAAAAuqsAAOsTAAABAAAAu6sAAOwTAAABAAAAvKsAAO0TAAABAAAAvasAAO4TAAABAAAAvqsAAO8TAAABAAAAv6sAAPATAAABAAAA+BMAAPETAAABAAAA+RMAAPITAAABAAAA+hMAAPMTAAABAAAA+xMAAPQTAAABAAAA/BMAAPUTAAABAAAA/RMAAHkdAAABAAAAfacAAH0dAAABAAAAYywAAI4dAAABAAAAxqcAAAEeAAABAAAAAB4AAAMeAAABAAAAAh4AAAUeAAABAAAABB4AAAceAAABAAAABh4AAAkeAAABAAAACB4AAAseAAABAAAACh4AAA0eAAABAAAADB4AAA8eAAABAAAADh4AABEeAAABAAAAEB4AABMeAAABAAAAEh4AABUeAAABAAAAFB4AABceAAABAAAAFh4AABkeAAABAAAAGB4AABseAAABAAAAGh4AAB0eAAABAAAAHB4AAB8eAAABAAAAHh4AACEeAAABAAAAIB4AACMeAAABAAAAIh4AACUeAAABAAAAJB4AACceAAABAAAAJh4AACkeAAABAAAAKB4AACseAAABAAAAKh4AAC0eAAABAAAALB4AAC8eAAABAAAALh4AADEeAAABAAAAMB4AADMeAAABAAAAMh4AADUeAAABAAAANB4AADceAAABAAAANh4AADkeAAABAAAAOB4AADseAAABAAAAOh4AAD0eAAAB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LAAAAQAAABMsAABELAAAAQAAABQsAABFLAAAAQAAABUsAABGLAAAAQAAABYsAABHLAAAAQAAABcsAABILAAAAQAAABgsAABJLAAAAQAAABksAABKLAAAAQAAABosAABLLAAAAQAAABssAABMLAAAAQAAABwsAABNLAAAAQAAAB0sAABOLAAAAQAAAB4sAABPLAAAAQAAAB8sAABQLAAAAQAAACAsAABRLAAAAQAAACEsAABSLAAAAQAAACIsAABTLAAAAQAAACMsAABULAAAAQAAACQsAABVLAAAAQAAACUsAABWLAAAAQAAACYsAABXLAAAAQAAACcsAABYLAAAAQAAACgsAABZLAAAAQAAACksAABaLAAAAQAAACosAABbLAAAAQAAACssAABcLAAAAQAAACwsAABdLAAAAQAAAC0sAABeLAAAAQAAAC4sAABfLAAAAQAAAC8sAABhLAAAAQAAAGAsAABlLAAAAQAAADoCAABmLAAAAQAAAD4CAABoLAAAAQAAAGcsAABqLAAAAQAAAGksAABsLAAAAQAAAGssAABzLAAAAQAAAHIsAAB2LAAAAQAAAHUsAACBLAAAAQAAAIAsAACDLAAAAQAAAIIsAACFLAAAAQAAAIQsAACHLAAAAQAAAIYsAACJLAAAAQAAAIgsAACLLAAAAQAAAIosAACNLAAAAQAAAIwsAACPLAAAAQAAAI4sAACRLAAAAQAAAJAsAACTLAAAAQAAAJIsAACVLAAAAQAAAJQsAACXLAAAAQAAAJYsAACZLAAAAQAAAJgsAACbLAAAAQAAAJosAACdLAAAAQAAAJwsAACfLAAAAQAAAJ4sAAChLAAAAQAAAKAsAACjLAAAAQAAAKIsAAClLAAAAQAAAKQsAACnLAAAAQAAAKYsAACpLAAAAQAAAKgsAACrLAAAAQAAAKosAACtLAAAAQAAAKwsAACvLAAAAQAAAK4sAACxLAAAAQAAALAsAACzLAAAAQAAALIsAAC1LAAAAQAAALQsAAC3LAAAAQAAALYsAAC5LAAAAQAAALgsAAC7LAAAAQAAALosAAC9LAAAAQAAALwsAAC/LAAAAQAAAL4sAADBLAAAAQAAAMAsAADDLAAAAQAAAMIsAADFLAAAAQAAAMQsAADHLAAAAQAAAMYsAADJLAAAAQAAAMgsAADLLAAAAQAAAMosAADN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AgAwJgIAgCYCAOAmAgD0JgIAACcCALA+AgAAUwIAoFMCAMBTAgCwVAIA0FQCAPBUAgAMVQIAIFUCAEBVAgCwVQIAcFYCAJBWAgDgVgIAAFcCADBXAgBQVwIAcFcCAMBrAgBAcAIAoHACAOBxAgAAcgIAMHICAFByAgCQcgIAsHICAECHAgBwiQIAIJkCAOC6AABgmQIAwJkCAPStAgAArgIAIK4CAHy3AgCItwIAoLcCAOC3AgAAuAIAILgCAEC4AgCAuAIA4LwCAHDCAgCcwgIAsMICANDCAgDwwgIADMMCACDDAgBAwwIA0M0CAPDNAgAwzgIAUM4CAIDOAgCgzgIA4NICAADTAgDgogAAINMCAFDTAgBw0wIAkNMCAADUAgBA1gIA4NYCAADXAgAk1wIAMNcCAEDXAgBg1wIAdNcCAIDXAgCQ1wIApNcCALDXAgC81wIAyNcCAODXAgBg2AIAgNgCAKDYAgDw3wIAUOACACDhAgBQ4QIAgOECAFDiAgCQ5gIAwOUAAMDmAgDs5gIAAOcCAPDnAgAc6AIAMOgCAHDoAgAQ6QIAgOsCANTrAgDg6wIAAOwCAGDsAgAw8gIAcPICAPD0AgAQ9QIAgPUCAJz1AgCw9QIA0PUCAPD1AgBQ/QIAcP0CAJD9AgBA/gIAvAADAMgAAwDgAAMAAAEDACABAwCQAQMAkAIDAKAEAwCACgMAhAsDAJALAwCkCwMAsAsDAMQLAwDQCwMAAAwDACAMAwBADAMAYAwDAJAMAwCwDAMA0AwDAHANAwCQDQMAwA0DADAOAwCMEQMAoBEDAMARAwAAEgMAIBIDADQSAwBAEgMAYBIDAOASAwAQ7AAApCgDALAoAwDgKAMAMCkDAFApAwCw6wAAcCkDAFBBAwDQVQMA8FUDABBWAwBUVgMAYFYDAGxWAwCAVgMAFDABALxWAwDIVgMA1FYDAOBWAwDsVgMA+FYDAARXAwAQVwMAHFcDAChXAwA0VwMAQFcDAExXAwBYVwMAZFcDAHBXAwB8VwMAiFcDAJRXAwCgVwMArFcDALhXAwDEVwMA0FcDANxXAwDoVwMA9FcDAABYAwAMWAMAGFgDACRYAwAwWAMAPFgDAEhYAwBUWAMAYFgDAGxYAwB4WAMAhFgDAJBYAwCcWAMAqFgDALRYAwDAWAMAzFgDANhYAwDkWAMA8FgDAPxYAwAIWQMAFFkDACBZAwAsWQMAOFkDAERZAwBQWQMAXFkDAGhZAwB0WQMAgFkDAIxZAwAw1wIAmFkDAKRZAwCwWQMAvFkDAMhZAwDUWQMA4FkDAOxZAwD4WQMABFoDABBaAwAcWgMAKFoDADRaAwBAWgMATFoDAFhaAwBkWgMAcFoDAHxaAwCIWgMAlFoDAKBaAwCsWgMAuFoDAMRaAwDQWgMA3FoDABxKAQDoWgMA9FoDAABbAwAMWwMAGFsDACRbAwAwWwMAPFsDAEhbAwBUWwMAYFsDAGxbAwB4WwMAhFsDAJBbAwCcWwMAqFsDALRbAwDAWwMAzFsDANhbAwDkWwMA8FsDAPxbAwAIXAMAFFwDACBcAwAsXAMAOFwDAERcAwBQXAMAXFwDAGhcAwB0XAMAgFwDAIxcAwCYXAMApFwDALBcAwC8XAMAyFwDANRcAwDgXAMA7FwDAPhcAwAEXQMAEF0DABxdAwAoXQMANF0DAEBdAwBMXQMAWF0DAGRdAwBwXQMAfF0DAIhdAwCUXQMAoF0DAKxdAwC4XQMAxF0DANBdAwDcXQMA6F0DAPRdAwAAXgMADF4DABheAwAkXgMAMF4DADxeAwBIXgMAVF4DAGBeAwBsXgMAeF4DAIReAwCQXgMAnF4DAKheAwC0XgMAwF4DAMxeAwDYXgMA5F4DAPTjAQDIAAMA8F4DAPxeAwAIXwMAFF8DACBfAwAsXwMAOF8DAERfAwBQXwMA7OYCAFxfAwBoXwMAdF8DAIBfAwAMwwIAjF8DAJhfAwCw1wIAdNcCAKRfAwCwXwMAvF8DAMhfAwDUXwMA4F8DAOxfAwD4XwMABGADABBgAwAcYAMAKGADADRgAwBAYAMATGADAFhgAwBkYAMAcGADAHxgAwCIYAMAvAADAJRgAwCgYAMArGADALhgAwDEYAMA0GADANxgAwDoYAMA9GADAABhAwAMYQMAGGEDACRhAwAwYQMAPGEDAEhhAwBUYQMAYGEDAGxhAwB4YQMAhGEDAJBhAwCcYQMAqGEDALRhAwDAYQMAzGEDANhhAwDkYQMA8GEDAPxhAwAIYgMAFGIDACBiAwAsYgMAOGIDAERiAwBQYgMAXGIDAGhiAwB0YgMAgGIDAIxiAwCYYgMApGIDALBiAwC8YgMAyGIDANRiAwDgYgMA7GIDAPhiAwAEYwMAEGMDABxjAwAoYwMANGMDAEBjAwBMYwMAWGMDAGRjAwBwYwMAfGMDAIhjAwCUYwMAoGMDAKxjAwC4YwMAxGMDANBjAwDcYwMA6GMDAPRjAwAAZAMADGQDABhkAwAkZAMAMGQDADxkAwBIZAMAVGQDAGBkAwBsZAMAeGQDAIRkAwCQZAMAnGQDAKhkAwC0ZAMAwGQDAMxkAwDYZAMA5GQDAPBkAwD8ZAMACGUDABRlAwAgZQMALGUDADhlAwBQZQMAFQAAAAsFAAABAAAAAQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAAAAAAIwAAAAUAQey9Egs9JAAAAEMFAAAEAAAAAQAAABYAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAAIQBBtL4SCwUvAAAAHwBByL4SCwEFAEHUvhILATAAQey+EgsOMQAAADIAAABooQQAAAQAQYS/EgsBAQBBlL8SCwX/////CgBB2L8SCwPQx1Q="),A=>A.charCodeAt(0));const g=Q,E=async A=>WebAssembly.instantiate(g,A).then(B=>B.instance.exports);export{E as default}; diff --git a/assets/chunks/wenyan.D3VXSfF0.js b/assets/chunks/wenyan.D3VXSfF0.js new file mode 100644 index 000000000..ef8d46bc9 --- /dev/null +++ b/assets/chunks/wenyan.D3VXSfF0.js @@ -0,0 +1 @@ +const u=Object.freeze({displayName:"Wenyan",name:"wenyan",patterns:[{include:"#keywords"},{include:"#constants"},{include:"#operators"},{include:"#symbols"},{include:"#expression"},{include:"#comment-blocks"},{include:"#comment-lines"}],repository:{"comment-blocks":{begin:"(注曰|疏曰|批曰)。?(「「|『)",end:"(」」|』)",name:"comment.block",patterns:[{match:"\\\\.",name:"constant.character"}]},"comment-lines":{begin:"注曰|疏曰|批曰",end:"$",name:"comment.line",patterns:[{match:"\\\\.",name:"constant.character"}]},constants:{patterns:[{match:"負|·|又|零|〇|一|二|三|四|五|六|七|八|九|十|百|千|萬|億|兆|京|垓|秭|穰|溝|澗|正|載|極|分|釐|毫|絲|忽|微|纖|沙|塵|埃|渺|漠",name:"constant.numeric"},{match:"其|陰|陽",name:"constant.language"},{begin:"「「|『",end:"」」|』",name:"string.quoted",patterns:[{match:"\\\\.",name:"constant.character"}]}]},expression:{patterns:[{include:"#variables"}]},keywords:{patterns:[{match:"數|列|言|術|爻|物|元",name:"storage.type"},{match:"乃行是術曰|若其不然者|乃歸空無|欲行是術|乃止是遍|若其然者|其物如是|乃得矣|之術也|必先得|是術曰|恆為是|之物也|乃得|是謂|云云|中之|為是|乃止|若非|或若|之長|其餘",name:"keyword.control"},{match:"或云|蓋謂",name:"keyword.control"},{match:"中有陽乎|中無陰乎|所餘幾何|不等於|不大於|不小於|等於|大於|小於|加|減|乘|除|變|以|於",name:"keyword.operator"},{match:"不知何禍歟|不復存矣|姑妄行此|如事不諧|名之曰|吾嘗觀|之禍歟|乃作罷|吾有|今有|物之|書之|以施|昔之|是矣|之書|方悟|之義|嗚呼|之禍|有|施|曰|噫|取|今|夫|中|豈",name:"keyword.other"},{match:"也|凡|遍|若|者|之|充|銜",name:"keyword.control"}]},symbols:{patterns:[{match:"。|、",name:"punctuation.separator"}]},variables:{begin:"「",end:"」",name:"variable.other",patterns:[{match:"\\\\.",name:"constant.character"}]}},scopeName:"source.wenyan",aliases:["文言"]});var e=[u];export{e as default}; diff --git a/assets/chunks/wgsl.BZz1Hhek.js b/assets/chunks/wgsl.BZz1Hhek.js new file mode 100644 index 000000000..8e197b16f --- /dev/null +++ b/assets/chunks/wgsl.BZz1Hhek.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"WGSL",name:"wgsl",patterns:[{include:"#line_comments"},{include:"#block_comments"},{include:"#keywords"},{include:"#attributes"},{include:"#functions"},{include:"#function_calls"},{include:"#constants"},{include:"#types"},{include:"#variables"},{include:"#punctuation"}],repository:{attributes:{patterns:[{captures:{1:{name:"keyword.operator.attribute.at"},2:{name:"entity.name.attribute.wgsl"}},comment:"attribute declaration",match:"(@)([A-Za-z_]+)",name:"meta.attribute.wgsl"}]},block_comments:{patterns:[{comment:"empty block comments",match:"/\\*\\*/",name:"comment.block.wgsl"},{begin:"/\\*\\*",comment:"block documentation comments",end:"\\*/",name:"comment.block.documentation.wgsl",patterns:[{include:"#block_comments"}]},{begin:"/\\*(?!\\*)",comment:"block comments",end:"\\*/",name:"comment.block.wgsl",patterns:[{include:"#block_comments"}]}]},constants:{patterns:[{comment:"decimal float literal",match:"(-?\\b[0-9][0-9]*\\.[0-9][0-9]*)([eE][+-]?[0-9]+)?\\b",name:"constant.numeric.float.wgsl"},{comment:"int literal",match:"-?\\b0x[0-9a-fA-F]+\\b|\\b0\\b|-?\\b[1-9][0-9]*\\b",name:"constant.numeric.decimal.wgsl"},{comment:"uint literal",match:"\\b0x[0-9a-fA-F]+u\\b|\\b0u\\b|\\b[1-9][0-9]*u\\b",name:"constant.numeric.decimal.wgsl"},{comment:"boolean constant",match:"\\b(true|false)\\b",name:"constant.language.boolean.wgsl"}]},function_calls:{patterns:[{begin:"([A-Za-z0-9_]+)(\\()",beginCaptures:{1:{name:"entity.name.function.wgsl"},2:{name:"punctuation.brackets.round.wgsl"}},comment:"function/method calls",end:"\\)",endCaptures:{0:{name:"punctuation.brackets.round.wgsl"}},name:"meta.function.call.wgsl",patterns:[{include:"#line_comments"},{include:"#block_comments"},{include:"#keywords"},{include:"#attributes"},{include:"#function_calls"},{include:"#constants"},{include:"#types"},{include:"#variables"},{include:"#punctuation"}]}]},functions:{patterns:[{begin:"\\b(fn)\\s+([A-Za-z0-9_]+)((\\()|(<))",beginCaptures:{1:{name:"keyword.other.fn.wgsl"},2:{name:"entity.name.function.wgsl"},4:{name:"punctuation.brackets.round.wgsl"}},comment:"function definition",end:"\\{",endCaptures:{0:{name:"punctuation.brackets.curly.wgsl"}},name:"meta.function.definition.wgsl",patterns:[{include:"#line_comments"},{include:"#block_comments"},{include:"#keywords"},{include:"#attributes"},{include:"#function_calls"},{include:"#constants"},{include:"#types"},{include:"#variables"},{include:"#punctuation"}]}]},keywords:{patterns:[{comment:"other keywords",match:"\\b(bitcast|block|break|case|continue|continuing|default|discard|else|elseif|enable|fallthrough|for|function|if|loop|private|read|read_write|return|storage|switch|uniform|while|workgroup|write)\\b",name:"keyword.control.wgsl"},{comment:"reserved keywords",match:"\\b(asm|const|do|enum|handle|mat|premerge|regardless|typedef|unless|using|vec|void)\\b",name:"keyword.control.wgsl"},{comment:"storage keywords",match:"\\b(let|var)\\b",name:"keyword.other.wgsl storage.type.wgsl"},{comment:"type keyword",match:"\\b(type)\\b",name:"keyword.declaration.type.wgsl storage.type.wgsl"},{comment:"enum keyword",match:"\\b(enum)\\b",name:"keyword.declaration.enum.wgsl storage.type.wgsl"},{comment:"struct keyword",match:"\\b(struct)\\b",name:"keyword.declaration.struct.wgsl storage.type.wgsl"},{comment:"fn",match:"\\bfn\\b",name:"keyword.other.fn.wgsl"},{comment:"logical operators",match:"(\\^|\\||\\|\\||&&|<<|>>|!)(?!=)",name:"keyword.operator.logical.wgsl"},{comment:"logical AND, borrow references",match:"&(?![&=])",name:"keyword.operator.borrow.and.wgsl"},{comment:"assignment operators",match:"(\\+=|-=|\\*=|/=|%=|\\^=|&=|\\|=|<<=|>>=)",name:"keyword.operator.assignment.wgsl"},{comment:"single equal",match:"(?<![<>])=(?!=|>)",name:"keyword.operator.assignment.equal.wgsl"},{comment:"comparison operators",match:"(=(=)?(?!>)|!=|<=|(?<!=)>=)",name:"keyword.operator.comparison.wgsl"},{comment:"math operators",match:"(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))",name:"keyword.operator.math.wgsl"},{comment:"dot access",match:"\\.(?!\\.)",name:"keyword.operator.access.dot.wgsl"},{comment:"dashrocket, skinny arrow",match:"->",name:"keyword.operator.arrow.skinny.wgsl"}]},line_comments:{comment:"single line comment",match:"\\s*//.*",name:"comment.line.double-slash.wgsl"},punctuation:{patterns:[{comment:"comma",match:",",name:"punctuation.comma.wgsl"},{comment:"curly braces",match:"[{}]",name:"punctuation.brackets.curly.wgsl"},{comment:"parentheses, round brackets",match:"[()]",name:"punctuation.brackets.round.wgsl"},{comment:"semicolon",match:";",name:"punctuation.semi.wgsl"},{comment:"square brackets",match:"[\\[\\]]",name:"punctuation.brackets.square.wgsl"},{comment:"angle brackets",match:"(?<![=-])[<>]",name:"punctuation.brackets.angle.wgsl"}]},types:{comment:"types",name:"storage.type.wgsl",patterns:[{comment:"scalar Types",match:"\\b(bool|i32|u32|f32)\\b",name:"storage.type.wgsl"},{comment:"reserved scalar Types",match:"\\b(i64|u64|f64)\\b",name:"storage.type.wgsl"},{comment:"vector type aliasses",match:"\\b(vec2i|vec3i|vec4i|vec2u|vec3u|vec4u|vec2f|vec3f|vec4f|vec2h|vec3h|vec4h)\\b",name:"storage.type.wgsl"},{comment:"matrix type aliasses",match:"\\b(mat2x2f|mat2x3f|mat2x4f|mat3x2f|mat3x3f|mat3x4f|mat4x2f|mat4x3f|mat4x4f|mat2x2h|mat2x3h|mat2x4h|mat3x2h|mat3x3h|mat3x4h|mat4x2h|mat4x3h|mat4x4h)\\b",name:"storage.type.wgsl"},{comment:"vector/matrix types",match:"\\b(vec[2-4]|mat[2-4]x[2-4])\\b",name:"storage.type.wgsl"},{comment:"atomic types",match:"\\b(atomic)\\b",name:"storage.type.wgsl"},{comment:"array types",match:"\\b(array)\\b",name:"storage.type.wgsl"},{comment:"Custom type",match:"\\b([A-Z][A-Za-z0-9]*)\\b",name:"entity.name.type.wgsl"}]},variables:{patterns:[{comment:"variables",match:"\\b(?<!(?<!\\.)\\.)(?:r#(?!(crate|[Ss]elf|super)))?[a-z0-9_]+\\b",name:"variable.other.wgsl"}]}},scopeName:"source.wgsl"});var t=[e];export{t as default}; diff --git a/assets/chunks/wolfram.BICIrM8O.js b/assets/chunks/wolfram.BICIrM8O.js new file mode 100644 index 000000000..6b76d0888 --- /dev/null +++ b/assets/chunks/wolfram.BICIrM8O.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Wolfram",fileTypes:["wl","m","wls","wlt","mt"],name:"wolfram",patterns:[{include:"#main"}],repository:{"association-group":{begin:"<\\|",beginCaptures:{0:{name:"punctuation.section.associations.begin.wolfram"}},end:"\\|>",endCaptures:{0:{name:"punctuation.section.associations.end.wolfram"}},name:"meta.associations.wolfram",patterns:[{include:"#expressions"}]},"brace-group":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.braces.begin.wolfram"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.braces.end.wolfram"}},name:"meta.braces.wolfram",patterns:[{include:"#expressions"}]},"bracket-group":{begin:"::\\[|\\[",beginCaptures:{0:{name:"punctuation.section.brackets.begin.wolfram"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.brackets.end.wolfram"}},name:"meta.brackets.wolfram",patterns:[{include:"#expressions"}]},comments:{patterns:[{begin:"\\(\\*",beginCaptures:{0:{name:"punctuation.definition.comment.wolfram"}},end:"\\*\\)",endCaptures:{0:{name:"punctuation.definition.comment.wolfram"}},name:"comment.block",patterns:[{include:"#comments"}]},{match:"\\*\\)",name:"invalid.illegal.stray-comment-end.wolfram"}]},escaped_character_symbols:{patterns:[{match:"System`\\\\\\[(?:F(?:ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`\\\\\\[(?:S(?:ystemsModelDelay))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:F(?:ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:S(?:ystemsModelDelay))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:D(?:egree))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:E(?:xponentialE))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:I(?:maginaryI|maginaryJ|nfinity))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:P(?:i))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"}]},escaped_characters:{patterns:[{match:"\\\\[!%&()*+/@^_` ]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:A(?:kuz|ndy))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:C(?:ontinuedFractionK|url))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:D(?:ivergence|ivisionSlash))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:E(?:xpectationE))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:F(?:reeformPrompt))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:G(?:radient))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:L(?:aplacian))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:M(?:inus|oon))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:N(?:umberComma))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:P(?:ageBreakAbove|ageBreakBelow|robabilityPr))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:S(?:pooky|tepperDown|tepperLeft|tepperRight|tepperUp|un))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:U(?:nknownGlyph))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:V(?:illa))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:W(?:olframAlphaPrompt))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:C(?:OMPATIBILITYKanjiSpace|OMPATIBILITYNoBreak))\\]",name:"invalid.illegal.unsupported"},{match:"\\\\\\[(?:I(?:nlinePart))\\]",name:"invalid.illegal.unsupported"},{match:"\\\\\\[(?:A(?:Acute|Bar|Cup|DoubleDot|E|Grave|Hat|Ring|Tilde|leph|liasDelimiter|liasIndicator|lignmentMarker|lpha|ltKey|nd|ngle|ngstrom|pplication|quariusSign|riesSign|scendingEllipsis|utoLeftMatch|utoOperand|utoPlaceholder|utoRightMatch|utoSpace))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:B(?:ackslash|eamedEighthNote|eamedSixteenthNote|ecause|et|eta|lackBishop|lackKing|lackKnight|lackPawn|lackQueen|lackRook|reve|ullet))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:C(?:Acute|Cedilla|Hacek|ancerSign|ap|apitalAAcute|apitalABar|apitalACup|apitalADoubleDot|apitalAE|apitalAGrave|apitalAHat|apitalARing|apitalATilde|apitalAlpha|apitalBeta|apitalCAcute|apitalCCedilla|apitalCHacek|apitalChi|apitalDHacek|apitalDelta|apitalDifferentialD|apitalDigamma|apitalEAcute|apitalEBar|apitalECup|apitalEDoubleDot|apitalEGrave|apitalEHacek|apitalEHat|apitalEpsilon|apitalEta|apitalEth|apitalGamma|apitalIAcute|apitalICup|apitalIDoubleDot|apitalIGrave|apitalIHat|apitalIota|apitalKappa|apitalKoppa|apitalLSlash|apitalLambda|apitalMu|apitalNHacek|apitalNTilde|apitalNu|apitalOAcute|apitalODoubleAcute|apitalODoubleDot|apitalOE|apitalOGrave|apitalOHat|apitalOSlash|apitalOTilde|apitalOmega|apitalOmicron|apitalPhi|apitalPi|apitalPsi|apitalRHacek|apitalRho|apitalSHacek|apitalSampi|apitalSigma|apitalStigma|apitalTHacek|apitalTau|apitalTheta|apitalThorn|apitalUAcute|apitalUDoubleAcute|apitalUDoubleDot|apitalUGrave|apitalUHat|apitalURing|apitalUpsilon|apitalXi|apitalYAcute|apitalZHacek|apitalZeta|apricornSign|edilla|ent|enterDot|enterEllipsis|heckedBox|heckmark|heckmarkedBox|hi|ircleDot|ircleMinus|irclePlus|ircleTimes|lockwiseContourIntegral|loseCurlyDoubleQuote|loseCurlyQuote|loverLeaf|lubSuit|olon|ommandKey|onditioned|ongruent|onjugate|onjugateTranspose|onstantC|ontinuation|ontourIntegral|ontrolKey|oproduct|opyright|ounterClockwiseContourIntegral|ross|ubeRoot|up|upCap|urlyCapitalUpsilon|urlyEpsilon|urlyKappa|urlyPhi|urlyPi|urlyRho|urlyTheta|urrency))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:D(?:Hacek|agger|alet|ash|egree|el|eleteKey|elta|escendingEllipsis|iameter|iamond|iamondSuit|ifferenceDelta|ifferentialD|igamma|irectedEdge|iscreteRatio|iscreteShift|iscretionaryHyphen|iscretionaryLineSeparator|iscretionaryPageBreakAbove|iscretionaryPageBreakBelow|iscretionaryParagraphSeparator|istributed|ivide|ivides|otEqual|otlessI|otlessJ|ottedSquare|oubleContourIntegral|oubleDagger|oubleDot|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oublePrime|oubleRightArrow|oubleRightTee|oubleStruckA|oubleStruckB|oubleStruckC|oubleStruckCapitalA|oubleStruckCapitalB|oubleStruckCapitalC|oubleStruckCapitalD|oubleStruckCapitalE|oubleStruckCapitalF|oubleStruckCapitalG|oubleStruckCapitalH|oubleStruckCapitalI|oubleStruckCapitalJ|oubleStruckCapitalK|oubleStruckCapitalL|oubleStruckCapitalM|oubleStruckCapitalN|oubleStruckCapitalO|oubleStruckCapitalP|oubleStruckCapitalQ|oubleStruckCapitalR|oubleStruckCapitalS|oubleStruckCapitalT|oubleStruckCapitalU|oubleStruckCapitalV|oubleStruckCapitalW|oubleStruckCapitalX|oubleStruckCapitalY|oubleStruckCapitalZ|oubleStruckD|oubleStruckE|oubleStruckEight|oubleStruckF|oubleStruckFive|oubleStruckFour|oubleStruckG|oubleStruckH|oubleStruckI|oubleStruckJ|oubleStruckK|oubleStruckL|oubleStruckM|oubleStruckN|oubleStruckNine|oubleStruckO|oubleStruckOne|oubleStruckP|oubleStruckQ|oubleStruckR|oubleStruckS|oubleStruckSeven|oubleStruckSix|oubleStruckT|oubleStruckThree|oubleStruckTwo|oubleStruckU|oubleStruckV|oubleStruckW|oubleStruckX|oubleStruckY|oubleStruckZ|oubleStruckZero|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|oubledGamma|oubledPi|ownArrow|ownArrowBar|ownArrowUpArrow|ownBreve|ownExclamation|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownPointer|ownQuestion|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:E(?:Acute|Bar|Cup|DoubleDot|Grave|Hacek|Hat|arth|ighthNote|lement|llipsis|mptyCircle|mptyDiamond|mptyDownTriangle|mptyRectangle|mptySet|mptySmallCircle|mptySmallSquare|mptySquare|mptyUpTriangle|mptyVerySmallSquare|nterKey|ntityEnd|ntityStart|psilon|qual|qualTilde|quilibrium|quivalent|rrorIndicator|scapeKey|ta|th|uro|xists|xponentialE))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:F(?:iLigature|illedCircle|illedDiamond|illedDownTriangle|illedLeftTriangle|illedRectangle|illedRightTriangle|illedSmallCircle|illedSmallSquare|illedSquare|illedUpTriangle|illedVerySmallSquare|inalSigma|irstPage|ivePointedStar|lLigature|lat|lorin|orAll|ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta|reakedSmiley|unction))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:G(?:amma|eminiSign|imel|othicA|othicB|othicC|othicCapitalA|othicCapitalB|othicCapitalC|othicCapitalD|othicCapitalE|othicCapitalF|othicCapitalG|othicCapitalH|othicCapitalI|othicCapitalJ|othicCapitalK|othicCapitalL|othicCapitalM|othicCapitalN|othicCapitalO|othicCapitalP|othicCapitalQ|othicCapitalR|othicCapitalS|othicCapitalT|othicCapitalU|othicCapitalV|othicCapitalW|othicCapitalX|othicCapitalY|othicCapitalZ|othicD|othicE|othicEight|othicF|othicFive|othicFour|othicG|othicH|othicI|othicJ|othicK|othicL|othicM|othicN|othicNine|othicO|othicOne|othicP|othicQ|othicR|othicS|othicSeven|othicSix|othicT|othicThree|othicTwo|othicU|othicV|othicW|othicX|othicY|othicZ|othicZero|rayCircle|raySquare|reaterEqual|reaterEqualLess|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterTilde))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:H(?:Bar|acek|appySmiley|eartSuit|ermitianConjugate|orizontalLine|umpDownHump|umpEqual|yphen))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:I(?:Acute|Cup|DoubleDot|Grave|Hat|maginaryI|maginaryJ|mplicitPlus|mplies|ndentingNewLine|nfinity|ntegral|ntersection|nvisibleApplication|nvisibleComma|nvisiblePostfixScriptBase|nvisiblePrefixScriptBase|nvisibleSpace|nvisibleTimes|ota))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:J(?:upiter))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:K(?:appa|ernelIcon|eyBar|oppa))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:L(?:Slash|ambda|astPage|eftAngleBracket|eftArrow|eftArrowBar|eftArrowRightArrow|eftAssociation|eftBracketingBar|eftCeiling|eftDoubleBracket|eftDoubleBracketingBar|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftFloor|eftGuillemet|eftModified|eftPointer|eftRightArrow|eftRightVector|eftSkeleton|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|eoSign|essEqual|essEqualGreater|essFullEqual|essGreater|essLess|essSlantEqual|essTilde|etterSpace|ibraSign|ightBulb|imit|ineSeparator|ongDash|ongEqual|ongLeftArrow|ongLeftRightArrow|ongRightArrow|owerLeftArrow|owerRightArrow))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:M(?:ars|athematicaIcon|axLimit|easuredAngle|ediumSpace|ercury|ho|icro|inLimit|inusPlus|od1Key|od2Key|u))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:N(?:Hacek|Tilde|and|atural|egativeMediumSpace|egativeThickSpace|egativeThinSpace|egativeVeryThinSpace|eptune|estedGreaterGreater|estedLessLess|eutralSmiley|ewLine|oBreak|onBreakingSpace|or|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqual|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|u|ull|umberSign))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:O(?:Acute|DoubleAcute|DoubleDot|E|Grave|Hat|Slash|Tilde|mega|micron|penCurlyDoubleQuote|penCurlyQuote|ptionKey|r|verBrace|verBracket|verParenthesis))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:P(?:aragraph|aragraphSeparator|artialD|ermutationProduct|erpendicular|hi|i|iecewise|iscesSign|laceholder|lusMinus|luto|recedes|recedesEqual|recedesSlantEqual|recedesTilde|rime|roduct|roportion|roportional|si))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:Q(?:uarterNote))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:R(?:Hacek|awAmpersand|awAt|awBackquote|awBackslash|awColon|awComma|awDash|awDollar|awDot|awDoubleQuote|awEqual|awEscape|awExclamation|awGreater|awLeftBrace|awLeftBracket|awLeftParenthesis|awLess|awNumberSign|awPercent|awPlus|awQuestion|awQuote|awReturn|awRightBrace|awRightBracket|awRightParenthesis|awSemicolon|awSlash|awSpace|awStar|awTab|awTilde|awUnderscore|awVerticalBar|awWedge|egisteredTrademark|eturnIndicator|eturnKey|everseDoublePrime|everseElement|everseEquilibrium|eversePrime|everseUpEquilibrium|ho|ightAngle|ightAngleBracket|ightArrow|ightArrowBar|ightArrowLeftArrow|ightAssociation|ightBracketingBar|ightCeiling|ightDoubleBracket|ightDoubleBracketingBar|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightFloor|ightGuillemet|ightModified|ightPointer|ightSkeleton|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|oundImplies|oundSpaceIndicator|ule|uleDelayed|upee))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:S(?:Hacek|Z|adSmiley|agittariusSign|ampi|aturn|corpioSign|criptA|criptB|criptC|criptCapitalA|criptCapitalB|criptCapitalC|criptCapitalD|criptCapitalE|criptCapitalF|criptCapitalG|criptCapitalH|criptCapitalI|criptCapitalJ|criptCapitalK|criptCapitalL|criptCapitalM|criptCapitalN|criptCapitalO|criptCapitalP|criptCapitalQ|criptCapitalR|criptCapitalS|criptCapitalT|criptCapitalU|criptCapitalV|criptCapitalW|criptCapitalX|criptCapitalY|criptCapitalZ|criptD|criptDotlessI|criptDotlessJ|criptE|criptEight|criptF|criptFive|criptFour|criptG|criptH|criptI|criptJ|criptK|criptL|criptM|criptN|criptNine|criptO|criptOne|criptP|criptQ|criptR|criptS|criptSeven|criptSix|criptT|criptThree|criptTwo|criptU|criptV|criptW|criptX|criptY|criptZ|criptZero|ection|electionPlaceholder|hah|harp|hiftKey|hortDownArrow|hortLeftArrow|hortRightArrow|hortUpArrow|igma|ixPointedStar|keletonIndicator|mallCircle|paceIndicator|paceKey|padeSuit|panFromAbove|panFromBoth|panFromLeft|phericalAngle|qrt|quare|quareIntersection|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|tar|terling|tigma|ubset|ubsetEqual|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uchThat|um|uperset|upersetEqual|ystemEnterKey|ystemsModelDelay))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:T(?:Hacek|abKey|au|aurusSign|ensorProduct|ensorWedge|herefore|heta|hickSpace|hinSpace|horn|ilde|ildeEqual|ildeFullEqual|ildeTilde|imes|rademark|ranspose|ripleDot|woWayRule))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:U(?:Acute|DoubleAcute|DoubleDot|Grave|Hat|Ring|nderBrace|nderBracket|nderParenthesis|ndirectedEdge|nion|nionPlus|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pPointer|pTee|pTeeArrow|pperLeftArrow|pperRightArrow|psilon|ranus))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:V(?:ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ee|enus|erticalBar|erticalEllipsis|erticalLine|erticalSeparator|erticalTilde|eryThinSpace|irgoSign))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:W(?:arningSign|atchIcon|edge|eierstrassP|hiteBishop|hiteKing|hiteKnight|hitePawn|hiteQueen|hiteRook|olf|olframLanguageLogo|olframLanguageLogoCircle))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:X(?:i|nor|or))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:Y(?:Acute|DoubleDot|en))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:Z(?:Hacek|eta))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:[$[:alpha:]][$[:alnum:]]*)?\\]?",name:"invalid.illegal.BadLongName"},{match:"\\\\(?:[$[:alpha:]][$[:alnum:]]*)\\]",name:"invalid.illegal.BadLongName"},{match:"\\\\:\\h{4}",name:"donothighlight.constant.character.escape"},{match:"\\\\:\\h{1,3}",name:"invalid.illegal"},{match:"\\\\\\.\\h{2}",name:"donothighlight.constant.character.escape"},{match:"\\\\\\.\\h{1}",name:"invalid.illegal"},{match:"\\\\\\|0\\h{5}",name:"donothighlight.constant.character.escape"},{match:"\\\\\\|10\\h{4}",name:"donothighlight.constant.character.escape"},{match:"\\\\\\|\\h{1,6}",name:"invalid.illegal"},{match:"\\\\[0-7]{3}",name:"donothighlight.constant.character.escape"},{match:"\\\\[0-7]{1,2}",name:"invalid.illegal"},{match:"\\\\$",name:"donothighlight.constant.character.escape punctuation.separator.continuation"},{match:"\\\\.",name:"invalid.illegal"}]},expressions:{patterns:[{include:"#comments"},{include:"#escaped_character_symbols"},{include:"#escaped_characters"},{include:"#out"},{include:"#slot"},{include:"#literals"},{include:"#groups"},{include:"#stringifying-operators"},{include:"#operators"},{include:"#pattern-operators"},{include:"#symbols"},{match:"(?:!|&|'|\\*|\\+|,|-|\\.|/|:|;|<|=|>|\\?|@|\\\\|\\^|\\||~)",name:"invalid.illegal"}]},groups:{patterns:[{match:"\\\\\\)",name:"invalid.illegal.stray-linearsyntaxparens-end.wolfram"},{match:"\\)",name:"invalid.illegal.stray-parens-end.wolfram"},{match:"\\[\\s+\\[",name:"invalid.whitespace.Part.wolfram"},{match:"\\]\\s+\\]",name:"invalid.whitespace.Part.wolfram"},{match:"\\]\\]",name:"invalid.illegal.stray-parts-end.wolfram"},{match:"\\]",name:"invalid.illegal.stray-brackets-end.wolfram"},{match:"\\}",name:"invalid.illegal.stray-braces-end.wolfram"},{match:"\\|>",name:"invalid.illegal.stray-associations-end.wolfram"},{include:"#linearsyntaxparen-group"},{include:"#paren-group"},{include:"#part-group"},{include:"#bracket-group"},{include:"#brace-group"},{include:"#association-group"}]},"linearsyntaxparen-group":{begin:"\\\\\\(",beginCaptures:{0:{name:"punctuation.section.linearsyntaxparens.begin.wolfram"}},end:"\\\\\\)",endCaptures:{0:{name:"punctuation.section.linearsyntaxparens.end.wolfram"}},name:"meta.linearsyntaxparens.wolfram",patterns:[{include:"#expressions"}]},literals:{patterns:[{include:"#numbers"},{include:"#strings"}]},main:{patterns:[{include:"#shebang"},{include:"#simple-toplevel-definitions"},{include:"#expressions"}]},numbers:{patterns:[{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^",name:"invalid.illegal"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)``",name:"invalid.illegal"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^",name:"invalid.illegal"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)\\*\\^",name:"invalid.illegal"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)``",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)\\*\\^",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)``",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)\\*\\^",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)``",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)\\*\\^",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)",name:"constant.numeric.wolfram"}]},operators:{patterns:[{match:"(?:\\^:=)",name:"keyword.operator.assignment.UpSetDelayed.wolfram"},{match:"(?:\\^:)",name:"invalid.illegal"},{match:"(?:===)",name:"keyword.operator.SameQ.wolfram"},{match:"(?:=!=|\\.\\.\\.|//\\.|@@@|<->|//@)",name:"keyword.operator.wolfram"},{match:"(?:\\|->)",name:"keyword.operator.Function.wolfram"},{match:"(?://=)",name:"keyword.operator.assignment.ApplyTo.wolfram"},{match:"(?:--|\\+\\+)",name:"keyword.operator.arithmetic.wolfram"},{match:"(?:\\|\\||&&)",name:"keyword.operator.logical.wolfram"},{match:"(?::=)",name:"keyword.operator.assignment.SetDelayed.wolfram"},{match:"(?:\\^=)",name:"keyword.operator.assignment.UpSet.wolfram"},{match:"(?:/=)",name:"keyword.operator.assignment.DivideBy.wolfram"},{match:"(?:\\+=)",name:"keyword.operator.assignment.AddTo.wolfram"},{match:"(?:=\\s+\\.(?![0-9]))",name:"invalid.whitespace.Unset.wolfram"},{match:"(?:=\\.(?![0-9]))",name:"keyword.operator.assignment.Unset.wolfram"},{match:"(?:\\*=)",name:"keyword.operator.assignment.TimesBy.wolfram"},{match:"(?:-=)",name:"keyword.operator.assignment.SubtractFrom.wolfram"},{match:"(?:/:)",name:"keyword.operator.assignment.Tag.wolfram"},{match:"(?:;;)$",name:"invalid.endofline.Span.wolfram"},{match:"(?:;;)",name:"keyword.operator.Span.wolfram"},{match:"(?:!=)",name:"keyword.operator.Unequal.wolfram"},{match:"(?:==)",name:"keyword.operator.Equal.wolfram"},{match:"(?:!!)",name:"keyword.operator.BangBang.wolfram"},{match:"(?:\\?\\?)",name:"invalid.illegal.Information.wolfram"},{match:"(?:<=|>=|\\.\\.|:>|<>|->|/@|/;|/\\.|//|/\\*|@@|@\\*|~~|\\*\\*)",name:"keyword.operator.wolfram"},{match:"(?:-|\\+|/|\\*)",name:"keyword.operator.arithmetic.wolfram"},{match:"(?:=)",name:"keyword.operator.assignment.Set.wolfram"},{match:"(?:<)",name:"keyword.operator.Less.wolfram"},{match:"(?:\\|)",name:"keyword.operator.Alternatives.wolfram"},{match:"(?:!)",name:"keyword.operator.Bang.wolfram"},{match:"(?:;)",name:"keyword.operator.CompoundExpression.wolfram punctuation.terminator"},{match:"(?:,)",name:"keyword.operator.Comma.wolfram punctuation.separator"},{match:"^(?:\\?)",name:"invalid.startofline.Information.wolfram"},{match:"(?:\\?)",name:"keyword.operator.PatternTest.wolfram"},{match:"(?:')",name:"keyword.operator.Derivative.wolfram"},{match:"(?:&)",name:"keyword.operator.Function.wolfram"},{match:"(?:>|\\^|\\.|:|@|~)",name:"keyword.operator.wolfram"}]},out:{patterns:[{match:"%\\d+",name:"keyword.other.Out.wolfram"},{match:"%+",name:"keyword.other.Out.wolfram"}]},"paren-group":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.wolfram"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.wolfram"}},name:"meta.parens.wolfram",patterns:[{include:"#expressions"}]},"part-group":{begin:"\\[\\[",beginCaptures:{0:{name:"punctuation.section.parts.begin.wolfram"}},end:"\\]\\]",endCaptures:{0:{name:"punctuation.section.parts.end.wolfram"}},name:"meta.parts.wolfram",patterns:[{include:"#expressions"}]},"pattern-operators":{patterns:[{match:"___",name:"keyword.operator.BlankNullSequence.wolfram"},{match:"__",name:"keyword.operator.BlankSequence.wolfram"},{match:"_\\.",name:"keyword.operator.Optional.wolfram"},{match:"_",name:"keyword.operator.Blank.wolfram"}]},shebang:{captures:{1:{name:"punctuation.definition.comment.wolfram"}},match:"\\A(#!).*(?=$)",name:"comment.line.shebang.wolfram"},"simple-toplevel-definitions":{patterns:[{captures:{1:{name:"support.function.builtin.wolfram"},2:{name:"punctuation.section.brackets.begin.wolfram"},3:{name:"meta.function.wolfram entity.name.Context.wolfram"},4:{name:"meta.function.wolfram entity.name.function.wolfram"},5:{name:"punctuation.section.brackets.end.wolfram"},6:{name:"keyword.operator.assignment.wolfram"}},match:"^\\s*(Attributes|Format|Options)\\s*(\\[)(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(\\])\\s*(:=|=(?!!|=|\\.))"},{captures:{1:{name:"meta.function.wolfram entity.name.Context.wolfram"},2:{name:"meta.function.wolfram entity.name.function.wolfram"}},match:"^\\s*(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(?=\\s*(\\[(?>[^\\[\\]]+|\\g<-1>)*\\])\\s*(?:/;.*)?(?::=|=(?!!|=|\\.)))"},{captures:{1:{name:"meta.function.wolfram entity.name.Context.wolfram"},2:{name:"meta.function.wolfram entity.name.constant.wolfram"}},match:"^\\s*(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(?=\\s*(?:/;.*)?(?::=|=(?!!|=|\\.)))"}]},slot:{patterns:[{match:"#[[:alpha:]][[:alnum:]]*",name:"keyword.other.Slot.wolfram"},{match:"##\\d*",name:"keyword.other.SlotSequence.wolfram"},{match:"#\\d*",name:"keyword.other.Slot.wolfram"}]},string_escaped_characters:{patterns:[{match:'\\\\[bfnrt\\"\\\\<>]',name:"donothighlight.constant.character.escape"},{include:"#escaped_characters"}]},"stringifying-operators":{patterns:[{captures:{1:{name:"keyword.operator.PutAppend.wolfram"}},match:'(>>>)(?=\\s*")'},{captures:{1:{name:"keyword.operator.PutAppend.wolfram"},2:{name:"string.unquoted.wolfram"}},match:"(>>>)\\s*(\\w+)"},{match:">>>",name:"invalid.illegal"},{captures:{1:{name:"keyword.operator.MessageName.wolfram"}},match:'(::)(?=\\s*")'},{captures:{1:{name:"keyword.operator.MessageName.wolfram"},2:{name:"string.unquoted.wolfram"}},match:"(::)([[:alpha:]][[:alnum:]]*)"},{match:"::",name:"invalid.illegal"},{captures:{1:{name:"keyword.operator.Get.wolfram"}},match:'(<<)(?=\\s*")'},{captures:{1:{name:"keyword.operator.Get.wolfram"},2:{name:"string.unquoted.wolfram"}},match:"(<<)\\s*([`[:alpha:]][`[:alnum:]]*)"},{match:"<<",name:"invalid.illegal"},{captures:{1:{name:"keyword.operator.Put.wolfram"}},match:'(>>)(?=\\s*")'},{captures:{1:{name:"keyword.operator.Put.wolfram"},2:{name:"string.unquoted.wolfram"}},match:"(>>)\\s*(\\w*)"},{match:">>",name:"invalid.illegal"}]},strings:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.double",patterns:[{include:"#string_escaped_characters"}]}]},symbols:{patterns:[{match:"System`(?:A(?:ASTriangle|PIFunction|RCHProcess|RIMAProcess|RMAProcess|RProcess|SATriangle|belianGroup|bort|bortKernels|bortProtect|bs|bsArg|bsArgPlot|bsoluteCorrelation|bsoluteCorrelationFunction|bsoluteCurrentValue|bsoluteDashing|bsoluteFileName|bsoluteOptions|bsolutePointSize|bsoluteThickness|bsoluteTime|bsoluteTiming|ccountingForm|ccumulate|ccuracy|cousticAbsorbingValue|cousticImpedanceValue|cousticNormalVelocityValue|cousticPDEComponent|cousticPressureCondition|cousticRadiationValue|cousticSoundHardValue|cousticSoundSoftCondition|ctionMenu|ctivate|cyclicGraphQ|ddSides|ddTo|ddUsers|djacencyGraph|djacencyList|djacencyMatrix|djacentMeshCells|djugate|djustTimeSeriesForecast|djustmentBox|dministrativeDivisionData|ffineHalfSpace|ffineSpace|ffineStateSpaceModel|ffineTransform|irPressureData|irSoundAttenuation|irTemperatureData|ircraftData|irportData|iryAi|iryAiPrime|iryAiZero|iryBi|iryBiPrime|iryBiZero|lgebraicIntegerQ|lgebraicNumber|lgebraicNumberDenominator|lgebraicNumberNorm|lgebraicNumberPolynomial|lgebraicNumberTrace|lgebraicUnitQ|llTrue|lphaChannel|lphabet|lphabeticOrder|lphabeticSort|lternatingFactorial|lternatingGroup|lternatives|mbientLight|mbiguityList|natomyData|natomyPlot3D|natomyStyling|nd|ndersonDarlingTest|ngerJ|ngleBracket|nglePath|nglePath3D|ngleVector|ngularGauge|nimate|nimator|nnotate|nnotation|nnotationDelete|nnotationKeys|nnotationValue|nnuity|nnuityDue|nnulus|nomalyDetection|nomalyDetectorFunction|ntihermitian|ntihermitianMatrixQ|ntisymmetric|ntisymmetricMatrixQ|ntonyms|nyOrder|nySubset|nyTrue|part|partSquareFree|ppellF1|ppend|ppendTo|pply|pplySides|pplyTo|rcCos|rcCosh|rcCot|rcCoth|rcCsc|rcCsch|rcCurvature|rcLength|rcSec|rcSech|rcSin|rcSinDistribution|rcSinh|rcTan|rcTanh|rea|rg|rgMax|rgMin|rgumentsOptions|rithmeticGeometricMean|rray|rrayComponents|rrayDepth|rrayFilter|rrayFlatten|rrayMesh|rrayPad|rrayPlot|rrayPlot3D|rrayQ|rrayResample|rrayReshape|rrayRules|rrays|rrow|rrowheads|ssert|ssociateTo|ssociation|ssociationMap|ssociationQ|ssociationThread|ssuming|symptotic|symptoticDSolveValue|symptoticEqual|symptoticEquivalent|symptoticExpectation|symptoticGreater|symptoticGreaterEqual|symptoticIntegrate|symptoticLess|symptoticLessEqual|symptoticOutputTracker|symptoticProbability|symptoticProduct|symptoticRSolveValue|symptoticSolve|symptoticSum|tomQ|ttributes|udio|udioAmplify|udioBlockMap|udioCapture|udioChannelCombine|udioChannelMix|udioChannelSeparate|udioChannels|udioData|udioDelay|udioDelete|udioDistance|udioFade|udioFrequencyShift|udioGenerator|udioInsert|udioIntervals|udioJoin|udioLength|udioLocalMeasurements|udioLoudness|udioMeasurements|udioNormalize|udioOverlay|udioPad|udioPan|udioPartition|udioPitchShift|udioPlot|udioQ|udioReplace|udioResample|udioReverb|udioReverse|udioSampleRate|udioSpectralMap|udioSpectralTransformation|udioSplit|udioTimeStretch|udioTrim|udioType|ugmentedPolyhedron|ugmentedSymmetricPolynomial|uthenticationDialog|utoRefreshed|utoSubmitting|utocorrelationTest))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:B(?:SplineBasis|SplineCurve|SplineFunction|SplineSurface|abyMonsterGroupB|ackslash|all|and|andpassFilter|andstopFilter|arChart|arChart3D|arLegend|arabasiAlbertGraphDistribution|arcodeImage|arcodeRecognize|aringhausHenzeTest|arlowProschanImportance|arnesG|artlettHannWindow|artlettWindow|aseDecode|aseEncode|aseForm|atesDistribution|attleLemarieWavelet|ecause|eckmannDistribution|eep|egin|eginDialogPacket|eginPackage|ellB|ellY|enfordDistribution|eniniDistribution|enktanderGibratDistribution|enktanderWeibullDistribution|ernoulliB|ernoulliDistribution|ernoulliGraphDistribution|ernoulliProcess|ernsteinBasis|esselFilterModel|esselI|esselJ|esselJZero|esselK|esselY|esselYZero|eta|etaBinomialDistribution|etaDistribution|etaNegativeBinomialDistribution|etaPrimeDistribution|etaRegularized|etween|etweennessCentrality|eveledPolyhedron|ezierCurve|ezierFunction|ilateralFilter|ilateralLaplaceTransform|ilateralZTransform|inCounts|inLists|inarize|inaryDeserialize|inaryDistance|inaryImageQ|inaryRead|inaryReadList|inarySerialize|inaryWrite|inomial|inomialDistribution|inomialProcess|inormalDistribution|iorthogonalSplineWavelet|ipartiteGraphQ|iquadraticFilterModel|irnbaumImportance|irnbaumSaundersDistribution|itAnd|itClear|itGet|itLength|itNot|itOr|itSet|itShiftLeft|itShiftRight|itXor|iweightLocation|iweightMidvariance|lackmanHarrisWindow|lackmanNuttallWindow|lackmanWindow|lank|lankNullSequence|lankSequence|lend|lock|lockMap|lockRandom|lomqvistBeta|lomqvistBetaTest|lur|lurring|odePlot|ohmanWindow|oole|ooleanConsecutiveFunction|ooleanConvert|ooleanCountingFunction|ooleanFunction|ooleanGraph|ooleanMaxterms|ooleanMinimize|ooleanMinterms|ooleanQ|ooleanRegion|ooleanTable|ooleanVariables|orderDimensions|orelTannerDistribution|ottomHatTransform|oundaryDiscretizeGraphics|oundaryDiscretizeRegion|oundaryMesh|oundaryMeshRegion|oundaryMeshRegionQ|oundedRegionQ|oundingRegion|oxData|oxMatrix|oxObject|oxWhiskerChart|racketingBar|rayCurtisDistance|readthFirstScan|reak|ridgeData|rightnessEqualize|roadcastStationData|rownForsytheTest|rownianBridgeProcess|ubbleChart|ubbleChart3D|uckyballGraph|uildingData|ulletGauge|usinessDayQ|utterflyGraph|utterworthFilterModel|utton|uttonBar|uttonBox|uttonNotebook|yteArray|yteArrayFormat|yteArrayFormatQ|yteArrayQ|yteArrayToString|yteCount))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:C(?:|DF|DFDeploy|DFWavelet|Form|MYKColor|SGRegion|SGRegionQ|SGRegionTree|alendarConvert|alendarData|allPacket|allout|anberraDistance|ancel|ancelButton|andlestickChart|anonicalGraph|anonicalName|anonicalWarpingCorrespondence|anonicalWarpingDistance|anonicalizePolygon|anonicalizePolyhedron|anonicalizeRegion|antorMesh|antorStaircase|ap|apForm|apitalDifferentialD|apitalize|apsuleShape|aputoD|arlemanLinearize|arlsonRC|arlsonRD|arlsonRE|arlsonRF|arlsonRG|arlsonRJ|arlsonRK|arlsonRM|armichaelLambda|aseSensitive|ases|ashflow|asoratian|atalanNumber|atch|atenate|auchyDistribution|auchyMatrix|auchyWindow|ayleyGraph|eiling|ell|ellGroup|ellGroupData|ellObject|ellPrint|ells|ellularAutomaton|ensoredDistribution|ensoring|enterArray|enterDot|enteredInterval|entralFeature|entralMoment|entralMomentGeneratingFunction|epstrogram|epstrogramArray|epstrumArray|hampernowneNumber|hanVeseBinarize|haracterCounts|haracterName|haracterRange|haracteristicFunction|haracteristicPolynomial|haracters|hebyshev1FilterModel|hebyshev2FilterModel|hebyshevT|hebyshevU|heck|heckAbort|heckArguments|heckbox|heckboxBar|hemicalData|hessboardDistance|hiDistribution|hiSquareDistribution|hineseRemainder|hoiceButtons|hoiceDialog|holeskyDecomposition|hop|hromaticPolynomial|hromaticityPlot|hromaticityPlot3D|ircle|ircleDot|ircleMinus|irclePlus|irclePoints|ircleThrough|ircleTimes|irculantGraph|ircularArcThrough|ircularOrthogonalMatrixDistribution|ircularQuaternionMatrixDistribution|ircularRealMatrixDistribution|ircularSymplecticMatrixDistribution|ircularUnitaryMatrixDistribution|ircumsphere|ityData|lassifierFunction|lassifierMeasurements|lassifierMeasurementsObject|lassify|lear|learAll|learAttributes|learCookies|learPermissions|learSystemCache|lebschGordan|lickPane|lickToCopy|lip|lock|lockGauge|lose|loseKernels|losenessCentrality|losing|loudAccountData|loudConnect|loudDeploy|loudDirectory|loudDisconnect|loudEvaluate|loudExport|loudFunction|loudGet|loudImport|loudLoggingData|loudObject|loudObjects|loudPublish|loudPut|loudSave|loudShare|loudSubmit|loudSymbol|loudUnshare|lusterClassify|lusteringComponents|lusteringMeasurements|lusteringTree|oefficient|oefficientArrays|oefficientList|oefficientRules|oifletWavelet|ollect|ollinearPoints|olon|olorBalance|olorCombine|olorConvert|olorData|olorDataFunction|olorDetect|olorDistance|olorNegate|olorProfileData|olorQ|olorQuantize|olorReplace|olorSeparate|olorSetter|olorSlider|olorToneMapping|olorize|olorsNear|olumn|ometData|ommonName|ommonUnits|ommonest|ommonestFilter|ommunityGraphPlot|ompanyData|ompatibleUnitQ|ompile|ompiledFunction|omplement|ompleteGraph|ompleteGraphQ|ompleteIntegral|ompleteKaryTree|omplex|omplexArrayPlot|omplexContourPlot|omplexExpand|omplexListPlot|omplexPlot|omplexPlot3D|omplexRegionPlot|omplexStreamPlot|omplexVectorPlot|omponentMeasurements|omposeList|omposeSeries|ompositeQ|omposition|ompoundElement|ompoundExpression|ompoundPoissonDistribution|ompoundPoissonProcess|ompoundRenewalProcess|ompress|oncaveHullMesh|ondition|onditionalExpression|onditioned|one|onfirm|onfirmAssert|onfirmBy|onfirmMatch|onformAudio|onformImages|ongruent|onicGradientFilling|onicHullRegion|onicOptimization|onjugate|onjugateTranspose|onjunction|onnectLibraryCallbackFunction|onnectedComponents|onnectedGraphComponents|onnectedGraphQ|onnectedMeshComponents|onnesWindow|onoverTest|onservativeConvectionPDETerm|onstantArray|onstantImage|onstantRegionQ|onstellationData|onstruct|ontainsAll|ontainsAny|ontainsExactly|ontainsNone|ontainsOnly|ontext|ontextToFileName|ontexts|ontinue|ontinuedFraction|ontinuedFractionK|ontinuousMarkovProcess|ontinuousTask|ontinuousTimeModelQ|ontinuousWaveletData|ontinuousWaveletTransform|ontourDetect|ontourPlot|ontourPlot3D|ontraharmonicMean|ontrol|ontrolActive|ontrollabilityGramian|ontrollabilityMatrix|ontrollableDecomposition|ontrollableModelQ|ontrollerInformation|ontrollerManipulate|ontrollerState|onvectionPDETerm|onvergents|onvexHullMesh|onvexHullRegion|onvexOptimization|onvexPolygonQ|onvexPolyhedronQ|onvexRegionQ|onvolve|onwayGroupCo1|onwayGroupCo2|onwayGroupCo3|oordinateBoundingBox|oordinateBoundingBoxArray|oordinateBounds|oordinateBoundsArray|oordinateChartData|oordinateTransform|oordinateTransformData|oplanarPoints|oprimeQ|oproduct|opulaDistribution|opyDatabin|opyDirectory|opyFile|opyToClipboard|oreNilpotentDecomposition|ornerFilter|orrelation|orrelationDistance|orrelationFunction|orrelationTest|os|osIntegral|osh|oshIntegral|osineDistance|osineWindow|ot|oth|oulombF|oulombG|oulombH1|oulombH2|ount|ountDistinct|ountDistinctBy|ountRoots|ountryData|ounts|ountsBy|ovariance|ovarianceFunction|oxIngersollRossProcess|oxModel|oxModelFit|oxianDistribution|ramerVonMisesTest|reateArchive|reateDatabin|reateDialog|reateDirectory|reateDocument|reateFile|reateManagedLibraryExpression|reateNotebook|reatePacletArchive|reatePalette|reatePermissionsGroup|reateUUID|reateWindow|riticalSection|riticalityFailureImportance|riticalitySuccessImportance|ross|rossMatrix|rossingCount|rossingDetect|rossingPolygon|sc|sch|ube|ubeRoot|uboid|umulant|umulantGeneratingFunction|umulativeFeatureImpactPlot|up|upCap|url|urrencyConvert|urrentDate|urrentImage|urrentValue|urvatureFlowFilter|ycleGraph|ycleIndexPolynomial|ycles|yclicGroup|yclotomic|ylinder|ylindricalDecomposition|ylindricalDecompositionFunction))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:D(?:|Eigensystem|Eigenvalues|GaussianWavelet|MSList|MSString|Solve|SolveValue|agumDistribution|amData|amerauLevenshteinDistance|arker|ashing|ataDistribution|atabin|atabinAdd|atabinUpload|atabins|ataset|ateBounds|ateDifference|ateHistogram|ateList|ateListLogPlot|ateListPlot|ateListStepPlot|ateObject|ateObjectQ|ateOverlapsQ|atePattern|atePlus|ateRange|ateScale|ateSelect|ateString|ateValue|ateWithinQ|ated|atedUnit|aubechiesWavelet|avisDistribution|awsonF|ayCount|ayHemisphere|ayMatchQ|ayName|ayNightTerminator|ayPlus|ayRange|ayRound|aylightQ|eBruijnGraph|eBruijnSequence|ecapitalize|ecimalForm|eclarePackage|ecompose|ecrement|ecrypt|edekindEta|eepSpaceProbeData|efault|efaultButton|efaultValues|efer|efineInputStreamMethod|efineOutputStreamMethod|efineResourceFunction|efinition|egreeCentrality|egreeGraphDistribution|el|elaunayMesh|elayed|elete|eleteAdjacentDuplicates|eleteAnomalies|eleteBorderComponents|eleteCases|eleteDirectory|eleteDuplicates|eleteDuplicatesBy|eleteFile|eleteMissing|eleteObject|eletePermissionsKey|eleteSmallComponents|eleteStopwords|elimitedSequence|endrogram|enominator|ensityHistogram|ensityPlot|ensityPlot3D|eploy|epth|epthFirstScan|erivative|erivativeFilter|erivativePDETerm|esignMatrix|et|eviceClose|eviceConfigure|eviceExecute|eviceExecuteAsynchronous|eviceObject|eviceOpen|eviceRead|eviceReadBuffer|eviceReadLatest|eviceReadList|eviceReadTimeSeries|eviceStreams|eviceWrite|eviceWriteBuffer|evices|iagonal|iagonalMatrix|iagonalMatrixQ|iagonalizableMatrixQ|ialog|ialogInput|ialogNotebook|ialogReturn|iamond|iamondMatrix|iceDissimilarity|ictionaryLookup|ictionaryWordQ|ifferenceDelta|ifferenceQuotient|ifferenceRoot|ifferenceRootReduce|ifferences|ifferentialD|ifferentialRoot|ifferentialRootReduce|ifferentiatorFilter|iffusionPDETerm|igitCount|igitQ|ihedralAngle|ihedralGroup|ilation|imensionReduce|imensionReducerFunction|imensionReduction|imensionalCombinations|imensionalMeshComponents|imensions|iracComb|iracDelta|irectedEdge|irectedGraph|irectedGraphQ|irectedInfinity|irectionalLight|irective|irectory|irectoryName|irectoryQ|irectoryStack|irichletBeta|irichletCharacter|irichletCondition|irichletConvolve|irichletDistribution|irichletEta|irichletL|irichletLambda|irichletTransform|irichletWindow|iscreteAsymptotic|iscreteChirpZTransform|iscreteConvolve|iscreteDelta|iscreteHadamardTransform|iscreteIndicator|iscreteInputOutputModel|iscreteLQEstimatorGains|iscreteLQRegulatorGains|iscreteLimit|iscreteLyapunovSolve|iscreteMarkovProcess|iscreteMaxLimit|iscreteMinLimit|iscretePlot|iscretePlot3D|iscreteRatio|iscreteRiccatiSolve|iscreteShift|iscreteTimeModelQ|iscreteUniformDistribution|iscreteWaveletData|iscreteWaveletPacketTransform|iscreteWaveletTransform|iscretizeGraphics|iscretizeRegion|iscriminant|isjointQ|isjunction|isk|iskMatrix|iskSegment|ispatch|isplayEndPacket|isplayForm|isplayPacket|istanceMatrix|istanceTransform|istribute|istributeDefinitions|istributed|istributionChart|istributionFitTest|istributionParameterAssumptions|istributionParameterQ|iv|ivide|ivideBy|ivideSides|ivisible|ivisorSigma|ivisorSum|ivisors|o|ocumentGenerator|ocumentGeneratorInformation|ocumentGenerators|ocumentNotebook|odecahedron|ominantColors|ominatorTreeGraph|ominatorVertexList|ot|otEqual|oubleBracketingBar|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oubleRightArrow|oubleRightTee|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|ownArrow|ownArrowBar|ownArrowUpArrow|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow|ownValues|ownsample|razinInverse|rop|ropShadowing|t|ualPlanarGraph|ualPolyhedron|ualSystemsModel|umpSave|uplicateFreeQ|uration|ynamic|ynamicGeoGraphics|ynamicModule|ynamicSetting|ynamicWrapper))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:E(?:arthImpactData|arthquakeData|ccentricityCentrality|choEvaluation|choFunction|choLabel|dgeAdd|dgeBetweennessCentrality|dgeChromaticNumber|dgeConnectivity|dgeContract|dgeCount|dgeCoverQ|dgeCycleMatrix|dgeDelete|dgeDetect|dgeForm|dgeIndex|dgeList|dgeQ|dgeRules|dgeTaggedGraph|dgeTaggedGraphQ|dgeTags|dgeTransitiveGraphQ|dgeWeightedGraphQ|ditDistance|ffectiveInterest|igensystem|igenvalues|igenvectorCentrality|igenvectors|lement|lementData|liminate|llipsoid|llipticE|llipticExp|llipticExpPrime|llipticF|llipticFilterModel|llipticK|llipticLog|llipticNomeQ|llipticPi|llipticTheta|llipticThetaPrime|mbedCode|mbeddedHTML|mbeddedService|mitSound|mpiricalDistribution|mptyGraphQ|mptyRegion|nclose|ncode|ncrypt|ncryptedObject|nd|ndDialogPacket|ndPackage|ngineeringForm|nterExpressionPacket|nterTextPacket|ntity|ntityClass|ntityClassList|ntityCopies|ntityGroup|ntityInstance|ntityList|ntityPrefetch|ntityProperties|ntityProperty|ntityPropertyClass|ntityRegister|ntityStores|ntityTypeName|ntityUnregister|ntityValue|ntropy|ntropyFilter|nvironment|qual|qualTilde|qualTo|quilibrium|quirippleFilterKernel|quivalent|rf|rfc|rfi|rlangB|rlangC|rlangDistribution|rosion|rrorBox|stimatedBackground|stimatedDistribution|stimatedPointNormals|stimatedProcess|stimatorGains|stimatorRegulator|uclideanDistance|ulerAngles|ulerCharacteristic|ulerE|ulerMatrix|ulerPhi|ulerianGraphQ|valuate|valuatePacket|valuationBox|valuationCell|valuationData|valuationNotebook|valuationObject|venQ|ventData|ventHandler|ventSeries|xactBlackmanWindow|xactNumberQ|xampleData|xcept|xists|xoplanetData|xp|xpGammaDistribution|xpIntegralE|xpIntegralEi|xpToTrig|xpand|xpandAll|xpandDenominator|xpandFileName|xpandNumerator|xpectation|xponent|xponentialDistribution|xponentialGeneratingFunction|xponentialMovingAverage|xponentialPowerDistribution|xport|xportByteArray|xportForm|xportString|xpressionCell|xpressionGraph|xtendedGCD|xternalBundle|xtract|xtractArchive|xtractPacletArchive|xtremeValueDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:F(?:ARIMAProcess|RatioDistribution|aceAlign|aceForm|acialFeatures|actor|actorInteger|actorList|actorSquareFree|actorSquareFreeList|actorTerms|actorTermsList|actorial|actorial2|actorialMoment|actorialMomentGeneratingFunction|actorialPower|ailure|ailureDistribution|ailureQ|areySequence|eatureImpactPlot|eatureNearest|eatureSpacePlot|eatureSpacePlot3D|eatureValueDependencyPlot|eatureValueImpactPlot|eedbackLinearize|etalGrowthData|ibonacci|ibonorial|ile|ileBaseName|ileByteCount|ileDate|ileExistsQ|ileExtension|ileFormat|ileFormatQ|ileHash|ileNameDepth|ileNameDrop|ileNameJoin|ileNameSetter|ileNameSplit|ileNameTake|ileNames|ilePrint|ileSize|ileSystemMap|ileSystemScan|ileTemplate|ileTemplateApply|ileType|illedCurve|illedTorus|illingTransform|ilterRules|inancialBond|inancialData|inancialDerivative|inancialIndicator|ind|indAnomalies|indArgMax|indArgMin|indClique|indClusters|indCookies|indCurvePath|indCycle|indDevices|indDistribution|indDistributionParameters|indDivisions|indEdgeColoring|indEdgeCover|indEdgeCut|indEdgeIndependentPaths|indEulerianCycle|indFaces|indFile|indFit|indFormula|indFundamentalCycles|indGeneratingFunction|indGeoLocation|indGeometricTransform|indGraphCommunities|indGraphIsomorphism|indGraphPartition|indHamiltonianCycle|indHamiltonianPath|indHiddenMarkovStates|indIndependentEdgeSet|indIndependentVertexSet|indInstance|indIntegerNullVector|indIsomorphicSubgraph|indKClan|indKClique|indKClub|indKPlex|indLibrary|indLinearRecurrence|indList|indMatchingColor|indMaxValue|indMaximum|indMaximumCut|indMaximumFlow|indMeshDefects|indMinValue|indMinimum|indMinimumCostFlow|indMinimumCut|indPath|indPeaks|indPermutation|indPlanarColoring|indPostmanTour|indProcessParameters|indRegionTransform|indRepeat|indRoot|indSequenceFunction|indShortestPath|indShortestTour|indSpanningTree|indSubgraphIsomorphism|indThreshold|indTransientRepeat|indVertexColoring|indVertexCover|indVertexCut|indVertexIndependentPaths|inishDynamic|initeAbelianGroupCount|initeGroupCount|initeGroupData|irst|irstCase|irstPassageTimeDistribution|irstPosition|ischerGroupFi22|ischerGroupFi23|ischerGroupFi24Prime|isherHypergeometricDistribution|isherRatioTest|isherZDistribution|it|ittedModel|ixedOrder|ixedPoint|ixedPointList|latShading|latTopWindow|latten|lattenAt|lightData|lipView|loor|lowPolynomial|old|oldList|oldPair|oldPairList|oldWhile|oldWhileList|or|orAll|ormBox|ormFunction|ormObject|ormPage|ormat|ormulaData|ormulaLookup|ortranForm|ourier|ourierCoefficient|ourierCosCoefficient|ourierCosSeries|ourierCosTransform|ourierDCT|ourierDCTFilter|ourierDCTMatrix|ourierDST|ourierDSTMatrix|ourierMatrix|ourierSequenceTransform|ourierSeries|ourierSinCoefficient|ourierSinSeries|ourierSinTransform|ourierTransform|ourierTrigSeries|oxH|ractionBox|ractionalBrownianMotionProcess|ractionalD|ractionalGaussianNoiseProcess|ractionalPart|rameBox|ramed|rechetDistribution|reeQ|renetSerretSystem|requencySamplingFilterKernel|resnelC|resnelF|resnelG|resnelS|robeniusNumber|robeniusSolve|romAbsoluteTime|romCharacterCode|romCoefficientRules|romContinuedFraction|romDMS|romDateString|romDigits|romEntity|romJulianDate|romLetterNumber|romPolarCoordinates|romRomanNumeral|romSphericalCoordinates|romUnixTime|rontEndExecute|rontEndToken|rontEndTokenExecute|ullDefinition|ullForm|ullGraphics|ullInformationOutputRegulator|ullRegion|ullSimplify|unction|unctionAnalytic|unctionBijective|unctionContinuous|unctionConvexity|unctionDiscontinuities|unctionDomain|unctionExpand|unctionInjective|unctionInterpolation|unctionMeromorphic|unctionMonotonicity|unctionPeriod|unctionRange|unctionSign|unctionSingularities|unctionSurjective|ussellVeselyImportance))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:G(?:ARCHProcess|CD|aborFilter|aborMatrix|aborWavelet|ainMargins|ainPhaseMargins|alaxyData|amma|ammaDistribution|ammaRegularized|ather|atherBy|aussianFilter|aussianMatrix|aussianOrthogonalMatrixDistribution|aussianSymplecticMatrixDistribution|aussianUnitaryMatrixDistribution|aussianWindow|egenbauerC|eneralizedLinearModelFit|enerateAsymmetricKeyPair|enerateDocument|enerateHTTPResponse|enerateSymmetricKey|eneratingFunction|enericCylindricalDecomposition|enomeData|enomeLookup|eoAntipode|eoArea|eoBoundary|eoBoundingBox|eoBounds|eoBoundsRegion|eoBoundsRegionBoundary|eoBubbleChart|eoCircle|eoContourPlot|eoDensityPlot|eoDestination|eoDirection|eoDisk|eoDisplacement|eoDistance|eoDistanceList|eoElevationData|eoEntities|eoGraphPlot|eoGraphics|eoGridDirectionDifference|eoGridPosition|eoGridUnitArea|eoGridUnitDistance|eoGridVector|eoGroup|eoHemisphere|eoHemisphereBoundary|eoHistogram|eoIdentify|eoImage|eoLength|eoListPlot|eoMarker|eoNearest|eoPath|eoPolygon|eoPosition|eoPositionENU|eoPositionXYZ|eoProjectionData|eoRegionValuePlot|eoSmoothHistogram|eoStreamPlot|eoStyling|eoVariant|eoVector|eoVectorENU|eoVectorPlot|eoVectorXYZ|eoVisibleRegion|eoVisibleRegionBoundary|eoWithinQ|eodesicClosing|eodesicDilation|eodesicErosion|eodesicOpening|eodesicPolyhedron|eodesyData|eogravityModelData|eologicalPeriodData|eomagneticModelData|eometricBrownianMotionProcess|eometricDistribution|eometricMean|eometricMeanFilter|eometricOptimization|eometricTransformation|estureHandler|et|etEnvironment|lobalClusteringCoefficient|low|ompertzMakehamDistribution|oochShading|oodmanKruskalGamma|oodmanKruskalGammaTest|oto|ouraudShading|rad|radientFilter|radientFittedMesh|radientOrientationFilter|rammarApply|rammarRules|rammarToken|raph|raph3D|raphAssortativity|raphAutomorphismGroup|raphCenter|raphComplement|raphData|raphDensity|raphDiameter|raphDifference|raphDisjointUnion|raphDistance|raphDistanceMatrix|raphEmbedding|raphHub|raphIntersection|raphJoin|raphLinkEfficiency|raphPeriphery|raphPlot|raphPlot3D|raphPower|raphProduct|raphPropertyDistribution|raphQ|raphRadius|raphReciprocity|raphSum|raphUnion|raphics|raphics3D|raphicsColumn|raphicsComplex|raphicsGrid|raphicsGroup|raphicsRow|rayLevel|reater|reaterEqual|reaterEqualLess|reaterEqualThan|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterThan|reaterTilde|reenFunction|rid|ridBox|ridGraph|roebnerBasis|roupBy|roupCentralizer|roupElementFromWord|roupElementPosition|roupElementQ|roupElementToWord|roupElements|roupGenerators|roupMultiplicationTable|roupOrbits|roupOrder|roupSetwiseStabilizer|roupStabilizer|roupStabilizerChain|roupings|rowCutComponents|udermannian|uidedFilter|umbelDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:H(?:ITSCentrality|TTPErrorResponse|TTPRedirect|TTPRequest|TTPRequestData|TTPResponse|aarWavelet|adamardMatrix|alfLine|alfNormalDistribution|alfPlane|alfSpace|alftoneShading|amiltonianGraphQ|ammingDistance|ammingWindow|ankelH1|ankelH2|ankelMatrix|ankelTransform|annPoissonWindow|annWindow|aradaNortonGroupHN|araryGraph|armonicMean|armonicMeanFilter|armonicNumber|ash|atchFilling|atchShading|aversine|azardFunction|ead|eatFluxValue|eatInsulationValue|eatOutflowValue|eatRadiationValue|eatSymmetryValue|eatTemperatureCondition|eatTransferPDEComponent|eatTransferValue|eavisideLambda|eavisidePi|eavisideTheta|eldGroupHe|elmholtzPDEComponent|ermiteDecomposition|ermiteH|ermitian|ermitianMatrixQ|essenbergDecomposition|eunB|eunBPrime|eunC|eunCPrime|eunD|eunDPrime|eunG|eunGPrime|eunT|eunTPrime|exahedron|iddenMarkovProcess|ighlightGraph|ighlightImage|ighlightMesh|ighlighted|ighpassFilter|igmanSimsGroupHS|ilbertCurve|ilbertFilter|ilbertMatrix|istogram|istogram3D|istogramDistribution|istogramList|istogramTransform|istogramTransformInterpolation|istoricalPeriodData|itMissTransform|jorthDistribution|odgeDual|oeffdingD|oeffdingDTest|old|oldComplete|oldForm|oldPattern|orizontalGauge|ornerForm|ostLookup|otellingTSquareDistribution|oytDistribution|ue|umanGrowthData|umpDownHump|umpEqual|urwitzLerchPhi|urwitzZeta|yperbolicDistribution|ypercubeGraph|yperexponentialDistribution|yperfactorial|ypergeometric0F1|ypergeometric0F1Regularized|ypergeometric1F1|ypergeometric1F1Regularized|ypergeometric2F1|ypergeometric2F1Regularized|ypergeometricDistribution|ypergeometricPFQ|ypergeometricPFQRegularized|ypergeometricU|yperlink|yperplane|ypoexponentialDistribution|ypothesisTestData))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:I(?:PAddress|conData|conize|cosahedron|dentity|dentityMatrix|f|fCompiled|gnoringInactive|m|mage|mage3D|mage3DProjection|mage3DSlices|mageAccumulate|mageAdd|mageAdjust|mageAlign|mageApply|mageApplyIndexed|mageAspectRatio|mageAssemble|mageCapture|mageChannels|mageClip|mageCollage|mageColorSpace|mageCompose|mageConvolve|mageCooccurrence|mageCorners|mageCorrelate|mageCorrespondingPoints|mageCrop|mageData|mageDeconvolve|mageDemosaic|mageDifference|mageDimensions|mageDisplacements|mageDistance|mageEffect|mageExposureCombine|mageFeatureTrack|mageFileApply|mageFileFilter|mageFileScan|mageFilter|mageFocusCombine|mageForestingComponents|mageForwardTransformation|mageHistogram|mageIdentify|mageInstanceQ|mageKeypoints|mageLevels|mageLines|mageMarker|mageMeasurements|mageMesh|mageMultiply|magePad|magePartition|magePeriodogram|magePerspectiveTransformation|mageQ|mageRecolor|mageReflect|mageResize|mageRestyle|mageRotate|mageSaliencyFilter|mageScaled|mageScan|mageSubtract|mageTake|mageTransformation|mageTrim|mageType|mageValue|mageValuePositions|mageVectorscopePlot|mageWaveformPlot|mplicitD|mplicitRegion|mplies|mport|mportByteArray|mportString|mprovementImportance|nactivate|nactive|ncidenceGraph|ncidenceList|ncidenceMatrix|ncrement|ndefiniteMatrixQ|ndependenceTest|ndependentEdgeSetQ|ndependentPhysicalQuantity|ndependentUnit|ndependentUnitDimension|ndependentVertexSetQ|ndexEdgeTaggedGraph|ndexGraph|ndexed|nexactNumberQ|nfiniteLine|nfiniteLineThrough|nfinitePlane|nfix|nflationAdjust|nformation|nhomogeneousPoissonProcess|nner|nnerPolygon|nnerPolyhedron|npaint|nput|nputField|nputForm|nputNamePacket|nputNotebook|nputPacket|nputStream|nputString|nputStringPacket|nsert|nsertLinebreaks|nset|nsphere|nstall|nstallService|ntegerDigits|ntegerExponent|ntegerLength|ntegerName|ntegerPart|ntegerPartitions|ntegerQ|ntegerReverse|ntegerString|ntegrate|nteractiveTradingChart|nternallyBalancedDecomposition|nterpolatingFunction|nterpolatingPolynomial|nterpolation|nterpretation|nterpretationBox|nterpreter|nterquartileRange|nterrupt|ntersectingQ|ntersection|nterval|ntervalIntersection|ntervalMemberQ|ntervalSlider|ntervalUnion|nverse|nverseBetaRegularized|nverseBilateralLaplaceTransform|nverseBilateralZTransform|nverseCDF|nverseChiSquareDistribution|nverseContinuousWaveletTransform|nverseDistanceTransform|nverseEllipticNomeQ|nverseErf|nverseErfc|nverseFourier|nverseFourierCosTransform|nverseFourierSequenceTransform|nverseFourierSinTransform|nverseFourierTransform|nverseFunction|nverseGammaDistribution|nverseGammaRegularized|nverseGaussianDistribution|nverseGudermannian|nverseHankelTransform|nverseHaversine|nverseJacobiCD|nverseJacobiCN|nverseJacobiCS|nverseJacobiDC|nverseJacobiDN|nverseJacobiDS|nverseJacobiNC|nverseJacobiND|nverseJacobiNS|nverseJacobiSC|nverseJacobiSD|nverseJacobiSN|nverseLaplaceTransform|nverseMellinTransform|nversePermutation|nverseRadon|nverseRadonTransform|nverseSeries|nverseShortTimeFourier|nverseSpectrogram|nverseSurvivalFunction|nverseTransformedRegion|nverseWaveletTransform|nverseWeierstrassP|nverseWishartMatrixDistribution|nverseZTransform|nvisible|rreduciblePolynomialQ|slandData|solatingInterval|somorphicGraphQ|somorphicSubgraphQ|sotopeData|tem|toProcess))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:J(?:accardDissimilarity|acobiAmplitude|acobiCD|acobiCN|acobiCS|acobiDC|acobiDN|acobiDS|acobiEpsilon|acobiNC|acobiND|acobiNS|acobiP|acobiSC|acobiSD|acobiSN|acobiSymbol|acobiZN|acobiZeta|ankoGroupJ1|ankoGroupJ2|ankoGroupJ3|ankoGroupJ4|arqueBeraALMTest|ohnsonDistribution|oin|oinAcross|oinForm|oinedCurve|ordanDecomposition|ordanModelDecomposition|uliaSetBoettcher|uliaSetIterationCount|uliaSetPlot|uliaSetPoints|ulianDate))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:K(?:CoreComponents|Distribution|EdgeConnectedComponents|EdgeConnectedGraphQ|VertexConnectedComponents|VertexConnectedGraphQ|agiChart|aiserBesselWindow|aiserWindow|almanEstimator|almanFilter|arhunenLoeveDecomposition|aryTree|atzCentrality|elvinBei|elvinBer|elvinKei|elvinKer|endallTau|endallTauTest|ernelMixtureDistribution|ernelObject|ernels|ey|eyComplement|eyDrop|eyDropFrom|eyExistsQ|eyFreeQ|eyIntersection|eyMap|eyMemberQ|eySelect|eySort|eySortBy|eyTake|eyUnion|eyValueMap|eyValuePattern|eys|illProcess|irchhoffGraph|irchhoffMatrix|leinInvariantJ|napsackSolve|nightTourGraph|notData|nownUnitQ|ochCurve|olmogorovSmirnovTest|roneckerDelta|roneckerModelDecomposition|roneckerProduct|roneckerSymbol|uiperTest|umaraswamyDistribution|urtosis|uwaharaFilter))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:L(?:ABColor|CHColor|CM|QEstimatorGains|QGRegulator|QOutputRegulatorGains|QRegulatorGains|UDecomposition|UVColor|abel|abeled|aguerreL|akeData|ambdaComponents|ameC|ameCPrime|ameEigenvalueA|ameEigenvalueB|ameS|ameSPrime|aminaData|anczosWindow|andauDistribution|anguageData|anguageIdentify|aplaceDistribution|aplaceTransform|aplacian|aplacianFilter|aplacianGaussianFilter|aplacianPDETerm|ast|atitude|atitudeLongitude|atticeData|atticeReduce|aunchKernels|ayeredGraphPlot|ayeredGraphPlot3D|eafCount|eapVariant|eapYearQ|earnDistribution|earnedDistribution|eastSquares|eastSquaresFilterKernel|eftArrow|eftArrowBar|eftArrowRightArrow|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftRightArrow|eftRightVector|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|egended|egendreP|egendreQ|ength|engthWhile|erchPhi|ess|essEqual|essEqualGreater|essEqualThan|essFullEqual|essGreater|essLess|essSlantEqual|essThan|essTilde|etterCounts|etterNumber|etterQ|evel|eveneTest|eviCivitaTensor|evyDistribution|exicographicOrder|exicographicSort|ibraryDataType|ibraryFunction|ibraryFunctionError|ibraryFunctionInformation|ibraryFunctionLoad|ibraryFunctionUnload|ibraryLoad|ibraryUnload|iftingFilterData|iftingWaveletTransform|ighter|ikelihood|imit|indleyDistribution|ine|ineBreakChart|ineGraph|ineIntegralConvolutionPlot|ineLegend|inearFractionalOptimization|inearFractionalTransform|inearGradientFilling|inearGradientImage|inearModelFit|inearOptimization|inearRecurrence|inearSolve|inearSolveFunction|inearizingTransformationData|inkActivate|inkClose|inkConnect|inkCreate|inkInterrupt|inkLaunch|inkObject|inkPatterns|inkRankCentrality|inkRead|inkReadyQ|inkWrite|inks|iouvilleLambda|ist|istAnimate|istContourPlot|istContourPlot3D|istConvolve|istCorrelate|istCurvePathPlot|istDeconvolve|istDensityPlot|istDensityPlot3D|istFourierSequenceTransform|istInterpolation|istLineIntegralConvolutionPlot|istLinePlot|istLinePlot3D|istLogLinearPlot|istLogLogPlot|istLogPlot|istPicker|istPickerBox|istPlay|istPlot|istPlot3D|istPointPlot3D|istPolarPlot|istQ|istSliceContourPlot3D|istSliceDensityPlot3D|istSliceVectorPlot3D|istStepPlot|istStreamDensityPlot|istStreamPlot|istStreamPlot3D|istSurfacePlot3D|istVectorDensityPlot|istVectorDisplacementPlot|istVectorDisplacementPlot3D|istVectorPlot|istVectorPlot3D|istZTransform|ocalAdaptiveBinarize|ocalCache|ocalClusteringCoefficient|ocalEvaluate|ocalObject|ocalObjects|ocalSubmit|ocalSymbol|ocalTime|ocalTimeZone|ocationEquivalenceTest|ocationTest|ocator|ocatorPane|og|og10|og2|ogBarnesG|ogGamma|ogGammaDistribution|ogIntegral|ogLikelihood|ogLinearPlot|ogLogPlot|ogLogisticDistribution|ogMultinormalDistribution|ogNormalDistribution|ogPlot|ogRankTest|ogSeriesDistribution|ogicalExpand|ogisticDistribution|ogisticSigmoid|ogitModelFit|ongLeftArrow|ongLeftRightArrow|ongRightArrow|ongest|ongestCommonSequence|ongestCommonSequencePositions|ongestCommonSubsequence|ongestCommonSubsequencePositions|ongestOrderedSequence|ongitude|ookup|oopFreeGraphQ|owerCaseQ|owerLeftArrow|owerRightArrow|owerTriangularMatrix|owerTriangularMatrixQ|owerTriangularize|owpassFilter|ucasL|uccioSamiComponents|unarEclipse|yapunovSolve|yonsGroupLy))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:M(?:AProcess|achineNumberQ|agnify|ailReceiverFunction|ajority|akeBoxes|akeExpression|anagedLibraryExpressionID|anagedLibraryExpressionQ|andelbrotSetBoettcher|andelbrotSetDistance|andelbrotSetIterationCount|andelbrotSetMemberQ|andelbrotSetPlot|angoldtLambda|anhattanDistance|anipulate|anipulator|annWhitneyTest|annedSpaceMissionData|antissaExponent|ap|apAll|apApply|apAt|apIndexed|apThread|archenkoPasturDistribution|arcumQ|ardiaCombinedTest|ardiaKurtosisTest|ardiaSkewnessTest|arginalDistribution|arkovProcessProperties|assConcentrationCondition|assFluxValue|assImpermeableBoundaryValue|assOutflowValue|assSymmetryValue|assTransferValue|assTransportPDEComponent|atchQ|atchingDissimilarity|aterialShading|athMLForm|athematicalFunctionData|athieuC|athieuCPrime|athieuCharacteristicA|athieuCharacteristicB|athieuCharacteristicExponent|athieuGroupM11|athieuGroupM12|athieuGroupM22|athieuGroupM23|athieuGroupM24|athieuS|athieuSPrime|atrices|atrixExp|atrixForm|atrixFunction|atrixLog|atrixNormalDistribution|atrixPlot|atrixPower|atrixPropertyDistribution|atrixQ|atrixRank|atrixTDistribution|ax|axDate|axDetect|axFilter|axLimit|axMemoryUsed|axStableDistribution|axValue|aximalBy|aximize|axwellDistribution|cLaughlinGroupMcL|ean|eanClusteringCoefficient|eanDegreeConnectivity|eanDeviation|eanFilter|eanGraphDistance|eanNeighborDegree|eanShift|eanShiftFilter|edian|edianDeviation|edianFilter|edicalTestData|eijerG|eijerGReduce|eixnerDistribution|ellinConvolve|ellinTransform|emberQ|emoryAvailable|emoryConstrained|emoryInUse|engerMesh|enuPacket|enuView|erge|ersennePrimeExponent|ersennePrimeExponentQ|eshCellCount|eshCellIndex|eshCells|eshConnectivityGraph|eshCoordinates|eshPrimitives|eshRegion|eshRegionQ|essage|essageDialog|essageList|essageName|essagePacket|essages|eteorShowerData|exicanHatWavelet|eyerWavelet|in|inDate|inDetect|inFilter|inLimit|inMax|inStableDistribution|inValue|ineralData|inimalBy|inimalPolynomial|inimalStateSpaceModel|inimize|inimumTimeIncrement|inkowskiQuestionMark|inorPlanetData|inors|inus|inusPlus|issing|issingQ|ittagLefflerE|ixedFractionParts|ixedGraphQ|ixedMagnitude|ixedRadix|ixedRadixQuantity|ixedUnit|ixtureDistribution|od|odelPredictiveController|odularInverse|odularLambda|odule|oebiusMu|oment|omentConvert|omentEvaluate|omentGeneratingFunction|omentOfInertia|onitor|onomialList|onsterGroupM|oonPhase|oonPosition|orletWavelet|orphologicalBinarize|orphologicalBranchPoints|orphologicalComponents|orphologicalEulerNumber|orphologicalGraph|orphologicalPerimeter|orphologicalTransform|ortalityData|ost|ountainData|ouseAnnotation|ouseAppearance|ousePosition|ouseover|ovieData|ovingAverage|ovingMap|ovingMedian|oyalDistribution|ulticolumn|ultigraphQ|ultinomial|ultinomialDistribution|ultinormalDistribution|ultiplicativeOrder|ultiplySides|ultivariateHypergeometricDistribution|ultivariatePoissonDistribution|ultivariateTDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:N(?:|ArgMax|ArgMin|Cache|CaputoD|DEigensystem|DEigenvalues|DSolve|DSolveValue|Expectation|FractionalD|Integrate|MaxValue|Maximize|MinValue|Minimize|Probability|Product|Roots|Solve|SolveValues|Sum|akagamiDistribution|ameQ|ames|and|earest|earestFunction|earestMeshCells|earestNeighborGraph|earestTo|ebulaData|eedlemanWunschSimilarity|eeds|egative|egativeBinomialDistribution|egativeDefiniteMatrixQ|egativeMultinomialDistribution|egativeSemidefiniteMatrixQ|egativelyOrientedPoints|eighborhoodData|eighborhoodGraph|est|estGraph|estList|estWhile|estWhileList|estedGreaterGreater|estedLessLess|eumannValue|evilleThetaC|evilleThetaD|evilleThetaN|evilleThetaS|extCell|extDate|extPrime|icholsPlot|ightHemisphere|onCommutativeMultiply|onNegative|onPositive|oncentralBetaDistribution|oncentralChiSquareDistribution|oncentralFRatioDistribution|oncentralStudentTDistribution|ondimensionalizationTransform|oneTrue|onlinearModelFit|onlinearStateSpaceModel|onlocalMeansFilter|or|orlundB|orm|ormal|ormalDistribution|ormalMatrixQ|ormalize|ormalizedSquaredEuclideanDistance|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|otebook|otebookApply|otebookClose|otebookDelete|otebookDirectory|otebookEvaluate|otebookFileName|otebookFind|otebookGet|otebookImport|otebookInformation|otebookLocate|otebookObject|otebookOpen|otebookPrint|otebookPut|otebookRead|otebookSave|otebookSelection|otebookTemplate|otebookWrite|otebooks|othing|uclearExplosionData|uclearReactorData|ullSpace|umberCompose|umberDecompose|umberDigit|umberExpand|umberFieldClassNumber|umberFieldDiscriminant|umberFieldFundamentalUnits|umberFieldIntegralBasis|umberFieldNormRepresentatives|umberFieldRegulator|umberFieldRootsOfUnity|umberFieldSignature|umberForm|umberLinePlot|umberQ|umerator|umeratorDenominator|umericQ|umericalOrder|umericalSort|uttallWindow|yquistPlot))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:O(?:|NanGroupON|bservabilityGramian|bservabilityMatrix|bservableDecomposition|bservableModelQ|ceanData|ctahedron|ddQ|ff|ffset|n|nce|pacity|penAppend|penRead|penWrite|pener|penerView|pening|perate|ptimumFlowData|ptionValue|ptional|ptionalElement|ptions|ptionsPattern|r|rder|rderDistribution|rderedQ|rdering|rderingBy|rderlessPatternSequence|rnsteinUhlenbeckProcess|rthogonalMatrixQ|rthogonalize|uter|uterPolygon|uterPolyhedron|utputControllabilityMatrix|utputControllableModelQ|utputForm|utputNamePacket|utputResponse|utputStream|verBar|verDot|verHat|verTilde|verVector|verflow|verlay|verscript|verscriptBox|wenT|wnValues))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:P(?:DF|ERTDistribution|IDTune|acletDataRebuild|acletDirectoryLoad|acletDirectoryUnload|acletDisable|acletEnable|acletFind|acletFindRemote|acletInstall|acletInstallSubmit|acletNewerQ|acletObject|acletSiteObject|acletSiteRegister|acletSiteUnregister|acletSiteUpdate|acletSites|acletUninstall|adLeft|adRight|addedForm|adeApproximant|ageRankCentrality|airedBarChart|airedHistogram|airedSmoothHistogram|airedTTest|airedZTest|aletteNotebook|alindromeQ|ane|aneSelector|anel|arabolicCylinderD|arallelArray|arallelAxisPlot|arallelCombine|arallelDo|arallelEvaluate|arallelKernels|arallelMap|arallelNeeds|arallelProduct|arallelSubmit|arallelSum|arallelTable|arallelTry|arallelepiped|arallelize|arallelogram|arameterMixtureDistribution|arametricConvexOptimization|arametricFunction|arametricNDSolve|arametricNDSolveValue|arametricPlot|arametricPlot3D|arametricRegion|arentBox|arentCell|arentDirectory|arentNotebook|aretoDistribution|aretoPickandsDistribution|arkData|art|artOfSpeech|artialCorrelationFunction|articleAcceleratorData|articleData|artition|artitionsP|artitionsQ|arzenWindow|ascalDistribution|aste|asteButton|athGraph|athGraphQ|attern|atternSequence|atternTest|aulWavelet|auliMatrix|ause|eakDetect|eanoCurve|earsonChiSquareTest|earsonCorrelationTest|earsonDistribution|ercentForm|erfectNumber|erfectNumberQ|erimeter|eriodicBoundaryCondition|eriodogram|eriodogramArray|ermanent|ermissionsGroup|ermissionsGroupMemberQ|ermissionsGroups|ermissionsKey|ermissionsKeys|ermutationCycles|ermutationCyclesQ|ermutationGroup|ermutationLength|ermutationList|ermutationListQ|ermutationMatrix|ermutationMax|ermutationMin|ermutationOrder|ermutationPower|ermutationProduct|ermutationReplace|ermutationSupport|ermutations|ermute|eronaMalikFilter|ersonData|etersenGraph|haseMargins|hongShading|hysicalSystemData|ick|ieChart|ieChart3D|iecewise|iecewiseExpand|illaiTrace|illaiTraceTest|ingTime|ixelValue|ixelValuePositions|laced|laceholder|lanarAngle|lanarFaceList|lanarGraph|lanarGraphQ|lanckRadiationLaw|laneCurveData|lanetData|lanetaryMoonData|lantData|lay|lot|lot3D|luralize|lus|lusMinus|ochhammer|oint|ointFigureChart|ointLegend|ointLight|ointSize|oissonConsulDistribution|oissonDistribution|oissonPDEComponent|oissonProcess|oissonWindow|olarPlot|olyGamma|olyLog|olyaAeppliDistribution|olygon|olygonAngle|olygonCoordinates|olygonDecomposition|olygonalNumber|olyhedron|olyhedronAngle|olyhedronCoordinates|olyhedronData|olyhedronDecomposition|olyhedronGenus|olynomialExpressionQ|olynomialExtendedGCD|olynomialGCD|olynomialLCM|olynomialMod|olynomialQ|olynomialQuotient|olynomialQuotientRemainder|olynomialReduce|olynomialRemainder|olynomialSumOfSquaresList|opupMenu|opupView|opupWindow|osition|ositionIndex|ositionLargest|ositionSmallest|ositive|ositiveDefiniteMatrixQ|ositiveSemidefiniteMatrixQ|ositivelyOrientedPoints|ossibleZeroQ|ostfix|ower|owerDistribution|owerExpand|owerMod|owerModList|owerRange|owerSpectralDensity|owerSymmetricPolynomial|owersRepresentations|reDecrement|reIncrement|recedenceForm|recedes|recedesEqual|recedesSlantEqual|recedesTilde|recision|redict|redictorFunction|redictorMeasurements|redictorMeasurementsObject|reemptProtect|refix|repend|rependTo|reviousCell|reviousDate|riceGraphDistribution|rime|rimeNu|rimeOmega|rimePi|rimePowerQ|rimeQ|rimeZetaP|rimitivePolynomialQ|rimitiveRoot|rimitiveRootList|rincipalComponents|rintTemporary|rintableASCIIQ|rintout3D|rism|rivateKey|robability|robabilityDistribution|robabilityPlot|robabilityScalePlot|robitModelFit|rocessConnection|rocessInformation|rocessObject|rocessParameterAssumptions|rocessParameterQ|rocessStatus|rocesses|roduct|roductDistribution|roductLog|rogressIndicator|rojection|roportion|roportional|rotect|roteinData|runing|seudoInverse|sychrometricPropertyData|ublicKey|ulsarData|ut|utAppend|yramid))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:Q(?:Binomial|Factorial|Gamma|HypergeometricPFQ|Pochhammer|PolyGamma|RDecomposition|nDispersion|uadraticIrrationalQ|uadraticOptimization|uantile|uantilePlot|uantity|uantityArray|uantityDistribution|uantityForm|uantityMagnitude|uantityQ|uantityUnit|uantityVariable|uantityVariableCanonicalUnit|uantityVariableDimensions|uantityVariableIdentifier|uantityVariablePhysicalQuantity|uartileDeviation|uartileSkewness|uartiles|uery|ueueProperties|ueueingNetworkProcess|ueueingProcess|uiet|uietEcho|uotient|uotientRemainder))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:R(?:GBColor|Solve|SolveValue|adialAxisPlot|adialGradientFilling|adialGradientImage|adialityCentrality|adicalBox|adioButton|adioButtonBar|adon|adonTransform|amanujanTau|amanujanTauL|amanujanTauTheta|amanujanTauZ|amp|andomChoice|andomColor|andomComplex|andomDate|andomEntity|andomFunction|andomGeneratorState|andomGeoPosition|andomGraph|andomImage|andomInteger|andomPermutation|andomPoint|andomPolygon|andomPolyhedron|andomPrime|andomReal|andomSample|andomTime|andomVariate|andomWalkProcess|andomWord|ange|angeFilter|ankedMax|ankedMin|arerProbability|aster|aster3D|asterize|ational|ationalExpressionQ|ationalize|atios|awBoxes|awData|ayleighDistribution|e|eIm|eImPlot|eactionPDETerm|ead|eadByteArray|eadLine|eadList|eadString|ealAbs|ealDigits|ealExponent|ealSign|eap|econstructionMesh|ectangle|ectangleChart|ectangleChart3D|ectangularRepeatingElement|ecurrenceFilter|ecurrenceTable|educe|efine|eflectionMatrix|eflectionTransform|efresh|egion|egionBinarize|egionBoundary|egionBounds|egionCentroid|egionCongruent|egionConvert|egionDifference|egionDilation|egionDimension|egionDisjoint|egionDistance|egionDistanceFunction|egionEmbeddingDimension|egionEqual|egionErosion|egionFit|egionImage|egionIntersection|egionMeasure|egionMember|egionMemberFunction|egionMoment|egionNearest|egionNearestFunction|egionPlot|egionPlot3D|egionProduct|egionQ|egionResize|egionSimilar|egionSymmetricDifference|egionUnion|egionWithin|egularExpression|egularPolygon|egularlySampledQ|elationGraph|eleaseHold|eliabilityDistribution|eliefImage|eliefPlot|emove|emoveAlphaChannel|emoveBackground|emoveDiacritics|emoveInputStreamMethod|emoveOutputStreamMethod|emoveUsers|enameDirectory|enameFile|enewalProcess|enkoChart|epairMesh|epeated|epeatedNull|epeatedTiming|epeatingElement|eplace|eplaceAll|eplaceAt|eplaceImageValue|eplaceList|eplacePart|eplacePixelValue|eplaceRepeated|esamplingAlgorithmData|escale|escalingTransform|esetDirectory|esidue|esidueSum|esolve|esourceData|esourceObject|esourceSearch|esponseForm|est|estricted|esultant|eturn|eturnExpressionPacket|eturnPacket|eturnTextPacket|everse|everseBiorthogonalSplineWavelet|everseElement|everseEquilibrium|everseGraph|everseSort|everseSortBy|everseUpEquilibrium|evolutionPlot3D|iccatiSolve|iceDistribution|idgeFilter|iemannR|iemannSiegelTheta|iemannSiegelZ|iemannXi|iffle|ightArrow|ightArrowBar|ightArrowLeftArrow|ightComposition|ightCosetRepresentative|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|iskAchievementImportance|iskReductionImportance|obustConvexOptimization|ogersTanimotoDissimilarity|ollPitchYawAngles|ollPitchYawMatrix|omanNumeral|oot|ootApproximant|ootIntervals|ootLocusPlot|ootMeanSquare|ootOfUnityQ|ootReduce|ootSum|oots|otate|otateLeft|otateRight|otationMatrix|otationTransform|ound|ow|owBox|owReduce|udinShapiro|udvalisGroupRu|ule|uleDelayed|ulePlot|un|unProcess|unThrough|ussellRaoDissimilarity))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:S(?:ARIMAProcess|ARMAProcess|ASTriangle|SSTriangle|ameAs|ameQ|ampledSoundFunction|ampledSoundList|atelliteData|atisfiabilityCount|atisfiabilityInstances|atisfiableQ|ave|avitzkyGolayMatrix|awtoothWave|cale|caled|calingMatrix|calingTransform|can|cheduledTask|churDecomposition|cientificForm|corerGi|corerGiPrime|corerHi|corerHiPrime|ec|ech|echDistribution|econdOrderConeOptimization|ectorChart|ectorChart3D|eedRandom|elect|electComponents|electFirst|electedCells|electedNotebook|electionCreateCell|electionEvaluate|electionEvaluateCreateCell|electionMove|emanticImport|emanticImportString|emanticInterpretation|emialgebraicComponentInstances|emidefiniteOptimization|endMail|endMessage|equence|equenceAlignment|equenceCases|equenceCount|equenceFold|equenceFoldList|equencePosition|equenceReplace|equenceSplit|eries|eriesCoefficient|eriesData|erviceConnect|erviceDisconnect|erviceExecute|erviceObject|essionSubmit|essionTime|et|etAccuracy|etAlphaChannel|etAttributes|etCloudDirectory|etCookies|etDelayed|etDirectory|etEnvironment|etFileDate|etOptions|etPermissions|etPrecision|etSelectedNotebook|etSharedFunction|etSharedVariable|etStreamPosition|etSystemOptions|etUsers|etter|etterBar|etting|hallow|hannonWavelet|hapiroWilkTest|hare|harpen|hearingMatrix|hearingTransform|hellRegion|henCastanMatrix|hiftRegisterSequence|hiftedGompertzDistribution|hort|hortDownArrow|hortLeftArrow|hortRightArrow|hortTimeFourier|hortTimeFourierData|hortUpArrow|hortest|hortestPathFunction|how|iderealTime|iegelTheta|iegelTukeyTest|ierpinskiCurve|ierpinskiMesh|ign|ignTest|ignature|ignedRankTest|ignedRegionDistance|impleGraph|impleGraphQ|implePolygonQ|implePolyhedronQ|implex|implify|in|inIntegral|inc|inghMaddalaDistribution|ingularValueDecomposition|ingularValueList|ingularValuePlot|inh|inhIntegral|ixJSymbol|keleton|keletonTransform|kellamDistribution|kewNormalDistribution|kewness|kip|liceContourPlot3D|liceDensityPlot3D|liceDistribution|liceVectorPlot3D|lideView|lider|lider2D|liderBox|lot|lotSequence|mallCircle|mithDecomposition|mithDelayCompensator|mithWatermanSimilarity|moothDensityHistogram|moothHistogram|moothHistogram3D|moothKernelDistribution|nDispersion|ocketConnect|ocketListen|ocketListener|ocketObject|ocketOpen|ocketReadMessage|ocketReadyQ|ocketWaitAll|ocketWaitNext|ockets|okalSneathDissimilarity|olarEclipse|olarSystemFeatureData|olarTime|olidAngle|olidData|olidRegionQ|olve|olveAlways|olveValues|ort|ortBy|ound|oundNote|ourcePDETerm|ow|paceCurveData|pacer|pan|parseArray|parseArrayQ|patialGraphDistribution|patialMedian|peak|pearmanRankTest|pearmanRho|peciesData|pectralLineData|pectrogram|pectrogramArray|pecularity|peechSynthesize|pellingCorrectionList|phere|pherePoints|phericalBesselJ|phericalBesselY|phericalHankelH1|phericalHankelH2|phericalHarmonicY|phericalPlot3D|phericalShell|pheroidalEigenvalue|pheroidalJoiningFactor|pheroidalPS|pheroidalPSPrime|pheroidalQS|pheroidalQSPrime|pheroidalRadialFactor|pheroidalS1|pheroidalS1Prime|pheroidalS2|pheroidalS2Prime|plicedDistribution|plit|plitBy|pokenString|potLight|qrt|qrtBox|quare|quareFreeQ|quareIntersection|quareMatrixQ|quareRepeatingElement|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|quareWave|quaredEuclideanDistance|quaresR|tableDistribution|tack|tackBegin|tackComplete|tackInhibit|tackedDateListPlot|tackedListPlot|tadiumShape|tandardAtmosphereData|tandardDeviation|tandardDeviationFilter|tandardForm|tandardOceanData|tandardize|tandbyDistribution|tar|tarClusterData|tarData|tarGraph|tartProcess|tateFeedbackGains|tateOutputEstimator|tateResponse|tateSpaceModel|tateSpaceTransform|tateTransformationLinearize|tationaryDistribution|tationaryWaveletPacketTransform|tationaryWaveletTransform|tatusArea|tatusCentrality|tieltjesGamma|tippleShading|tirlingS1|tirlingS2|toppingPowerData|tratonovichProcess|treamDensityPlot|treamPlot|treamPlot3D|treamPosition|treams|tringCases|tringContainsQ|tringCount|tringDelete|tringDrop|tringEndsQ|tringExpression|tringExtract|tringForm|tringFormat|tringFormatQ|tringFreeQ|tringInsert|tringJoin|tringLength|tringMatchQ|tringPadLeft|tringPadRight|tringPart|tringPartition|tringPosition|tringQ|tringRepeat|tringReplace|tringReplaceList|tringReplacePart|tringReverse|tringRiffle|tringRotateLeft|tringRotateRight|tringSkeleton|tringSplit|tringStartsQ|tringTake|tringTakeDrop|tringTemplate|tringToByteArray|tringToStream|tringTrim|tripBoxes|tructuralImportance|truveH|truveL|tudentTDistribution|tyle|tyleBox|tyleData|ubMinus|ubPlus|ubStar|ubValues|ubdivide|ubfactorial|ubgraph|ubresultantPolynomialRemainders|ubresultantPolynomials|ubresultants|ubscript|ubscriptBox|ubsequences|ubset|ubsetEqual|ubsetMap|ubsetQ|ubsets|ubstitutionSystem|ubsuperscript|ubsuperscriptBox|ubtract|ubtractFrom|ubtractSides|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uccess|uchThat|um|umConvergence|unPosition|unrise|unset|uperDagger|uperMinus|uperPlus|uperStar|upernovaData|uperscript|uperscriptBox|uperset|upersetEqual|urd|urfaceArea|urfaceData|urvivalDistribution|urvivalFunction|urvivalModel|urvivalModelFit|uzukiDistribution|uzukiGroupSuz|watchLegend|witch|ymbol|ymbolName|ymletWavelet|ymmetric|ymmetricGroup|ymmetricKey|ymmetricMatrixQ|ymmetricPolynomial|ymmetricReduction|ymmetrize|ymmetrizedArray|ymmetrizedArrayRules|ymmetrizedDependentComponents|ymmetrizedIndependentComponents|ymmetrizedReplacePart|ynonyms|yntaxInformation|yntaxLength|yntaxPacket|yntaxQ|ystemDialogInput|ystemInformation|ystemOpen|ystemOptions|ystemProcessData|ystemProcesses|ystemsConnectionsModel|ystemsModelControllerData|ystemsModelDelay|ystemsModelDelayApproximate|ystemsModelDelete|ystemsModelDimensions|ystemsModelExtract|ystemsModelFeedbackConnect|ystemsModelLinearity|ystemsModelMerge|ystemsModelOrder|ystemsModelParallelConnect|ystemsModelSeriesConnect|ystemsModelStateFeedbackConnect|ystemsModelVectorRelativeOrders))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:T(?:Test|abView|able|ableForm|agBox|agSet|agSetDelayed|agUnset|ake|akeDrop|akeLargest|akeLargestBy|akeList|akeSmallest|akeSmallestBy|akeWhile|ally|an|anh|askAbort|askExecute|askObject|askRemove|askResume|askSuspend|askWait|asks|autologyQ|eXForm|elegraphProcess|emplateApply|emplateBox|emplateExpression|emplateIf|emplateObject|emplateSequence|emplateSlot|emplateWith|emporalData|ensorContract|ensorDimensions|ensorExpand|ensorProduct|ensorRank|ensorReduce|ensorSymmetry|ensorTranspose|ensorWedge|erminatedEvaluation|estReport|estReportObject|estResultObject|etrahedron|ext|extCell|extData|extGrid|extPacket|extRecognize|extSentences|extString|extTranslation|extWords|exture|herefore|hermodynamicData|hermometerGauge|hickness|hinning|hompsonGroupTh|hread|hreeJSymbol|hreshold|hrough|hrow|hueMorse|humbnail|ideData|ilde|ildeEqual|ildeFullEqual|ildeTilde|imeConstrained|imeObject|imeObjectQ|imeRemaining|imeSeries|imeSeriesAggregate|imeSeriesForecast|imeSeriesInsert|imeSeriesInvertibility|imeSeriesMap|imeSeriesMapThread|imeSeriesModel|imeSeriesModelFit|imeSeriesResample|imeSeriesRescale|imeSeriesShift|imeSeriesThread|imeSeriesWindow|imeSystemConvert|imeUsed|imeValue|imeZoneConvert|imeZoneOffset|imelinePlot|imes|imesBy|iming|itsGroupT|oBoxes|oCharacterCode|oContinuousTimeModel|oDiscreteTimeModel|oEntity|oExpression|oInvertibleTimeSeries|oLowerCase|oNumberField|oPolarCoordinates|oRadicals|oRules|oSphericalCoordinates|oString|oUpperCase|oeplitzMatrix|ogether|oggler|ogglerBar|ooltip|oonShading|opHatTransform|opologicalSort|orus|orusGraph|otal|otalVariationFilter|ouchPosition|r|race|raceDialog|racePrint|raceScan|racyWidomDistribution|radingChart|raditionalForm|ransferFunctionCancel|ransferFunctionExpand|ransferFunctionFactor|ransferFunctionModel|ransferFunctionPoles|ransferFunctionTransform|ransferFunctionZeros|ransformationFunction|ransformationMatrix|ransformedDistribution|ransformedField|ransformedProcess|ransformedRegion|ransitiveClosureGraph|ransitiveReductionGraph|ranslate|ranslationTransform|ransliterate|ranspose|ravelDirections|ravelDirectionsData|ravelDistance|ravelDistanceList|ravelTime|reeForm|reeGraph|reeGraphQ|reePlot|riangle|riangleWave|riangularDistribution|riangulateMesh|rigExpand|rigFactor|rigFactorList|rigReduce|rigToExp|rigger|rimmedMean|rimmedVariance|ropicalStormData|rueQ|runcatedDistribution|runcatedPolyhedron|sallisQExponentialDistribution|sallisQGaussianDistribution|ube|ukeyLambdaDistribution|ukeyWindow|unnelData|uples|uranGraph|uringMachine|uttePolynomial|woWayRule|ypeHint))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:U(?:RL|RLBuild|RLDecode|RLDispatcher|RLDownload|RLEncode|RLExecute|RLExpand|RLParse|RLQueryDecode|RLQueryEncode|RLRead|RLResponseTime|RLShorten|RLSubmit|nateQ|ncompress|nderBar|nderflow|nderoverscript|nderoverscriptBox|nderscript|nderscriptBox|nderseaFeatureData|ndirectedEdge|ndirectedGraph|ndirectedGraphQ|nequal|nequalTo|nevaluated|niformDistribution|niformGraphDistribution|niformPolyhedron|niformSumDistribution|ninstall|nion|nionPlus|nique|nitBox|nitConvert|nitDimensions|nitRootTest|nitSimplify|nitStep|nitTriangle|nitVector|nitaryMatrixQ|nitize|niverseModelData|niversityData|nixTime|nprotect|nsameQ|nset|nsetShared|ntil|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pSet|pSetDelayed|pTee|pTeeArrow|pTo|pValues|pdate|pperCaseQ|pperLeftArrow|pperRightArrow|pperTriangularMatrix|pperTriangularMatrixQ|pperTriangularize|psample|singFrontEnd))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:V(?:alueQ|alues|ariables|ariance|arianceEquivalenceTest|arianceGammaDistribution|arianceTest|ectorAngle|ectorDensityPlot|ectorDisplacementPlot|ectorDisplacementPlot3D|ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ectorPlot|ectorPlot3D|ectorQ|ectors|ee|erbatim|erificationTest|ertexAdd|ertexChromaticNumber|ertexComponent|ertexConnectivity|ertexContract|ertexCorrelationSimilarity|ertexCosineSimilarity|ertexCount|ertexCoverQ|ertexDegree|ertexDelete|ertexDiceSimilarity|ertexEccentricity|ertexInComponent|ertexInComponentGraph|ertexInDegree|ertexIndex|ertexJaccardSimilarity|ertexList|ertexOutComponent|ertexOutComponentGraph|ertexOutDegree|ertexQ|ertexReplace|ertexTransitiveGraphQ|ertexWeightedGraphQ|erticalBar|erticalGauge|erticalSeparator|erticalSlider|erticalTilde|oiceStyleData|oigtDistribution|olcanoData|olume|onMisesDistribution|oronoiMesh))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:W(?:aitAll|aitNext|akebyDistribution|alleniusHypergeometricDistribution|aringYuleDistribution|arpingCorrespondence|arpingDistance|atershedComponents|atsonUSquareTest|attsStrogatzGraphDistribution|avePDEComponent|aveletBestBasis|aveletFilterCoefficients|aveletImagePlot|aveletListPlot|aveletMapIndexed|aveletMatrixPlot|aveletPhi|aveletPsi|aveletScalogram|aveletThreshold|eakStationarity|eaklyConnectedComponents|eaklyConnectedGraphComponents|eaklyConnectedGraphQ|eatherData|eatherForecastData|eberE|edge|eibullDistribution|eierstrassE1|eierstrassE2|eierstrassE3|eierstrassEta1|eierstrassEta2|eierstrassEta3|eierstrassHalfPeriodW1|eierstrassHalfPeriodW2|eierstrassHalfPeriodW3|eierstrassHalfPeriods|eierstrassInvariantG2|eierstrassInvariantG3|eierstrassInvariants|eierstrassP|eierstrassPPrime|eierstrassSigma|eierstrassZeta|eightedAdjacencyGraph|eightedAdjacencyMatrix|eightedData|eightedGraphQ|elchWindow|heelGraph|henEvent|hich|hile|hiteNoiseProcess|hittakerM|hittakerW|ienerFilter|ienerProcess|ignerD|ignerSemicircleDistribution|ikipediaData|ilksW|ilksWTest|indDirectionData|indSpeedData|indVectorData|indingCount|indingPolygon|insorizedMean|insorizedVariance|ishartMatrixDistribution|ith|olframAlpha|olframLanguageData|ordCloud|ordCount|ordCounts|ordData|ordDefinition|ordFrequency|ordFrequencyData|ordList|ordStem|ordTranslation|rite|riteLine|riteString|ronskian))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:X(?:MLElement|MLObject|MLTemplate|YZColor|nor|or))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:Y(?:uleDissimilarity))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:Z(?:IPCodeData|Test|Transform|ernikeR|eroSymmetric|eta|etaZero|ipfDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:A(?:cceptanceThreshold|ccuracyGoal|ctiveStyle|ddOnHelpPath|djustmentBoxOptions|lignment|lignmentPoint|llowGroupClose|llowInlineCells|llowLooseGrammar|llowReverseGroupClose|llowScriptLevelChange|llowVersionUpdate|llowedCloudExtraParameters|llowedCloudParameterExtensions|llowedDimensions|llowedFrequencyRange|llowedHeads|lternativeHypothesis|ltitudeMethod|mbiguityFunction|natomySkinStyle|nchoredSearch|nimationDirection|nimationRate|nimationRepetitions|nimationRunTime|nimationRunning|nimationTimeIndex|nnotationRules|ntialiasing|ppearance|ppearanceElements|ppearanceRules|spectRatio|ssociationFormat|ssumptions|synchronous|ttachedCell|udioChannelAssignment|udioEncoding|udioInputDevice|udioLabel|udioOutputDevice|uthentication|utoAction|utoCopy|utoDelete|utoGeneratedPackage|utoIndent|utoItalicWords|utoMultiplicationSymbol|utoOpenNotebooks|utoOpenPalettes|utoOperatorRenderings|utoRemove|utoScroll|utoSpacing|utoloadPath|utorunSequencing|xes|xesEdge|xesLabel|xesOrigin|xesStyle))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:B(?:ackground|arOrigin|arSpacing|aseStyle|aselinePosition|inaryFormat|ookmarks|ooleanStrings|oundaryStyle|oxBaselineShift|oxFormFormatTypes|oxFrame|oxMargins|oxRatios|oxStyle|oxed|ubbleScale|ubbleSizes|uttonBoxOptions|uttonData|uttonFunction|uttonMinHeight|uttonSource|yteOrdering))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:C(?:alendarType|alloutMarker|alloutStyle|aptureRunning|aseOrdering|elestialSystem|ellAutoOverwrite|ellBaseline|ellBracketOptions|ellChangeTimes|ellContext|ellDingbat|ellDingbatMargin|ellDynamicExpression|ellEditDuplicate|ellEpilog|ellEvaluationDuplicate|ellEvaluationFunction|ellEventActions|ellFrame|ellFrameColor|ellFrameLabelMargins|ellFrameLabels|ellFrameMargins|ellGrouping|ellGroupingRules|ellHorizontalScrolling|ellID|ellLabel|ellLabelAutoDelete|ellLabelMargins|ellLabelPositioning|ellLabelStyle|ellLabelTemplate|ellMargins|ellOpen|ellProlog|ellSize|ellTags|haracterEncoding|haracterEncodingsPath|hartBaseStyle|hartElementFunction|hartElements|hartLabels|hartLayout|hartLegends|hartStyle|lassPriors|lickToCopyEnabled|lipPlanes|lipPlanesStyle|lipRange|lippingStyle|losingAutoSave|loudBase|loudObjectNameFormat|loudObjectURLType|lusterDissimilarityFunction|odeAssistOptions|olorCoverage|olorFunction|olorFunctionBinning|olorFunctionScaling|olorRules|olorSelectorSettings|olorSpace|olumnAlignments|olumnLines|olumnSpacings|olumnWidths|olumnsEqual|ombinerFunction|ommonDefaultFormatTypes|ommunityBoundaryStyle|ommunityLabels|ommunityRegionStyle|ompilationOptions|ompilationTarget|ompiled|omplexityFunction|ompressionLevel|onfidenceLevel|onfidenceRange|onfidenceTransform|onfigurationPath|onstants|ontentPadding|ontentSelectable|ontentSize|ontinuousAction|ontourLabels|ontourShading|ontourStyle|ontours|ontrolPlacement|ontrolType|ontrollerLinking|ontrollerMethod|ontrollerPath|ontrolsRendering|onversionRules|ookieFunction|oordinatesToolOptions|opyFunction|opyable|ornerNeighbors|ounterAssignments|ounterFunction|ounterIncrements|ounterStyleMenuListing|ovarianceEstimatorFunction|reateCellID|reateIntermediateDirectories|riterionFunction|ubics|urveClosed))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:D(?:ataRange|ataReversed|atasetTheme|ateFormat|ateFunction|ateGranularity|ateReduction|ateTicksFormat|ayCountConvention|efaultDuplicateCellStyle|efaultDuration|efaultElement|efaultFontProperties|efaultFormatType|efaultInlineFormatType|efaultNaturalLanguage|efaultNewCellStyle|efaultNewInlineCellStyle|efaultNotebook|efaultOptions|efaultPrintPrecision|efaultStyleDefinitions|einitialization|eletable|eleteContents|eletionWarning|elimiterAutoMatching|elimiterFlashTime|elimiterMatching|elimiters|eliveryFunction|ependentVariables|eployed|escriptorStateSpace|iacriticalPositioning|ialogProlog|ialogSymbols|igitBlock|irectedEdges|irection|iscreteVariables|ispersionEstimatorFunction|isplayAllSteps|isplayFunction|istanceFunction|istributedContexts|ithering|ividers|ockedCell|ockedCells|ynamicEvaluationTimeout|ynamicModuleValues|ynamicUpdating))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:E(?:clipseType|dgeCapacity|dgeCost|dgeLabelStyle|dgeLabels|dgeShapeFunction|dgeStyle|dgeValueRange|dgeValueSizes|dgeWeight|ditCellTagsSettings|ditable|lidedForms|nabled|pilog|pilogFunction|scapeRadius|valuatable|valuationCompletionAction|valuationElements|valuationMonitor|valuator|valuatorNames|ventLabels|xcludePods|xcludedContexts|xcludedForms|xcludedLines|xcludedPhysicalQuantities|xclusions|xclusionsStyle|xponentFunction|xponentPosition|xponentStep|xponentialFamily|xportAutoReplacements|xpressionUUID|xtension|xtentElementFunction|xtentMarkers|xtentSize|xternalDataCharacterEncoding|xternalOptions|xternalTypeSignature))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:F(?:aceGrids|aceGridsStyle|ailureAction|eatureNames|eatureTypes|eedbackSector|eedbackSectorStyle|eedbackType|ieldCompletionFunction|ieldHint|ieldHintStyle|ieldMasked|ieldSize|ileNameDialogSettings|ileNameForms|illing|illingStyle|indSettings|itRegularization|ollowRedirects|ontColor|ontFamily|ontSize|ontSlant|ontSubstitutions|ontTracking|ontVariations|ontWeight|orceVersionInstall|ormBoxOptions|ormLayoutFunction|ormProtectionMethod|ormatType|ormatTypeAutoConvert|ourierParameters|ractionBoxOptions|ractionLine|rame|rameBoxOptions|rameLabel|rameMargins|rameRate|rameStyle|rameTicks|rameTicksStyle|rontEndEventActions|unctionSpace))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:G(?:apPenalty|augeFaceElementFunction|augeFaceStyle|augeFrameElementFunction|augeFrameSize|augeFrameStyle|augeLabels|augeMarkers|augeStyle|aussianIntegers|enerateConditions|eneratedCell|eneratedDocumentBinding|eneratedParameters|eneratedQuantityMagnitudes|eneratorDescription|eneratorHistoryLength|eneratorOutputType|eoArraySize|eoBackground|eoCenter|eoGridLines|eoGridLinesStyle|eoGridRange|eoGridRangePadding|eoLabels|eoLocation|eoModel|eoProjection|eoRange|eoRangePadding|eoResolution|eoScaleBar|eoServer|eoStylingImageFunction|eoZoomLevel|radient|raphHighlight|raphHighlightStyle|raphLayerStyle|raphLayers|raphLayout|ridCreationSettings|ridDefaultElement|ridFrame|ridFrameMargins|ridLines|ridLinesStyle|roupActionBase|roupPageBreakWithin))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:H(?:eaderAlignment|eaderBackground|eaderDisplayFunction|eaderLines|eaderSize|eaderStyle|eads|elpBrowserSettings|iddenItems|olidayCalendar|yperlinkAction|yphenation))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:I(?:conRules|gnoreCase|gnoreDiacritics|gnorePunctuation|mageCaptureFunction|mageFormattingWidth|mageLabels|mageLegends|mageMargins|magePadding|magePreviewFunction|mageRegion|mageResolution|mageSize|mageSizeAction|mageSizeMultipliers|magingDevice|mportAutoReplacements|mportOptions|ncludeConstantBasis|ncludeDefinitions|ncludeDirectories|ncludeFileExtension|ncludeGeneratorTasks|ncludeInflections|ncludeMetaInformation|ncludePods|ncludeQuantities|ncludeSingularSolutions|ncludeWindowTimes|ncludedContexts|ndeterminateThreshold|nflationMethod|nheritScope|nitialSeeding|nitialization|nitializationCell|nitializationCellEvaluation|nitializationCellWarning|nputAliases|nputAssumptions|nputAutoReplacements|nsertResults|nsertionFunction|nteractive|nterleaving|nterpolationOrder|nterpolationPoints|nterpretationBoxOptions|nterpretationFunction|ntervalMarkers|ntervalMarkersStyle|nverseFunctions|temAspectRatio|temDisplayFunction|temSize|temStyle))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:J(?:oined))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:K(?:eepExistingVersion|eyCollisionFunction|eypointStrength))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:L(?:abelStyle|abelVisibility|abelingFunction|abelingSize|anguage|anguageCategory|ayerSizeFunction|eaderSize|earningRate|egendAppearance|egendFunction|egendLabel|egendLayout|egendMargins|egendMarkerSize|egendMarkers|ighting|ightingAngle|imitsPositioning|imitsPositioningTokens|ineBreakWithin|ineIndent|ineIndentMaxFraction|ineIntegralConvolutionScale|ineSpacing|inearOffsetFunction|inebreakAdjustments|inkFunction|inkProtocol|istFormat|istPickerBoxOptions|ocalizeVariables|ocatorAutoCreate|ocatorRegion|ooping))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:M(?:agnification|ailAddressValidation|ailResponseFunction|ailSettings|asking|atchLocalNames|axCellMeasure|axColorDistance|axDuration|axExtraBandwidths|axExtraConditions|axFeatureDisplacement|axFeatures|axItems|axIterations|axMixtureKernels|axOverlapFraction|axPlotPoints|axRecursion|axStepFraction|axStepSize|axSteps|emoryConstraint|enuCommandKey|enuSortingValue|enuStyle|esh|eshCellHighlight|eshCellLabel|eshCellMarker|eshCellShapeFunction|eshCellStyle|eshFunctions|eshQualityGoal|eshRefinementFunction|eshShading|eshStyle|etaInformation|ethod|inColorDistance|inIntervalSize|inPointSeparation|issingBehavior|issingDataMethod|issingDataRules|issingString|issingStyle|odal|odulus|ultiaxisArrangement|ultiedgeStyle|ultilaunchWarning|ultilineFunction|ultiselection))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:N(?:icholsGridLines|ominalVariables|onConstants|ormFunction|ormalized|ormalsFunction|otebookAutoSave|otebookBrowseDirectory|otebookConvertSettings|otebookDynamicExpression|otebookEventActions|otebookPath|otebooksMenu|otificationFunction|ullRecords|ullWords|umberFormat|umberMarks|umberMultiplier|umberPadding|umberPoint|umberSeparator|umberSigns|yquistGridLines))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:O(?:pacityFunction|pacityFunctionScaling|peratingSystem|ptionInspectorSettings|utputAutoOverwrite|utputSizeLimit|verlaps|verscriptBoxOptions|verwriteTarget))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:P(?:IDDerivativeFilter|IDFeedforward|acletSite|adding|addingSize|ageBreakAbove|ageBreakBelow|ageBreakWithin|ageFooterLines|ageFooters|ageHeaderLines|ageHeaders|ageTheme|ageWidth|alettePath|aneled|aragraphIndent|aragraphSpacing|arallelization|arameterEstimator|artBehavior|artitionGranularity|assEventsDown|assEventsUp|asteBoxFormInlineCells|ath|erformanceGoal|ermissions|haseRange|laceholderReplace|layRange|lotLabel|lotLabels|lotLayout|lotLegends|lotMarkers|lotPoints|lotRange|lotRangeClipping|lotRangePadding|lotRegion|lotStyle|lotTheme|odStates|odWidth|olarAxes|olarAxesOrigin|olarGridLines|olarTicks|oleZeroMarkers|recisionGoal|referencesPath|reprocessingRules|reserveColor|reserveImageOptions|rincipalValue|rintAction|rintPrecision|rintingCopies|rintingOptions|rintingPageRange|rintingStartingPageNumber|rintingStyleEnvironment|rintout3DPreviewer|rivateCellOptions|rivateEvaluationOptions|rivateFontOptions|rivateNotebookOptions|rivatePaths|rocessDirectory|rocessEnvironment|rocessEstimator|rogressReporting|rolog|ropagateAborts))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:Q(?:uartics))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:R(?:adicalBoxOptions|andomSeeding|asterSize|eImLabels|eImStyle|ealBlockDiagonalForm|ecognitionPrior|ecordLists|ecordSeparators|eferenceLineStyle|efreshRate|egionBoundaryStyle|egionFillingStyle|egionFunction|egionSize|egularization|enderingOptions|equiredPhysicalQuantities|esampling|esamplingMethod|esolveContextAliases|estartInterval|eturnReceiptFunction|evolutionAxis|otateLabel|otationAction|oundingRadius|owAlignments|owLines|owMinHeight|owSpacings|owsEqual|ulerUnits|untimeAttributes|untimeOptions))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:S(?:ameTest|ampleDepth|ampleRate|amplingPeriod|aveConnection|aveDefinitions|aveable|caleDivisions|caleOrigin|calePadding|caleRangeStyle|caleRanges|calingFunctions|cientificNotationThreshold|creenStyleEnvironment|criptBaselineShifts|criptLevel|criptMinSize|criptSizeMultipliers|crollPosition|crollbars|crollingOptions|ectorOrigin|ectorSpacing|electable|elfLoopStyle|eriesTermGoal|haringList|howAutoSpellCheck|howAutoStyles|howCellBracket|howCellLabel|howCellTags|howClosedCellArea|howContents|howCursorTracker|howGroupOpener|howPageBreaks|howSelection|howShortBoxForm|howSpecialCharacters|howStringCharacters|hrinkingDelay|ignPadding|ignificanceLevel|imilarityRules|ingleLetterItalics|liderBoxOptions|ortedBy|oundVolume|pacings|panAdjustments|panCharacterRounding|panLineThickness|panMaxSize|panMinSize|panSymmetric|pecificityGoal|pellingCorrection|pellingDictionaries|pellingDictionariesPath|pellingOptions|phericalRegion|plineClosed|plineDegree|plineKnots|plineWeights|qrtBoxOptions|tabilityMargins|tabilityMarginsStyle|tandardized|tartingStepSize|tateSpaceRealization|tepMonitor|trataVariables|treamColorFunction|treamColorFunctionScaling|treamMarkers|treamPoints|treamScale|treamStyle|trictInequalities|tripOnInput|tripWrapperBoxes|tructuredSelection|tyleBoxAutoDelete|tyleDefinitions|tyleHints|tyleMenuListing|tyleNameDialogSettings|tyleSheetPath|ubscriptBoxOptions|ubsuperscriptBoxOptions|ubtitleEncoding|uperscriptBoxOptions|urdForm|ynchronousInitialization|ynchronousUpdating|yntaxForm|ystemHelpPath|ystemsModelLabels))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:T(?:abFilling|abSpacings|ableAlignments|ableDepth|ableDirections|ableHeadings|ableSpacing|agBoxOptions|aggingRules|argetFunctions|argetUnits|emplateBoxOptions|emporalRegularity|estID|extAlignment|extClipboardType|extJustification|extureCoordinateFunction|extureCoordinateScaling|icks|icksStyle|imeConstraint|imeDirection|imeFormat|imeGoal|imeSystem|imeZone|okenWords|olerance|ooltipDelay|ooltipStyle|otalWidth|ouchscreenAutoZoom|ouchscreenControlPlacement|raceAbove|raceBackward|raceDepth|raceForward|raceOff|raceOn|raceOriginal|rackedSymbols|rackingFunction|raditionalFunctionNotation|ransformationClass|ransformationFunctions|ransitionDirection|ransitionDuration|ransitionEffect|ranslationOptions|ravelMethod|rendStyle|rig))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:U(?:nderoverscriptBoxOptions|nderscriptBoxOptions|ndoOptions|ndoTrackedVariables|nitSystem|nityDimensions|nsavedVariables|pdateInterval|pdatePacletSites|tilityFunction))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:V(?:alidationLength|alidationSet|alueDimensions|arianceEstimatorFunction|ectorAspectRatio|ectorColorFunction|ectorColorFunctionScaling|ectorMarkers|ectorPoints|ectorRange|ectorScaling|ectorSizes|ectorStyle|erifyConvergence|erifySecurityCertificates|erifySolutions|erifyTestAssumptions|ersionedPreferences|ertexCapacity|ertexColors|ertexCoordinates|ertexDataCoordinates|ertexLabelStyle|ertexLabels|ertexNormals|ertexShape|ertexShapeFunction|ertexSize|ertexStyle|ertexTextureCoordinates|ertexWeight|ideoEncoding|iewAngle|iewCenter|iewMatrix|iewPoint|iewProjection|iewRange|iewVector|iewVertical|isible))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:W(?:aveletScale|eights|hitePoint|indowClickSelect|indowElements|indowFloating|indowFrame|indowFrameElements|indowMargins|indowOpacity|indowSize|indowStatusArea|indowTitle|indowToolbars|ordOrientation|ordSearch|ordSelectionFunction|ordSeparators|ordSpacings|orkingPrecision|rapAround))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:Z(?:eroTest|eroWidthTimes))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:A(?:bove|fter|lgebraics|ll|nonymous|utomatic|xis))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:B(?:ack|ackward|aseline|efore|elow|lack|lue|old|ooleans|ottom|oxes|rown|yte))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:C(?:atalan|ellStyle|enter|haracter|omplexInfinity|omplexes|onstant|yan))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:D(?:ashed|efaultAxesStyle|efaultBaseStyle|efaultBoxStyle|efaultFaceGridsStyle|efaultFieldHintStyle|efaultFrameStyle|efaultFrameTicksStyle|efaultGridLinesStyle|efaultLabelStyle|efaultMenuStyle|efaultTicksStyle|efaultTooltipStyle|egree|elimiter|igitCharacter|otDashed|otted))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:E(?:|ndOfBuffer|ndOfFile|ndOfLine|ndOfString|ulerGamma|xpression))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:F(?:alse|lat|ontProperties|orward|orwardBackward|riday|ront|rontEndDynamicExpression|ull))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:G(?:eneral|laisher|oldenAngle|oldenRatio|ray|reen))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:H(?:ere|exadecimalCharacter|oldAll|oldAllComplete|oldFirst|oldRest))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:I(?:|ndeterminate|nfinity|nherited|nteger|ntegers|talic))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:K(?:hinchin))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:L(?:arge|arger|eft|etterCharacter|ightBlue|ightBrown|ightCyan|ightGray|ightGreen|ightMagenta|ightOrange|ightPink|ightPurple|ightRed|ightYellow|istable|ocked))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:M(?:achinePrecision|agenta|anual|edium|eshCellCentroid|eshCellMeasure|eshCellQuality|onday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:N(?:HoldAll|HoldFirst|HoldRest|egativeIntegers|egativeRationals|egativeReals|oWhitespace|onNegativeIntegers|onNegativeRationals|onNegativeReals|onPositiveIntegers|onPositiveRationals|onPositiveReals|one|ow|ull|umber|umberString|umericFunction))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:O(?:neIdentity|range|rderless))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:P(?:i|ink|lain|ositiveIntegers|ositiveRationals|ositiveReals|rimes|rotected|unctuationCharacter|urple))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:R(?:ationals|eadProtected|eal|eals|ecord|ed|ight))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:S(?:aturday|equenceHold|mall|maller|panFromAbove|panFromBoth|panFromLeft|tartOfLine|tartOfString|tring|truckthrough|tub|unday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:T(?:emporary|hick|hin|hursday|iny|oday|omorrow|op|ransparent|rue|uesday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:U(?:ndefined|nderlined))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:W(?:ednesday|hite|hitespace|hitespaceCharacter|ord|ordBoundary|ordCharacter))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:Y(?:ellow|esterday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:\\$(?:Aborted|ActivationKey|AllowDataUpdates|AllowInternet|AssertFunction|Assumptions|AudioInputDevices|AudioOutputDevices|BaseDirectory|BasePacletsDirectory|BatchInput|BatchOutput|ByteOrdering|CacheBaseDirectory|Canceled|CharacterEncoding|CharacterEncodings|CloudAccountName|CloudBase|CloudConnected|CloudCreditsAvailable|CloudEvaluation|CloudExpressionBase|CloudObjectNameFormat|CloudObjectURLType|CloudRootDirectory|CloudSymbolBase|CloudUserID|CloudUserUUID|CloudVersion|CommandLine|CompilationTarget|Context|ContextAliases|ContextPath|ControlActiveSetting|Cookies|CreationDate|CurrentLink|CurrentTask|DateStringFormat|DefaultAudioInputDevice|DefaultAudioOutputDevice|DefaultFrontEnd|DefaultImagingDevice|DefaultKernels|DefaultLocalBase|DefaultLocalKernel|Display|DisplayFunction|DistributedContexts|DynamicEvaluation|Echo|EmbedCodeEnvironments|EmbeddableServices|Epilog|EvaluationCloudBase|EvaluationCloudObject|EvaluationEnvironment|ExportFormats|Failed|FontFamilies|FrontEnd|FrontEndSession|GeoLocation|GeoLocationCity|GeoLocationCountry|GeoLocationSource|HomeDirectory|IgnoreEOF|ImageFormattingWidth|ImageResolution|ImagingDevice|ImagingDevices|ImportFormats|InitialDirectory|Input|InputFileName|InputStreamMethods|Inspector|InstallationDirectory|InterpreterTypes|IterationLimit|KernelCount|KernelID|Language|LibraryPath|LicenseExpirationDate|LicenseID|LicenseServer|Linked|LocalBase|LocalSymbolBase|MachineAddresses|MachineDomains|MachineEpsilon|MachineID|MachineName|MachinePrecision|MachineType|MaxExtraPrecision|MaxMachineNumber|MaxNumber|MaxPiecewiseCases|MaxPrecision|MaxRootDegree|MessageGroups|MessageList|MessagePrePrint|Messages|MinMachineNumber|MinNumber|MinPrecision|MobilePhone|ModuleNumber|NetworkConnected|NewMessage|NewSymbol|NotebookInlineStorageLimit|Notebooks|NumberMarks|OperatingSystem|Output|OutputSizeLimit|OutputStreamMethods|Packages|ParentLink|ParentProcessID|PasswordFile|Path|PathnameSeparator|PerformanceGoal|Permissions|PlotTheme|Printout3DPreviewer|ProcessID|ProcessorCount|ProcessorType|ProgressReporting|RandomGeneratorState|RecursionLimit|ReleaseNumber|RequesterAddress|RequesterCloudUserID|RequesterCloudUserUUID|RequesterWolframID|RequesterWolframUUID|RootDirectory|ScriptCommandLine|ScriptInputString|Services|SessionID|SharedFunctions|SharedVariables|SoundDisplayFunction|SynchronousEvaluation|System|SystemCharacterEncoding|SystemID|SystemShell|SystemTimeZone|SystemWordLength|TemplatePath|TemporaryDirectory|TimeUnit|TimeZone|TimeZoneEntity|TimedOut|UnitSystem|Urgent|UserAgentString|UserBaseDirectory|UserBasePacletsDirectory|UserDocumentsDirectory|UserURLBase|Username|Version|VersionNumber|WolframDocumentsDirectory|WolframID|WolframUUID))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:A(?:bortScheduledTask|ctive|lgebraicRules|lternateImage|natomyForm|nimationCycleOffset|nimationCycleRepetitions|nimationDisplayTime|spectRatioFixed|stronomicalData|synchronousTaskObject|synchronousTasks|udioDevice|udioLooping))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:B(?:uttonEvaluator|uttonExpandable|uttonFrame|uttonMargins|uttonNote|uttonStyle))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:C(?:DFInformation|hebyshevDistance|lassifierInformation|lipFill|olorOutput|olumnForm|ompose|onstantArrayLayer|onstantPlusLayer|onstantTimesLayer|onstrainedMax|onstrainedMin|ontourGraphics|ontourLines|onversionOptions|reateScheduledTask|reateTemporary|urry))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:D(?:atabinRemove|ate|ebug|efaultColor|efaultFont|ensityGraphics|isplay|isplayString|otPlusLayer|ragAndDrop))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:E(?:dgeLabeling|dgeRenderingFunction|valuateScheduledTask|xpectedValue))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:F(?:actorComplete|ontForm|ormTheme|romDate|ullOptions))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:G(?:raphStyle|raphicsArray|raphicsSpacing|ridBaseline))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:H(?:TMLSave|eldPart|iddenSurface|omeDirectory))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:I(?:mageRotated|nstanceNormalizationLayer))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:L(?:UBackSubstitution|egendreType|ightSources|inearProgramming|inkOpen|iteral|ongestMatch))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:M(?:eshRange|oleculeEquivalentQ))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:N(?:etInformation|etSharedArray|extScheduledTaskTime|otebookCreate))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:O(?:penTemporary))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:P(?:IDData|ackingMethod|ersistentValue|ixelConstrained|lot3Matrix|lotDivision|lotJoined|olygonIntersections|redictorInformation|roperties|roperty|ropertyList|ropertyValue))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:R(?:andom|asterArray|ecognitionThreshold|elease|emoteKernelObject|emoveAsynchronousTask|emoveProperty|emoveScheduledTask|enderAll|eplaceHeldPart|esetScheduledTask|esumePacket|unScheduledTask))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:S(?:cheduledTaskActiveQ|cheduledTaskInformation|cheduledTaskObject|cheduledTasks|creenRectangle|electionAnimate|equenceAttentionLayer|equenceForm|etProperty|hading|hortestMatch|ingularValues|kinStyle|ocialMediaData|tartAsynchronousTask|tartScheduledTask|tateDimensions|topAsynchronousTask|topScheduledTask|tructuredArray|tyleForm|tylePrint|ubscripted|urfaceColor|urfaceGraphics|uspendPacket|ystemModelProgressReporting))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:T(?:eXSave|extStyle|imeWarpingCorrespondence|imeWarpingDistance|oDate|oFileName|oHeldExpression))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:U(?:RLFetch|RLFetchAsynchronous|RLSave|RLSaveAsynchronous))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:V(?:ectorScale|ertexCoordinateRules|ertexLabeling|ertexRenderingFunction))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:W(?:aitAsynchronousTask|indowMovable))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:\\$(?:AsynchronousTask|ConfiguredKernels|DefaultFont|EntityStores|FormatType|HTTPCookies|InstallationDate|MachineDomain|ProductInformation|ProgramName|RandomState|ScheduledTask|SummaryBoxDataSizeLimit|TemporaryPrefix|TextStyle|TopDirectory|UserAddOnsDirectory))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:A(?:ctionDelay|ctionMenuBox|ctionMenuBoxOptions|ctiveItem|lgebraicRulesData|lignmentMarker|llowAdultContent|llowChatServices|llowIncomplete|nalytic|nimatorBox|nimatorBoxOptions|nimatorElements|ppendCheck|rgumentCountQ|rrow3DBox|rrowBox|uthenticate|utoEvaluateEvents|utoIndentSpacings|utoMatch|utoNumberFormatting|utoQuoteCharacters|utoScaling|utoStyleOptions|utoStyleWords|utomaticImageSize|xis3DBox|xis3DBoxOptions|xisBox|xisBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:B(?:SplineCurve3DBox|SplineCurve3DBoxOptions|SplineCurveBox|SplineCurveBoxOptions|SplineSurface3DBox|SplineSurface3DBoxOptions|ackFaceColor|ackFaceGlowColor|ackFaceOpacity|ackFaceSpecularColor|ackFaceSpecularExponent|ackFaceSurfaceAppearance|ackFaceTexture|ackgroundAppearance|ackgroundTasksSettings|acksubstitution|eveled|ezierCurve3DBox|ezierCurve3DBoxOptions|ezierCurveBox|ezierCurveBoxOptions|lankForm|ounds|ox|oxDimensions|oxForm|oxID|oxRotation|oxRotationPoint|ra|raKet|rowserCategory|uttonCell|uttonContents|uttonStyleMenuListing))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:C(?:acheGraphics|achedValue|ardinalBSplineBasis|ellBoundingBox|ellContents|ellElementSpacings|ellElementsBoundingBox|ellFrameStyle|ellInsertionPointCell|ellTrayPosition|ellTrayWidgets|hangeOptions|hannelDatabin|hannelListenerWait|hannelPreSendFunction|hartElementData|hartElementDataFunction|heckAll|heckboxBox|heckboxBoxOptions|ircleBox|lipboardNotebook|lockwiseContourIntegral|losed|losingEvent|loudConnections|loudObjectInformation|loudObjectInformationData|loudUserID|oarse|oefficientDomain|olonForm|olorSetterBox|olorSetterBoxOptions|olumnBackgrounds|ompilerEnvironmentAppend|ompletionsListPacket|omponentwiseContextMenu|ompressedData|oneBox|onicHullRegion3DBox|onicHullRegion3DBoxOptions|onicHullRegionBox|onicHullRegionBoxOptions|onnect|ontentsBoundingBox|ontextMenu|ontinuation|ontourIntegral|ontourSmoothing|ontrolAlignment|ontrollerDuration|ontrollerInformationData|onvertToPostScript|onvertToPostScriptPacket|ookies|opyTag|ounterBox|ounterBoxOptions|ounterClockwiseContourIntegral|ounterEvaluator|ounterStyle|uboidBox|uboidBoxOptions|urlyDoubleQuote|urlyQuote|ylinderBox|ylinderBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:D(?:OSTextFormat|ampingFactor|ataCompression|atasetDisplayPanel|ateDelimiters|ebugTag|ecimal|efault2DTool|efault3DTool|efaultAttachedCellStyle|efaultControlPlacement|efaultDockedCellStyle|efaultInputFormatType|efaultOutputFormatType|efaultStyle|efaultTextFormatType|efaultTextInlineFormatType|efaultValue|efineExternal|egreeLexicographic|egreeReverseLexicographic|eleteWithContents|elimitedArray|estroyAfterEvaluation|eviceOpenQ|ialogIndent|ialogLevel|ifferenceOrder|igitBlockMinimum|isableConsolePrintPacket|iskBox|iskBoxOptions|ispatchQ|isplayRules|isplayTemporary|istributionDomain|ivergence|ocumentGeneratorInformationData|omainRegistrationInformation|oubleContourIntegral|oublyInfinite|own|rawBackFaces|rawFrontFaces|rawHighlighted|ualLinearProgramming|umpGet|ynamicBox|ynamicBoxOptions|ynamicLocation|ynamicModuleBox|ynamicModuleBoxOptions|ynamicModuleParent|ynamicName|ynamicNamespace|ynamicReference|ynamicWrapperBox|ynamicWrapperBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:E(?:ditButtonSettings|liminationOrder|llipticReducedHalfPeriods|mbeddingObject|mphasizeSyntaxErrors|mpty|nableConsolePrintPacket|ndAdd|ngineEnvironment|nter|qualColumns|qualRows|quatedTo|rrorBoxOptions|rrorNorm|rrorPacket|rrorsDialogSettings|valuated|valuationMode|valuationOrder|valuationRateLimit|ventEvaluator|ventHandlerTag|xactRootIsolation|xitDialog|xpectationE|xportPacket|xpressionPacket|xternalCall|xternalFunctionName))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:F(?:EDisableConsolePrintPacket|EEnableConsolePrintPacket|ail|ileInformation|ileName|illForm|illedCurveBox|illedCurveBoxOptions|ine|itAll|lashSelection|ont|ontName|ontOpacity|ontPostScriptName|ontReencoding|ormatRules|ormatValues|rameInset|rameless|rontEndObject|rontEndResource|rontEndResourceString|rontEndStackSize|rontEndValueCache|rontEndVersion|rontFaceColor|rontFaceGlowColor|rontFaceOpacity|rontFaceSpecularColor|rontFaceSpecularExponent|rontFaceSurfaceAppearance|rontFaceTexture|ullAxes))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:G(?:eneratedCellStyles|eneric|eometricTransformation3DBox|eometricTransformation3DBoxOptions|eometricTransformationBox|eometricTransformationBoxOptions|estureHandlerTag|etContext|etFileName|etLinebreakInformationPacket|lobalPreferences|lobalSession|raphLayerLabels|raphRoot|raphics3DBox|raphics3DBoxOptions|raphicsBaseline|raphicsBox|raphicsBoxOptions|raphicsComplex3DBox|raphicsComplex3DBoxOptions|raphicsComplexBox|raphicsComplexBoxOptions|raphicsContents|raphicsData|raphicsGridBox|raphicsGroup3DBox|raphicsGroup3DBoxOptions|raphicsGroupBox|raphicsGroupBoxOptions|raphicsGrouping|raphicsStyle|reekStyle|ridBoxAlignment|ridBoxBackground|ridBoxDividers|ridBoxFrame|ridBoxItemSize|ridBoxItemStyle|ridBoxOptions|ridBoxSpacings|ridElementStyleOptions|roupOpenerColor|roupOpenerInsideFrame|roupTogetherGrouping|roupTogetherNestedGrouping))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:H(?:eadCompose|eaders|elpBrowserLookup|elpBrowserNotebook|elpViewerSettings|essian|exahedronBox|exahedronBoxOptions|ighlightString|omePage|orizontal|orizontalForm|orizontalScrollPosition|yperlinkCreationSettings|yphenationOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:I(?:conizedObject|gnoreSpellCheck|mageCache|mageCacheValid|mageEditMode|mageMarkers|mageOffset|mageRangeCache|mageSizeCache|mageSizeRaw|nactiveStyle|ncludeSingularTerm|ndent|ndentMaxFraction|ndentingNewlineSpacings|ndexCreationOptions|ndexTag|nequality|nexactNumbers|nformationData|nformationDataGrid|nlineCounterAssignments|nlineCounterIncrements|nlineRules|nputFieldBox|nputFieldBoxOptions|nputGrouping|nputSettings|nputToBoxFormPacket|nsertionPointObject|nset3DBox|nset3DBoxOptions|nsetBox|nsetBoxOptions|ntegral|nterlaced|nterpolationPrecision|nterpretTemplate|nterruptSettings|nto|nvisibleApplication|nvisibleTimes|temBox|temBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:J(?:acobian|oinedCurveBox|oinedCurveBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:K(?:|ernelExecute|et))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:L(?:abeledSlider|ambertW|anguageOptions|aunch|ayoutInformation|exicographic|icenseID|ine3DBox|ine3DBoxOptions|ineBox|ineBoxOptions|ineBreak|ineWrapParts|inearFilter|inebreakSemicolonWeighting|inkConnectedQ|inkError|inkFlush|inkHost|inkMode|inkOptions|inkReadHeld|inkService|inkWriteHeld|istPickerBoxBackground|isten|iteralSearch|ocalizeDefinitions|ocatorBox|ocatorBoxOptions|ocatorCentering|ocatorPaneBox|ocatorPaneBoxOptions|ongEqual|ongForm|oopback))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:M(?:achineID|achineName|acintoshSystemPageSetup|ainSolve|aintainDynamicCaches|akeRules|atchLocalNameQ|aterial|athMLText|athematicaNotation|axBend|axPoints|enu|enuAppearance|enuEvaluator|enuItem|enuList|ergeDifferences|essageObject|essageOptions|essagesNotebook|etaCharacters|ethodOptions|inRecursion|inSize|ode|odular|onomialOrder|ouseAppearanceTag|ouseButtons|ousePointerNote|ultiLetterItalics|ultiLetterStyle|ultiplicity|ultiscriptBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:N(?:BernoulliB|ProductFactors|SumTerms|Values|amespaceBox|amespaceBoxOptions|estedScriptRules|etworkPacketRecordingDuring|ext|onAssociative|ormalGrouping|otebookDefault|otebookInterfaceObject))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:O(?:LEData|bjectExistsQ|pen|penFunctionInspectorPacket|penSpecialOptions|penerBox|penerBoxOptions|ptionQ|ptionValueBox|ptionValueBoxOptions|ptionsPacket|utputFormData|utputGrouping|utputMathEditExpression|ver|verlayBox|verlayBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:P(?:ackPaclet|ackage|acletDirectoryAdd|acletDirectoryRemove|acletInformation|acletObjectQ|acletUpdate|ageHeight|alettesMenuSettings|aneBox|aneBoxOptions|aneSelectorBox|aneSelectorBoxOptions|anelBox|anelBoxOptions|aperWidth|arameter|arameterVariables|arentConnect|arentForm|arentList|arenthesize|artialD|asteAutoQuoteCharacters|ausedTime|eriodicInterpolation|erpendicular|ickMode|ickedElements|ivoting|lotRangeClipPlanesStyle|oint3DBox|oint3DBoxOptions|ointBox|ointBoxOptions|olygon3DBox|olygon3DBoxOptions|olygonBox|olygonBoxOptions|olygonHoleScale|olygonScale|olyhedronBox|olyhedronBoxOptions|olynomialForm|olynomials|opupMenuBox|opupMenuBoxOptions|ostScript|recedence|redictionRoot|referencesSettings|revious|rimaryPlaceholder|rintForm|rismBox|rismBoxOptions|rivateFrontEndOptions|robabilityPr|rocessStateDomain|rocessTimeDomain|rogressIndicatorBox|rogressIndicatorBoxOptions|romptForm|yramidBox|yramidBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:R(?:adioButtonBox|adioButtonBoxOptions|andomSeed|angeSpecification|aster3DBox|aster3DBoxOptions|asterBox|asterBoxOptions|ationalFunctions|awArray|awMedium|ebuildPacletData|ectangleBox|ecurringDigitsForm|eferenceMarkerStyle|eferenceMarkers|einstall|emoved|epeatedString|esourceAcquire|esourceSubmissionObject|eturnCreatesNewCell|eturnEntersInput|eturnInputFormPacket|otationBox|otationBoxOptions|oundImplies|owBackgrounds|owHeights|uleCondition|uleForm))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:S(?:aveAutoDelete|caledMousePosition|cheduledTaskInformationData|criptForm|criptRules|ectionGrouping|electWithContents|election|electionCell|electionCellCreateCell|electionCellDefaultStyle|electionCellParentStyle|electionPlaceholder|elfLoops|erviceResponse|etOptionsPacket|etSecuredAuthenticationKey|etbacks|etterBox|etterBoxOptions|howAutoConvert|howCodeAssist|howControls|howGroupOpenCloseIcon|howInvisibleCharacters|howPredictiveInterface|howSyntaxStyles|hrinkWrapBoundingBox|ingleEvaluation|ingleLetterStyle|lider2DBox|lider2DBoxOptions|ocket|olveDelayed|oundAndGraphics|pace|paceForm|panningCharacters|phereBox|phereBoxOptions|tartupSound|tringBreak|tringByteCount|tripStyleOnPaste|trokeForm|tructuredArrayHeadQ|tyleKeyMapping|tyleNames|urfaceAppearance|yntax|ystemException|ystemGet|ystemInformationData|ystemStub|ystemTest))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:T(?:ab|abViewBox|abViewBoxOptions|ableViewBox|ableViewBoxAlignment|ableViewBoxBackground|ableViewBoxHeaders|ableViewBoxItemSize|ableViewBoxItemStyle|ableViewBoxOptions|agBoxNote|agStyle|emplateEvaluate|emplateSlotSequence|emplateUnevaluated|emplateVerbatim|emporaryVariable|ensorQ|etrahedronBox|etrahedronBoxOptions|ext3DBox|ext3DBoxOptions|extBand|extBoundingBox|extBox|extForm|extLine|extParagraph|hisLink|itleGrouping|oColor|oggle|oggleFalse|ogglerBox|ogglerBoxOptions|ooBig|ooltipBox|ooltipBoxOptions|otalHeight|raceAction|raceInternal|raceLevel|rackCellChangeTimes|raditionalNotation|raditionalOrder|ransparentColor|rapEnterKey|rapSelection|ubeBSplineCurveBox|ubeBSplineCurveBoxOptions|ubeBezierCurveBox|ubeBezierCurveBoxOptions|ubeBox|ubeBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:U(?:ntrackedVariables|p|seGraphicsRange|serDefinedWavelet|sing))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:V(?:2Get|alueBox|alueBoxOptions|alueForm|aluesData|ectorGlyphData|erbose|ertical|erticalForm|iewPointSelectorSettings|iewPort|irtualGroupData|isibleCell))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:W(?:aitUntil|ebPageMetaInformation|holeCellGroupOpener|indowPersistentStyles|indowSelected|indowWidth|olframAlphaDate|olframAlphaQuantity|olframAlphaResult|olframCloudSettings))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:\\$(?:ActivationGroupID|ActivationUserRegistered|AddOnsDirectory|BoxForms|CloudConnection|CloudVersionNumber|CloudWolframEngineVersionNumber|ConditionHold|DefaultMailbox|DefaultPath|FinancialDataSource|GeoEntityTypes|GeoLocationPrecision|HTMLExportRules|HTTPRequest|LaunchDirectory|LicenseProcesses|LicenseSubprocesses|LicenseType|LinkSupported|LoadedFiles|MaxLicenseProcesses|MaxLicenseSubprocesses|MinorReleaseNumber|NetworkLicense|Off|OutputForms|PatchLevelID|PermissionsGroupBase|PipeSupported|PreferencesDirectory|PrintForms|PrintLiteral|RegisteredDeviceClasses|RegisteredUserName|SecuredAuthenticationKeyTokens|SetParentLink|SoundDisplay|SuppressInputFormHeads|SystemMemory|TraceOff|TraceOn|TracePattern|TracePostAction|TracePreAction|UserAgentLanguages|UserAgentMachine|UserAgentName|UserAgentOperatingSystem|UserAgentVersion|UserName))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:A(?:ctiveClassification|ctiveClassificationObject|ctivePrediction|ctivePredictionObject|ddToSearchIndex|ggregatedEntityClass|ggregationLayer|ngleBisector|nimatedImage|nimationVideo|nomalyDetector|ppendLayer|pplication|pplyReaction|round|roundReplace|rrayReduce|sk|skAppend|skConfirm|skDisplay|skFunction|skState|skTemplateDisplay|skedQ|skedValue|ssessmentFunction|ssessmentResultObject|ssumeDeterministic|stroAngularSeparation|stroBackground|stroCenter|stroDistance|stroGraphics|stroGridLines|stroGridLinesStyle|stroPosition|stroProjection|stroRange|stroRangePadding|stroReferenceFrame|stroStyling|stroZoomLevel|tom|tomCoordinates|tomCount|tomDiagramCoordinates|tomLabelStyle|tomLabels|tomList|ttachCell|ttentionLayer|udioAnnotate|udioAnnotationLookup|udioIdentify|udioInstanceQ|udioPause|udioPlay|udioRecord|udioStop|udioStream|udioStreams|udioTrackApply|udioTrackSelection|utocomplete|utocompletionFunction|xiomaticTheory|xisLabel|xisObject|xisStyle))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:B(?:asicRecurrentLayer|atchNormalizationLayer|atchSize|ayesianMaximization|ayesianMaximizationObject|ayesianMinimization|ayesianMinimizationObject|esagL|innedVariogramList|inomialPointProcess|ioSequence|ioSequenceBackTranslateList|ioSequenceComplement|ioSequenceInstances|ioSequenceModify|ioSequencePlot|ioSequenceQ|ioSequenceReverseComplement|ioSequenceTranscribe|ioSequenceTranslate|itRate|lockDiagonalMatrix|lockLowerTriangularMatrix|lockUpperTriangularMatrix|lockchainAddressData|lockchainBase|lockchainBlockData|lockchainContractValue|lockchainData|lockchainGet|lockchainKeyEncode|lockchainPut|lockchainTokenData|lockchainTransaction|lockchainTransactionData|lockchainTransactionSign|lockchainTransactionSubmit|ond|ondCount|ondLabelStyle|ondLabels|ondList|ondQ|uildCompiledComponent))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:C(?:TCLossLayer|achePersistence|anvas|ast|ategoricalDistribution|atenateLayer|auchyPointProcess|hannelBase|hannelBrokerAction|hannelHistoryLength|hannelListen|hannelListener|hannelListeners|hannelObject|hannelReceiverFunction|hannelSend|hannelSubscribers|haracterNormalize|hemicalConvert|hemicalFormula|hemicalInstance|hemicalReaction|loudExpression|loudExpressions|loudRenderingMethod|ombinatorB|ombinatorC|ombinatorI|ombinatorK|ombinatorS|ombinatorW|ombinatorY|ombinedEntityClass|ompiledCodeFunction|ompiledComponent|ompiledExpressionDeclaration|ompiledLayer|ompilerCallback|ompilerEnvironment|ompilerEnvironmentAppendTo|ompilerEnvironmentObject|ompilerOptions|omplementedEntityClass|omputeUncertainty|onfirmQuiet|onformationMethod|onnectSystemModelComponents|onnectSystemModelController|onnectedMoleculeComponents|onnectedMoleculeQ|onnectionSettings|ontaining|ontentDetectorFunction|ontentFieldOptions|ontentLocationFunction|ontentObject|ontrastiveLossLayer|onvolutionLayer|reateChannel|reateCloudExpression|reateCompilerEnvironment|reateDataStructure|reateDataSystemModel|reateLicenseEntitlement|reateSearchIndex|reateSystemModel|reateTypeInstance|rossEntropyLossLayer|urrentNotebookImage|urrentScreenImage|urryApplied))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:D(?:SolveChangeVariables|ataStructure|ataStructureQ|atabaseConnect|atabaseDisconnect|atabaseReference|atabinSubmit|ateInterval|eclareCompiledComponent|econvolutionLayer|ecryptFile|eleteChannel|eleteCloudExpression|eleteElements|eleteSearchIndex|erivedKey|iggleGatesPointProcess|iggleGrattonPointProcess|igitalSignature|isableFormatting|ocumentWeightingRules|otLayer|ownValuesFunction|ropoutLayer|ynamicImage))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:E(?:choTiming|lementwiseLayer|mbeddedSQLEntityClass|mbeddedSQLExpression|mbeddingLayer|mptySpaceF|ncryptFile|ntityFunction|ntityStore|stimatedPointProcess|stimatedVariogramModel|valuationEnvironment|valuationPrivileges|xpirationDate|xpressionTree|xtendedEntityClass|xternalEvaluate|xternalFunction|xternalIdentifier|xternalObject|xternalSessionObject|xternalSessions|xternalStorageBase|xternalStorageDownload|xternalStorageGet|xternalStorageObject|xternalStoragePut|xternalStorageUpload|xternalValue|xtractLayer))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:F(?:aceRecognize|eatureDistance|eatureExtract|eatureExtraction|eatureExtractor|eatureExtractorFunction|ileConvert|ileFormatProperties|ileNameToFormatList|ileSystemTree|ilteredEntityClass|indChannels|indEquationalProof|indExternalEvaluators|indGeometricConjectures|indImageText|indIsomers|indMoleculeSubstructure|indPointProcessParameters|indSystemModelEquilibrium|indTextualAnswer|lattenLayer|orAllType|ormControl|orwardCloudCredentials|oxHReduce|rameListVideo|romRawPointer|unctionCompile|unctionCompileExport|unctionCompileExportByteArray|unctionCompileExportLibrary|unctionCompileExportString|unctionDeclaration|unctionLayer|unctionPoles))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:G(?:alleryView|atedRecurrentLayer|enerateDerivedKey|enerateDigitalSignature|enerateFileSignature|enerateSecuredAuthenticationKey|eneratedAssetFormat|eneratedAssetLocation|eoGraphValuePlot|eoOrientationData|eometricAssertion|eometricScene|eometricStep|eometricStylingRules|eometricTest|ibbsPointProcess|raphTree|ridVideo))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:H(?:andlerFunctions|andlerFunctionsKeys|ardcorePointProcess|istogramPointDensity))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:I(?:gnoreIsotopes|gnoreStereochemistry|mageAugmentationLayer|mageBoundingBoxes|mageCases|mageContainsQ|mageContents|mageGraphics|magePosition|magePyramid|magePyramidApply|mageStitch|mportedObject|ncludeAromaticBonds|ncludeHydrogens|ncludeRelatedTables|nertEvaluate|nertExpression|nfiniteFuture|nfinitePast|nhomogeneousPoissonPointProcess|nitialEvaluationHistory|nitializationObject|nitializationObjects|nitializationValue|nitialize|nputPorts|ntegrateChangeVariables|nterfaceSwitched|ntersectedEntityClass|nverseImagePyramid))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:K(?:ernelConfiguration|ernelFunction))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:L(?:earningRateMultipliers|ibraryFunctionDeclaration|icenseEntitlementObject|icenseEntitlements|icensingSettings|inearLayer|iteralType|oadCompiledComponent|ocalResponseNormalizationLayer|ongShortTermMemoryLayer|ossFunction))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:M(?:IMETypeToFormatList|ailExecute|ailFolder|ailItem|ailSearch|ailServerConnect|ailServerConnection|aternPointProcess|axDisplayedChildren|axTrainingRounds|axWordGap|eanAbsoluteLossLayer|eanAround|eanPointDensity|eanSquaredLossLayer|ergingFunction|idpoint|issingValuePattern|issingValueSynthesis|olecule|oleculeAlign|oleculeContainsQ|oleculeDraw|oleculeFreeQ|oleculeGraph|oleculeMatchQ|oleculeMaximumCommonSubstructure|oleculeModify|oleculeName|oleculePattern|oleculePlot|oleculePlot3D|oleculeProperty|oleculeQ|oleculeRecognize|oleculeSubstructureCount|oleculeValue))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:N(?:BodySimulation|BodySimulationData|earestNeighborG|estTree|etAppend|etArray|etArrayLayer|etBidirectionalOperator|etChain|etDecoder|etDelete|etDrop|etEncoder|etEvaluationMode|etExternalObject|etExtract|etFlatten|etFoldOperator|etGANOperator|etGraph|etInitialize|etInsert|etInsertSharedArrays|etJoin|etMapOperator|etMapThreadOperator|etMeasurements|etModel|etNestOperator|etPairEmbeddingOperator|etPort|etPortGradient|etPrepend|etRename|etReplace|etReplacePart|etStateObject|etTake|etTrain|etTrainResultsObject|etUnfold|etworkPacketCapture|etworkPacketRecording|etworkPacketTrace|eymanScottPointProcess|ominalScale|ormalizationLayer|umericArray|umericArrayQ|umericArrayType))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:O(?:peratorApplied|rderingLayer|rdinalScale|utputPorts|verlayVideo))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:P(?:acletSymbol|addingLayer|agination|airCorrelationG|arametricRampLayer|arentEdgeLabel|arentEdgeLabelFunction|arentEdgeLabelStyle|arentEdgeShapeFunction|arentEdgeStyle|arentEdgeStyleFunction|artLayer|artProtection|atternFilling|atternReaction|enttinenPointProcess|erpendicularBisector|ersistenceLocation|ersistenceTime|ersistentObject|ersistentObjects|ersistentSymbol|itchRecognize|laceholderLayer|laybackSettings|ointCountDistribution|ointDensity|ointDensityFunction|ointProcessEstimator|ointProcessFitTest|ointProcessParameterAssumptions|ointProcessParameterQ|ointStatisticFunction|ointValuePlot|oissonPointProcess|oolingLayer|rependLayer|roofObject|ublisherID))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:Q(?:uestionGenerator|uestionInterface|uestionObject|uestionSelector))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:R(?:andomArrayLayer|andomInstance|andomPointConfiguration|andomTree|eactionBalance|eactionBalancedQ|ecalibrationFunction|egisterExternalEvaluator|elationalDatabase|emoteAuthorizationCaching|emoteBatchJobAbort|emoteBatchJobObject|emoteBatchJobs|emoteBatchMapSubmit|emoteBatchSubmissionEnvironment|emoteBatchSubmit|emoteConnect|emoteConnectionObject|emoteEvaluate|emoteFile|emoteInputFiles|emoteProviderSettings|emoteRun|emoteRunProcess|emovalConditions|emoveAudioStream|emoveChannelListener|emoveChannelSubscribers|emoveVideoStream|eplicateLayer|eshapeLayer|esizeLayer|esourceFunction|esourceRegister|esourceRemove|esourceSubmit|esourceSystemBase|esourceSystemPath|esourceUpdate|esourceVersion|everseApplied|ipleyK|ipleyRassonRegion|ootTree|ulesTree))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:S(?:ameTestProperties|ampledEntityClass|earchAdjustment|earchIndexObject|earchIndices|earchQueryString|earchResultObject|ecuredAuthenticationKey|ecuredAuthenticationKeys|ecurityCertificate|equenceIndicesLayer|equenceLastLayer|equenceMostLayer|equencePredict|equencePredictorFunction|equenceRestLayer|equenceReverseLayer|erviceRequest|erviceSubmit|etFileFormatProperties|etSystemModel|lideShowVideo|moothPointDensity|nippet|nippetsVideo|nubPolyhedron|oftmaxLayer|olidBoundaryLoadValue|olidDisplacementCondition|olidFixedCondition|olidMechanicsPDEComponent|olidMechanicsStrain|olidMechanicsStress|ortedEntityClass|ourceLink|patialBinnedPointData|patialBoundaryCorrection|patialEstimate|patialEstimatorFunction|patialJ|patialNoiseLevel|patialObservationRegionQ|patialPointData|patialPointSelect|patialRandomnessTest|patialTransformationLayer|patialTrendFunction|peakerMatchQ|peechCases|peechInterpreter|peechRecognize|plice|tartExternalSession|tartWebSession|tereochemistryElements|traussHardcorePointProcess|traussPointProcess|ubsetCases|ubsetCount|ubsetPosition|ubsetReplace|ubtitleTrackSelection|ummationLayer|ymmetricDifference|ynthesizeMissingValues|ystemCredential|ystemCredentialData|ystemCredentialKey|ystemCredentialKeys|ystemCredentialStoreObject|ystemInstall|ystemModel|ystemModelExamples|ystemModelLinearize|ystemModelMeasurements|ystemModelParametricSimulate|ystemModelPlot|ystemModelReliability|ystemModelSimulate|ystemModelSimulateSensitivity|ystemModelSimulationData|ystemModeler|ystemModels))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:T(?:ableView|argetDevice|argetSystem|ernaryListPlot|ernaryPlotCorners|extCases|extContents|extElement|extPosition|extSearch|extSearchReport|extStructure|homasPointProcess|hreaded|hreadingLayer|ickDirection|ickLabelOrientation|ickLabelPositioning|ickLabels|ickLengths|ickPositions|oRawPointer|otalLayer|ourVideo|rainImageContentDetector|rainTextContentDetector|rainingProgressCheckpointing|rainingProgressFunction|rainingProgressMeasurements|rainingProgressReporting|rainingStoppingCriterion|rainingUpdateSchedule|ransposeLayer|ree|reeCases|reeChildren|reeCount|reeData|reeDelete|reeDepth|reeElementCoordinates|reeElementLabel|reeElementLabelFunction|reeElementLabelStyle|reeElementShape|reeElementShapeFunction|reeElementSize|reeElementSizeFunction|reeElementStyle|reeElementStyleFunction|reeExpression|reeExtract|reeFold|reeInsert|reeLayout|reeLeafCount|reeLeafQ|reeLeaves|reeLevel|reeMap|reeMapAt|reeOutline|reePosition|reeQ|reeReplacePart|reeRules|reeScan|reeSelect|reeSize|reeTraversalOrder|riangleCenter|riangleConstruct|riangleMeasurement|ypeDeclaration|ypeEvaluate|ypeOf|ypeSpecifier|yped))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:U(?:RLDownloadSubmit|nconstrainedParameters|nionedEntityClass|niqueElements|nitVectorLayer|nlabeledTree|nmanageObject|nregisterExternalEvaluator|pdateSearchIndex|seEmbeddedLibrary))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:V(?:alenceErrorHandling|alenceFilling|aluePreprocessingFunction|andermondeMatrix|arianceGammaPointProcess|ariogramFunction|ariogramModel|ectorAround|erifyDerivedKey|erifyDigitalSignature|erifyFileSignature|erifyInterpretation|ideo|ideoCapture|ideoCombine|ideoDelete|ideoExtractFrames|ideoFrameList|ideoFrameMap|ideoGenerator|ideoInsert|ideoIntervals|ideoJoin|ideoMap|ideoMapList|ideoMapTimeSeries|ideoPadding|ideoPause|ideoPlay|ideoQ|ideoRecord|ideoReplace|ideoScreenCapture|ideoSplit|ideoStop|ideoStream|ideoStreams|ideoTimeStretch|ideoTrackSelection|ideoTranscode|ideoTransparency|ideoTrim))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:W(?:ebAudioSearch|ebColumn|ebElementObject|ebExecute|ebImage|ebImageSearch|ebItem|ebRow|ebSearch|ebSessionObject|ebSessions|ebWindowObject|ikidataData|ikidataSearch|ikipediaSearch|ithCleanup|ithLock))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:Z(?:oomCenter|oomFactor))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:\\$(?:AllowExternalChannelFunctions|AudioDecoders|AudioEncoders|BlockchainBase|ChannelBase|CompilerEnvironment|CookieStore|CryptographicEllipticCurveNames|CurrentWebSession|DataStructures|DefaultNetworkInterface|DefaultProxyRules|DefaultRemoteBatchSubmissionEnvironment|DefaultRemoteKernel|DefaultSystemCredentialStore|ExternalIdentifierTypes|ExternalStorageBase|GeneratedAssetLocation|IncomingMailSettings|Initialization|InitializationContexts|MaxDisplayedChildren|NetworkInterfaces|NoValue|PersistenceBase|PersistencePath|PreInitialization|PublisherID|ResourceSystemBase|ResourceSystemPath|SSHAuthentication|ServiceCreditsAvailable|SourceLink|SubtitleDecoders|SubtitleEncoders|SystemCredentialStore|TargetSystems|TestFileName|VideoDecoders|VideoEncoders|VoiceStyles))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:E(?:cho|xit))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:I(?:n|nString))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:O(?:ut))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:P(?:rint))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:Q(?:uit))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:\\$(?:HistoryLength|Line|Post|Pre|PrePrint|PreRead|SyntaxHandler))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:[$[:alpha:]][$[:alnum:]]*)(?![`$[:alnum:]])",name:"invalid.illegal.system.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)(?:`(?:[$[:alpha:]][$[:alnum:]]*))+(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))",name:"variable.function.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)(?:`(?:[$[:alpha:]][$[:alnum:]]*))+",name:"symbol.unrecognized.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)`",name:"invalid.illegal.wolfram"},{match:"(?:`(?:[$[:alpha:]][$[:alnum:]]*))+(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))",name:"variable.function.wolfram"},{match:"(?:`(?:[$[:alpha:]][$[:alnum:]]*))+",name:"symbol.unrecognized.wolfram"},{match:"`",name:"invalid.illegal.wolfram"},{match:"(?:A(?:ASTriangle|PIFunction|RCHProcess|RIMAProcess|RMAProcess|RProcess|SATriangle|belianGroup|bort|bortKernels|bortProtect|bs|bsArg|bsArgPlot|bsoluteCorrelation|bsoluteCorrelationFunction|bsoluteCurrentValue|bsoluteDashing|bsoluteFileName|bsoluteOptions|bsolutePointSize|bsoluteThickness|bsoluteTime|bsoluteTiming|ccountingForm|ccumulate|ccuracy|cousticAbsorbingValue|cousticImpedanceValue|cousticNormalVelocityValue|cousticPDEComponent|cousticPressureCondition|cousticRadiationValue|cousticSoundHardValue|cousticSoundSoftCondition|ctionMenu|ctivate|cyclicGraphQ|ddSides|ddTo|ddUsers|djacencyGraph|djacencyList|djacencyMatrix|djacentMeshCells|djugate|djustTimeSeriesForecast|djustmentBox|dministrativeDivisionData|ffineHalfSpace|ffineSpace|ffineStateSpaceModel|ffineTransform|irPressureData|irSoundAttenuation|irTemperatureData|ircraftData|irportData|iryAi|iryAiPrime|iryAiZero|iryBi|iryBiPrime|iryBiZero|lgebraicIntegerQ|lgebraicNumber|lgebraicNumberDenominator|lgebraicNumberNorm|lgebraicNumberPolynomial|lgebraicNumberTrace|lgebraicUnitQ|llTrue|lphaChannel|lphabet|lphabeticOrder|lphabeticSort|lternatingFactorial|lternatingGroup|lternatives|mbientLight|mbiguityList|natomyData|natomyPlot3D|natomyStyling|nd|ndersonDarlingTest|ngerJ|ngleBracket|nglePath|nglePath3D|ngleVector|ngularGauge|nimate|nimator|nnotate|nnotation|nnotationDelete|nnotationKeys|nnotationValue|nnuity|nnuityDue|nnulus|nomalyDetection|nomalyDetectorFunction|ntihermitian|ntihermitianMatrixQ|ntisymmetric|ntisymmetricMatrixQ|ntonyms|nyOrder|nySubset|nyTrue|part|partSquareFree|ppellF1|ppend|ppendTo|pply|pplySides|pplyTo|rcCos|rcCosh|rcCot|rcCoth|rcCsc|rcCsch|rcCurvature|rcLength|rcSec|rcSech|rcSin|rcSinDistribution|rcSinh|rcTan|rcTanh|rea|rg|rgMax|rgMin|rgumentsOptions|rithmeticGeometricMean|rray|rrayComponents|rrayDepth|rrayFilter|rrayFlatten|rrayMesh|rrayPad|rrayPlot|rrayPlot3D|rrayQ|rrayResample|rrayReshape|rrayRules|rrays|rrow|rrowheads|ssert|ssociateTo|ssociation|ssociationMap|ssociationQ|ssociationThread|ssuming|symptotic|symptoticDSolveValue|symptoticEqual|symptoticEquivalent|symptoticExpectation|symptoticGreater|symptoticGreaterEqual|symptoticIntegrate|symptoticLess|symptoticLessEqual|symptoticOutputTracker|symptoticProbability|symptoticProduct|symptoticRSolveValue|symptoticSolve|symptoticSum|tomQ|ttributes|udio|udioAmplify|udioBlockMap|udioCapture|udioChannelCombine|udioChannelMix|udioChannelSeparate|udioChannels|udioData|udioDelay|udioDelete|udioDistance|udioFade|udioFrequencyShift|udioGenerator|udioInsert|udioIntervals|udioJoin|udioLength|udioLocalMeasurements|udioLoudness|udioMeasurements|udioNormalize|udioOverlay|udioPad|udioPan|udioPartition|udioPitchShift|udioPlot|udioQ|udioReplace|udioResample|udioReverb|udioReverse|udioSampleRate|udioSpectralMap|udioSpectralTransformation|udioSplit|udioTimeStretch|udioTrim|udioType|ugmentedPolyhedron|ugmentedSymmetricPolynomial|uthenticationDialog|utoRefreshed|utoSubmitting|utocorrelationTest))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:B(?:SplineBasis|SplineCurve|SplineFunction|SplineSurface|abyMonsterGroupB|ackslash|all|and|andpassFilter|andstopFilter|arChart|arChart3D|arLegend|arabasiAlbertGraphDistribution|arcodeImage|arcodeRecognize|aringhausHenzeTest|arlowProschanImportance|arnesG|artlettHannWindow|artlettWindow|aseDecode|aseEncode|aseForm|atesDistribution|attleLemarieWavelet|ecause|eckmannDistribution|eep|egin|eginDialogPacket|eginPackage|ellB|ellY|enfordDistribution|eniniDistribution|enktanderGibratDistribution|enktanderWeibullDistribution|ernoulliB|ernoulliDistribution|ernoulliGraphDistribution|ernoulliProcess|ernsteinBasis|esselFilterModel|esselI|esselJ|esselJZero|esselK|esselY|esselYZero|eta|etaBinomialDistribution|etaDistribution|etaNegativeBinomialDistribution|etaPrimeDistribution|etaRegularized|etween|etweennessCentrality|eveledPolyhedron|ezierCurve|ezierFunction|ilateralFilter|ilateralLaplaceTransform|ilateralZTransform|inCounts|inLists|inarize|inaryDeserialize|inaryDistance|inaryImageQ|inaryRead|inaryReadList|inarySerialize|inaryWrite|inomial|inomialDistribution|inomialProcess|inormalDistribution|iorthogonalSplineWavelet|ipartiteGraphQ|iquadraticFilterModel|irnbaumImportance|irnbaumSaundersDistribution|itAnd|itClear|itGet|itLength|itNot|itOr|itSet|itShiftLeft|itShiftRight|itXor|iweightLocation|iweightMidvariance|lackmanHarrisWindow|lackmanNuttallWindow|lackmanWindow|lank|lankNullSequence|lankSequence|lend|lock|lockMap|lockRandom|lomqvistBeta|lomqvistBetaTest|lur|lurring|odePlot|ohmanWindow|oole|ooleanConsecutiveFunction|ooleanConvert|ooleanCountingFunction|ooleanFunction|ooleanGraph|ooleanMaxterms|ooleanMinimize|ooleanMinterms|ooleanQ|ooleanRegion|ooleanTable|ooleanVariables|orderDimensions|orelTannerDistribution|ottomHatTransform|oundaryDiscretizeGraphics|oundaryDiscretizeRegion|oundaryMesh|oundaryMeshRegion|oundaryMeshRegionQ|oundedRegionQ|oundingRegion|oxData|oxMatrix|oxObject|oxWhiskerChart|racketingBar|rayCurtisDistance|readthFirstScan|reak|ridgeData|rightnessEqualize|roadcastStationData|rownForsytheTest|rownianBridgeProcess|ubbleChart|ubbleChart3D|uckyballGraph|uildingData|ulletGauge|usinessDayQ|utterflyGraph|utterworthFilterModel|utton|uttonBar|uttonBox|uttonNotebook|yteArray|yteArrayFormat|yteArrayFormatQ|yteArrayQ|yteArrayToString|yteCount))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:C(?:|DF|DFDeploy|DFWavelet|Form|MYKColor|SGRegion|SGRegionQ|SGRegionTree|alendarConvert|alendarData|allPacket|allout|anberraDistance|ancel|ancelButton|andlestickChart|anonicalGraph|anonicalName|anonicalWarpingCorrespondence|anonicalWarpingDistance|anonicalizePolygon|anonicalizePolyhedron|anonicalizeRegion|antorMesh|antorStaircase|ap|apForm|apitalDifferentialD|apitalize|apsuleShape|aputoD|arlemanLinearize|arlsonRC|arlsonRD|arlsonRE|arlsonRF|arlsonRG|arlsonRJ|arlsonRK|arlsonRM|armichaelLambda|aseSensitive|ases|ashflow|asoratian|atalanNumber|atch|atenate|auchyDistribution|auchyMatrix|auchyWindow|ayleyGraph|eiling|ell|ellGroup|ellGroupData|ellObject|ellPrint|ells|ellularAutomaton|ensoredDistribution|ensoring|enterArray|enterDot|enteredInterval|entralFeature|entralMoment|entralMomentGeneratingFunction|epstrogram|epstrogramArray|epstrumArray|hampernowneNumber|hanVeseBinarize|haracterCounts|haracterName|haracterRange|haracteristicFunction|haracteristicPolynomial|haracters|hebyshev1FilterModel|hebyshev2FilterModel|hebyshevT|hebyshevU|heck|heckAbort|heckArguments|heckbox|heckboxBar|hemicalData|hessboardDistance|hiDistribution|hiSquareDistribution|hineseRemainder|hoiceButtons|hoiceDialog|holeskyDecomposition|hop|hromaticPolynomial|hromaticityPlot|hromaticityPlot3D|ircle|ircleDot|ircleMinus|irclePlus|irclePoints|ircleThrough|ircleTimes|irculantGraph|ircularArcThrough|ircularOrthogonalMatrixDistribution|ircularQuaternionMatrixDistribution|ircularRealMatrixDistribution|ircularSymplecticMatrixDistribution|ircularUnitaryMatrixDistribution|ircumsphere|ityData|lassifierFunction|lassifierMeasurements|lassifierMeasurementsObject|lassify|lear|learAll|learAttributes|learCookies|learPermissions|learSystemCache|lebschGordan|lickPane|lickToCopy|lip|lock|lockGauge|lose|loseKernels|losenessCentrality|losing|loudAccountData|loudConnect|loudDeploy|loudDirectory|loudDisconnect|loudEvaluate|loudExport|loudFunction|loudGet|loudImport|loudLoggingData|loudObject|loudObjects|loudPublish|loudPut|loudSave|loudShare|loudSubmit|loudSymbol|loudUnshare|lusterClassify|lusteringComponents|lusteringMeasurements|lusteringTree|oefficient|oefficientArrays|oefficientList|oefficientRules|oifletWavelet|ollect|ollinearPoints|olon|olorBalance|olorCombine|olorConvert|olorData|olorDataFunction|olorDetect|olorDistance|olorNegate|olorProfileData|olorQ|olorQuantize|olorReplace|olorSeparate|olorSetter|olorSlider|olorToneMapping|olorize|olorsNear|olumn|ometData|ommonName|ommonUnits|ommonest|ommonestFilter|ommunityGraphPlot|ompanyData|ompatibleUnitQ|ompile|ompiledFunction|omplement|ompleteGraph|ompleteGraphQ|ompleteIntegral|ompleteKaryTree|omplex|omplexArrayPlot|omplexContourPlot|omplexExpand|omplexListPlot|omplexPlot|omplexPlot3D|omplexRegionPlot|omplexStreamPlot|omplexVectorPlot|omponentMeasurements|omposeList|omposeSeries|ompositeQ|omposition|ompoundElement|ompoundExpression|ompoundPoissonDistribution|ompoundPoissonProcess|ompoundRenewalProcess|ompress|oncaveHullMesh|ondition|onditionalExpression|onditioned|one|onfirm|onfirmAssert|onfirmBy|onfirmMatch|onformAudio|onformImages|ongruent|onicGradientFilling|onicHullRegion|onicOptimization|onjugate|onjugateTranspose|onjunction|onnectLibraryCallbackFunction|onnectedComponents|onnectedGraphComponents|onnectedGraphQ|onnectedMeshComponents|onnesWindow|onoverTest|onservativeConvectionPDETerm|onstantArray|onstantImage|onstantRegionQ|onstellationData|onstruct|ontainsAll|ontainsAny|ontainsExactly|ontainsNone|ontainsOnly|ontext|ontextToFileName|ontexts|ontinue|ontinuedFraction|ontinuedFractionK|ontinuousMarkovProcess|ontinuousTask|ontinuousTimeModelQ|ontinuousWaveletData|ontinuousWaveletTransform|ontourDetect|ontourPlot|ontourPlot3D|ontraharmonicMean|ontrol|ontrolActive|ontrollabilityGramian|ontrollabilityMatrix|ontrollableDecomposition|ontrollableModelQ|ontrollerInformation|ontrollerManipulate|ontrollerState|onvectionPDETerm|onvergents|onvexHullMesh|onvexHullRegion|onvexOptimization|onvexPolygonQ|onvexPolyhedronQ|onvexRegionQ|onvolve|onwayGroupCo1|onwayGroupCo2|onwayGroupCo3|oordinateBoundingBox|oordinateBoundingBoxArray|oordinateBounds|oordinateBoundsArray|oordinateChartData|oordinateTransform|oordinateTransformData|oplanarPoints|oprimeQ|oproduct|opulaDistribution|opyDatabin|opyDirectory|opyFile|opyToClipboard|oreNilpotentDecomposition|ornerFilter|orrelation|orrelationDistance|orrelationFunction|orrelationTest|os|osIntegral|osh|oshIntegral|osineDistance|osineWindow|ot|oth|oulombF|oulombG|oulombH1|oulombH2|ount|ountDistinct|ountDistinctBy|ountRoots|ountryData|ounts|ountsBy|ovariance|ovarianceFunction|oxIngersollRossProcess|oxModel|oxModelFit|oxianDistribution|ramerVonMisesTest|reateArchive|reateDatabin|reateDialog|reateDirectory|reateDocument|reateFile|reateManagedLibraryExpression|reateNotebook|reatePacletArchive|reatePalette|reatePermissionsGroup|reateUUID|reateWindow|riticalSection|riticalityFailureImportance|riticalitySuccessImportance|ross|rossMatrix|rossingCount|rossingDetect|rossingPolygon|sc|sch|ube|ubeRoot|uboid|umulant|umulantGeneratingFunction|umulativeFeatureImpactPlot|up|upCap|url|urrencyConvert|urrentDate|urrentImage|urrentValue|urvatureFlowFilter|ycleGraph|ycleIndexPolynomial|ycles|yclicGroup|yclotomic|ylinder|ylindricalDecomposition|ylindricalDecompositionFunction))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:D(?:|Eigensystem|Eigenvalues|GaussianWavelet|MSList|MSString|Solve|SolveValue|agumDistribution|amData|amerauLevenshteinDistance|arker|ashing|ataDistribution|atabin|atabinAdd|atabinUpload|atabins|ataset|ateBounds|ateDifference|ateHistogram|ateList|ateListLogPlot|ateListPlot|ateListStepPlot|ateObject|ateObjectQ|ateOverlapsQ|atePattern|atePlus|ateRange|ateScale|ateSelect|ateString|ateValue|ateWithinQ|ated|atedUnit|aubechiesWavelet|avisDistribution|awsonF|ayCount|ayHemisphere|ayMatchQ|ayName|ayNightTerminator|ayPlus|ayRange|ayRound|aylightQ|eBruijnGraph|eBruijnSequence|ecapitalize|ecimalForm|eclarePackage|ecompose|ecrement|ecrypt|edekindEta|eepSpaceProbeData|efault|efaultButton|efaultValues|efer|efineInputStreamMethod|efineOutputStreamMethod|efineResourceFunction|efinition|egreeCentrality|egreeGraphDistribution|el|elaunayMesh|elayed|elete|eleteAdjacentDuplicates|eleteAnomalies|eleteBorderComponents|eleteCases|eleteDirectory|eleteDuplicates|eleteDuplicatesBy|eleteFile|eleteMissing|eleteObject|eletePermissionsKey|eleteSmallComponents|eleteStopwords|elimitedSequence|endrogram|enominator|ensityHistogram|ensityPlot|ensityPlot3D|eploy|epth|epthFirstScan|erivative|erivativeFilter|erivativePDETerm|esignMatrix|et|eviceClose|eviceConfigure|eviceExecute|eviceExecuteAsynchronous|eviceObject|eviceOpen|eviceRead|eviceReadBuffer|eviceReadLatest|eviceReadList|eviceReadTimeSeries|eviceStreams|eviceWrite|eviceWriteBuffer|evices|iagonal|iagonalMatrix|iagonalMatrixQ|iagonalizableMatrixQ|ialog|ialogInput|ialogNotebook|ialogReturn|iamond|iamondMatrix|iceDissimilarity|ictionaryLookup|ictionaryWordQ|ifferenceDelta|ifferenceQuotient|ifferenceRoot|ifferenceRootReduce|ifferences|ifferentialD|ifferentialRoot|ifferentialRootReduce|ifferentiatorFilter|iffusionPDETerm|igitCount|igitQ|ihedralAngle|ihedralGroup|ilation|imensionReduce|imensionReducerFunction|imensionReduction|imensionalCombinations|imensionalMeshComponents|imensions|iracComb|iracDelta|irectedEdge|irectedGraph|irectedGraphQ|irectedInfinity|irectionalLight|irective|irectory|irectoryName|irectoryQ|irectoryStack|irichletBeta|irichletCharacter|irichletCondition|irichletConvolve|irichletDistribution|irichletEta|irichletL|irichletLambda|irichletTransform|irichletWindow|iscreteAsymptotic|iscreteChirpZTransform|iscreteConvolve|iscreteDelta|iscreteHadamardTransform|iscreteIndicator|iscreteInputOutputModel|iscreteLQEstimatorGains|iscreteLQRegulatorGains|iscreteLimit|iscreteLyapunovSolve|iscreteMarkovProcess|iscreteMaxLimit|iscreteMinLimit|iscretePlot|iscretePlot3D|iscreteRatio|iscreteRiccatiSolve|iscreteShift|iscreteTimeModelQ|iscreteUniformDistribution|iscreteWaveletData|iscreteWaveletPacketTransform|iscreteWaveletTransform|iscretizeGraphics|iscretizeRegion|iscriminant|isjointQ|isjunction|isk|iskMatrix|iskSegment|ispatch|isplayEndPacket|isplayForm|isplayPacket|istanceMatrix|istanceTransform|istribute|istributeDefinitions|istributed|istributionChart|istributionFitTest|istributionParameterAssumptions|istributionParameterQ|iv|ivide|ivideBy|ivideSides|ivisible|ivisorSigma|ivisorSum|ivisors|o|ocumentGenerator|ocumentGeneratorInformation|ocumentGenerators|ocumentNotebook|odecahedron|ominantColors|ominatorTreeGraph|ominatorVertexList|ot|otEqual|oubleBracketingBar|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oubleRightArrow|oubleRightTee|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|ownArrow|ownArrowBar|ownArrowUpArrow|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow|ownValues|ownsample|razinInverse|rop|ropShadowing|t|ualPlanarGraph|ualPolyhedron|ualSystemsModel|umpSave|uplicateFreeQ|uration|ynamic|ynamicGeoGraphics|ynamicModule|ynamicSetting|ynamicWrapper))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:E(?:arthImpactData|arthquakeData|ccentricityCentrality|choEvaluation|choFunction|choLabel|dgeAdd|dgeBetweennessCentrality|dgeChromaticNumber|dgeConnectivity|dgeContract|dgeCount|dgeCoverQ|dgeCycleMatrix|dgeDelete|dgeDetect|dgeForm|dgeIndex|dgeList|dgeQ|dgeRules|dgeTaggedGraph|dgeTaggedGraphQ|dgeTags|dgeTransitiveGraphQ|dgeWeightedGraphQ|ditDistance|ffectiveInterest|igensystem|igenvalues|igenvectorCentrality|igenvectors|lement|lementData|liminate|llipsoid|llipticE|llipticExp|llipticExpPrime|llipticF|llipticFilterModel|llipticK|llipticLog|llipticNomeQ|llipticPi|llipticTheta|llipticThetaPrime|mbedCode|mbeddedHTML|mbeddedService|mitSound|mpiricalDistribution|mptyGraphQ|mptyRegion|nclose|ncode|ncrypt|ncryptedObject|nd|ndDialogPacket|ndPackage|ngineeringForm|nterExpressionPacket|nterTextPacket|ntity|ntityClass|ntityClassList|ntityCopies|ntityGroup|ntityInstance|ntityList|ntityPrefetch|ntityProperties|ntityProperty|ntityPropertyClass|ntityRegister|ntityStores|ntityTypeName|ntityUnregister|ntityValue|ntropy|ntropyFilter|nvironment|qual|qualTilde|qualTo|quilibrium|quirippleFilterKernel|quivalent|rf|rfc|rfi|rlangB|rlangC|rlangDistribution|rosion|rrorBox|stimatedBackground|stimatedDistribution|stimatedPointNormals|stimatedProcess|stimatorGains|stimatorRegulator|uclideanDistance|ulerAngles|ulerCharacteristic|ulerE|ulerMatrix|ulerPhi|ulerianGraphQ|valuate|valuatePacket|valuationBox|valuationCell|valuationData|valuationNotebook|valuationObject|venQ|ventData|ventHandler|ventSeries|xactBlackmanWindow|xactNumberQ|xampleData|xcept|xists|xoplanetData|xp|xpGammaDistribution|xpIntegralE|xpIntegralEi|xpToTrig|xpand|xpandAll|xpandDenominator|xpandFileName|xpandNumerator|xpectation|xponent|xponentialDistribution|xponentialGeneratingFunction|xponentialMovingAverage|xponentialPowerDistribution|xport|xportByteArray|xportForm|xportString|xpressionCell|xpressionGraph|xtendedGCD|xternalBundle|xtract|xtractArchive|xtractPacletArchive|xtremeValueDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:F(?:ARIMAProcess|RatioDistribution|aceAlign|aceForm|acialFeatures|actor|actorInteger|actorList|actorSquareFree|actorSquareFreeList|actorTerms|actorTermsList|actorial|actorial2|actorialMoment|actorialMomentGeneratingFunction|actorialPower|ailure|ailureDistribution|ailureQ|areySequence|eatureImpactPlot|eatureNearest|eatureSpacePlot|eatureSpacePlot3D|eatureValueDependencyPlot|eatureValueImpactPlot|eedbackLinearize|etalGrowthData|ibonacci|ibonorial|ile|ileBaseName|ileByteCount|ileDate|ileExistsQ|ileExtension|ileFormat|ileFormatQ|ileHash|ileNameDepth|ileNameDrop|ileNameJoin|ileNameSetter|ileNameSplit|ileNameTake|ileNames|ilePrint|ileSize|ileSystemMap|ileSystemScan|ileTemplate|ileTemplateApply|ileType|illedCurve|illedTorus|illingTransform|ilterRules|inancialBond|inancialData|inancialDerivative|inancialIndicator|ind|indAnomalies|indArgMax|indArgMin|indClique|indClusters|indCookies|indCurvePath|indCycle|indDevices|indDistribution|indDistributionParameters|indDivisions|indEdgeColoring|indEdgeCover|indEdgeCut|indEdgeIndependentPaths|indEulerianCycle|indFaces|indFile|indFit|indFormula|indFundamentalCycles|indGeneratingFunction|indGeoLocation|indGeometricTransform|indGraphCommunities|indGraphIsomorphism|indGraphPartition|indHamiltonianCycle|indHamiltonianPath|indHiddenMarkovStates|indIndependentEdgeSet|indIndependentVertexSet|indInstance|indIntegerNullVector|indIsomorphicSubgraph|indKClan|indKClique|indKClub|indKPlex|indLibrary|indLinearRecurrence|indList|indMatchingColor|indMaxValue|indMaximum|indMaximumCut|indMaximumFlow|indMeshDefects|indMinValue|indMinimum|indMinimumCostFlow|indMinimumCut|indPath|indPeaks|indPermutation|indPlanarColoring|indPostmanTour|indProcessParameters|indRegionTransform|indRepeat|indRoot|indSequenceFunction|indShortestPath|indShortestTour|indSpanningTree|indSubgraphIsomorphism|indThreshold|indTransientRepeat|indVertexColoring|indVertexCover|indVertexCut|indVertexIndependentPaths|inishDynamic|initeAbelianGroupCount|initeGroupCount|initeGroupData|irst|irstCase|irstPassageTimeDistribution|irstPosition|ischerGroupFi22|ischerGroupFi23|ischerGroupFi24Prime|isherHypergeometricDistribution|isherRatioTest|isherZDistribution|it|ittedModel|ixedOrder|ixedPoint|ixedPointList|latShading|latTopWindow|latten|lattenAt|lightData|lipView|loor|lowPolynomial|old|oldList|oldPair|oldPairList|oldWhile|oldWhileList|or|orAll|ormBox|ormFunction|ormObject|ormPage|ormat|ormulaData|ormulaLookup|ortranForm|ourier|ourierCoefficient|ourierCosCoefficient|ourierCosSeries|ourierCosTransform|ourierDCT|ourierDCTFilter|ourierDCTMatrix|ourierDST|ourierDSTMatrix|ourierMatrix|ourierSequenceTransform|ourierSeries|ourierSinCoefficient|ourierSinSeries|ourierSinTransform|ourierTransform|ourierTrigSeries|oxH|ractionBox|ractionalBrownianMotionProcess|ractionalD|ractionalGaussianNoiseProcess|ractionalPart|rameBox|ramed|rechetDistribution|reeQ|renetSerretSystem|requencySamplingFilterKernel|resnelC|resnelF|resnelG|resnelS|robeniusNumber|robeniusSolve|romAbsoluteTime|romCharacterCode|romCoefficientRules|romContinuedFraction|romDMS|romDateString|romDigits|romEntity|romJulianDate|romLetterNumber|romPolarCoordinates|romRomanNumeral|romSphericalCoordinates|romUnixTime|rontEndExecute|rontEndToken|rontEndTokenExecute|ullDefinition|ullForm|ullGraphics|ullInformationOutputRegulator|ullRegion|ullSimplify|unction|unctionAnalytic|unctionBijective|unctionContinuous|unctionConvexity|unctionDiscontinuities|unctionDomain|unctionExpand|unctionInjective|unctionInterpolation|unctionMeromorphic|unctionMonotonicity|unctionPeriod|unctionRange|unctionSign|unctionSingularities|unctionSurjective|ussellVeselyImportance))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:G(?:ARCHProcess|CD|aborFilter|aborMatrix|aborWavelet|ainMargins|ainPhaseMargins|alaxyData|amma|ammaDistribution|ammaRegularized|ather|atherBy|aussianFilter|aussianMatrix|aussianOrthogonalMatrixDistribution|aussianSymplecticMatrixDistribution|aussianUnitaryMatrixDistribution|aussianWindow|egenbauerC|eneralizedLinearModelFit|enerateAsymmetricKeyPair|enerateDocument|enerateHTTPResponse|enerateSymmetricKey|eneratingFunction|enericCylindricalDecomposition|enomeData|enomeLookup|eoAntipode|eoArea|eoBoundary|eoBoundingBox|eoBounds|eoBoundsRegion|eoBoundsRegionBoundary|eoBubbleChart|eoCircle|eoContourPlot|eoDensityPlot|eoDestination|eoDirection|eoDisk|eoDisplacement|eoDistance|eoDistanceList|eoElevationData|eoEntities|eoGraphPlot|eoGraphics|eoGridDirectionDifference|eoGridPosition|eoGridUnitArea|eoGridUnitDistance|eoGridVector|eoGroup|eoHemisphere|eoHemisphereBoundary|eoHistogram|eoIdentify|eoImage|eoLength|eoListPlot|eoMarker|eoNearest|eoPath|eoPolygon|eoPosition|eoPositionENU|eoPositionXYZ|eoProjectionData|eoRegionValuePlot|eoSmoothHistogram|eoStreamPlot|eoStyling|eoVariant|eoVector|eoVectorENU|eoVectorPlot|eoVectorXYZ|eoVisibleRegion|eoVisibleRegionBoundary|eoWithinQ|eodesicClosing|eodesicDilation|eodesicErosion|eodesicOpening|eodesicPolyhedron|eodesyData|eogravityModelData|eologicalPeriodData|eomagneticModelData|eometricBrownianMotionProcess|eometricDistribution|eometricMean|eometricMeanFilter|eometricOptimization|eometricTransformation|estureHandler|et|etEnvironment|lobalClusteringCoefficient|low|ompertzMakehamDistribution|oochShading|oodmanKruskalGamma|oodmanKruskalGammaTest|oto|ouraudShading|rad|radientFilter|radientFittedMesh|radientOrientationFilter|rammarApply|rammarRules|rammarToken|raph|raph3D|raphAssortativity|raphAutomorphismGroup|raphCenter|raphComplement|raphData|raphDensity|raphDiameter|raphDifference|raphDisjointUnion|raphDistance|raphDistanceMatrix|raphEmbedding|raphHub|raphIntersection|raphJoin|raphLinkEfficiency|raphPeriphery|raphPlot|raphPlot3D|raphPower|raphProduct|raphPropertyDistribution|raphQ|raphRadius|raphReciprocity|raphSum|raphUnion|raphics|raphics3D|raphicsColumn|raphicsComplex|raphicsGrid|raphicsGroup|raphicsRow|rayLevel|reater|reaterEqual|reaterEqualLess|reaterEqualThan|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterThan|reaterTilde|reenFunction|rid|ridBox|ridGraph|roebnerBasis|roupBy|roupCentralizer|roupElementFromWord|roupElementPosition|roupElementQ|roupElementToWord|roupElements|roupGenerators|roupMultiplicationTable|roupOrbits|roupOrder|roupSetwiseStabilizer|roupStabilizer|roupStabilizerChain|roupings|rowCutComponents|udermannian|uidedFilter|umbelDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:H(?:ITSCentrality|TTPErrorResponse|TTPRedirect|TTPRequest|TTPRequestData|TTPResponse|aarWavelet|adamardMatrix|alfLine|alfNormalDistribution|alfPlane|alfSpace|alftoneShading|amiltonianGraphQ|ammingDistance|ammingWindow|ankelH1|ankelH2|ankelMatrix|ankelTransform|annPoissonWindow|annWindow|aradaNortonGroupHN|araryGraph|armonicMean|armonicMeanFilter|armonicNumber|ash|atchFilling|atchShading|aversine|azardFunction|ead|eatFluxValue|eatInsulationValue|eatOutflowValue|eatRadiationValue|eatSymmetryValue|eatTemperatureCondition|eatTransferPDEComponent|eatTransferValue|eavisideLambda|eavisidePi|eavisideTheta|eldGroupHe|elmholtzPDEComponent|ermiteDecomposition|ermiteH|ermitian|ermitianMatrixQ|essenbergDecomposition|eunB|eunBPrime|eunC|eunCPrime|eunD|eunDPrime|eunG|eunGPrime|eunT|eunTPrime|exahedron|iddenMarkovProcess|ighlightGraph|ighlightImage|ighlightMesh|ighlighted|ighpassFilter|igmanSimsGroupHS|ilbertCurve|ilbertFilter|ilbertMatrix|istogram|istogram3D|istogramDistribution|istogramList|istogramTransform|istogramTransformInterpolation|istoricalPeriodData|itMissTransform|jorthDistribution|odgeDual|oeffdingD|oeffdingDTest|old|oldComplete|oldForm|oldPattern|orizontalGauge|ornerForm|ostLookup|otellingTSquareDistribution|oytDistribution|ue|umanGrowthData|umpDownHump|umpEqual|urwitzLerchPhi|urwitzZeta|yperbolicDistribution|ypercubeGraph|yperexponentialDistribution|yperfactorial|ypergeometric0F1|ypergeometric0F1Regularized|ypergeometric1F1|ypergeometric1F1Regularized|ypergeometric2F1|ypergeometric2F1Regularized|ypergeometricDistribution|ypergeometricPFQ|ypergeometricPFQRegularized|ypergeometricU|yperlink|yperplane|ypoexponentialDistribution|ypothesisTestData))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:I(?:PAddress|conData|conize|cosahedron|dentity|dentityMatrix|f|fCompiled|gnoringInactive|m|mage|mage3D|mage3DProjection|mage3DSlices|mageAccumulate|mageAdd|mageAdjust|mageAlign|mageApply|mageApplyIndexed|mageAspectRatio|mageAssemble|mageCapture|mageChannels|mageClip|mageCollage|mageColorSpace|mageCompose|mageConvolve|mageCooccurrence|mageCorners|mageCorrelate|mageCorrespondingPoints|mageCrop|mageData|mageDeconvolve|mageDemosaic|mageDifference|mageDimensions|mageDisplacements|mageDistance|mageEffect|mageExposureCombine|mageFeatureTrack|mageFileApply|mageFileFilter|mageFileScan|mageFilter|mageFocusCombine|mageForestingComponents|mageForwardTransformation|mageHistogram|mageIdentify|mageInstanceQ|mageKeypoints|mageLevels|mageLines|mageMarker|mageMeasurements|mageMesh|mageMultiply|magePad|magePartition|magePeriodogram|magePerspectiveTransformation|mageQ|mageRecolor|mageReflect|mageResize|mageRestyle|mageRotate|mageSaliencyFilter|mageScaled|mageScan|mageSubtract|mageTake|mageTransformation|mageTrim|mageType|mageValue|mageValuePositions|mageVectorscopePlot|mageWaveformPlot|mplicitD|mplicitRegion|mplies|mport|mportByteArray|mportString|mprovementImportance|nactivate|nactive|ncidenceGraph|ncidenceList|ncidenceMatrix|ncrement|ndefiniteMatrixQ|ndependenceTest|ndependentEdgeSetQ|ndependentPhysicalQuantity|ndependentUnit|ndependentUnitDimension|ndependentVertexSetQ|ndexEdgeTaggedGraph|ndexGraph|ndexed|nexactNumberQ|nfiniteLine|nfiniteLineThrough|nfinitePlane|nfix|nflationAdjust|nformation|nhomogeneousPoissonProcess|nner|nnerPolygon|nnerPolyhedron|npaint|nput|nputField|nputForm|nputNamePacket|nputNotebook|nputPacket|nputStream|nputString|nputStringPacket|nsert|nsertLinebreaks|nset|nsphere|nstall|nstallService|ntegerDigits|ntegerExponent|ntegerLength|ntegerName|ntegerPart|ntegerPartitions|ntegerQ|ntegerReverse|ntegerString|ntegrate|nteractiveTradingChart|nternallyBalancedDecomposition|nterpolatingFunction|nterpolatingPolynomial|nterpolation|nterpretation|nterpretationBox|nterpreter|nterquartileRange|nterrupt|ntersectingQ|ntersection|nterval|ntervalIntersection|ntervalMemberQ|ntervalSlider|ntervalUnion|nverse|nverseBetaRegularized|nverseBilateralLaplaceTransform|nverseBilateralZTransform|nverseCDF|nverseChiSquareDistribution|nverseContinuousWaveletTransform|nverseDistanceTransform|nverseEllipticNomeQ|nverseErf|nverseErfc|nverseFourier|nverseFourierCosTransform|nverseFourierSequenceTransform|nverseFourierSinTransform|nverseFourierTransform|nverseFunction|nverseGammaDistribution|nverseGammaRegularized|nverseGaussianDistribution|nverseGudermannian|nverseHankelTransform|nverseHaversine|nverseJacobiCD|nverseJacobiCN|nverseJacobiCS|nverseJacobiDC|nverseJacobiDN|nverseJacobiDS|nverseJacobiNC|nverseJacobiND|nverseJacobiNS|nverseJacobiSC|nverseJacobiSD|nverseJacobiSN|nverseLaplaceTransform|nverseMellinTransform|nversePermutation|nverseRadon|nverseRadonTransform|nverseSeries|nverseShortTimeFourier|nverseSpectrogram|nverseSurvivalFunction|nverseTransformedRegion|nverseWaveletTransform|nverseWeierstrassP|nverseWishartMatrixDistribution|nverseZTransform|nvisible|rreduciblePolynomialQ|slandData|solatingInterval|somorphicGraphQ|somorphicSubgraphQ|sotopeData|tem|toProcess))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:J(?:accardDissimilarity|acobiAmplitude|acobiCD|acobiCN|acobiCS|acobiDC|acobiDN|acobiDS|acobiEpsilon|acobiNC|acobiND|acobiNS|acobiP|acobiSC|acobiSD|acobiSN|acobiSymbol|acobiZN|acobiZeta|ankoGroupJ1|ankoGroupJ2|ankoGroupJ3|ankoGroupJ4|arqueBeraALMTest|ohnsonDistribution|oin|oinAcross|oinForm|oinedCurve|ordanDecomposition|ordanModelDecomposition|uliaSetBoettcher|uliaSetIterationCount|uliaSetPlot|uliaSetPoints|ulianDate))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:K(?:CoreComponents|Distribution|EdgeConnectedComponents|EdgeConnectedGraphQ|VertexConnectedComponents|VertexConnectedGraphQ|agiChart|aiserBesselWindow|aiserWindow|almanEstimator|almanFilter|arhunenLoeveDecomposition|aryTree|atzCentrality|elvinBei|elvinBer|elvinKei|elvinKer|endallTau|endallTauTest|ernelMixtureDistribution|ernelObject|ernels|ey|eyComplement|eyDrop|eyDropFrom|eyExistsQ|eyFreeQ|eyIntersection|eyMap|eyMemberQ|eySelect|eySort|eySortBy|eyTake|eyUnion|eyValueMap|eyValuePattern|eys|illProcess|irchhoffGraph|irchhoffMatrix|leinInvariantJ|napsackSolve|nightTourGraph|notData|nownUnitQ|ochCurve|olmogorovSmirnovTest|roneckerDelta|roneckerModelDecomposition|roneckerProduct|roneckerSymbol|uiperTest|umaraswamyDistribution|urtosis|uwaharaFilter))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:L(?:ABColor|CHColor|CM|QEstimatorGains|QGRegulator|QOutputRegulatorGains|QRegulatorGains|UDecomposition|UVColor|abel|abeled|aguerreL|akeData|ambdaComponents|ameC|ameCPrime|ameEigenvalueA|ameEigenvalueB|ameS|ameSPrime|aminaData|anczosWindow|andauDistribution|anguageData|anguageIdentify|aplaceDistribution|aplaceTransform|aplacian|aplacianFilter|aplacianGaussianFilter|aplacianPDETerm|ast|atitude|atitudeLongitude|atticeData|atticeReduce|aunchKernels|ayeredGraphPlot|ayeredGraphPlot3D|eafCount|eapVariant|eapYearQ|earnDistribution|earnedDistribution|eastSquares|eastSquaresFilterKernel|eftArrow|eftArrowBar|eftArrowRightArrow|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftRightArrow|eftRightVector|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|egended|egendreP|egendreQ|ength|engthWhile|erchPhi|ess|essEqual|essEqualGreater|essEqualThan|essFullEqual|essGreater|essLess|essSlantEqual|essThan|essTilde|etterCounts|etterNumber|etterQ|evel|eveneTest|eviCivitaTensor|evyDistribution|exicographicOrder|exicographicSort|ibraryDataType|ibraryFunction|ibraryFunctionError|ibraryFunctionInformation|ibraryFunctionLoad|ibraryFunctionUnload|ibraryLoad|ibraryUnload|iftingFilterData|iftingWaveletTransform|ighter|ikelihood|imit|indleyDistribution|ine|ineBreakChart|ineGraph|ineIntegralConvolutionPlot|ineLegend|inearFractionalOptimization|inearFractionalTransform|inearGradientFilling|inearGradientImage|inearModelFit|inearOptimization|inearRecurrence|inearSolve|inearSolveFunction|inearizingTransformationData|inkActivate|inkClose|inkConnect|inkCreate|inkInterrupt|inkLaunch|inkObject|inkPatterns|inkRankCentrality|inkRead|inkReadyQ|inkWrite|inks|iouvilleLambda|ist|istAnimate|istContourPlot|istContourPlot3D|istConvolve|istCorrelate|istCurvePathPlot|istDeconvolve|istDensityPlot|istDensityPlot3D|istFourierSequenceTransform|istInterpolation|istLineIntegralConvolutionPlot|istLinePlot|istLinePlot3D|istLogLinearPlot|istLogLogPlot|istLogPlot|istPicker|istPickerBox|istPlay|istPlot|istPlot3D|istPointPlot3D|istPolarPlot|istQ|istSliceContourPlot3D|istSliceDensityPlot3D|istSliceVectorPlot3D|istStepPlot|istStreamDensityPlot|istStreamPlot|istStreamPlot3D|istSurfacePlot3D|istVectorDensityPlot|istVectorDisplacementPlot|istVectorDisplacementPlot3D|istVectorPlot|istVectorPlot3D|istZTransform|ocalAdaptiveBinarize|ocalCache|ocalClusteringCoefficient|ocalEvaluate|ocalObject|ocalObjects|ocalSubmit|ocalSymbol|ocalTime|ocalTimeZone|ocationEquivalenceTest|ocationTest|ocator|ocatorPane|og|og10|og2|ogBarnesG|ogGamma|ogGammaDistribution|ogIntegral|ogLikelihood|ogLinearPlot|ogLogPlot|ogLogisticDistribution|ogMultinormalDistribution|ogNormalDistribution|ogPlot|ogRankTest|ogSeriesDistribution|ogicalExpand|ogisticDistribution|ogisticSigmoid|ogitModelFit|ongLeftArrow|ongLeftRightArrow|ongRightArrow|ongest|ongestCommonSequence|ongestCommonSequencePositions|ongestCommonSubsequence|ongestCommonSubsequencePositions|ongestOrderedSequence|ongitude|ookup|oopFreeGraphQ|owerCaseQ|owerLeftArrow|owerRightArrow|owerTriangularMatrix|owerTriangularMatrixQ|owerTriangularize|owpassFilter|ucasL|uccioSamiComponents|unarEclipse|yapunovSolve|yonsGroupLy))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:M(?:AProcess|achineNumberQ|agnify|ailReceiverFunction|ajority|akeBoxes|akeExpression|anagedLibraryExpressionID|anagedLibraryExpressionQ|andelbrotSetBoettcher|andelbrotSetDistance|andelbrotSetIterationCount|andelbrotSetMemberQ|andelbrotSetPlot|angoldtLambda|anhattanDistance|anipulate|anipulator|annWhitneyTest|annedSpaceMissionData|antissaExponent|ap|apAll|apApply|apAt|apIndexed|apThread|archenkoPasturDistribution|arcumQ|ardiaCombinedTest|ardiaKurtosisTest|ardiaSkewnessTest|arginalDistribution|arkovProcessProperties|assConcentrationCondition|assFluxValue|assImpermeableBoundaryValue|assOutflowValue|assSymmetryValue|assTransferValue|assTransportPDEComponent|atchQ|atchingDissimilarity|aterialShading|athMLForm|athematicalFunctionData|athieuC|athieuCPrime|athieuCharacteristicA|athieuCharacteristicB|athieuCharacteristicExponent|athieuGroupM11|athieuGroupM12|athieuGroupM22|athieuGroupM23|athieuGroupM24|athieuS|athieuSPrime|atrices|atrixExp|atrixForm|atrixFunction|atrixLog|atrixNormalDistribution|atrixPlot|atrixPower|atrixPropertyDistribution|atrixQ|atrixRank|atrixTDistribution|ax|axDate|axDetect|axFilter|axLimit|axMemoryUsed|axStableDistribution|axValue|aximalBy|aximize|axwellDistribution|cLaughlinGroupMcL|ean|eanClusteringCoefficient|eanDegreeConnectivity|eanDeviation|eanFilter|eanGraphDistance|eanNeighborDegree|eanShift|eanShiftFilter|edian|edianDeviation|edianFilter|edicalTestData|eijerG|eijerGReduce|eixnerDistribution|ellinConvolve|ellinTransform|emberQ|emoryAvailable|emoryConstrained|emoryInUse|engerMesh|enuPacket|enuView|erge|ersennePrimeExponent|ersennePrimeExponentQ|eshCellCount|eshCellIndex|eshCells|eshConnectivityGraph|eshCoordinates|eshPrimitives|eshRegion|eshRegionQ|essage|essageDialog|essageList|essageName|essagePacket|essages|eteorShowerData|exicanHatWavelet|eyerWavelet|in|inDate|inDetect|inFilter|inLimit|inMax|inStableDistribution|inValue|ineralData|inimalBy|inimalPolynomial|inimalStateSpaceModel|inimize|inimumTimeIncrement|inkowskiQuestionMark|inorPlanetData|inors|inus|inusPlus|issing|issingQ|ittagLefflerE|ixedFractionParts|ixedGraphQ|ixedMagnitude|ixedRadix|ixedRadixQuantity|ixedUnit|ixtureDistribution|od|odelPredictiveController|odularInverse|odularLambda|odule|oebiusMu|oment|omentConvert|omentEvaluate|omentGeneratingFunction|omentOfInertia|onitor|onomialList|onsterGroupM|oonPhase|oonPosition|orletWavelet|orphologicalBinarize|orphologicalBranchPoints|orphologicalComponents|orphologicalEulerNumber|orphologicalGraph|orphologicalPerimeter|orphologicalTransform|ortalityData|ost|ountainData|ouseAnnotation|ouseAppearance|ousePosition|ouseover|ovieData|ovingAverage|ovingMap|ovingMedian|oyalDistribution|ulticolumn|ultigraphQ|ultinomial|ultinomialDistribution|ultinormalDistribution|ultiplicativeOrder|ultiplySides|ultivariateHypergeometricDistribution|ultivariatePoissonDistribution|ultivariateTDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:N(?:|ArgMax|ArgMin|Cache|CaputoD|DEigensystem|DEigenvalues|DSolve|DSolveValue|Expectation|FractionalD|Integrate|MaxValue|Maximize|MinValue|Minimize|Probability|Product|Roots|Solve|SolveValues|Sum|akagamiDistribution|ameQ|ames|and|earest|earestFunction|earestMeshCells|earestNeighborGraph|earestTo|ebulaData|eedlemanWunschSimilarity|eeds|egative|egativeBinomialDistribution|egativeDefiniteMatrixQ|egativeMultinomialDistribution|egativeSemidefiniteMatrixQ|egativelyOrientedPoints|eighborhoodData|eighborhoodGraph|est|estGraph|estList|estWhile|estWhileList|estedGreaterGreater|estedLessLess|eumannValue|evilleThetaC|evilleThetaD|evilleThetaN|evilleThetaS|extCell|extDate|extPrime|icholsPlot|ightHemisphere|onCommutativeMultiply|onNegative|onPositive|oncentralBetaDistribution|oncentralChiSquareDistribution|oncentralFRatioDistribution|oncentralStudentTDistribution|ondimensionalizationTransform|oneTrue|onlinearModelFit|onlinearStateSpaceModel|onlocalMeansFilter|or|orlundB|orm|ormal|ormalDistribution|ormalMatrixQ|ormalize|ormalizedSquaredEuclideanDistance|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|otebook|otebookApply|otebookClose|otebookDelete|otebookDirectory|otebookEvaluate|otebookFileName|otebookFind|otebookGet|otebookImport|otebookInformation|otebookLocate|otebookObject|otebookOpen|otebookPrint|otebookPut|otebookRead|otebookSave|otebookSelection|otebookTemplate|otebookWrite|otebooks|othing|uclearExplosionData|uclearReactorData|ullSpace|umberCompose|umberDecompose|umberDigit|umberExpand|umberFieldClassNumber|umberFieldDiscriminant|umberFieldFundamentalUnits|umberFieldIntegralBasis|umberFieldNormRepresentatives|umberFieldRegulator|umberFieldRootsOfUnity|umberFieldSignature|umberForm|umberLinePlot|umberQ|umerator|umeratorDenominator|umericQ|umericalOrder|umericalSort|uttallWindow|yquistPlot))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:O(?:|NanGroupON|bservabilityGramian|bservabilityMatrix|bservableDecomposition|bservableModelQ|ceanData|ctahedron|ddQ|ff|ffset|n|nce|pacity|penAppend|penRead|penWrite|pener|penerView|pening|perate|ptimumFlowData|ptionValue|ptional|ptionalElement|ptions|ptionsPattern|r|rder|rderDistribution|rderedQ|rdering|rderingBy|rderlessPatternSequence|rnsteinUhlenbeckProcess|rthogonalMatrixQ|rthogonalize|uter|uterPolygon|uterPolyhedron|utputControllabilityMatrix|utputControllableModelQ|utputForm|utputNamePacket|utputResponse|utputStream|verBar|verDot|verHat|verTilde|verVector|verflow|verlay|verscript|verscriptBox|wenT|wnValues))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:P(?:DF|ERTDistribution|IDTune|acletDataRebuild|acletDirectoryLoad|acletDirectoryUnload|acletDisable|acletEnable|acletFind|acletFindRemote|acletInstall|acletInstallSubmit|acletNewerQ|acletObject|acletSiteObject|acletSiteRegister|acletSiteUnregister|acletSiteUpdate|acletSites|acletUninstall|adLeft|adRight|addedForm|adeApproximant|ageRankCentrality|airedBarChart|airedHistogram|airedSmoothHistogram|airedTTest|airedZTest|aletteNotebook|alindromeQ|ane|aneSelector|anel|arabolicCylinderD|arallelArray|arallelAxisPlot|arallelCombine|arallelDo|arallelEvaluate|arallelKernels|arallelMap|arallelNeeds|arallelProduct|arallelSubmit|arallelSum|arallelTable|arallelTry|arallelepiped|arallelize|arallelogram|arameterMixtureDistribution|arametricConvexOptimization|arametricFunction|arametricNDSolve|arametricNDSolveValue|arametricPlot|arametricPlot3D|arametricRegion|arentBox|arentCell|arentDirectory|arentNotebook|aretoDistribution|aretoPickandsDistribution|arkData|art|artOfSpeech|artialCorrelationFunction|articleAcceleratorData|articleData|artition|artitionsP|artitionsQ|arzenWindow|ascalDistribution|aste|asteButton|athGraph|athGraphQ|attern|atternSequence|atternTest|aulWavelet|auliMatrix|ause|eakDetect|eanoCurve|earsonChiSquareTest|earsonCorrelationTest|earsonDistribution|ercentForm|erfectNumber|erfectNumberQ|erimeter|eriodicBoundaryCondition|eriodogram|eriodogramArray|ermanent|ermissionsGroup|ermissionsGroupMemberQ|ermissionsGroups|ermissionsKey|ermissionsKeys|ermutationCycles|ermutationCyclesQ|ermutationGroup|ermutationLength|ermutationList|ermutationListQ|ermutationMatrix|ermutationMax|ermutationMin|ermutationOrder|ermutationPower|ermutationProduct|ermutationReplace|ermutationSupport|ermutations|ermute|eronaMalikFilter|ersonData|etersenGraph|haseMargins|hongShading|hysicalSystemData|ick|ieChart|ieChart3D|iecewise|iecewiseExpand|illaiTrace|illaiTraceTest|ingTime|ixelValue|ixelValuePositions|laced|laceholder|lanarAngle|lanarFaceList|lanarGraph|lanarGraphQ|lanckRadiationLaw|laneCurveData|lanetData|lanetaryMoonData|lantData|lay|lot|lot3D|luralize|lus|lusMinus|ochhammer|oint|ointFigureChart|ointLegend|ointLight|ointSize|oissonConsulDistribution|oissonDistribution|oissonPDEComponent|oissonProcess|oissonWindow|olarPlot|olyGamma|olyLog|olyaAeppliDistribution|olygon|olygonAngle|olygonCoordinates|olygonDecomposition|olygonalNumber|olyhedron|olyhedronAngle|olyhedronCoordinates|olyhedronData|olyhedronDecomposition|olyhedronGenus|olynomialExpressionQ|olynomialExtendedGCD|olynomialGCD|olynomialLCM|olynomialMod|olynomialQ|olynomialQuotient|olynomialQuotientRemainder|olynomialReduce|olynomialRemainder|olynomialSumOfSquaresList|opupMenu|opupView|opupWindow|osition|ositionIndex|ositionLargest|ositionSmallest|ositive|ositiveDefiniteMatrixQ|ositiveSemidefiniteMatrixQ|ositivelyOrientedPoints|ossibleZeroQ|ostfix|ower|owerDistribution|owerExpand|owerMod|owerModList|owerRange|owerSpectralDensity|owerSymmetricPolynomial|owersRepresentations|reDecrement|reIncrement|recedenceForm|recedes|recedesEqual|recedesSlantEqual|recedesTilde|recision|redict|redictorFunction|redictorMeasurements|redictorMeasurementsObject|reemptProtect|refix|repend|rependTo|reviousCell|reviousDate|riceGraphDistribution|rime|rimeNu|rimeOmega|rimePi|rimePowerQ|rimeQ|rimeZetaP|rimitivePolynomialQ|rimitiveRoot|rimitiveRootList|rincipalComponents|rintTemporary|rintableASCIIQ|rintout3D|rism|rivateKey|robability|robabilityDistribution|robabilityPlot|robabilityScalePlot|robitModelFit|rocessConnection|rocessInformation|rocessObject|rocessParameterAssumptions|rocessParameterQ|rocessStatus|rocesses|roduct|roductDistribution|roductLog|rogressIndicator|rojection|roportion|roportional|rotect|roteinData|runing|seudoInverse|sychrometricPropertyData|ublicKey|ulsarData|ut|utAppend|yramid))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:Q(?:Binomial|Factorial|Gamma|HypergeometricPFQ|Pochhammer|PolyGamma|RDecomposition|nDispersion|uadraticIrrationalQ|uadraticOptimization|uantile|uantilePlot|uantity|uantityArray|uantityDistribution|uantityForm|uantityMagnitude|uantityQ|uantityUnit|uantityVariable|uantityVariableCanonicalUnit|uantityVariableDimensions|uantityVariableIdentifier|uantityVariablePhysicalQuantity|uartileDeviation|uartileSkewness|uartiles|uery|ueueProperties|ueueingNetworkProcess|ueueingProcess|uiet|uietEcho|uotient|uotientRemainder))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:R(?:GBColor|Solve|SolveValue|adialAxisPlot|adialGradientFilling|adialGradientImage|adialityCentrality|adicalBox|adioButton|adioButtonBar|adon|adonTransform|amanujanTau|amanujanTauL|amanujanTauTheta|amanujanTauZ|amp|andomChoice|andomColor|andomComplex|andomDate|andomEntity|andomFunction|andomGeneratorState|andomGeoPosition|andomGraph|andomImage|andomInteger|andomPermutation|andomPoint|andomPolygon|andomPolyhedron|andomPrime|andomReal|andomSample|andomTime|andomVariate|andomWalkProcess|andomWord|ange|angeFilter|ankedMax|ankedMin|arerProbability|aster|aster3D|asterize|ational|ationalExpressionQ|ationalize|atios|awBoxes|awData|ayleighDistribution|e|eIm|eImPlot|eactionPDETerm|ead|eadByteArray|eadLine|eadList|eadString|ealAbs|ealDigits|ealExponent|ealSign|eap|econstructionMesh|ectangle|ectangleChart|ectangleChart3D|ectangularRepeatingElement|ecurrenceFilter|ecurrenceTable|educe|efine|eflectionMatrix|eflectionTransform|efresh|egion|egionBinarize|egionBoundary|egionBounds|egionCentroid|egionCongruent|egionConvert|egionDifference|egionDilation|egionDimension|egionDisjoint|egionDistance|egionDistanceFunction|egionEmbeddingDimension|egionEqual|egionErosion|egionFit|egionImage|egionIntersection|egionMeasure|egionMember|egionMemberFunction|egionMoment|egionNearest|egionNearestFunction|egionPlot|egionPlot3D|egionProduct|egionQ|egionResize|egionSimilar|egionSymmetricDifference|egionUnion|egionWithin|egularExpression|egularPolygon|egularlySampledQ|elationGraph|eleaseHold|eliabilityDistribution|eliefImage|eliefPlot|emove|emoveAlphaChannel|emoveBackground|emoveDiacritics|emoveInputStreamMethod|emoveOutputStreamMethod|emoveUsers|enameDirectory|enameFile|enewalProcess|enkoChart|epairMesh|epeated|epeatedNull|epeatedTiming|epeatingElement|eplace|eplaceAll|eplaceAt|eplaceImageValue|eplaceList|eplacePart|eplacePixelValue|eplaceRepeated|esamplingAlgorithmData|escale|escalingTransform|esetDirectory|esidue|esidueSum|esolve|esourceData|esourceObject|esourceSearch|esponseForm|est|estricted|esultant|eturn|eturnExpressionPacket|eturnPacket|eturnTextPacket|everse|everseBiorthogonalSplineWavelet|everseElement|everseEquilibrium|everseGraph|everseSort|everseSortBy|everseUpEquilibrium|evolutionPlot3D|iccatiSolve|iceDistribution|idgeFilter|iemannR|iemannSiegelTheta|iemannSiegelZ|iemannXi|iffle|ightArrow|ightArrowBar|ightArrowLeftArrow|ightComposition|ightCosetRepresentative|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|iskAchievementImportance|iskReductionImportance|obustConvexOptimization|ogersTanimotoDissimilarity|ollPitchYawAngles|ollPitchYawMatrix|omanNumeral|oot|ootApproximant|ootIntervals|ootLocusPlot|ootMeanSquare|ootOfUnityQ|ootReduce|ootSum|oots|otate|otateLeft|otateRight|otationMatrix|otationTransform|ound|ow|owBox|owReduce|udinShapiro|udvalisGroupRu|ule|uleDelayed|ulePlot|un|unProcess|unThrough|ussellRaoDissimilarity))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:S(?:ARIMAProcess|ARMAProcess|ASTriangle|SSTriangle|ameAs|ameQ|ampledSoundFunction|ampledSoundList|atelliteData|atisfiabilityCount|atisfiabilityInstances|atisfiableQ|ave|avitzkyGolayMatrix|awtoothWave|cale|caled|calingMatrix|calingTransform|can|cheduledTask|churDecomposition|cientificForm|corerGi|corerGiPrime|corerHi|corerHiPrime|ec|ech|echDistribution|econdOrderConeOptimization|ectorChart|ectorChart3D|eedRandom|elect|electComponents|electFirst|electedCells|electedNotebook|electionCreateCell|electionEvaluate|electionEvaluateCreateCell|electionMove|emanticImport|emanticImportString|emanticInterpretation|emialgebraicComponentInstances|emidefiniteOptimization|endMail|endMessage|equence|equenceAlignment|equenceCases|equenceCount|equenceFold|equenceFoldList|equencePosition|equenceReplace|equenceSplit|eries|eriesCoefficient|eriesData|erviceConnect|erviceDisconnect|erviceExecute|erviceObject|essionSubmit|essionTime|et|etAccuracy|etAlphaChannel|etAttributes|etCloudDirectory|etCookies|etDelayed|etDirectory|etEnvironment|etFileDate|etOptions|etPermissions|etPrecision|etSelectedNotebook|etSharedFunction|etSharedVariable|etStreamPosition|etSystemOptions|etUsers|etter|etterBar|etting|hallow|hannonWavelet|hapiroWilkTest|hare|harpen|hearingMatrix|hearingTransform|hellRegion|henCastanMatrix|hiftRegisterSequence|hiftedGompertzDistribution|hort|hortDownArrow|hortLeftArrow|hortRightArrow|hortTimeFourier|hortTimeFourierData|hortUpArrow|hortest|hortestPathFunction|how|iderealTime|iegelTheta|iegelTukeyTest|ierpinskiCurve|ierpinskiMesh|ign|ignTest|ignature|ignedRankTest|ignedRegionDistance|impleGraph|impleGraphQ|implePolygonQ|implePolyhedronQ|implex|implify|in|inIntegral|inc|inghMaddalaDistribution|ingularValueDecomposition|ingularValueList|ingularValuePlot|inh|inhIntegral|ixJSymbol|keleton|keletonTransform|kellamDistribution|kewNormalDistribution|kewness|kip|liceContourPlot3D|liceDensityPlot3D|liceDistribution|liceVectorPlot3D|lideView|lider|lider2D|liderBox|lot|lotSequence|mallCircle|mithDecomposition|mithDelayCompensator|mithWatermanSimilarity|moothDensityHistogram|moothHistogram|moothHistogram3D|moothKernelDistribution|nDispersion|ocketConnect|ocketListen|ocketListener|ocketObject|ocketOpen|ocketReadMessage|ocketReadyQ|ocketWaitAll|ocketWaitNext|ockets|okalSneathDissimilarity|olarEclipse|olarSystemFeatureData|olarTime|olidAngle|olidData|olidRegionQ|olve|olveAlways|olveValues|ort|ortBy|ound|oundNote|ourcePDETerm|ow|paceCurveData|pacer|pan|parseArray|parseArrayQ|patialGraphDistribution|patialMedian|peak|pearmanRankTest|pearmanRho|peciesData|pectralLineData|pectrogram|pectrogramArray|pecularity|peechSynthesize|pellingCorrectionList|phere|pherePoints|phericalBesselJ|phericalBesselY|phericalHankelH1|phericalHankelH2|phericalHarmonicY|phericalPlot3D|phericalShell|pheroidalEigenvalue|pheroidalJoiningFactor|pheroidalPS|pheroidalPSPrime|pheroidalQS|pheroidalQSPrime|pheroidalRadialFactor|pheroidalS1|pheroidalS1Prime|pheroidalS2|pheroidalS2Prime|plicedDistribution|plit|plitBy|pokenString|potLight|qrt|qrtBox|quare|quareFreeQ|quareIntersection|quareMatrixQ|quareRepeatingElement|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|quareWave|quaredEuclideanDistance|quaresR|tableDistribution|tack|tackBegin|tackComplete|tackInhibit|tackedDateListPlot|tackedListPlot|tadiumShape|tandardAtmosphereData|tandardDeviation|tandardDeviationFilter|tandardForm|tandardOceanData|tandardize|tandbyDistribution|tar|tarClusterData|tarData|tarGraph|tartProcess|tateFeedbackGains|tateOutputEstimator|tateResponse|tateSpaceModel|tateSpaceTransform|tateTransformationLinearize|tationaryDistribution|tationaryWaveletPacketTransform|tationaryWaveletTransform|tatusArea|tatusCentrality|tieltjesGamma|tippleShading|tirlingS1|tirlingS2|toppingPowerData|tratonovichProcess|treamDensityPlot|treamPlot|treamPlot3D|treamPosition|treams|tringCases|tringContainsQ|tringCount|tringDelete|tringDrop|tringEndsQ|tringExpression|tringExtract|tringForm|tringFormat|tringFormatQ|tringFreeQ|tringInsert|tringJoin|tringLength|tringMatchQ|tringPadLeft|tringPadRight|tringPart|tringPartition|tringPosition|tringQ|tringRepeat|tringReplace|tringReplaceList|tringReplacePart|tringReverse|tringRiffle|tringRotateLeft|tringRotateRight|tringSkeleton|tringSplit|tringStartsQ|tringTake|tringTakeDrop|tringTemplate|tringToByteArray|tringToStream|tringTrim|tripBoxes|tructuralImportance|truveH|truveL|tudentTDistribution|tyle|tyleBox|tyleData|ubMinus|ubPlus|ubStar|ubValues|ubdivide|ubfactorial|ubgraph|ubresultantPolynomialRemainders|ubresultantPolynomials|ubresultants|ubscript|ubscriptBox|ubsequences|ubset|ubsetEqual|ubsetMap|ubsetQ|ubsets|ubstitutionSystem|ubsuperscript|ubsuperscriptBox|ubtract|ubtractFrom|ubtractSides|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uccess|uchThat|um|umConvergence|unPosition|unrise|unset|uperDagger|uperMinus|uperPlus|uperStar|upernovaData|uperscript|uperscriptBox|uperset|upersetEqual|urd|urfaceArea|urfaceData|urvivalDistribution|urvivalFunction|urvivalModel|urvivalModelFit|uzukiDistribution|uzukiGroupSuz|watchLegend|witch|ymbol|ymbolName|ymletWavelet|ymmetric|ymmetricGroup|ymmetricKey|ymmetricMatrixQ|ymmetricPolynomial|ymmetricReduction|ymmetrize|ymmetrizedArray|ymmetrizedArrayRules|ymmetrizedDependentComponents|ymmetrizedIndependentComponents|ymmetrizedReplacePart|ynonyms|yntaxInformation|yntaxLength|yntaxPacket|yntaxQ|ystemDialogInput|ystemInformation|ystemOpen|ystemOptions|ystemProcessData|ystemProcesses|ystemsConnectionsModel|ystemsModelControllerData|ystemsModelDelay|ystemsModelDelayApproximate|ystemsModelDelete|ystemsModelDimensions|ystemsModelExtract|ystemsModelFeedbackConnect|ystemsModelLinearity|ystemsModelMerge|ystemsModelOrder|ystemsModelParallelConnect|ystemsModelSeriesConnect|ystemsModelStateFeedbackConnect|ystemsModelVectorRelativeOrders))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:T(?:Test|abView|able|ableForm|agBox|agSet|agSetDelayed|agUnset|ake|akeDrop|akeLargest|akeLargestBy|akeList|akeSmallest|akeSmallestBy|akeWhile|ally|an|anh|askAbort|askExecute|askObject|askRemove|askResume|askSuspend|askWait|asks|autologyQ|eXForm|elegraphProcess|emplateApply|emplateBox|emplateExpression|emplateIf|emplateObject|emplateSequence|emplateSlot|emplateWith|emporalData|ensorContract|ensorDimensions|ensorExpand|ensorProduct|ensorRank|ensorReduce|ensorSymmetry|ensorTranspose|ensorWedge|erminatedEvaluation|estReport|estReportObject|estResultObject|etrahedron|ext|extCell|extData|extGrid|extPacket|extRecognize|extSentences|extString|extTranslation|extWords|exture|herefore|hermodynamicData|hermometerGauge|hickness|hinning|hompsonGroupTh|hread|hreeJSymbol|hreshold|hrough|hrow|hueMorse|humbnail|ideData|ilde|ildeEqual|ildeFullEqual|ildeTilde|imeConstrained|imeObject|imeObjectQ|imeRemaining|imeSeries|imeSeriesAggregate|imeSeriesForecast|imeSeriesInsert|imeSeriesInvertibility|imeSeriesMap|imeSeriesMapThread|imeSeriesModel|imeSeriesModelFit|imeSeriesResample|imeSeriesRescale|imeSeriesShift|imeSeriesThread|imeSeriesWindow|imeSystemConvert|imeUsed|imeValue|imeZoneConvert|imeZoneOffset|imelinePlot|imes|imesBy|iming|itsGroupT|oBoxes|oCharacterCode|oContinuousTimeModel|oDiscreteTimeModel|oEntity|oExpression|oInvertibleTimeSeries|oLowerCase|oNumberField|oPolarCoordinates|oRadicals|oRules|oSphericalCoordinates|oString|oUpperCase|oeplitzMatrix|ogether|oggler|ogglerBar|ooltip|oonShading|opHatTransform|opologicalSort|orus|orusGraph|otal|otalVariationFilter|ouchPosition|r|race|raceDialog|racePrint|raceScan|racyWidomDistribution|radingChart|raditionalForm|ransferFunctionCancel|ransferFunctionExpand|ransferFunctionFactor|ransferFunctionModel|ransferFunctionPoles|ransferFunctionTransform|ransferFunctionZeros|ransformationFunction|ransformationMatrix|ransformedDistribution|ransformedField|ransformedProcess|ransformedRegion|ransitiveClosureGraph|ransitiveReductionGraph|ranslate|ranslationTransform|ransliterate|ranspose|ravelDirections|ravelDirectionsData|ravelDistance|ravelDistanceList|ravelTime|reeForm|reeGraph|reeGraphQ|reePlot|riangle|riangleWave|riangularDistribution|riangulateMesh|rigExpand|rigFactor|rigFactorList|rigReduce|rigToExp|rigger|rimmedMean|rimmedVariance|ropicalStormData|rueQ|runcatedDistribution|runcatedPolyhedron|sallisQExponentialDistribution|sallisQGaussianDistribution|ube|ukeyLambdaDistribution|ukeyWindow|unnelData|uples|uranGraph|uringMachine|uttePolynomial|woWayRule|ypeHint))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:U(?:RL|RLBuild|RLDecode|RLDispatcher|RLDownload|RLEncode|RLExecute|RLExpand|RLParse|RLQueryDecode|RLQueryEncode|RLRead|RLResponseTime|RLShorten|RLSubmit|nateQ|ncompress|nderBar|nderflow|nderoverscript|nderoverscriptBox|nderscript|nderscriptBox|nderseaFeatureData|ndirectedEdge|ndirectedGraph|ndirectedGraphQ|nequal|nequalTo|nevaluated|niformDistribution|niformGraphDistribution|niformPolyhedron|niformSumDistribution|ninstall|nion|nionPlus|nique|nitBox|nitConvert|nitDimensions|nitRootTest|nitSimplify|nitStep|nitTriangle|nitVector|nitaryMatrixQ|nitize|niverseModelData|niversityData|nixTime|nprotect|nsameQ|nset|nsetShared|ntil|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pSet|pSetDelayed|pTee|pTeeArrow|pTo|pValues|pdate|pperCaseQ|pperLeftArrow|pperRightArrow|pperTriangularMatrix|pperTriangularMatrixQ|pperTriangularize|psample|singFrontEnd))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:V(?:alueQ|alues|ariables|ariance|arianceEquivalenceTest|arianceGammaDistribution|arianceTest|ectorAngle|ectorDensityPlot|ectorDisplacementPlot|ectorDisplacementPlot3D|ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ectorPlot|ectorPlot3D|ectorQ|ectors|ee|erbatim|erificationTest|ertexAdd|ertexChromaticNumber|ertexComponent|ertexConnectivity|ertexContract|ertexCorrelationSimilarity|ertexCosineSimilarity|ertexCount|ertexCoverQ|ertexDegree|ertexDelete|ertexDiceSimilarity|ertexEccentricity|ertexInComponent|ertexInComponentGraph|ertexInDegree|ertexIndex|ertexJaccardSimilarity|ertexList|ertexOutComponent|ertexOutComponentGraph|ertexOutDegree|ertexQ|ertexReplace|ertexTransitiveGraphQ|ertexWeightedGraphQ|erticalBar|erticalGauge|erticalSeparator|erticalSlider|erticalTilde|oiceStyleData|oigtDistribution|olcanoData|olume|onMisesDistribution|oronoiMesh))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:W(?:aitAll|aitNext|akebyDistribution|alleniusHypergeometricDistribution|aringYuleDistribution|arpingCorrespondence|arpingDistance|atershedComponents|atsonUSquareTest|attsStrogatzGraphDistribution|avePDEComponent|aveletBestBasis|aveletFilterCoefficients|aveletImagePlot|aveletListPlot|aveletMapIndexed|aveletMatrixPlot|aveletPhi|aveletPsi|aveletScalogram|aveletThreshold|eakStationarity|eaklyConnectedComponents|eaklyConnectedGraphComponents|eaklyConnectedGraphQ|eatherData|eatherForecastData|eberE|edge|eibullDistribution|eierstrassE1|eierstrassE2|eierstrassE3|eierstrassEta1|eierstrassEta2|eierstrassEta3|eierstrassHalfPeriodW1|eierstrassHalfPeriodW2|eierstrassHalfPeriodW3|eierstrassHalfPeriods|eierstrassInvariantG2|eierstrassInvariantG3|eierstrassInvariants|eierstrassP|eierstrassPPrime|eierstrassSigma|eierstrassZeta|eightedAdjacencyGraph|eightedAdjacencyMatrix|eightedData|eightedGraphQ|elchWindow|heelGraph|henEvent|hich|hile|hiteNoiseProcess|hittakerM|hittakerW|ienerFilter|ienerProcess|ignerD|ignerSemicircleDistribution|ikipediaData|ilksW|ilksWTest|indDirectionData|indSpeedData|indVectorData|indingCount|indingPolygon|insorizedMean|insorizedVariance|ishartMatrixDistribution|ith|olframAlpha|olframLanguageData|ordCloud|ordCount|ordCounts|ordData|ordDefinition|ordFrequency|ordFrequencyData|ordList|ordStem|ordTranslation|rite|riteLine|riteString|ronskian))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:X(?:MLElement|MLObject|MLTemplate|YZColor|nor|or))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:Y(?:uleDissimilarity))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:Z(?:IPCodeData|Test|Transform|ernikeR|eroSymmetric|eta|etaZero|ipfDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:A(?:cceptanceThreshold|ccuracyGoal|ctiveStyle|ddOnHelpPath|djustmentBoxOptions|lignment|lignmentPoint|llowGroupClose|llowInlineCells|llowLooseGrammar|llowReverseGroupClose|llowScriptLevelChange|llowVersionUpdate|llowedCloudExtraParameters|llowedCloudParameterExtensions|llowedDimensions|llowedFrequencyRange|llowedHeads|lternativeHypothesis|ltitudeMethod|mbiguityFunction|natomySkinStyle|nchoredSearch|nimationDirection|nimationRate|nimationRepetitions|nimationRunTime|nimationRunning|nimationTimeIndex|nnotationRules|ntialiasing|ppearance|ppearanceElements|ppearanceRules|spectRatio|ssociationFormat|ssumptions|synchronous|ttachedCell|udioChannelAssignment|udioEncoding|udioInputDevice|udioLabel|udioOutputDevice|uthentication|utoAction|utoCopy|utoDelete|utoGeneratedPackage|utoIndent|utoItalicWords|utoMultiplicationSymbol|utoOpenNotebooks|utoOpenPalettes|utoOperatorRenderings|utoRemove|utoScroll|utoSpacing|utoloadPath|utorunSequencing|xes|xesEdge|xesLabel|xesOrigin|xesStyle))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:B(?:ackground|arOrigin|arSpacing|aseStyle|aselinePosition|inaryFormat|ookmarks|ooleanStrings|oundaryStyle|oxBaselineShift|oxFormFormatTypes|oxFrame|oxMargins|oxRatios|oxStyle|oxed|ubbleScale|ubbleSizes|uttonBoxOptions|uttonData|uttonFunction|uttonMinHeight|uttonSource|yteOrdering))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:C(?:alendarType|alloutMarker|alloutStyle|aptureRunning|aseOrdering|elestialSystem|ellAutoOverwrite|ellBaseline|ellBracketOptions|ellChangeTimes|ellContext|ellDingbat|ellDingbatMargin|ellDynamicExpression|ellEditDuplicate|ellEpilog|ellEvaluationDuplicate|ellEvaluationFunction|ellEventActions|ellFrame|ellFrameColor|ellFrameLabelMargins|ellFrameLabels|ellFrameMargins|ellGrouping|ellGroupingRules|ellHorizontalScrolling|ellID|ellLabel|ellLabelAutoDelete|ellLabelMargins|ellLabelPositioning|ellLabelStyle|ellLabelTemplate|ellMargins|ellOpen|ellProlog|ellSize|ellTags|haracterEncoding|haracterEncodingsPath|hartBaseStyle|hartElementFunction|hartElements|hartLabels|hartLayout|hartLegends|hartStyle|lassPriors|lickToCopyEnabled|lipPlanes|lipPlanesStyle|lipRange|lippingStyle|losingAutoSave|loudBase|loudObjectNameFormat|loudObjectURLType|lusterDissimilarityFunction|odeAssistOptions|olorCoverage|olorFunction|olorFunctionBinning|olorFunctionScaling|olorRules|olorSelectorSettings|olorSpace|olumnAlignments|olumnLines|olumnSpacings|olumnWidths|olumnsEqual|ombinerFunction|ommonDefaultFormatTypes|ommunityBoundaryStyle|ommunityLabels|ommunityRegionStyle|ompilationOptions|ompilationTarget|ompiled|omplexityFunction|ompressionLevel|onfidenceLevel|onfidenceRange|onfidenceTransform|onfigurationPath|onstants|ontentPadding|ontentSelectable|ontentSize|ontinuousAction|ontourLabels|ontourShading|ontourStyle|ontours|ontrolPlacement|ontrolType|ontrollerLinking|ontrollerMethod|ontrollerPath|ontrolsRendering|onversionRules|ookieFunction|oordinatesToolOptions|opyFunction|opyable|ornerNeighbors|ounterAssignments|ounterFunction|ounterIncrements|ounterStyleMenuListing|ovarianceEstimatorFunction|reateCellID|reateIntermediateDirectories|riterionFunction|ubics|urveClosed))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:D(?:ataRange|ataReversed|atasetTheme|ateFormat|ateFunction|ateGranularity|ateReduction|ateTicksFormat|ayCountConvention|efaultDuplicateCellStyle|efaultDuration|efaultElement|efaultFontProperties|efaultFormatType|efaultInlineFormatType|efaultNaturalLanguage|efaultNewCellStyle|efaultNewInlineCellStyle|efaultNotebook|efaultOptions|efaultPrintPrecision|efaultStyleDefinitions|einitialization|eletable|eleteContents|eletionWarning|elimiterAutoMatching|elimiterFlashTime|elimiterMatching|elimiters|eliveryFunction|ependentVariables|eployed|escriptorStateSpace|iacriticalPositioning|ialogProlog|ialogSymbols|igitBlock|irectedEdges|irection|iscreteVariables|ispersionEstimatorFunction|isplayAllSteps|isplayFunction|istanceFunction|istributedContexts|ithering|ividers|ockedCell|ockedCells|ynamicEvaluationTimeout|ynamicModuleValues|ynamicUpdating))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:E(?:clipseType|dgeCapacity|dgeCost|dgeLabelStyle|dgeLabels|dgeShapeFunction|dgeStyle|dgeValueRange|dgeValueSizes|dgeWeight|ditCellTagsSettings|ditable|lidedForms|nabled|pilog|pilogFunction|scapeRadius|valuatable|valuationCompletionAction|valuationElements|valuationMonitor|valuator|valuatorNames|ventLabels|xcludePods|xcludedContexts|xcludedForms|xcludedLines|xcludedPhysicalQuantities|xclusions|xclusionsStyle|xponentFunction|xponentPosition|xponentStep|xponentialFamily|xportAutoReplacements|xpressionUUID|xtension|xtentElementFunction|xtentMarkers|xtentSize|xternalDataCharacterEncoding|xternalOptions|xternalTypeSignature))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:F(?:aceGrids|aceGridsStyle|ailureAction|eatureNames|eatureTypes|eedbackSector|eedbackSectorStyle|eedbackType|ieldCompletionFunction|ieldHint|ieldHintStyle|ieldMasked|ieldSize|ileNameDialogSettings|ileNameForms|illing|illingStyle|indSettings|itRegularization|ollowRedirects|ontColor|ontFamily|ontSize|ontSlant|ontSubstitutions|ontTracking|ontVariations|ontWeight|orceVersionInstall|ormBoxOptions|ormLayoutFunction|ormProtectionMethod|ormatType|ormatTypeAutoConvert|ourierParameters|ractionBoxOptions|ractionLine|rame|rameBoxOptions|rameLabel|rameMargins|rameRate|rameStyle|rameTicks|rameTicksStyle|rontEndEventActions|unctionSpace))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:G(?:apPenalty|augeFaceElementFunction|augeFaceStyle|augeFrameElementFunction|augeFrameSize|augeFrameStyle|augeLabels|augeMarkers|augeStyle|aussianIntegers|enerateConditions|eneratedCell|eneratedDocumentBinding|eneratedParameters|eneratedQuantityMagnitudes|eneratorDescription|eneratorHistoryLength|eneratorOutputType|eoArraySize|eoBackground|eoCenter|eoGridLines|eoGridLinesStyle|eoGridRange|eoGridRangePadding|eoLabels|eoLocation|eoModel|eoProjection|eoRange|eoRangePadding|eoResolution|eoScaleBar|eoServer|eoStylingImageFunction|eoZoomLevel|radient|raphHighlight|raphHighlightStyle|raphLayerStyle|raphLayers|raphLayout|ridCreationSettings|ridDefaultElement|ridFrame|ridFrameMargins|ridLines|ridLinesStyle|roupActionBase|roupPageBreakWithin))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:H(?:eaderAlignment|eaderBackground|eaderDisplayFunction|eaderLines|eaderSize|eaderStyle|eads|elpBrowserSettings|iddenItems|olidayCalendar|yperlinkAction|yphenation))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:I(?:conRules|gnoreCase|gnoreDiacritics|gnorePunctuation|mageCaptureFunction|mageFormattingWidth|mageLabels|mageLegends|mageMargins|magePadding|magePreviewFunction|mageRegion|mageResolution|mageSize|mageSizeAction|mageSizeMultipliers|magingDevice|mportAutoReplacements|mportOptions|ncludeConstantBasis|ncludeDefinitions|ncludeDirectories|ncludeFileExtension|ncludeGeneratorTasks|ncludeInflections|ncludeMetaInformation|ncludePods|ncludeQuantities|ncludeSingularSolutions|ncludeWindowTimes|ncludedContexts|ndeterminateThreshold|nflationMethod|nheritScope|nitialSeeding|nitialization|nitializationCell|nitializationCellEvaluation|nitializationCellWarning|nputAliases|nputAssumptions|nputAutoReplacements|nsertResults|nsertionFunction|nteractive|nterleaving|nterpolationOrder|nterpolationPoints|nterpretationBoxOptions|nterpretationFunction|ntervalMarkers|ntervalMarkersStyle|nverseFunctions|temAspectRatio|temDisplayFunction|temSize|temStyle))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:J(?:oined))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:K(?:eepExistingVersion|eyCollisionFunction|eypointStrength))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:L(?:abelStyle|abelVisibility|abelingFunction|abelingSize|anguage|anguageCategory|ayerSizeFunction|eaderSize|earningRate|egendAppearance|egendFunction|egendLabel|egendLayout|egendMargins|egendMarkerSize|egendMarkers|ighting|ightingAngle|imitsPositioning|imitsPositioningTokens|ineBreakWithin|ineIndent|ineIndentMaxFraction|ineIntegralConvolutionScale|ineSpacing|inearOffsetFunction|inebreakAdjustments|inkFunction|inkProtocol|istFormat|istPickerBoxOptions|ocalizeVariables|ocatorAutoCreate|ocatorRegion|ooping))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:M(?:agnification|ailAddressValidation|ailResponseFunction|ailSettings|asking|atchLocalNames|axCellMeasure|axColorDistance|axDuration|axExtraBandwidths|axExtraConditions|axFeatureDisplacement|axFeatures|axItems|axIterations|axMixtureKernels|axOverlapFraction|axPlotPoints|axRecursion|axStepFraction|axStepSize|axSteps|emoryConstraint|enuCommandKey|enuSortingValue|enuStyle|esh|eshCellHighlight|eshCellLabel|eshCellMarker|eshCellShapeFunction|eshCellStyle|eshFunctions|eshQualityGoal|eshRefinementFunction|eshShading|eshStyle|etaInformation|ethod|inColorDistance|inIntervalSize|inPointSeparation|issingBehavior|issingDataMethod|issingDataRules|issingString|issingStyle|odal|odulus|ultiaxisArrangement|ultiedgeStyle|ultilaunchWarning|ultilineFunction|ultiselection))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:N(?:icholsGridLines|ominalVariables|onConstants|ormFunction|ormalized|ormalsFunction|otebookAutoSave|otebookBrowseDirectory|otebookConvertSettings|otebookDynamicExpression|otebookEventActions|otebookPath|otebooksMenu|otificationFunction|ullRecords|ullWords|umberFormat|umberMarks|umberMultiplier|umberPadding|umberPoint|umberSeparator|umberSigns|yquistGridLines))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:O(?:pacityFunction|pacityFunctionScaling|peratingSystem|ptionInspectorSettings|utputAutoOverwrite|utputSizeLimit|verlaps|verscriptBoxOptions|verwriteTarget))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:P(?:IDDerivativeFilter|IDFeedforward|acletSite|adding|addingSize|ageBreakAbove|ageBreakBelow|ageBreakWithin|ageFooterLines|ageFooters|ageHeaderLines|ageHeaders|ageTheme|ageWidth|alettePath|aneled|aragraphIndent|aragraphSpacing|arallelization|arameterEstimator|artBehavior|artitionGranularity|assEventsDown|assEventsUp|asteBoxFormInlineCells|ath|erformanceGoal|ermissions|haseRange|laceholderReplace|layRange|lotLabel|lotLabels|lotLayout|lotLegends|lotMarkers|lotPoints|lotRange|lotRangeClipping|lotRangePadding|lotRegion|lotStyle|lotTheme|odStates|odWidth|olarAxes|olarAxesOrigin|olarGridLines|olarTicks|oleZeroMarkers|recisionGoal|referencesPath|reprocessingRules|reserveColor|reserveImageOptions|rincipalValue|rintAction|rintPrecision|rintingCopies|rintingOptions|rintingPageRange|rintingStartingPageNumber|rintingStyleEnvironment|rintout3DPreviewer|rivateCellOptions|rivateEvaluationOptions|rivateFontOptions|rivateNotebookOptions|rivatePaths|rocessDirectory|rocessEnvironment|rocessEstimator|rogressReporting|rolog|ropagateAborts))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:Q(?:uartics))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:R(?:adicalBoxOptions|andomSeeding|asterSize|eImLabels|eImStyle|ealBlockDiagonalForm|ecognitionPrior|ecordLists|ecordSeparators|eferenceLineStyle|efreshRate|egionBoundaryStyle|egionFillingStyle|egionFunction|egionSize|egularization|enderingOptions|equiredPhysicalQuantities|esampling|esamplingMethod|esolveContextAliases|estartInterval|eturnReceiptFunction|evolutionAxis|otateLabel|otationAction|oundingRadius|owAlignments|owLines|owMinHeight|owSpacings|owsEqual|ulerUnits|untimeAttributes|untimeOptions))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:S(?:ameTest|ampleDepth|ampleRate|amplingPeriod|aveConnection|aveDefinitions|aveable|caleDivisions|caleOrigin|calePadding|caleRangeStyle|caleRanges|calingFunctions|cientificNotationThreshold|creenStyleEnvironment|criptBaselineShifts|criptLevel|criptMinSize|criptSizeMultipliers|crollPosition|crollbars|crollingOptions|ectorOrigin|ectorSpacing|electable|elfLoopStyle|eriesTermGoal|haringList|howAutoSpellCheck|howAutoStyles|howCellBracket|howCellLabel|howCellTags|howClosedCellArea|howContents|howCursorTracker|howGroupOpener|howPageBreaks|howSelection|howShortBoxForm|howSpecialCharacters|howStringCharacters|hrinkingDelay|ignPadding|ignificanceLevel|imilarityRules|ingleLetterItalics|liderBoxOptions|ortedBy|oundVolume|pacings|panAdjustments|panCharacterRounding|panLineThickness|panMaxSize|panMinSize|panSymmetric|pecificityGoal|pellingCorrection|pellingDictionaries|pellingDictionariesPath|pellingOptions|phericalRegion|plineClosed|plineDegree|plineKnots|plineWeights|qrtBoxOptions|tabilityMargins|tabilityMarginsStyle|tandardized|tartingStepSize|tateSpaceRealization|tepMonitor|trataVariables|treamColorFunction|treamColorFunctionScaling|treamMarkers|treamPoints|treamScale|treamStyle|trictInequalities|tripOnInput|tripWrapperBoxes|tructuredSelection|tyleBoxAutoDelete|tyleDefinitions|tyleHints|tyleMenuListing|tyleNameDialogSettings|tyleSheetPath|ubscriptBoxOptions|ubsuperscriptBoxOptions|ubtitleEncoding|uperscriptBoxOptions|urdForm|ynchronousInitialization|ynchronousUpdating|yntaxForm|ystemHelpPath|ystemsModelLabels))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:T(?:abFilling|abSpacings|ableAlignments|ableDepth|ableDirections|ableHeadings|ableSpacing|agBoxOptions|aggingRules|argetFunctions|argetUnits|emplateBoxOptions|emporalRegularity|estID|extAlignment|extClipboardType|extJustification|extureCoordinateFunction|extureCoordinateScaling|icks|icksStyle|imeConstraint|imeDirection|imeFormat|imeGoal|imeSystem|imeZone|okenWords|olerance|ooltipDelay|ooltipStyle|otalWidth|ouchscreenAutoZoom|ouchscreenControlPlacement|raceAbove|raceBackward|raceDepth|raceForward|raceOff|raceOn|raceOriginal|rackedSymbols|rackingFunction|raditionalFunctionNotation|ransformationClass|ransformationFunctions|ransitionDirection|ransitionDuration|ransitionEffect|ranslationOptions|ravelMethod|rendStyle|rig))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:U(?:nderoverscriptBoxOptions|nderscriptBoxOptions|ndoOptions|ndoTrackedVariables|nitSystem|nityDimensions|nsavedVariables|pdateInterval|pdatePacletSites|tilityFunction))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:V(?:alidationLength|alidationSet|alueDimensions|arianceEstimatorFunction|ectorAspectRatio|ectorColorFunction|ectorColorFunctionScaling|ectorMarkers|ectorPoints|ectorRange|ectorScaling|ectorSizes|ectorStyle|erifyConvergence|erifySecurityCertificates|erifySolutions|erifyTestAssumptions|ersionedPreferences|ertexCapacity|ertexColors|ertexCoordinates|ertexDataCoordinates|ertexLabelStyle|ertexLabels|ertexNormals|ertexShape|ertexShapeFunction|ertexSize|ertexStyle|ertexTextureCoordinates|ertexWeight|ideoEncoding|iewAngle|iewCenter|iewMatrix|iewPoint|iewProjection|iewRange|iewVector|iewVertical|isible))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:W(?:aveletScale|eights|hitePoint|indowClickSelect|indowElements|indowFloating|indowFrame|indowFrameElements|indowMargins|indowOpacity|indowSize|indowStatusArea|indowTitle|indowToolbars|ordOrientation|ordSearch|ordSelectionFunction|ordSeparators|ordSpacings|orkingPrecision|rapAround))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:Z(?:eroTest|eroWidthTimes))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:A(?:bove|fter|lgebraics|ll|nonymous|utomatic|xis))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:B(?:ack|ackward|aseline|efore|elow|lack|lue|old|ooleans|ottom|oxes|rown|yte))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:C(?:atalan|ellStyle|enter|haracter|omplexInfinity|omplexes|onstant|yan))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:D(?:ashed|efaultAxesStyle|efaultBaseStyle|efaultBoxStyle|efaultFaceGridsStyle|efaultFieldHintStyle|efaultFrameStyle|efaultFrameTicksStyle|efaultGridLinesStyle|efaultLabelStyle|efaultMenuStyle|efaultTicksStyle|efaultTooltipStyle|egree|elimiter|igitCharacter|otDashed|otted))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:E(?:|ndOfBuffer|ndOfFile|ndOfLine|ndOfString|ulerGamma|xpression))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:F(?:alse|lat|ontProperties|orward|orwardBackward|riday|ront|rontEndDynamicExpression|ull))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:G(?:eneral|laisher|oldenAngle|oldenRatio|ray|reen))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:H(?:ere|exadecimalCharacter|oldAll|oldAllComplete|oldFirst|oldRest))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:I(?:|ndeterminate|nfinity|nherited|nteger|ntegers|talic))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:K(?:hinchin))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:L(?:arge|arger|eft|etterCharacter|ightBlue|ightBrown|ightCyan|ightGray|ightGreen|ightMagenta|ightOrange|ightPink|ightPurple|ightRed|ightYellow|istable|ocked))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:M(?:achinePrecision|agenta|anual|edium|eshCellCentroid|eshCellMeasure|eshCellQuality|onday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:N(?:HoldAll|HoldFirst|HoldRest|egativeIntegers|egativeRationals|egativeReals|oWhitespace|onNegativeIntegers|onNegativeRationals|onNegativeReals|onPositiveIntegers|onPositiveRationals|onPositiveReals|one|ow|ull|umber|umberString|umericFunction))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:O(?:neIdentity|range|rderless))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:P(?:i|ink|lain|ositiveIntegers|ositiveRationals|ositiveReals|rimes|rotected|unctuationCharacter|urple))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:R(?:ationals|eadProtected|eal|eals|ecord|ed|ight))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:S(?:aturday|equenceHold|mall|maller|panFromAbove|panFromBoth|panFromLeft|tartOfLine|tartOfString|tring|truckthrough|tub|unday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:T(?:emporary|hick|hin|hursday|iny|oday|omorrow|op|ransparent|rue|uesday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:U(?:ndefined|nderlined))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:W(?:ednesday|hite|hitespace|hitespaceCharacter|ord|ordBoundary|ordCharacter))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:Y(?:ellow|esterday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:\\$(?:Aborted|ActivationKey|AllowDataUpdates|AllowInternet|AssertFunction|Assumptions|AudioInputDevices|AudioOutputDevices|BaseDirectory|BasePacletsDirectory|BatchInput|BatchOutput|ByteOrdering|CacheBaseDirectory|Canceled|CharacterEncoding|CharacterEncodings|CloudAccountName|CloudBase|CloudConnected|CloudCreditsAvailable|CloudEvaluation|CloudExpressionBase|CloudObjectNameFormat|CloudObjectURLType|CloudRootDirectory|CloudSymbolBase|CloudUserID|CloudUserUUID|CloudVersion|CommandLine|CompilationTarget|Context|ContextAliases|ContextPath|ControlActiveSetting|Cookies|CreationDate|CurrentLink|CurrentTask|DateStringFormat|DefaultAudioInputDevice|DefaultAudioOutputDevice|DefaultFrontEnd|DefaultImagingDevice|DefaultKernels|DefaultLocalBase|DefaultLocalKernel|Display|DisplayFunction|DistributedContexts|DynamicEvaluation|Echo|EmbedCodeEnvironments|EmbeddableServices|Epilog|EvaluationCloudBase|EvaluationCloudObject|EvaluationEnvironment|ExportFormats|Failed|FontFamilies|FrontEnd|FrontEndSession|GeoLocation|GeoLocationCity|GeoLocationCountry|GeoLocationSource|HomeDirectory|IgnoreEOF|ImageFormattingWidth|ImageResolution|ImagingDevice|ImagingDevices|ImportFormats|InitialDirectory|Input|InputFileName|InputStreamMethods|Inspector|InstallationDirectory|InterpreterTypes|IterationLimit|KernelCount|KernelID|Language|LibraryPath|LicenseExpirationDate|LicenseID|LicenseServer|Linked|LocalBase|LocalSymbolBase|MachineAddresses|MachineDomains|MachineEpsilon|MachineID|MachineName|MachinePrecision|MachineType|MaxExtraPrecision|MaxMachineNumber|MaxNumber|MaxPiecewiseCases|MaxPrecision|MaxRootDegree|MessageGroups|MessageList|MessagePrePrint|Messages|MinMachineNumber|MinNumber|MinPrecision|MobilePhone|ModuleNumber|NetworkConnected|NewMessage|NewSymbol|NotebookInlineStorageLimit|Notebooks|NumberMarks|OperatingSystem|Output|OutputSizeLimit|OutputStreamMethods|Packages|ParentLink|ParentProcessID|PasswordFile|Path|PathnameSeparator|PerformanceGoal|Permissions|PlotTheme|Printout3DPreviewer|ProcessID|ProcessorCount|ProcessorType|ProgressReporting|RandomGeneratorState|RecursionLimit|ReleaseNumber|RequesterAddress|RequesterCloudUserID|RequesterCloudUserUUID|RequesterWolframID|RequesterWolframUUID|RootDirectory|ScriptCommandLine|ScriptInputString|Services|SessionID|SharedFunctions|SharedVariables|SoundDisplayFunction|SynchronousEvaluation|System|SystemCharacterEncoding|SystemID|SystemShell|SystemTimeZone|SystemWordLength|TemplatePath|TemporaryDirectory|TimeUnit|TimeZone|TimeZoneEntity|TimedOut|UnitSystem|Urgent|UserAgentString|UserBaseDirectory|UserBasePacletsDirectory|UserDocumentsDirectory|UserURLBase|Username|Version|VersionNumber|WolframDocumentsDirectory|WolframID|WolframUUID))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:A(?:bortScheduledTask|ctive|lgebraicRules|lternateImage|natomyForm|nimationCycleOffset|nimationCycleRepetitions|nimationDisplayTime|spectRatioFixed|stronomicalData|synchronousTaskObject|synchronousTasks|udioDevice|udioLooping))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:B(?:uttonEvaluator|uttonExpandable|uttonFrame|uttonMargins|uttonNote|uttonStyle))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:C(?:DFInformation|hebyshevDistance|lassifierInformation|lipFill|olorOutput|olumnForm|ompose|onstantArrayLayer|onstantPlusLayer|onstantTimesLayer|onstrainedMax|onstrainedMin|ontourGraphics|ontourLines|onversionOptions|reateScheduledTask|reateTemporary|urry))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:D(?:atabinRemove|ate|ebug|efaultColor|efaultFont|ensityGraphics|isplay|isplayString|otPlusLayer|ragAndDrop))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:E(?:dgeLabeling|dgeRenderingFunction|valuateScheduledTask|xpectedValue))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:F(?:actorComplete|ontForm|ormTheme|romDate|ullOptions))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:G(?:raphStyle|raphicsArray|raphicsSpacing|ridBaseline))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:H(?:TMLSave|eldPart|iddenSurface|omeDirectory))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:I(?:mageRotated|nstanceNormalizationLayer))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:L(?:UBackSubstitution|egendreType|ightSources|inearProgramming|inkOpen|iteral|ongestMatch))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:M(?:eshRange|oleculeEquivalentQ))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:N(?:etInformation|etSharedArray|extScheduledTaskTime|otebookCreate))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:O(?:penTemporary))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:P(?:IDData|ackingMethod|ersistentValue|ixelConstrained|lot3Matrix|lotDivision|lotJoined|olygonIntersections|redictorInformation|roperties|roperty|ropertyList|ropertyValue))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:R(?:andom|asterArray|ecognitionThreshold|elease|emoteKernelObject|emoveAsynchronousTask|emoveProperty|emoveScheduledTask|enderAll|eplaceHeldPart|esetScheduledTask|esumePacket|unScheduledTask))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:S(?:cheduledTaskActiveQ|cheduledTaskInformation|cheduledTaskObject|cheduledTasks|creenRectangle|electionAnimate|equenceAttentionLayer|equenceForm|etProperty|hading|hortestMatch|ingularValues|kinStyle|ocialMediaData|tartAsynchronousTask|tartScheduledTask|tateDimensions|topAsynchronousTask|topScheduledTask|tructuredArray|tyleForm|tylePrint|ubscripted|urfaceColor|urfaceGraphics|uspendPacket|ystemModelProgressReporting))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:T(?:eXSave|extStyle|imeWarpingCorrespondence|imeWarpingDistance|oDate|oFileName|oHeldExpression))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:U(?:RLFetch|RLFetchAsynchronous|RLSave|RLSaveAsynchronous))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:V(?:ectorScale|ertexCoordinateRules|ertexLabeling|ertexRenderingFunction))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:W(?:aitAsynchronousTask|indowMovable))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:\\$(?:AsynchronousTask|ConfiguredKernels|DefaultFont|EntityStores|FormatType|HTTPCookies|InstallationDate|MachineDomain|ProductInformation|ProgramName|RandomState|ScheduledTask|SummaryBoxDataSizeLimit|TemporaryPrefix|TextStyle|TopDirectory|UserAddOnsDirectory))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:A(?:ctionDelay|ctionMenuBox|ctionMenuBoxOptions|ctiveItem|lgebraicRulesData|lignmentMarker|llowAdultContent|llowChatServices|llowIncomplete|nalytic|nimatorBox|nimatorBoxOptions|nimatorElements|ppendCheck|rgumentCountQ|rrow3DBox|rrowBox|uthenticate|utoEvaluateEvents|utoIndentSpacings|utoMatch|utoNumberFormatting|utoQuoteCharacters|utoScaling|utoStyleOptions|utoStyleWords|utomaticImageSize|xis3DBox|xis3DBoxOptions|xisBox|xisBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:B(?:SplineCurve3DBox|SplineCurve3DBoxOptions|SplineCurveBox|SplineCurveBoxOptions|SplineSurface3DBox|SplineSurface3DBoxOptions|ackFaceColor|ackFaceGlowColor|ackFaceOpacity|ackFaceSpecularColor|ackFaceSpecularExponent|ackFaceSurfaceAppearance|ackFaceTexture|ackgroundAppearance|ackgroundTasksSettings|acksubstitution|eveled|ezierCurve3DBox|ezierCurve3DBoxOptions|ezierCurveBox|ezierCurveBoxOptions|lankForm|ounds|ox|oxDimensions|oxForm|oxID|oxRotation|oxRotationPoint|ra|raKet|rowserCategory|uttonCell|uttonContents|uttonStyleMenuListing))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:C(?:acheGraphics|achedValue|ardinalBSplineBasis|ellBoundingBox|ellContents|ellElementSpacings|ellElementsBoundingBox|ellFrameStyle|ellInsertionPointCell|ellTrayPosition|ellTrayWidgets|hangeOptions|hannelDatabin|hannelListenerWait|hannelPreSendFunction|hartElementData|hartElementDataFunction|heckAll|heckboxBox|heckboxBoxOptions|ircleBox|lipboardNotebook|lockwiseContourIntegral|losed|losingEvent|loudConnections|loudObjectInformation|loudObjectInformationData|loudUserID|oarse|oefficientDomain|olonForm|olorSetterBox|olorSetterBoxOptions|olumnBackgrounds|ompilerEnvironmentAppend|ompletionsListPacket|omponentwiseContextMenu|ompressedData|oneBox|onicHullRegion3DBox|onicHullRegion3DBoxOptions|onicHullRegionBox|onicHullRegionBoxOptions|onnect|ontentsBoundingBox|ontextMenu|ontinuation|ontourIntegral|ontourSmoothing|ontrolAlignment|ontrollerDuration|ontrollerInformationData|onvertToPostScript|onvertToPostScriptPacket|ookies|opyTag|ounterBox|ounterBoxOptions|ounterClockwiseContourIntegral|ounterEvaluator|ounterStyle|uboidBox|uboidBoxOptions|urlyDoubleQuote|urlyQuote|ylinderBox|ylinderBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:D(?:OSTextFormat|ampingFactor|ataCompression|atasetDisplayPanel|ateDelimiters|ebugTag|ecimal|efault2DTool|efault3DTool|efaultAttachedCellStyle|efaultControlPlacement|efaultDockedCellStyle|efaultInputFormatType|efaultOutputFormatType|efaultStyle|efaultTextFormatType|efaultTextInlineFormatType|efaultValue|efineExternal|egreeLexicographic|egreeReverseLexicographic|eleteWithContents|elimitedArray|estroyAfterEvaluation|eviceOpenQ|ialogIndent|ialogLevel|ifferenceOrder|igitBlockMinimum|isableConsolePrintPacket|iskBox|iskBoxOptions|ispatchQ|isplayRules|isplayTemporary|istributionDomain|ivergence|ocumentGeneratorInformationData|omainRegistrationInformation|oubleContourIntegral|oublyInfinite|own|rawBackFaces|rawFrontFaces|rawHighlighted|ualLinearProgramming|umpGet|ynamicBox|ynamicBoxOptions|ynamicLocation|ynamicModuleBox|ynamicModuleBoxOptions|ynamicModuleParent|ynamicName|ynamicNamespace|ynamicReference|ynamicWrapperBox|ynamicWrapperBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:E(?:ditButtonSettings|liminationOrder|llipticReducedHalfPeriods|mbeddingObject|mphasizeSyntaxErrors|mpty|nableConsolePrintPacket|ndAdd|ngineEnvironment|nter|qualColumns|qualRows|quatedTo|rrorBoxOptions|rrorNorm|rrorPacket|rrorsDialogSettings|valuated|valuationMode|valuationOrder|valuationRateLimit|ventEvaluator|ventHandlerTag|xactRootIsolation|xitDialog|xpectationE|xportPacket|xpressionPacket|xternalCall|xternalFunctionName))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:F(?:EDisableConsolePrintPacket|EEnableConsolePrintPacket|ail|ileInformation|ileName|illForm|illedCurveBox|illedCurveBoxOptions|ine|itAll|lashSelection|ont|ontName|ontOpacity|ontPostScriptName|ontReencoding|ormatRules|ormatValues|rameInset|rameless|rontEndObject|rontEndResource|rontEndResourceString|rontEndStackSize|rontEndValueCache|rontEndVersion|rontFaceColor|rontFaceGlowColor|rontFaceOpacity|rontFaceSpecularColor|rontFaceSpecularExponent|rontFaceSurfaceAppearance|rontFaceTexture|ullAxes))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:G(?:eneratedCellStyles|eneric|eometricTransformation3DBox|eometricTransformation3DBoxOptions|eometricTransformationBox|eometricTransformationBoxOptions|estureHandlerTag|etContext|etFileName|etLinebreakInformationPacket|lobalPreferences|lobalSession|raphLayerLabels|raphRoot|raphics3DBox|raphics3DBoxOptions|raphicsBaseline|raphicsBox|raphicsBoxOptions|raphicsComplex3DBox|raphicsComplex3DBoxOptions|raphicsComplexBox|raphicsComplexBoxOptions|raphicsContents|raphicsData|raphicsGridBox|raphicsGroup3DBox|raphicsGroup3DBoxOptions|raphicsGroupBox|raphicsGroupBoxOptions|raphicsGrouping|raphicsStyle|reekStyle|ridBoxAlignment|ridBoxBackground|ridBoxDividers|ridBoxFrame|ridBoxItemSize|ridBoxItemStyle|ridBoxOptions|ridBoxSpacings|ridElementStyleOptions|roupOpenerColor|roupOpenerInsideFrame|roupTogetherGrouping|roupTogetherNestedGrouping))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:H(?:eadCompose|eaders|elpBrowserLookup|elpBrowserNotebook|elpViewerSettings|essian|exahedronBox|exahedronBoxOptions|ighlightString|omePage|orizontal|orizontalForm|orizontalScrollPosition|yperlinkCreationSettings|yphenationOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:I(?:conizedObject|gnoreSpellCheck|mageCache|mageCacheValid|mageEditMode|mageMarkers|mageOffset|mageRangeCache|mageSizeCache|mageSizeRaw|nactiveStyle|ncludeSingularTerm|ndent|ndentMaxFraction|ndentingNewlineSpacings|ndexCreationOptions|ndexTag|nequality|nexactNumbers|nformationData|nformationDataGrid|nlineCounterAssignments|nlineCounterIncrements|nlineRules|nputFieldBox|nputFieldBoxOptions|nputGrouping|nputSettings|nputToBoxFormPacket|nsertionPointObject|nset3DBox|nset3DBoxOptions|nsetBox|nsetBoxOptions|ntegral|nterlaced|nterpolationPrecision|nterpretTemplate|nterruptSettings|nto|nvisibleApplication|nvisibleTimes|temBox|temBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:J(?:acobian|oinedCurveBox|oinedCurveBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:K(?:|ernelExecute|et))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:L(?:abeledSlider|ambertW|anguageOptions|aunch|ayoutInformation|exicographic|icenseID|ine3DBox|ine3DBoxOptions|ineBox|ineBoxOptions|ineBreak|ineWrapParts|inearFilter|inebreakSemicolonWeighting|inkConnectedQ|inkError|inkFlush|inkHost|inkMode|inkOptions|inkReadHeld|inkService|inkWriteHeld|istPickerBoxBackground|isten|iteralSearch|ocalizeDefinitions|ocatorBox|ocatorBoxOptions|ocatorCentering|ocatorPaneBox|ocatorPaneBoxOptions|ongEqual|ongForm|oopback))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:M(?:achineID|achineName|acintoshSystemPageSetup|ainSolve|aintainDynamicCaches|akeRules|atchLocalNameQ|aterial|athMLText|athematicaNotation|axBend|axPoints|enu|enuAppearance|enuEvaluator|enuItem|enuList|ergeDifferences|essageObject|essageOptions|essagesNotebook|etaCharacters|ethodOptions|inRecursion|inSize|ode|odular|onomialOrder|ouseAppearanceTag|ouseButtons|ousePointerNote|ultiLetterItalics|ultiLetterStyle|ultiplicity|ultiscriptBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:N(?:BernoulliB|ProductFactors|SumTerms|Values|amespaceBox|amespaceBoxOptions|estedScriptRules|etworkPacketRecordingDuring|ext|onAssociative|ormalGrouping|otebookDefault|otebookInterfaceObject))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:O(?:LEData|bjectExistsQ|pen|penFunctionInspectorPacket|penSpecialOptions|penerBox|penerBoxOptions|ptionQ|ptionValueBox|ptionValueBoxOptions|ptionsPacket|utputFormData|utputGrouping|utputMathEditExpression|ver|verlayBox|verlayBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:P(?:ackPaclet|ackage|acletDirectoryAdd|acletDirectoryRemove|acletInformation|acletObjectQ|acletUpdate|ageHeight|alettesMenuSettings|aneBox|aneBoxOptions|aneSelectorBox|aneSelectorBoxOptions|anelBox|anelBoxOptions|aperWidth|arameter|arameterVariables|arentConnect|arentForm|arentList|arenthesize|artialD|asteAutoQuoteCharacters|ausedTime|eriodicInterpolation|erpendicular|ickMode|ickedElements|ivoting|lotRangeClipPlanesStyle|oint3DBox|oint3DBoxOptions|ointBox|ointBoxOptions|olygon3DBox|olygon3DBoxOptions|olygonBox|olygonBoxOptions|olygonHoleScale|olygonScale|olyhedronBox|olyhedronBoxOptions|olynomialForm|olynomials|opupMenuBox|opupMenuBoxOptions|ostScript|recedence|redictionRoot|referencesSettings|revious|rimaryPlaceholder|rintForm|rismBox|rismBoxOptions|rivateFrontEndOptions|robabilityPr|rocessStateDomain|rocessTimeDomain|rogressIndicatorBox|rogressIndicatorBoxOptions|romptForm|yramidBox|yramidBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:R(?:adioButtonBox|adioButtonBoxOptions|andomSeed|angeSpecification|aster3DBox|aster3DBoxOptions|asterBox|asterBoxOptions|ationalFunctions|awArray|awMedium|ebuildPacletData|ectangleBox|ecurringDigitsForm|eferenceMarkerStyle|eferenceMarkers|einstall|emoved|epeatedString|esourceAcquire|esourceSubmissionObject|eturnCreatesNewCell|eturnEntersInput|eturnInputFormPacket|otationBox|otationBoxOptions|oundImplies|owBackgrounds|owHeights|uleCondition|uleForm))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:S(?:aveAutoDelete|caledMousePosition|cheduledTaskInformationData|criptForm|criptRules|ectionGrouping|electWithContents|election|electionCell|electionCellCreateCell|electionCellDefaultStyle|electionCellParentStyle|electionPlaceholder|elfLoops|erviceResponse|etOptionsPacket|etSecuredAuthenticationKey|etbacks|etterBox|etterBoxOptions|howAutoConvert|howCodeAssist|howControls|howGroupOpenCloseIcon|howInvisibleCharacters|howPredictiveInterface|howSyntaxStyles|hrinkWrapBoundingBox|ingleEvaluation|ingleLetterStyle|lider2DBox|lider2DBoxOptions|ocket|olveDelayed|oundAndGraphics|pace|paceForm|panningCharacters|phereBox|phereBoxOptions|tartupSound|tringBreak|tringByteCount|tripStyleOnPaste|trokeForm|tructuredArrayHeadQ|tyleKeyMapping|tyleNames|urfaceAppearance|yntax|ystemException|ystemGet|ystemInformationData|ystemStub|ystemTest))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:T(?:ab|abViewBox|abViewBoxOptions|ableViewBox|ableViewBoxAlignment|ableViewBoxBackground|ableViewBoxHeaders|ableViewBoxItemSize|ableViewBoxItemStyle|ableViewBoxOptions|agBoxNote|agStyle|emplateEvaluate|emplateSlotSequence|emplateUnevaluated|emplateVerbatim|emporaryVariable|ensorQ|etrahedronBox|etrahedronBoxOptions|ext3DBox|ext3DBoxOptions|extBand|extBoundingBox|extBox|extForm|extLine|extParagraph|hisLink|itleGrouping|oColor|oggle|oggleFalse|ogglerBox|ogglerBoxOptions|ooBig|ooltipBox|ooltipBoxOptions|otalHeight|raceAction|raceInternal|raceLevel|rackCellChangeTimes|raditionalNotation|raditionalOrder|ransparentColor|rapEnterKey|rapSelection|ubeBSplineCurveBox|ubeBSplineCurveBoxOptions|ubeBezierCurveBox|ubeBezierCurveBoxOptions|ubeBox|ubeBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:U(?:ntrackedVariables|p|seGraphicsRange|serDefinedWavelet|sing))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:V(?:2Get|alueBox|alueBoxOptions|alueForm|aluesData|ectorGlyphData|erbose|ertical|erticalForm|iewPointSelectorSettings|iewPort|irtualGroupData|isibleCell))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:W(?:aitUntil|ebPageMetaInformation|holeCellGroupOpener|indowPersistentStyles|indowSelected|indowWidth|olframAlphaDate|olframAlphaQuantity|olframAlphaResult|olframCloudSettings))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:\\$(?:ActivationGroupID|ActivationUserRegistered|AddOnsDirectory|BoxForms|CloudConnection|CloudVersionNumber|CloudWolframEngineVersionNumber|ConditionHold|DefaultMailbox|DefaultPath|FinancialDataSource|GeoEntityTypes|GeoLocationPrecision|HTMLExportRules|HTTPRequest|LaunchDirectory|LicenseProcesses|LicenseSubprocesses|LicenseType|LinkSupported|LoadedFiles|MaxLicenseProcesses|MaxLicenseSubprocesses|MinorReleaseNumber|NetworkLicense|Off|OutputForms|PatchLevelID|PermissionsGroupBase|PipeSupported|PreferencesDirectory|PrintForms|PrintLiteral|RegisteredDeviceClasses|RegisteredUserName|SecuredAuthenticationKeyTokens|SetParentLink|SoundDisplay|SuppressInputFormHeads|SystemMemory|TraceOff|TraceOn|TracePattern|TracePostAction|TracePreAction|UserAgentLanguages|UserAgentMachine|UserAgentName|UserAgentOperatingSystem|UserAgentVersion|UserName))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:A(?:ctiveClassification|ctiveClassificationObject|ctivePrediction|ctivePredictionObject|ddToSearchIndex|ggregatedEntityClass|ggregationLayer|ngleBisector|nimatedImage|nimationVideo|nomalyDetector|ppendLayer|pplication|pplyReaction|round|roundReplace|rrayReduce|sk|skAppend|skConfirm|skDisplay|skFunction|skState|skTemplateDisplay|skedQ|skedValue|ssessmentFunction|ssessmentResultObject|ssumeDeterministic|stroAngularSeparation|stroBackground|stroCenter|stroDistance|stroGraphics|stroGridLines|stroGridLinesStyle|stroPosition|stroProjection|stroRange|stroRangePadding|stroReferenceFrame|stroStyling|stroZoomLevel|tom|tomCoordinates|tomCount|tomDiagramCoordinates|tomLabelStyle|tomLabels|tomList|ttachCell|ttentionLayer|udioAnnotate|udioAnnotationLookup|udioIdentify|udioInstanceQ|udioPause|udioPlay|udioRecord|udioStop|udioStream|udioStreams|udioTrackApply|udioTrackSelection|utocomplete|utocompletionFunction|xiomaticTheory|xisLabel|xisObject|xisStyle))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:B(?:asicRecurrentLayer|atchNormalizationLayer|atchSize|ayesianMaximization|ayesianMaximizationObject|ayesianMinimization|ayesianMinimizationObject|esagL|innedVariogramList|inomialPointProcess|ioSequence|ioSequenceBackTranslateList|ioSequenceComplement|ioSequenceInstances|ioSequenceModify|ioSequencePlot|ioSequenceQ|ioSequenceReverseComplement|ioSequenceTranscribe|ioSequenceTranslate|itRate|lockDiagonalMatrix|lockLowerTriangularMatrix|lockUpperTriangularMatrix|lockchainAddressData|lockchainBase|lockchainBlockData|lockchainContractValue|lockchainData|lockchainGet|lockchainKeyEncode|lockchainPut|lockchainTokenData|lockchainTransaction|lockchainTransactionData|lockchainTransactionSign|lockchainTransactionSubmit|ond|ondCount|ondLabelStyle|ondLabels|ondList|ondQ|uildCompiledComponent))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:C(?:TCLossLayer|achePersistence|anvas|ast|ategoricalDistribution|atenateLayer|auchyPointProcess|hannelBase|hannelBrokerAction|hannelHistoryLength|hannelListen|hannelListener|hannelListeners|hannelObject|hannelReceiverFunction|hannelSend|hannelSubscribers|haracterNormalize|hemicalConvert|hemicalFormula|hemicalInstance|hemicalReaction|loudExpression|loudExpressions|loudRenderingMethod|ombinatorB|ombinatorC|ombinatorI|ombinatorK|ombinatorS|ombinatorW|ombinatorY|ombinedEntityClass|ompiledCodeFunction|ompiledComponent|ompiledExpressionDeclaration|ompiledLayer|ompilerCallback|ompilerEnvironment|ompilerEnvironmentAppendTo|ompilerEnvironmentObject|ompilerOptions|omplementedEntityClass|omputeUncertainty|onfirmQuiet|onformationMethod|onnectSystemModelComponents|onnectSystemModelController|onnectedMoleculeComponents|onnectedMoleculeQ|onnectionSettings|ontaining|ontentDetectorFunction|ontentFieldOptions|ontentLocationFunction|ontentObject|ontrastiveLossLayer|onvolutionLayer|reateChannel|reateCloudExpression|reateCompilerEnvironment|reateDataStructure|reateDataSystemModel|reateLicenseEntitlement|reateSearchIndex|reateSystemModel|reateTypeInstance|rossEntropyLossLayer|urrentNotebookImage|urrentScreenImage|urryApplied))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:D(?:SolveChangeVariables|ataStructure|ataStructureQ|atabaseConnect|atabaseDisconnect|atabaseReference|atabinSubmit|ateInterval|eclareCompiledComponent|econvolutionLayer|ecryptFile|eleteChannel|eleteCloudExpression|eleteElements|eleteSearchIndex|erivedKey|iggleGatesPointProcess|iggleGrattonPointProcess|igitalSignature|isableFormatting|ocumentWeightingRules|otLayer|ownValuesFunction|ropoutLayer|ynamicImage))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:E(?:choTiming|lementwiseLayer|mbeddedSQLEntityClass|mbeddedSQLExpression|mbeddingLayer|mptySpaceF|ncryptFile|ntityFunction|ntityStore|stimatedPointProcess|stimatedVariogramModel|valuationEnvironment|valuationPrivileges|xpirationDate|xpressionTree|xtendedEntityClass|xternalEvaluate|xternalFunction|xternalIdentifier|xternalObject|xternalSessionObject|xternalSessions|xternalStorageBase|xternalStorageDownload|xternalStorageGet|xternalStorageObject|xternalStoragePut|xternalStorageUpload|xternalValue|xtractLayer))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:F(?:aceRecognize|eatureDistance|eatureExtract|eatureExtraction|eatureExtractor|eatureExtractorFunction|ileConvert|ileFormatProperties|ileNameToFormatList|ileSystemTree|ilteredEntityClass|indChannels|indEquationalProof|indExternalEvaluators|indGeometricConjectures|indImageText|indIsomers|indMoleculeSubstructure|indPointProcessParameters|indSystemModelEquilibrium|indTextualAnswer|lattenLayer|orAllType|ormControl|orwardCloudCredentials|oxHReduce|rameListVideo|romRawPointer|unctionCompile|unctionCompileExport|unctionCompileExportByteArray|unctionCompileExportLibrary|unctionCompileExportString|unctionDeclaration|unctionLayer|unctionPoles))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:G(?:alleryView|atedRecurrentLayer|enerateDerivedKey|enerateDigitalSignature|enerateFileSignature|enerateSecuredAuthenticationKey|eneratedAssetFormat|eneratedAssetLocation|eoGraphValuePlot|eoOrientationData|eometricAssertion|eometricScene|eometricStep|eometricStylingRules|eometricTest|ibbsPointProcess|raphTree|ridVideo))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:H(?:andlerFunctions|andlerFunctionsKeys|ardcorePointProcess|istogramPointDensity))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:I(?:gnoreIsotopes|gnoreStereochemistry|mageAugmentationLayer|mageBoundingBoxes|mageCases|mageContainsQ|mageContents|mageGraphics|magePosition|magePyramid|magePyramidApply|mageStitch|mportedObject|ncludeAromaticBonds|ncludeHydrogens|ncludeRelatedTables|nertEvaluate|nertExpression|nfiniteFuture|nfinitePast|nhomogeneousPoissonPointProcess|nitialEvaluationHistory|nitializationObject|nitializationObjects|nitializationValue|nitialize|nputPorts|ntegrateChangeVariables|nterfaceSwitched|ntersectedEntityClass|nverseImagePyramid))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:K(?:ernelConfiguration|ernelFunction))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:L(?:earningRateMultipliers|ibraryFunctionDeclaration|icenseEntitlementObject|icenseEntitlements|icensingSettings|inearLayer|iteralType|oadCompiledComponent|ocalResponseNormalizationLayer|ongShortTermMemoryLayer|ossFunction))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:M(?:IMETypeToFormatList|ailExecute|ailFolder|ailItem|ailSearch|ailServerConnect|ailServerConnection|aternPointProcess|axDisplayedChildren|axTrainingRounds|axWordGap|eanAbsoluteLossLayer|eanAround|eanPointDensity|eanSquaredLossLayer|ergingFunction|idpoint|issingValuePattern|issingValueSynthesis|olecule|oleculeAlign|oleculeContainsQ|oleculeDraw|oleculeFreeQ|oleculeGraph|oleculeMatchQ|oleculeMaximumCommonSubstructure|oleculeModify|oleculeName|oleculePattern|oleculePlot|oleculePlot3D|oleculeProperty|oleculeQ|oleculeRecognize|oleculeSubstructureCount|oleculeValue))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:N(?:BodySimulation|BodySimulationData|earestNeighborG|estTree|etAppend|etArray|etArrayLayer|etBidirectionalOperator|etChain|etDecoder|etDelete|etDrop|etEncoder|etEvaluationMode|etExternalObject|etExtract|etFlatten|etFoldOperator|etGANOperator|etGraph|etInitialize|etInsert|etInsertSharedArrays|etJoin|etMapOperator|etMapThreadOperator|etMeasurements|etModel|etNestOperator|etPairEmbeddingOperator|etPort|etPortGradient|etPrepend|etRename|etReplace|etReplacePart|etStateObject|etTake|etTrain|etTrainResultsObject|etUnfold|etworkPacketCapture|etworkPacketRecording|etworkPacketTrace|eymanScottPointProcess|ominalScale|ormalizationLayer|umericArray|umericArrayQ|umericArrayType))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:O(?:peratorApplied|rderingLayer|rdinalScale|utputPorts|verlayVideo))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:P(?:acletSymbol|addingLayer|agination|airCorrelationG|arametricRampLayer|arentEdgeLabel|arentEdgeLabelFunction|arentEdgeLabelStyle|arentEdgeShapeFunction|arentEdgeStyle|arentEdgeStyleFunction|artLayer|artProtection|atternFilling|atternReaction|enttinenPointProcess|erpendicularBisector|ersistenceLocation|ersistenceTime|ersistentObject|ersistentObjects|ersistentSymbol|itchRecognize|laceholderLayer|laybackSettings|ointCountDistribution|ointDensity|ointDensityFunction|ointProcessEstimator|ointProcessFitTest|ointProcessParameterAssumptions|ointProcessParameterQ|ointStatisticFunction|ointValuePlot|oissonPointProcess|oolingLayer|rependLayer|roofObject|ublisherID))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:Q(?:uestionGenerator|uestionInterface|uestionObject|uestionSelector))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:R(?:andomArrayLayer|andomInstance|andomPointConfiguration|andomTree|eactionBalance|eactionBalancedQ|ecalibrationFunction|egisterExternalEvaluator|elationalDatabase|emoteAuthorizationCaching|emoteBatchJobAbort|emoteBatchJobObject|emoteBatchJobs|emoteBatchMapSubmit|emoteBatchSubmissionEnvironment|emoteBatchSubmit|emoteConnect|emoteConnectionObject|emoteEvaluate|emoteFile|emoteInputFiles|emoteProviderSettings|emoteRun|emoteRunProcess|emovalConditions|emoveAudioStream|emoveChannelListener|emoveChannelSubscribers|emoveVideoStream|eplicateLayer|eshapeLayer|esizeLayer|esourceFunction|esourceRegister|esourceRemove|esourceSubmit|esourceSystemBase|esourceSystemPath|esourceUpdate|esourceVersion|everseApplied|ipleyK|ipleyRassonRegion|ootTree|ulesTree))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:S(?:ameTestProperties|ampledEntityClass|earchAdjustment|earchIndexObject|earchIndices|earchQueryString|earchResultObject|ecuredAuthenticationKey|ecuredAuthenticationKeys|ecurityCertificate|equenceIndicesLayer|equenceLastLayer|equenceMostLayer|equencePredict|equencePredictorFunction|equenceRestLayer|equenceReverseLayer|erviceRequest|erviceSubmit|etFileFormatProperties|etSystemModel|lideShowVideo|moothPointDensity|nippet|nippetsVideo|nubPolyhedron|oftmaxLayer|olidBoundaryLoadValue|olidDisplacementCondition|olidFixedCondition|olidMechanicsPDEComponent|olidMechanicsStrain|olidMechanicsStress|ortedEntityClass|ourceLink|patialBinnedPointData|patialBoundaryCorrection|patialEstimate|patialEstimatorFunction|patialJ|patialNoiseLevel|patialObservationRegionQ|patialPointData|patialPointSelect|patialRandomnessTest|patialTransformationLayer|patialTrendFunction|peakerMatchQ|peechCases|peechInterpreter|peechRecognize|plice|tartExternalSession|tartWebSession|tereochemistryElements|traussHardcorePointProcess|traussPointProcess|ubsetCases|ubsetCount|ubsetPosition|ubsetReplace|ubtitleTrackSelection|ummationLayer|ymmetricDifference|ynthesizeMissingValues|ystemCredential|ystemCredentialData|ystemCredentialKey|ystemCredentialKeys|ystemCredentialStoreObject|ystemInstall|ystemModel|ystemModelExamples|ystemModelLinearize|ystemModelMeasurements|ystemModelParametricSimulate|ystemModelPlot|ystemModelReliability|ystemModelSimulate|ystemModelSimulateSensitivity|ystemModelSimulationData|ystemModeler|ystemModels))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:T(?:ableView|argetDevice|argetSystem|ernaryListPlot|ernaryPlotCorners|extCases|extContents|extElement|extPosition|extSearch|extSearchReport|extStructure|homasPointProcess|hreaded|hreadingLayer|ickDirection|ickLabelOrientation|ickLabelPositioning|ickLabels|ickLengths|ickPositions|oRawPointer|otalLayer|ourVideo|rainImageContentDetector|rainTextContentDetector|rainingProgressCheckpointing|rainingProgressFunction|rainingProgressMeasurements|rainingProgressReporting|rainingStoppingCriterion|rainingUpdateSchedule|ransposeLayer|ree|reeCases|reeChildren|reeCount|reeData|reeDelete|reeDepth|reeElementCoordinates|reeElementLabel|reeElementLabelFunction|reeElementLabelStyle|reeElementShape|reeElementShapeFunction|reeElementSize|reeElementSizeFunction|reeElementStyle|reeElementStyleFunction|reeExpression|reeExtract|reeFold|reeInsert|reeLayout|reeLeafCount|reeLeafQ|reeLeaves|reeLevel|reeMap|reeMapAt|reeOutline|reePosition|reeQ|reeReplacePart|reeRules|reeScan|reeSelect|reeSize|reeTraversalOrder|riangleCenter|riangleConstruct|riangleMeasurement|ypeDeclaration|ypeEvaluate|ypeOf|ypeSpecifier|yped))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:U(?:RLDownloadSubmit|nconstrainedParameters|nionedEntityClass|niqueElements|nitVectorLayer|nlabeledTree|nmanageObject|nregisterExternalEvaluator|pdateSearchIndex|seEmbeddedLibrary))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:V(?:alenceErrorHandling|alenceFilling|aluePreprocessingFunction|andermondeMatrix|arianceGammaPointProcess|ariogramFunction|ariogramModel|ectorAround|erifyDerivedKey|erifyDigitalSignature|erifyFileSignature|erifyInterpretation|ideo|ideoCapture|ideoCombine|ideoDelete|ideoExtractFrames|ideoFrameList|ideoFrameMap|ideoGenerator|ideoInsert|ideoIntervals|ideoJoin|ideoMap|ideoMapList|ideoMapTimeSeries|ideoPadding|ideoPause|ideoPlay|ideoQ|ideoRecord|ideoReplace|ideoScreenCapture|ideoSplit|ideoStop|ideoStream|ideoStreams|ideoTimeStretch|ideoTrackSelection|ideoTranscode|ideoTransparency|ideoTrim))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:W(?:ebAudioSearch|ebColumn|ebElementObject|ebExecute|ebImage|ebImageSearch|ebItem|ebRow|ebSearch|ebSessionObject|ebSessions|ebWindowObject|ikidataData|ikidataSearch|ikipediaSearch|ithCleanup|ithLock))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:Z(?:oomCenter|oomFactor))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:\\$(?:AllowExternalChannelFunctions|AudioDecoders|AudioEncoders|BlockchainBase|ChannelBase|CompilerEnvironment|CookieStore|CryptographicEllipticCurveNames|CurrentWebSession|DataStructures|DefaultNetworkInterface|DefaultProxyRules|DefaultRemoteBatchSubmissionEnvironment|DefaultRemoteKernel|DefaultSystemCredentialStore|ExternalIdentifierTypes|ExternalStorageBase|GeneratedAssetLocation|IncomingMailSettings|Initialization|InitializationContexts|MaxDisplayedChildren|NetworkInterfaces|NoValue|PersistenceBase|PersistencePath|PreInitialization|PublisherID|ResourceSystemBase|ResourceSystemPath|SSHAuthentication|ServiceCreditsAvailable|SourceLink|SubtitleDecoders|SubtitleEncoders|SystemCredentialStore|TargetSystems|TestFileName|VideoDecoders|VideoEncoders|VoiceStyles))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:A(?:llFalse|nyFalse))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:B(?:oolean))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:C(?:loudbase|omplexQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:D(?:ataSet))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:E(?:xpandFilename|xportPacket))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:F(?:ailed|alseQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:I(?:nterpolationFunction|nterpolationPolynomial))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:M(?:atch))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:O(?:ptionPattern|ptionsQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:R(?:ationalQ|ealQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:S(?:tringMatch|ymbolQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:U(?:nSameQ|rlExecute))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:\\$(?:PathNameSeparator|RegisteredUsername))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:E(?:cho|xit))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:I(?:n|nString))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:O(?:ut))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:P(?:rint))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:Q(?:uit))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:\\$(?:HistoryLength|Line|Post|Pre|PrePrint|PreRead|SyntaxHandler))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))",name:"variable.function.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)",name:"symbol.unrecognized.wolfram"}]}},scopeName:"source.wolfram",aliases:["wl"]});var t=[e];export{t as default}; diff --git a/assets/chunks/xml.BzTcx3OS.js b/assets/chunks/xml.BzTcx3OS.js new file mode 100644 index 000000000..c0e65ed98 --- /dev/null +++ b/assets/chunks/xml.BzTcx3OS.js @@ -0,0 +1 @@ +import e from"./java.ClXEvkw9.js";const n=Object.freeze({displayName:"XML",name:"xml",patterns:[{begin:"(<\\?)\\s*([-_a-zA-Z0-9]+)",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-zA-Z_][:a-zA-Z0-9_.-]*)",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:"(<)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(?=(\\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:"(>)(</)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(>)",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-zA-Z_][:a-zA-Z0-9_.-]*)(\\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-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)",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-zA-Z_][:a-zA-Z0-9_.-]*)(;)",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"]});var a=[...e,n];export{a as default}; diff --git a/assets/chunks/xsl.lJB8dDLf.js b/assets/chunks/xsl.lJB8dDLf.js new file mode 100644 index 000000000..b0e90f757 --- /dev/null +++ b/assets/chunks/xsl.lJB8dDLf.js @@ -0,0 +1 @@ +import e from"./xml.BzTcx3OS.js";import"./java.ClXEvkw9.js";const n=Object.freeze({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:" (?:([-_a-zA-Z0-9]+)((:)))?([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"]});var m=[...e,n];export{m as default}; diff --git a/assets/chunks/yaml.C5gCGmDW.js b/assets/chunks/yaml.C5gCGmDW.js new file mode 100644 index 000000000..df720f132 --- /dev/null +++ b/assets/chunks/yaml.C5gCGmDW.js @@ -0,0 +1,200 @@ +const n=Object.freeze({displayName:"YAML",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:`(?x) +(?= +(?x: +[^\\s[-?:,\\[\\]{}#&*!|>'"%@\`]] +| [?:-] \\S +) +( +[^\\s:] +| : \\S +| \\s+ (?![#\\s]) +)* +\\s* +: +(\\s|$) +) +`,end:`(?x) +(?= +\\s* $ +| \\s+ \\# +| \\s* : (\\s|$) +) +`,patterns:[{include:"#flow-scalar-plain-out-implicit-type"},{begin:`(?x) +[^\\s[-?:,\\[\\]{}#&*!|>'"%@\`]] +| [?:-] \\S +`,beginCaptures:{0:{name:"entity.name.tag.yaml"}},contentName:"entity.name.tag.yaml",end:`(?x) +(?= +\\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:`(?x) +\\G +(TAG) +(?:[ \\t]+ +((?:!(?:[0-9A-Za-z\\-]*!)?)) +(?:[ \\t]+ ( +! (?x: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )* +| (?![,!\\[\\]{}]) (?x: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+ +) +)? +)? +`},{captures:{1:{name:"support.other.directive.reserved.yaml"},2:{name:"string.unquoted.directive-name.yaml"},3:{name:"string.unquoted.directive-parameter.yaml"}},match:"(?x) \\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:`(?x) +(?= +(?: +[^\\s[-?:,\\[\\]{}#&*!|>'"%@\`]] +| [?:-] [^\\s[\\[\\]{},]] +) +( +[^\\s:[\\[\\]{},]] +| : [^\\s[\\[\\]{},]] +| \\s+ (?![#\\s]) +)* +\\s* +: +(\\s|$) +) +`,end:`(?x) +(?= +\\s* $ +| \\s+ \\# +| \\s* : (\\s|$) +| \\s* : [\\[\\]{},] +| \\s* [\\[\\]{},] +) +`,name:"meta.flow-pair.key.yaml",patterns:[{include:"#flow-scalar-plain-in-implicit-type"},{begin:`(?x) +[^\\s[-?:,\\[\\]{}#&*!|>'"%@\`]] +| [?:-] [^\\s[\\[\\]{},]] +`,beginCaptures:{0:{name:"entity.name.tag.yaml"}},contentName:"entity.name.tag.yaml",end:`(?x) +(?= +\\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:'\\\\([0abtnvfre "/\\\\N_Lp]|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:`(?x) +[^\\s[-?:,\\[\\]{}#&*!|>'"%@\`]] +| [?:-] [^\\s[\\[\\]{},]] +`,end:`(?x) +(?= +\\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:`(?x) +(?x: +(null|Null|NULL|~) +| (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF) +| ( +(?: +[-+]? 0b [0-1_]+ +| [-+]? 0 [0-7_]+ +| [-+]? (?: 0|[1-9][0-9_]*) +| [-+]? 0x [0-9a-fA-F_]+ +| [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ +) +) +| ( +(?x: +[-+]? (?: [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) +) +) +| ( +(?x: +\\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:`(?x) +[^\\s[-?:,\\[\\]{}#&*!|>'"%@\`]] +| [?:-] \\S +`,end:`(?x) +(?= +\\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:`(?x) +(?x: +(null|Null|NULL|~) +| (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF) +| ( +(?: +[-+]? 0b [0-1_]+ +| [-+]? 0 [0-7_]+ +| [-+]? (?: 0|[1-9][0-9_]*) +| [-+]? 0x [0-9a-fA-F_]+ +| [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ +) +) +| ( +(?x: +[-+]? (?: [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) +) +) +| ( +(?x: +\\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})? +)? +) +) +| (=) +| (<<) +) +(?x: +(?= +\\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:`(?x) +\\G +(?: +! < (?: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+ > +| (?:!(?:[0-9A-Za-z\\-]*!)?) (?: %[0-9A-Fa-f]{2} | [0-9A-Za-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"]});var e=[n];export{e as default}; diff --git a/assets/chunks/zenscript.B1nm99XP.js b/assets/chunks/zenscript.B1nm99XP.js new file mode 100644 index 000000000..82958c88e --- /dev/null +++ b/assets/chunks/zenscript.B1nm99XP.js @@ -0,0 +1,2 @@ +const e=Object.freeze({displayName:"ZenScript",fileTypes:["zs"],name:"zenscript",patterns:[{comment:"numbers",match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b",name:"constant.numeric.zenscript"},{comment:"prefixedNumbers",match:"\\b\\-?(0b|0x|0o|0B|0X|0O)(0|[1-9a-fA-F][0-9a-fA-F_]*)[a-zA-Z_]*\\b",name:"constant.numeric.zenscript"},{include:"#code"},{comment:"arrays",match:"\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)(?=\\[)",name:"storage.type.object.array.zenscript"}],repository:{brackets:{patterns:[{captures:{1:{name:"keyword.control.zenscript"},2:{name:"keyword.other.zenscript"},3:{name:"keyword.control.zenscript"},4:{name:"variable.other.zenscript"},5:{name:"keyword.control.zenscript"},6:{name:"constant.numeric.zenscript"},7:{name:"keyword.control.zenscript"}},comment:"items and blocks",match:"(<)\\b(.*?)(:(.*?(:(\\*|\\d+)?)?)?)(>)",name:"keyword.other.zenscript"}]},class:{captures:{1:{name:"storage.type.zenscript"},2:{name:"entity.name.type.class.zenscript"}},comment:"class",match:"(zenClass)\\s+(\\w+)",name:"meta.class.zenscript"},code:{patterns:[{include:"#class"},{include:"#functions"},{include:"#dots"},{include:"#quotes"},{include:"#brackets"},{include:"#comments"},{include:"#var"},{include:"#keywords"},{include:"#constants"},{include:"#operators"}]},comments:{patterns:[{comment:"inline comments",match:`//[^ +]*`,name:"comment.line.double=slash"},{begin:"\\/\\*",beginCaptures:{0:{name:"comment.block"}},comment:"block comments",end:"\\*\\/",endCaptures:{0:{name:"comment.block"}},name:"comment.block"}]},dots:{captures:{1:{name:"storage.type.zenscript"},2:{name:"keyword.control.zenscript"},5:{name:"keyword.control.zenscript"}},comment:"dots",match:"\\b(\\w+)(\\.)(\\w+)((\\.)(\\w+))*",name:"plain.text.zenscript"},functions:{captures:{0:{name:"storage.type.function.zenscript"},1:{name:"entity.name.function.zenscript"}},comment:"functions",match:"function\\s+([A-Za-z_$][\\w$]*)\\s*(?=\\()",name:"meta.function.zenscript"},keywords:{patterns:[{comment:"statement keywords",match:"\\b(instanceof|get|implements|set|import|function|override|const|if|else|do|while|for|throw|panic|lock|try|catch|finally|return|break|continue|switch|case|default|in|is|as|match|throws|super|new)\\b",name:"keyword.control.zenscript"},{comment:"storage keywords",match:"\\b(zenClass|zenConstructor|alias|class|interface|enum|struct|expand|variant|set|void|bool|byte|sbyte|short|ushort|int|uint|long|ulong|usize|float|double|char|string)\\b",name:"storage.type.zenscript"},{comment:"modifier keywords",match:"\\b(variant|abstract|final|private|public|export|internal|static|protected|implicit|virtual|extern|immutable)\\b",name:"storage.modifier.zenscript"},{comment:"annotation keywords",match:"\\b(Native|Precondition)\\b",name:"entity.other.attribute-name"},{comment:"language keywords",match:"\\b(null|true|false)\\b",name:"constant.language"}]},operators:{patterns:[{comment:"math operators",match:"\\b(\\.|\\.\\.|\\.\\.\\.|,|\\+|\\+=|\\+\\+|-|-=|--|~|~=|\\*|\\*=|/|/=|%|%=|\\||\\|=|\\|\\||&|&=|&&|\\^|\\^=|\\?|\\?\\.|\\?\\?|<|<=|<<|<<=|>|>=|>>|>>=|>>>|>>>=|=>|=|==|===|!|!=|!==|\\$|`)\\b",name:"keyword.control"},{comment:"colons",match:"\\b(;|:)\\b",name:"keyword.control"}]},quotes:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.zenscript"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.zenscript"}},name:"string.quoted.double.zenscript",patterns:[{match:"\\\\.",name:"constant.character.escape.zenscript"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.zenscript"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.zenscript"}},name:"string.quoted.single.zenscript",patterns:[{match:"\\\\.",name:"constant.character.escape.zenscript"}]}]},var:{comment:"var",match:"\\b(val|var)\\b",name:"storage.type"}},scopeName:"source.zenscript"});var t=[e];export{t as default}; diff --git a/assets/chunks/zig.Bsp1M94H.js b/assets/chunks/zig.Bsp1M94H.js new file mode 100644 index 000000000..9e732ee10 --- /dev/null +++ b/assets/chunks/zig.Bsp1M94H.js @@ -0,0 +1 @@ +const e=Object.freeze({displayName:"Zig",fileTypes:["zig","zon"],name:"zig",patterns:[{include:"#comments"},{include:"#strings"},{include:"#keywords"},{include:"#operators"},{include:"#numbers"},{include:"#support"},{include:"#variables"}],repository:{commentContents:{patterns:[{match:"\\b(TODO|FIXME|XXX|NOTE)\\b:?",name:"keyword.todo.zig"}]},comments:{patterns:[{begin:"//[!/](?=[^/])",end:"$",name:"comment.line.documentation.zig",patterns:[{include:"#commentContents"}]},{begin:"//",end:"$",name:"comment.line.double-slash.zig",patterns:[{include:"#commentContents"}]}]},keywords:{patterns:[{match:"\\binline\\b(?!\\s*\\bfn\\b)",name:"keyword.control.repeat.zig"},{match:"\\b(while|for)\\b",name:"keyword.control.repeat.zig"},{match:"\\b(extern|packed|export|pub|noalias|inline|comptime|volatile|align|linksection|threadlocal|allowzero|noinline|callconv)\\b",name:"keyword.storage.zig"},{match:"\\b(struct|enum|union|opaque)\\b",name:"keyword.structure.zig"},{match:"\\b(asm|unreachable)\\b",name:"keyword.statement.zig"},{match:"\\b(break|return|continue|defer|errdefer)\\b",name:"keyword.control.flow.zig"},{match:"\\b(await|resume|suspend|async|nosuspend)\\b",name:"keyword.control.async.zig"},{match:"\\b(try|catch)\\b",name:"keyword.control.trycatch.zig"},{match:"\\b(if|else|switch|orelse)\\b",name:"keyword.control.conditional.zig"},{match:"\\b(null|undefined)\\b",name:"keyword.constant.default.zig"},{match:"\\b(true|false)\\b",name:"keyword.constant.bool.zig"},{match:"\\b(usingnamespace|test|and|or)\\b",name:"keyword.default.zig"},{match:"\\b(bool|void|noreturn|type|error|anyerror|anyframe|anytype|anyopaque)\\b",name:"keyword.type.zig"},{match:"\\b(f16|f32|f64|f80|f128|u\\d+|i\\d+|isize|usize|comptime_int|comptime_float)\\b",name:"keyword.type.integer.zig"},{match:"\\b(c_char|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|c_longlong|c_ulonglong|c_longdouble)\\b",name:"keyword.type.c.zig"}]},numbers:{patterns:[{match:"\\b0x[0-9a-fA-F][0-9a-fA-F_]*(\\.[0-9a-fA-F][0-9a-fA-F_]*)?([pP][+-]?[0-9a-fA-F_]+)?\\b",name:"constant.numeric.hexfloat.zig"},{match:"\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?\\b",name:"constant.numeric.float.zig"},{match:"\\b[0-9][0-9_]*\\b",name:"constant.numeric.decimal.zig"},{match:"\\b0x[a-fA-F0-9_]+\\b",name:"constant.numeric.hexadecimal.zig"},{match:"\\b0o[0-7_]+\\b",name:"constant.numeric.octal.zig"},{match:"\\b0b[01_]+\\b",name:"constant.numeric.binary.zig"},{match:"\\b[0-9](([eEpP][+-])|[0-9a-zA-Z_])*(\\.(([eEpP][+-])|[0-9a-zA-Z_])*)?([eEpP][+-])?[0-9a-zA-Z_]*\\b",name:"constant.numeric.invalid.zig"}]},operators:{patterns:[{match:"(?<=\\[)\\*c(?=\\])",name:"keyword.operator.c-pointer.zig"},{match:"(\\b(and|or)\\b)|(==|!=|<=|>=|<|>)",name:"keyword.operator.comparison.zig"},{match:"(-%?|\\+%?|\\*%?|/|%)=?",name:"keyword.operator.arithmetic.zig"},{match:"(<<%?|>>|!|&|\\^|\\|)=?",name:"keyword.operator.bitwise.zig"},{match:"(==|\\+\\+|\\*\\*|->)",name:"keyword.operator.special.zig"}]},stringcontent:{patterns:[{match:`\\\\([nrt'"\\\\]|(x[0-9a-fA-F]{2})|(u\\{[0-9a-fA-F]+\\}))`,name:"constant.character.escape.zig"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.zig"}]},strings:{patterns:[{begin:'"',end:'"',name:"string.quoted.double.zig",patterns:[{include:"#stringcontent"}]},{begin:"\\\\\\\\",end:"$",name:"string.multiline.zig"},{match:"'([^'\\\\]|\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.))'",name:"string.quoted.single.zig"}]},support:{patterns:[{comment:"Built-in functions",match:"@[_a-zA-Z][_a-zA-Z0-9]*",name:"support.function.builtin.zig"}]},variables:{patterns:[{name:"meta.function.declaration.zig",patterns:[{captures:{1:{name:"storage.type.function.zig"},2:{name:"entity.name.type.zig"}},match:"\\b(fn)\\s+([A-Z][a-zA-Z0-9]*)\\b"},{captures:{1:{name:"storage.type.function.zig"},2:{name:"entity.name.function.zig"}},match:"\\b(fn)\\s+([_a-zA-Z][_a-zA-Z0-9]*)\\b"},{begin:'\\b(fn)\\s+@"',beginCaptures:{1:{name:"storage.type.function.zig"}},end:'"',name:"entity.name.function.string.zig",patterns:[{include:"#stringcontent"}]},{match:"\\b(const|var|fn)\\b",name:"keyword.default.zig"}]},{name:"meta.function.call.zig",patterns:[{match:"([A-Z][a-zA-Z0-9]*)(?=\\s*\\()",name:"entity.name.type.zig"},{match:"([_a-zA-Z][_a-zA-Z0-9]*)(?=\\s*\\()",name:"entity.name.function.zig"}]},{name:"meta.variable.zig",patterns:[{match:"\\b[_a-zA-Z][_a-zA-Z0-9]*\\b",name:"variable.zig"},{begin:'@"',end:'"',name:"variable.string.zig",patterns:[{include:"#stringcontent"}]}]}]}},scopeName:"source.zig"});var n=[e];export{n as default}; diff --git a/assets/concepts_include-tree.md.BXieZTN4.js b/assets/concepts_include-tree.md.BXieZTN4.js new file mode 100644 index 000000000..8c685474c --- /dev/null +++ b/assets/concepts_include-tree.md.BXieZTN4.js @@ -0,0 +1,111 @@ +import{_ as l,c as p,I as t,w as a,a7 as n,E as c,o as r,l as s,a as e}from"./chunks/framework.Be4oCqIX.js";const I=JSON.parse('{"title":"Include Tree","description":"","frontmatter":{},"headers":[],"relativePath":"concepts/include-tree.md","filePath":"concepts/include-tree.md"}'),D={name:"concepts/include-tree.md"},y=n(`<h1 id="include-tree" tabindex="-1">Include Tree <a class="header-anchor" href="#include-tree" aria-label="Permalink to "Include Tree"">​</a></h1><p>When Coalesce maps from the your POCO objects that are returned from EF Core queries, it will follow a structure called an <code>IncludeTree</code> to determine what relationships to follow and how deep to go in re-creating that structure in the mapped DTOs.</p><h2 id="purpose" tabindex="-1">Purpose <a class="header-anchor" href="#purpose" aria-label="Permalink to "Purpose"">​</a></h2><p>Without an <code>IncludeTree</code> present, Coalesce will map the entire object graph that is reachable from the root object. This can often spiral out of control if there aren't any rules defining how far to go while turning this graph into a tree.</p><p>For example, suppose you had the following model with a many-to-many relationship (key properties omitted for brevity):</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">ManyToMany</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Projects"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> ICollection</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">EmployeeProject</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">EmployeeProjects</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> static</span><span style="color:#4EC9B0;"> IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">> </span><span style="color:#DCDCAA;">WithProjectsAndMembers</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#9CDCFE;"> db</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">ClaimsPrincipal</span><span style="color:#9CDCFE;"> user</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#6A9955;"> // Load all projects of an employee, as well as all members of those projects.</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Employees</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Include</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeProjects</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">ThenInclude</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ep</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">ep</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Project</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeProjects</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">ThenInclude</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ep</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">ep</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Employee</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Project</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">ManyToMany</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Employees"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> ICollection</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">EmployeeProject</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">EmployeeProjects</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> EmployeeProject</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> Employee</span><span style="color:#9CDCFE;"> Employee</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> Project</span><span style="color:#9CDCFE;"> Project</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>Now, imagine that you have five employees and five projects, with every employee being a member of every project (i.e. there are 25 EmployeeProject rows).</p><p>Your client code makes a call to the Coalesce-generated API to load Employee #1 using the custom data source:</p>`,8),i=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"Employee"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"EmployeeViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," employee"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," EmployeeViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"employee"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," Employee"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"DataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"WithProjectsAndMembers"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"employee"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")])])])],-1),d=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," employee"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"Employee"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"employee"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," employee"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"WithProjectsAndMembers"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"employee"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")])])])],-1),C=n(`<p>If you're already familiar with the fact that an <code>IncludeTree</code> is implicitly created in this scenario, then imagine for a moment that this is not the case (if you're not familiar with this fact, then keep reading!).</p><p>After Coalesce has called your <a href="/Coalesce/modeling/model-components/data-sources.html">Data Sources</a> and evaluated the EF IQueryable returned, there are now 35 objects loaded into the current <code>DbContext</code> being used to handle this request - the 5 employees, 5 projects, and 25 relationships.</p><p>To map these objects to DTOs, we start with the root (employee #1) and expand outward from there until the entire object graph has been faithfully re-created with DTO objects, including all navigation properties.</p><p>The root DTO object (employee #1) then eventually is passed to the JSON serializer by ASP.NET Core to formulate the response to the request. As the object is serialized to JSON, the only objects that are not serialized are those that were already serialized as an ancestor of itself. What this ultimately means is that the structure of the serialized JSON with our example scenario ends up following a pattern like this (the vast majority of items have been omitted):</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki dark-plus vp-code"><code><span class="line"><span>Employee#1</span></span> +<span class="line"><span> EmployeeProject#1</span></span> +<span class="line"><span> Project#1</span></span> +<span class="line"><span> EmployeeProject#6</span></span> +<span class="line"><span> Employee#2</span></span> +<span class="line"><span> EmployeeProject#7</span></span> +<span class="line"><span> Project#2</span></span> +<span class="line"><span> ... continues down through all remaining employees and projects.</span></span> +<span class="line"><span> ...</span></span> +<span class="line"><span> EmployeeProject#11</span></span> +<span class="line"><span> Employee#3</span></span> +<span class="line"><span> ...</span></span> +<span class="line"><span> EmployeeProject#2</span></span> +<span class="line"><span> Project#2</span></span> +<span class="line"><span> ...</span></span></code></pre></div><p>See how the structure includes the EmployeeProjects of Employee#2? We didn't write our custom data source calls to <code>.Include</code> in such a way that indicated that we wanted the root employee, their projects, the employees of those projects, and then <strong>the projects of those employees</strong>. But, because the JSON serializer blindly follows the object graph, that's what gets serialized. It turns out that the depth of the tree increases on the order of <code>O(n^2)</code>, and the total size increases on the order of <code>Ω(n!)</code>.</p><p>This is where <code>IncludeTree</code> comes in. When you use a custom data source like we did above, Coalesce automatically captures the structure of the calls to <code>.Include</code> and <code>.ThenInclude</code>, and uses this to perform trimming during creation of the DTO objects.</p><p>With an <code>IncludeTree</code> in place, our new serialized structure looks like this:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki dark-plus vp-code"><code><span class="line"><span>Employee#1</span></span> +<span class="line"><span> EmployeeProject#1</span></span> +<span class="line"><span> Project#1</span></span> +<span class="line"><span> EmployeeProject#6</span></span> +<span class="line"><span> Employee#2</span></span> +<span class="line"><span> EmployeeProject#11</span></span> +<span class="line"><span> Employee#3</span></span> +<span class="line"><span> ...</span></span> +<span class="line"><span> EmployeeProject#2</span></span> +<span class="line"><span> Project#2</span></span> +<span class="line"><span> ...</span></span></code></pre></div><p>No more extra data trailing off the end of the projects' employees!</p><h2 id="usage" tabindex="-1">Usage <a class="header-anchor" href="#usage" aria-label="Permalink to "Usage"">​</a></h2><h3 id="custom-data-sources" tabindex="-1">Custom Data Sources <a class="header-anchor" href="#custom-data-sources" aria-label="Permalink to "Custom Data Sources"">​</a></h3><p>In most cases, you don't have to worry about creating an <code>IncludeTree</code>. When using the <a href="/Coalesce/modeling/model-components/data-sources.html#standard-data-source">Standard Data Source</a> (or a derivative), the structure of the <code>.Include</code> and <code>.ThenInclude</code> calls will be captured automatically and be turned into an <code>IncludeTree</code>.</p><p>However, there are sometimes cases where you perform complex loading in these methods that involves loading data into the current <code>DbContext</code> outside of the <code>IQueryable</code> that is returned from the method. The most common situation for this is needing to conditionally load related data - for example, load all children of an object where the child has a certain value of a Status property.</p><p>In these cases, Coalesce provides a pair of extension methods, <code>.IncludedSeparately</code> and <code>.ThenIncluded</code>, that can be used to merge in the structure of the data that was loaded separately from the main <code>IQueryable</code>.</p><p>For example:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">> </span><span style="color:#DCDCAA;">GetQuery</span><span style="color:#D4D4D4;">()</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#6A9955;"> // Load all projects that are complete, and their members, into the db context.</span></span> +<span class="line"><span style="color:#9CDCFE;"> Db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Projects</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Include</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">p</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">p</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeProjects</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">ThenInclude</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ep</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">ep</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Employee</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Where</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">p</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">p</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Status</span><span style="color:#D4D4D4;"> == </span><span style="color:#9CDCFE;">ProjectStatus</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Complete</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Load</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Return an employee query, and notify Coalesce that we loaded the projects in a different query.</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> Db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Employees</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">IncludedSeparately</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeProjects</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">ThenIncluded</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ep</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">ep</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Project</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeProjects</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">ThenIncluded</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ep</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">ep</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Employee</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>You can also override the <code>GetIncludeTree</code> method of the <a href="/Coalesce/modeling/model-components/data-sources.html#standard-data-source">Standard Data Source</a> to achieve the same result:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> IncludeTree</span><span style="color:#DCDCAA;"> GetIncludeTree</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">T</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">query</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">IDataSourceParameters</span><span style="color:#9CDCFE;"> parameters</span><span style="color:#D4D4D4;">) => </span><span style="color:#9CDCFE;">Db</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#9CDCFE;">Employees</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">IncludedSeparately</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeProjects</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">ThenIncluded</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ep</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">ep</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Project</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeProjects</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">ThenIncluded</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ep</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">ep</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Employee</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">GetIncludeTree</span><span style="color:#D4D4D4;">();</span></span></code></pre></div><h3 id="model-methods" tabindex="-1">Model Methods <a class="header-anchor" href="#model-methods" aria-label="Permalink to "Model Methods"">​</a></h3><p>If you have <a href="/Coalesce/modeling/model-components/methods.html">custom methods</a> that return object data, you may also want to control the structure of the returned data when it is serialized. Fortunately, you can also use <code>IncludeTree</code> in these situations. Without an <code>IncludeTree</code>, the entire object graph is traversed and serialized without limit.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>An <code>IncludeTree</code> can be obtained from any <code>IQueryable</code> by calling the <code>GetIncludeTree</code> extension method (<code>using IntelliTect.Coalesce.Helpers.IncludeTree</code>).</p><p>In situations where your root object isn't on your <code>DbContext</code> (see <a href="/Coalesce/modeling/model-types/external-types.html">External Types</a>), you can use <code>Enumerable.Empty<MyNonDbClass>().AsQueryable()</code> to get an <code>IQueryable</code> to start from. When you do this, you <strong>must</strong> use <code>IncludedSeparately</code> - the regular EF <code>Include</code> method won't work without a <code>DbSet</code>.</p></div><p>See the following two techniques for returning an <code>IncludeTree</code> from a custom method:</p><h4 id="itemresult-includetree" tabindex="-1">ItemResult.IncludeTree <a class="header-anchor" href="#itemresult-includetree" aria-label="Permalink to "ItemResult.IncludeTree"">​</a></h4><p>The easiest and most versatile way to return an <code>IncludeTree</code> from a custom method is to make that method return an <code>ItemResult<T></code>, and then set the <code>IncludeTree</code> property of the <code>ItemResult</code> object. For example:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> async</span><span style="color:#4EC9B0;"> Task</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">ItemResult</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">ICollection</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">>>> </span><span style="color:#DCDCAA;">GetChainOfCommand</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#9CDCFE;"> db</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#4EC9B0;"> IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">query</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Employees</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Include</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Supervisor</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> var</span><span style="color:#9CDCFE;"> ret</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#4EC9B0;"> List</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">>();</span></span> +<span class="line"><span style="color:#569CD6;"> var</span><span style="color:#9CDCFE;"> current</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">this</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;"> while</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">current</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Supervisor</span><span style="color:#D4D4D4;"> != </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> ret</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Push</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">current</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#9CDCFE;"> current</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">await</span><span style="color:#9CDCFE;"> query</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">FirstOrDefaultAsync</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeId</span><span style="color:#D4D4D4;"> == </span><span style="color:#9CDCFE;">current</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">SupervisorId</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#569CD6;"> new</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ret</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">includeTree</span><span style="color:#D4D4D4;">: </span><span style="color:#9CDCFE;">query</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">GetIncludeTree</span><span style="color:#D4D4D4;">());</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h4 id="out-parameter" tabindex="-1">Out Parameter <a class="header-anchor" href="#out-parameter" aria-label="Permalink to "Out Parameter"">​</a></h4><p>To tell Coalesce about the structure of the data returned from a model method, you can also add <code>out IncludeTree includeTree</code> to the signature of the method. Inside your method, set <code>includeTree</code> to an instance of an <code>IncludeTree</code>. However, this approach cannot be used on <code>async</code> methods, since <code>out</code> parameters are not allowed on async methods in C#. For example:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> ICollection</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">> </span><span style="color:#DCDCAA;">GetChainOfCommand</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#9CDCFE;"> db</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">out</span><span style="color:#4EC9B0;"> IncludeTree</span><span style="color:#9CDCFE;"> includeTree</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#4EC9B0;"> IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">query</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Employees</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Include</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Supervisor</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> var</span><span style="color:#9CDCFE;"> ret</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#4EC9B0;"> List</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">>();</span></span> +<span class="line"><span style="color:#569CD6;"> var</span><span style="color:#9CDCFE;"> current</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">this</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;"> while</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">current</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Supervisor</span><span style="color:#D4D4D4;"> != </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> ret</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Push</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">current</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#9CDCFE;"> current</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">query</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">FirstOrDefault</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeId</span><span style="color:#D4D4D4;"> == </span><span style="color:#9CDCFE;">current</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">SupervisorId</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#9CDCFE;"> includeTree</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">query</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">GetIncludeTree</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> ret</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="external-type-caveats" tabindex="-1">External Type Caveats <a class="header-anchor" href="#external-type-caveats" aria-label="Permalink to "External Type Caveats"">​</a></h3><p>One important point remains regarding <code>IncludeTree</code> - it is not used to control the serialization of objects which are not mapped to the database, known as <a href="/Coalesce/modeling/model-types/external-types.html">External Types</a>. External Types are always put into the DTOs when encountered (unless otherwise prevented by <a href="/Coalesce/modeling/model-components/attributes/dto-includes-excludes.html">[DtoIncludes] & [DtoExcludes]</a> or <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">Security Attributes</a>), with the assumption that because these objects are created by you (as opposed to Entity Framework), you are responsible for preventing any undesired circular references.</p><p>By not filtering unmapped properties, you as the developer don't need to account for them in every place throughout your application where they appear - instead, they 'just work' and show up on the client as expected.</p><p>Note also that this statement does not apply to database-mapped objects that hang off of unmapped objects - any time a database-mapped object appears, it will be controlled by your include tree. If no include tree is present (because nothing was specified for the unmapped property), these mapped objects hanging off of unmapped objects will be serialized freely and with all circular references, unless you include some calls to <code>.IncludedSeparately(m => m.MyUnmappedProperty.MyMappedProperty)</code> to limit those objects down.</p>`,33);function u(h,m,E,b,g,F){const o=c("CodeTabs");return r(),p("div",null,[y,t(o,null,{vue:a(()=>[i]),knockout:a(()=>[d]),_:1}),C])}const A=l(D,[["render",u]]);export{I as __pageData,A as default}; diff --git a/assets/concepts_include-tree.md.BXieZTN4.lean.js b/assets/concepts_include-tree.md.BXieZTN4.lean.js new file mode 100644 index 000000000..c9dca6cb9 --- /dev/null +++ b/assets/concepts_include-tree.md.BXieZTN4.lean.js @@ -0,0 +1,8 @@ +import{_ as l,c as p,I as t,w as a,a7 as n,E as c,o as r,l as s,a as e}from"./chunks/framework.Be4oCqIX.js";const I=JSON.parse('{"title":"Include Tree","description":"","frontmatter":{},"headers":[],"relativePath":"concepts/include-tree.md","filePath":"concepts/include-tree.md"}'),D={name:"concepts/include-tree.md"},y=n("",8),i=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"Employee"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"EmployeeViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," employee"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," EmployeeViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"employee"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," Employee"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"DataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"WithProjectsAndMembers"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"employee"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")])])])],-1),d=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," employee"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"Employee"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"employee"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," employee"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"WithProjectsAndMembers"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"employee"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")])])])],-1),C=n("",33);function u(h,m,E,b,g,F){const o=c("CodeTabs");return r(),p("div",null,[y,t(o,null,{vue:a(()=>[i]),knockout:a(()=>[d]),_:1}),C])}const A=l(D,[["render",u]]);export{I as __pageData,A as default}; diff --git a/assets/concepts_includes.md.Dnj1ImVb.js b/assets/concepts_includes.md.Dnj1ImVb.js new file mode 100644 index 000000000..b8a16ede1 --- /dev/null +++ b/assets/concepts_includes.md.Dnj1ImVb.js @@ -0,0 +1,50 @@ +import{_ as p,c as r,I as l,w as o,a as e,l as s,a7 as t,E as a,o as i}from"./chunks/framework.Be4oCqIX.js";const V=JSON.parse('{"title":"Includes String","description":"","frontmatter":{},"headers":[],"relativePath":"concepts/includes.md","filePath":"concepts/includes.md"}'),D={name:"concepts/includes.md"},d=s("h1",{id:"includes-string",tabindex:"-1"},[e("Includes String "),s("a",{class:"header-anchor",href:"#includes-string","aria-label":'Permalink to "Includes String"'},"​")],-1),y=s("p",null,'Coalesce provides a number of extension points for loading & serialization which make use of a concept called an "includes string" (also referred to as "include string" or just "includes").',-1),C=s("h2",{id:"includes-string-1",tabindex:"-1"},[e("Includes String "),s("a",{class:"header-anchor",href:"#includes-string-1","aria-label":'Permalink to "Includes String"'},"​")],-1),u=s("p",null,"The includes string is simply a string which can be set to any arbitrary value. It is passed from the client to the server in order to customize data loading and serialization. It can be set on both the TypeScript ViewModels and the ListViewModels.",-1),h=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"PersonViewModel"),s("span",{style:{color:"#D4D4D4"}},", "),s("span",{style:{color:"#9CDCFE"}},"PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," person"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"person"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")])])])],-1),m=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," person"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"Person"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"person"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ListViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"PersonList"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")])])])],-1),b=t(`<p>The default value (i.e. no action) is the empty string.</p><h3 id="special-values" tabindex="-1">Special Values <a class="header-anchor" href="#special-values" aria-label="Permalink to "Special Values"">​</a></h3><p>There are a few values of <code>includes</code> that are either set by default in the auto-generated views, or otherwise have special meaning:</p><table><thead><tr><th>Value</th><th>Description</th></tr></thead><tbody><tr><td><code>'none'</code></td><td>Setting <code>includes</code> to <code>none</code> suppresses the <a href="/Coalesce/modeling/model-components/data-sources.html#default-loading-behavior">Default Loading Behavior</a> provided by the <a href="/Coalesce/modeling/model-components/data-sources.html#standard-data-source">Standard Data Source</a> - The resulting data will be the requested object (or list of objects) and nothing more.</td></tr><tr><td><code>'admin-list'</code></td><td>Used when loading a list of objects in the <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.html">Vue admin list page</a>.</td></tr><tr><td><code>'admin-editor'</code></td><td>Used when loading an object in the <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-editor.html">Vue admin editor component</a>.</td></tr><tr><td><code>'Editor'</code></td><td>Used when loading an object in the generated Knockout CreateEdit views.</td></tr><tr><td><code>'<ModelName>ListGen'</code></td><td>Used when loading a list of objects in the generated Knockout Table and Cards views. For example, <code>PersonListGen</code></td></tr></tbody></table><h2 id="dtoincludes-dtoexcludes" tabindex="-1">DtoIncludes & DtoExcludes <a class="header-anchor" href="#dtoincludes-dtoexcludes" aria-label="Permalink to "DtoIncludes & DtoExcludes"">​</a></h2><p>Main document: <a href="/Coalesce/modeling/model-components/attributes/dto-includes-excludes.html">[DtoIncludes] & [DtoExcludes]</a>.</p><p>There are two C# attributes, <code>DtoIncludes</code> and <code>DtoExcludes</code>, that can be used to annotate your data model in order to customize what data gets put into the DTOs and ultimately serialized to JSON and sent out to the client.</p><p>When the database entries are returned to the client they will be trimmed based on the requested includes string and the values in <code>DtoExcludes</code> and <code>DtoIncludes</code>.</p><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>These attributes are <strong>not security attributes</strong> - consumers of your application's API can set the includes string to any value when making a request.</p><p>Do not use them to keep certain data private - use the <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">Security Attributes</a> family of attributes for that.</p></div><p>It is important to note that the value of the includes string will match against these attributes on <em>any</em> of your models that appears in the object graph being mapped to DTOs - it is not limited only to the model type of the root object.</p><div class="tip custom-block"><p class="custom-block-title">Important</p><p><code>DtoIncludes</code> does not ensure that specific data will be loaded from the database. It only <em>permits</em> what is <em>already</em> loaded into the current EF DbContext to be returned from the API. See <a href="/Coalesce/modeling/model-components/data-sources.html">Data Sources</a> to learn how to control what data gets loaded from the database.</p></div><h3 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h3><p>Server code:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#6A9955;"> // Don't include CreatedBy when editing - will be included for all other views</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DtoExcludes</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Editor"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> AppUser</span><span style="color:#9CDCFE;"> CreatedBy</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Only include the Person's Department when \`includes == "details"\` on the TypeScript ViewModel.</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DtoIncludes</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"details"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> Department</span><span style="color:#9CDCFE;"> Department</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // LastName will be included in all views</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> LastName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Department</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DtoIncludes</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"details"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> ICollection</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Person</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">People</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>Client code:</p>`,15),g=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"const"),s("span",{style:{color:"#4FC1FF"}}," personList"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"Editor"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"await"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}},"// Objects in personList.$items will not contain CreatedBy nor Department objects.")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"const"),s("span",{style:{color:"#4FC1FF"}}," personList2"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList2"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"await"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}},"// Objects in personList2.items will be allowed to contain both CreatedBy and Department objects. ")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}},"// Department will be allowed to include its other Person objects.")])])])],-1),E=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ListViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"PersonList"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"Editor"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"(() "),s("span",{style:{color:"#569CD6"}},"=>"),s("span",{style:{color:"#D4D4D4"}}," {")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}}," // objects in personList.items will not contain CreatedBy nor Department objects.")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#D4D4D4"}},"});")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," personList2"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ListViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"PersonList"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList2"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList2"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"(() "),s("span",{style:{color:"#569CD6"}},"=>"),s("span",{style:{color:"#D4D4D4"}}," {")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}}," // objects in personList2.items will be allowed to contain both CreatedBy and Department objects. Department will be allowed to include its other Person objects.")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#D4D4D4"}},"});")])])])],-1),w=s("h3",{id:"properties",tabindex:"-1"},[e("Properties "),s("a",{class:"header-anchor",href:"#properties","aria-label":'Permalink to "Properties"'},"​")],-1),_=t('<p>A comma-delimited list of values of <a href="/Coalesce/concepts/includes.html"><code>includes</code></a> on which to operate.</p><p>For <code>DtoIncludes</code>, this will be the values of <code>includes</code> for which this property will be <strong>allowed</strong> to be serialized and sent to the client.</p><p>For <code>DtoExcludes</code>, this will be the values of <code>includes</code> for which this property will <strong>not</strong> be serialized and sent to the client.</p>',3);function f(v,F,A,L,P,k){const n=a("CodeTabs"),c=a("Prop");return i(),r("div",null,[d,y,C,u,l(n,null,{vue:o(()=>[h]),knockout:o(()=>[m]),_:1}),b,l(n,null,{vue:o(()=>[g]),knockout:o(()=>[E]),_:1}),w,l(c,{def:"public string ContentViews { get; set; }",ctor:"1"}),e(),_])}const I=p(D,[["render",f]]);export{V as __pageData,I as default}; diff --git a/assets/concepts_includes.md.Dnj1ImVb.lean.js b/assets/concepts_includes.md.Dnj1ImVb.lean.js new file mode 100644 index 000000000..7ca91c8f4 --- /dev/null +++ b/assets/concepts_includes.md.Dnj1ImVb.lean.js @@ -0,0 +1,32 @@ +import{_ as p,c as r,I as l,w as o,a as e,l as s,a7 as t,E as a,o as i}from"./chunks/framework.Be4oCqIX.js";const V=JSON.parse('{"title":"Includes String","description":"","frontmatter":{},"headers":[],"relativePath":"concepts/includes.md","filePath":"concepts/includes.md"}'),D={name:"concepts/includes.md"},d=s("h1",{id:"includes-string",tabindex:"-1"},[e("Includes String "),s("a",{class:"header-anchor",href:"#includes-string","aria-label":'Permalink to "Includes String"'},"​")],-1),y=s("p",null,'Coalesce provides a number of extension points for loading & serialization which make use of a concept called an "includes string" (also referred to as "include string" or just "includes").',-1),C=s("h2",{id:"includes-string-1",tabindex:"-1"},[e("Includes String "),s("a",{class:"header-anchor",href:"#includes-string-1","aria-label":'Permalink to "Includes String"'},"​")],-1),u=s("p",null,"The includes string is simply a string which can be set to any arbitrary value. It is passed from the client to the server in order to customize data loading and serialization. It can be set on both the TypeScript ViewModels and the ListViewModels.",-1),h=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"PersonViewModel"),s("span",{style:{color:"#D4D4D4"}},", "),s("span",{style:{color:"#9CDCFE"}},"PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," person"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"person"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")])])])],-1),m=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," person"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"Person"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"person"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ListViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"PersonList"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")])])])],-1),b=t("",15),g=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"const"),s("span",{style:{color:"#4FC1FF"}}," personList"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"Editor"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"await"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}},"// Objects in personList.$items will not contain CreatedBy nor Department objects.")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"const"),s("span",{style:{color:"#4FC1FF"}}," personList2"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList2"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"await"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}},"// Objects in personList2.items will be allowed to contain both CreatedBy and Department objects. ")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}},"// Department will be allowed to include its other Person objects.")])])])],-1),E=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ListViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"PersonList"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"Editor"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"(() "),s("span",{style:{color:"#569CD6"}},"=>"),s("span",{style:{color:"#D4D4D4"}}," {")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}}," // objects in personList.items will not contain CreatedBy nor Department objects.")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#D4D4D4"}},"});")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," personList2"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ListViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"PersonList"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList2"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList2"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"(() "),s("span",{style:{color:"#569CD6"}},"=>"),s("span",{style:{color:"#D4D4D4"}}," {")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}}," // objects in personList2.items will be allowed to contain both CreatedBy and Department objects. Department will be allowed to include its other Person objects.")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#D4D4D4"}},"});")])])])],-1),w=s("h3",{id:"properties",tabindex:"-1"},[e("Properties "),s("a",{class:"header-anchor",href:"#properties","aria-label":'Permalink to "Properties"'},"​")],-1),_=t("",3);function f(v,F,A,L,P,k){const n=a("CodeTabs"),c=a("Prop");return i(),r("div",null,[d,y,C,u,l(n,null,{vue:o(()=>[h]),knockout:o(()=>[m]),_:1}),b,l(n,null,{vue:o(()=>[g]),knockout:o(()=>[E]),_:1}),w,l(c,{def:"public string ContentViews { get; set; }",ctor:"1"}),e(),_])}const I=p(D,[["render",f]]);export{V as __pageData,I as default}; diff --git a/assets/history.md.DvbsYBZt.js b/assets/history.md.DvbsYBZt.js new file mode 100644 index 000000000..819de3feb --- /dev/null +++ b/assets/history.md.DvbsYBZt.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as a,a7 as i}from"./chunks/framework.Be4oCqIX.js";const g=JSON.parse(`{"title":"Welcome to Coalesce's documentation!","description":"","frontmatter":{},"headers":[],"relativePath":"history.md","filePath":"history.md"}`),o={name:"history.md"},s=i('<h1 id="welcome-to-coalesce-s-documentation" tabindex="-1">Welcome to Coalesce's documentation! <a class="header-anchor" href="#welcome-to-coalesce-s-documentation" aria-label="Permalink to "Welcome to Coalesce's documentation!"">​</a></h1><p>Coalesce is a framework based on ASP.NET Core that makes rapidly building awesome websites much easier. A project that would take a 3 months to complete now takes 1 month. We built this because we got tired of writing all the boiler plate code that is necessary to make amazing sites.</p><p>It does this by allowing developers to focus on the creative aspects of the solution. The more mundane parts are generated automatically. This means that you get to focus on data modeling, business logic and front-end development. Coalesce does the plumbing.</p><p>Here is a typical workflow</p><ol><li>Build an EF Core data model with business logic</li><li>Coalesce generates controllers, TypeScript view models, API and view model documentation, and admin pages/examples</li><li>Build an interactive and intuitive user experience</li><li>Rinse and repeat</li></ol><h2 id="core-features" tabindex="-1">Core Features <a class="header-anchor" href="#core-features" aria-label="Permalink to "Core Features"">​</a></h2><ul><li>Built on the latest Microsoft ASP.NET Core</li><li>Easy to learn</li><li>TypeScript from the ground up</li><li>Flexibility to use MVC patterns as required</li><li>Admin pages for all your models are build automatically and include features like searching, sorting, and paging</li><li>Robust documentation for the framework</li><li>Automatically generated documentation for the API layer and TypeScript view models</li><li>Feature rich TypeScript view models that can be easily extended</li><li>Many extension points for customizations</li><li>Abstraction that doesn't require you know how everything works</li><li>Security and data trimming by role is built in</li><li>Flexibility about which data to return to the client</li><li>Open source</li></ul><h2 id="is-coalesce-for-everyone-and-every-project" tabindex="-1">Is Coalesce for Everyone and Every Project? <a class="header-anchor" href="#is-coalesce-for-everyone-and-every-project" aria-label="Permalink to "Is Coalesce for Everyone and Every Project?"">​</a></h2><p>Coalesce was designed to create line-of-business applications. It provides a more customizable and maintainable alternative to off the shelf customizable products like SharePoint and Sales Force.</p><p>You should consider using Coalesce if your project:</p><ul><li>Is small to medium size (1-200 classes)</li><li>Requires an interactive user experience</li><li>Has data entry requirements, especially forms, tables, etc.</li><li>Needs to get started quickly with functional prototypes that can become production software</li></ul><h2 id="design-decisions-and-limitations" tabindex="-1">Design Decisions and Limitations <a class="header-anchor" href="#design-decisions-and-limitations" aria-label="Permalink to "Design Decisions and Limitations"">​</a></h2><p>Coalesce is specifically designed to meet the needs of web developers. However, there are lots of ways to do this. We have made a set of decisions which we believe makes for a great development experience</p><ul><li>ASP.NET Core: there is no intent to back port this to an earlier version</li><li>EF Core for the object relational mapper</li><li>Currently uses the full framework because .NET Core doesn't supported the required functionality, yet</li><li>Knockout for client-side data binding</li><li>Business logic most easily lives in the model classes</li><li>Coalesce is designed for relational databases. This might change in the future, but not until we have a compelling use case.</li></ul><h2 id="how-does-it-work" tabindex="-1">How Does it Work? <a class="header-anchor" href="#how-does-it-work" aria-label="Permalink to "How Does it Work?"">​</a></h2><p>After you create your classes and the EF data context, Coalesce uses this information to generate code. When the Coalesce CLI (command line interface) is run, the following things happen:</p><ol><li>The model is validated to ensure that all the Coalesce specific requirements are met. This includes things like ensuring that all classes have a primary key assigned, validating that linked child objects have a key to their parent, etc. If issues are found, generation stops and the errors are displayed with advise to fix the issues.</li><li>The core files needed for Coalesce are copied to the target project. This includes TypeScript base classes, customizable templates, and other files for extension points. Each file is copied twice, once as a file that can be modified in the project and once as an original file. This ensures that if any changes are made by the user these files Coalesce will not overwrite the your changes.</li><li>The API controllers are generated. One is generated for each object. This includes methods that get a list of items, get a specific item, save an item, etc.</li><li>The TypeScript view models are created. There are two view models for each object. One is a list view model which allows for getting an displaying lists of a type of object. This includes full functionality to sort, filter, search, page, etc. Additionally, a view model that represents the individual object is also created. This has all the properties and methods of the server side object. This is basically a client-side proxy object for representing and manipulating the object on the server side. These objects seamlessly use the API controllers to interact with the server.</li><li>Next, the View controller are created. One is create for each model class and provide a tabular view, a card view (for mobile), an editor, and documentation.</li><li>Finally, the CSHTML views for the controller are created. These are the actual CSHTML for the above controllers. These not only provide administrative view and editing features, but also serve as an example of how to use the framework</li></ol><h2 id="general-guidance" tabindex="-1">General Guidance <a class="header-anchor" href="#general-guidance" aria-label="Permalink to "General Guidance"">​</a></h2><p>Here are a few things we have found helpful when using Coalesce</p><ul><li>Learn and embrace the Coalesce paradigm and work with it rather than trying to do things another way.</li><li>Following what we refer to as the 'well worn path' is very helpful. Try to stick to standard ways to do things rather than trying to use esoteric features.</li><li>Keep your models as consistent and straightforward as possible. Use relational modeling best practices.</li><li>Remember that public methods on your class models are added to the client side view models and this makes calling business logic from the client really easy.</li><li>Don't be afraid to fall back to building parts of your site using traditional methods. Coalesce isn't right for everything. But, honestly, we have only done this a few times, like 3.</li></ul><h1 id="the-story" tabindex="-1">The Story <a class="header-anchor" href="#the-story" aria-label="Permalink to "The Story"">​</a></h1><h2 id="why-coalesce" tabindex="-1">Why Coalesce <a class="header-anchor" href="#why-coalesce" aria-label="Permalink to "Why Coalesce"">​</a></h2><p>In 2014 several developers from IntelliTect got together to talk about our craft. There were lots of different backgrounds, but recently we had all been writing web code in C#. We discussed things we enjoyed and things we dreaded. There was an underlying commitment to providing customers with great sites at a reasonable cost. However, those things often seemed at odds because of the complexity of web development.</p><h2 id="the-problem" tabindex="-1">The Problem <a class="header-anchor" href="#the-problem" aria-label="Permalink to "The Problem"">​</a></h2><p>For example, writing AJAX drop down lists with type ahead takes quite a bit of plumbing. Layer onto this the need for view models that allow for validation and saving as the user moves from field to field. We absolutely want want to deliver visually pleasing sites with complex UI paradigms. However, all this excellence adds up: complex view models, complex APIs, data binding, ugh.</p><p>Then there is that sinking feeling when you have to add another class to the project knowing that you are going to need to create all this yet again and you consider taking short cuts. Will there really be more than about 20 items in this table, maybe we don't need paging. Inevitably, the customer asks for admin screens. We consider giving them SQL Server Management Console and then consider using the built in ASP.NET list and editor pages. Better sense wins out and we end up spending two weeks building slick admin pages with paging, searching, sorting, etc.</p><h2 id="the-path-to-the-solution" tabindex="-1">The Path to the Solution <a class="header-anchor" href="#the-path-to-the-solution" aria-label="Permalink to "The Path to the Solution"">​</a></h2><p>That evening we starting talking about the things we loved to do:</p><ul><li>Data modeling</li><li>Figuring out and writing business logic</li><li>Working with customers</li><li>Making cool user interfaces</li><li>Creating something new and awesome</li></ul><p>We also lists things that we didn't enjoy</p><ul><li>Writing the same controller again</li><li>Creating a view model for a class that is similar but different from another one in the project</li><li>Putting sorting and paging on every admin page</li><li>Basically doing anything that feels repetitive or boilerplate</li></ul><p>Over the next few months we talked about this issue, but couldn't find the right abstraction. We talked about other solutions that solve parts of the problem and considered putting together something from several pieces. Nothing felt unified and we ended up with leaky abstractions. We needed some way to divide the problem so that we could build the fun stuff and have something generate the boring stuff. This solution needed to be robust enough to satisfy our customer's needs and also be of use to developers without their needing to know the inner workings of the system.</p><h2 id="our-solution" tabindex="-1">Our Solution <a class="header-anchor" href="#our-solution" aria-label="Permalink to "Our Solution"">​</a></h2><p>What if we could build the models and business logic and have a tool build everything except the UI? There are great tools like Entity Framework for modeling and good tooling for minimizing duplicate code in user interfaces. And so Coalesce was born, a tool that would bring together the backend and front end development. '</p><p>Coalesce takes Entity Framework Core models and builds controllers, TypeScript view models, and admin pages automatically. These are built in a general way so that they can be applied to many different scenarios. There will always be pages that need to be written by hand and we intentionally don't support many edge cases in order to keep things simple. There is nothing wrong with building something by hand.</p><h2 id="how-has-it-worked" tabindex="-1">How has it Worked? <a class="header-anchor" href="#how-has-it-worked" aria-label="Permalink to "How has it Worked?"">​</a></h2><p>We have been using Coalesce for many of our web projects with great success. Typically, a project is taking about 1/3 the time it was taking before once developers ramp up. The ramp up on Coalesce has typically been a couple of days. We realized that in order for Coalesce to be useful it need to be intuitive to use and easy to understand. We have intentionally used simple paradigms to minimize the learning curve. There are complex bits, but hopefully, those are well hidden and documented as needed.</p>',37),n=[s];function l(r,d,h,c,u,m){return a(),t("div",null,n)}const f=e(o,[["render",l]]);export{g as __pageData,f as default}; diff --git a/assets/history.md.DvbsYBZt.lean.js b/assets/history.md.DvbsYBZt.lean.js new file mode 100644 index 000000000..4dd4cea85 --- /dev/null +++ b/assets/history.md.DvbsYBZt.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as a,a7 as i}from"./chunks/framework.Be4oCqIX.js";const g=JSON.parse(`{"title":"Welcome to Coalesce's documentation!","description":"","frontmatter":{},"headers":[],"relativePath":"history.md","filePath":"history.md"}`),o={name:"history.md"},s=i("",37),n=[s];function l(r,d,h,c,u,m){return a(),t("div",null,n)}const f=e(o,[["render",l]]);export{g as __pageData,f as default}; diff --git a/assets/index.md.gWv-4Axo.js b/assets/index.md.gWv-4Axo.js new file mode 100644 index 000000000..1616e1334 --- /dev/null +++ b/assets/index.md.gWv-4Axo.js @@ -0,0 +1 @@ +import{_ as t,c as o,I as a,o as r,E as n}from"./chunks/framework.Be4oCqIX.js";const _=JSON.parse(`{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"Coalesce","text":"Accelerated Web App Development","tagline":"ASP.NET Core • EF Core • Vue.js • TypeScript","image":{"src":"/coalesce-icon-color.svg","alt":"Coalesce"},"actions":[{"theme":"brand","text":"Introduction","link":"/introduction"},{"theme":"alt","text":"Get Started","link":"/stacks/vue/getting-started"}]},"features":[{"title":"🖨 Code Generated","details":"Design your data model and build awesome pages. Coalesce generates the boring parts in the middle."},{"title":"🧩 Extensible","details":"All functionality in Coalesce is configurable or overridable. You'll never be boxed in or get stuck."},{"title":"🔒 Secure","details":"Customization of table-level, row-level, and property-level security are all built-in. <a href=\\"/Coalesce/topics/security.html\\">Read More.</a>"}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}`),i={name:"index.md"};function l(s,c,d,p,m,u){const e=n("SiteFooter");return r(),o("div",null,[a(e)])}const g=t(i,[["render",l]]);export{_ as __pageData,g as default}; diff --git a/assets/index.md.gWv-4Axo.lean.js b/assets/index.md.gWv-4Axo.lean.js new file mode 100644 index 000000000..1616e1334 --- /dev/null +++ b/assets/index.md.gWv-4Axo.lean.js @@ -0,0 +1 @@ +import{_ as t,c as o,I as a,o as r,E as n}from"./chunks/framework.Be4oCqIX.js";const _=JSON.parse(`{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"Coalesce","text":"Accelerated Web App Development","tagline":"ASP.NET Core • EF Core • Vue.js • TypeScript","image":{"src":"/coalesce-icon-color.svg","alt":"Coalesce"},"actions":[{"theme":"brand","text":"Introduction","link":"/introduction"},{"theme":"alt","text":"Get Started","link":"/stacks/vue/getting-started"}]},"features":[{"title":"🖨 Code Generated","details":"Design your data model and build awesome pages. Coalesce generates the boring parts in the middle."},{"title":"🧩 Extensible","details":"All functionality in Coalesce is configurable or overridable. You'll never be boxed in or get stuck."},{"title":"🔒 Secure","details":"Customization of table-level, row-level, and property-level security are all built-in. <a href=\\"/Coalesce/topics/security.html\\">Read More.</a>"}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}`),i={name:"index.md"};function l(s,c,d,p,m,u){const e=n("SiteFooter");return r(),o("div",null,[a(e)])}const g=t(i,[["render",l]]);export{_ as __pageData,g as default}; diff --git a/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 b/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 new file mode 100644 index 000000000..b6b603d59 Binary files /dev/null and b/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 differ diff --git a/assets/inter-italic-cyrillic.By2_1cv3.woff2 b/assets/inter-italic-cyrillic.By2_1cv3.woff2 new file mode 100644 index 000000000..def40a4f6 Binary files /dev/null and b/assets/inter-italic-cyrillic.By2_1cv3.woff2 differ diff --git a/assets/inter-italic-greek-ext.1u6EdAuj.woff2 b/assets/inter-italic-greek-ext.1u6EdAuj.woff2 new file mode 100644 index 000000000..e070c3d30 Binary files /dev/null and b/assets/inter-italic-greek-ext.1u6EdAuj.woff2 differ diff --git a/assets/inter-italic-greek.DJ8dCoTZ.woff2 b/assets/inter-italic-greek.DJ8dCoTZ.woff2 new file mode 100644 index 000000000..a3c16ca40 Binary files /dev/null and b/assets/inter-italic-greek.DJ8dCoTZ.woff2 differ diff --git a/assets/inter-italic-latin-ext.CN1xVJS-.woff2 b/assets/inter-italic-latin-ext.CN1xVJS-.woff2 new file mode 100644 index 000000000..2210a899e Binary files /dev/null and b/assets/inter-italic-latin-ext.CN1xVJS-.woff2 differ diff --git a/assets/inter-italic-latin.C2AdPX0b.woff2 b/assets/inter-italic-latin.C2AdPX0b.woff2 new file mode 100644 index 000000000..790d62dc7 Binary files /dev/null and b/assets/inter-italic-latin.C2AdPX0b.woff2 differ diff --git a/assets/inter-italic-vietnamese.BSbpV94h.woff2 b/assets/inter-italic-vietnamese.BSbpV94h.woff2 new file mode 100644 index 000000000..1eec0775a Binary files /dev/null and b/assets/inter-italic-vietnamese.BSbpV94h.woff2 differ diff --git a/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 b/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 new file mode 100644 index 000000000..2cfe61536 Binary files /dev/null and b/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 differ diff --git a/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 b/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 new file mode 100644 index 000000000..e3886dd14 Binary files /dev/null and b/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 differ diff --git a/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 b/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 new file mode 100644 index 000000000..36d67487d Binary files /dev/null and b/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 differ diff --git a/assets/inter-roman-greek.BBVDIX6e.woff2 b/assets/inter-roman-greek.BBVDIX6e.woff2 new file mode 100644 index 000000000..2bed1e85e Binary files /dev/null and b/assets/inter-roman-greek.BBVDIX6e.woff2 differ diff --git a/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 b/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 new file mode 100644 index 000000000..9a8d1e2b5 Binary files /dev/null and b/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 differ diff --git a/assets/inter-roman-latin.Di8DUHzh.woff2 b/assets/inter-roman-latin.Di8DUHzh.woff2 new file mode 100644 index 000000000..07d3c53ae Binary files /dev/null and b/assets/inter-roman-latin.Di8DUHzh.woff2 differ diff --git a/assets/inter-roman-vietnamese.BjW4sHH5.woff2 b/assets/inter-roman-vietnamese.BjW4sHH5.woff2 new file mode 100644 index 000000000..57bdc22ae Binary files /dev/null and b/assets/inter-roman-vietnamese.BjW4sHH5.woff2 differ diff --git a/assets/introduction.md.BE8ZZqMg.js b/assets/introduction.md.BE8ZZqMg.js new file mode 100644 index 000000000..1bf055ffd --- /dev/null +++ b/assets/introduction.md.BE8ZZqMg.js @@ -0,0 +1 @@ +import{_ as e,c as t,o,a7 as a,ab as i,ac as r,ad as s,ae as n,af as l,ag as d}from"./chunks/framework.Be4oCqIX.js";const v=JSON.parse('{"title":"Introduction","description":"Documentation home page for IntelliTect.Coalesce","frontmatter":{"lang":"en-US","title":"Introduction","description":"Documentation home page for IntelliTect.Coalesce"},"headers":[],"relativePath":"introduction.md","filePath":"introduction.md"}'),c={name:"introduction.md"},p=a('<h1 class="hero-logo-horiz"><img src="'+i+'"> Coalesce </h1><p>Designed to help you quickly build amazing web applications, Coalesce is a rapid-development, code generation-based web application framework created by <a href="https://intellitect.com" target="_blank" rel="noreferrer">IntelliTect</a> and built on top of:</p><table><tr><td><a href="https://learn.microsoft.com/en-us/aspnet/core/introduction-to-aspnet-core"><img class="ext-logo" src="'+r+'"></a></td><td>C#, .NET, and ASP.NET Core are the backend foundation of all Coalesce applications.</td></tr><tr><td><a href="https://learn.microsoft.com/en-us/ef/core/"><img class="ext-logo" src="'+s+'"></a></td><td>Entity Framework provides the interface between your database and C# code. Coalesce will use your EF data model to generate an extensible, customizable CRUD API that will drive both your custom pages and the out-of-the-box admin pages.</td></tr><tr><td><a href="https://www.typescriptlang.org/"><img class="ext-logo" src="'+n+'"></a></td><td>TypeScript enables discovery of Coalesce features through Intellisense and provides confidence that your frontend code won't break as your application grows.</td></tr><tr><td><a href="https://vuejs.org/"><img class="ext-logo" src="'+l+'"></a></td><td>Vue.js provides data binding and interactivity for your application as it runs in a browser. Coalesce will generate <a href="./stacks/vue/layers/viewmodels.html">TypeScript ViewModels</a> to facilitate rapid development of custom pages. </td></tr><tr><td><a href="https://vitejs.dev/"><img class="ext-logo" src="'+d+'"></a></td><td>Vite is the development and build tooling for your frontend Vue code, enabling lightning-fast single-page application development. Coalesce integrates ASP.NET Core and Vite together, streamlining local development to require nothing more than a <code>dotnet run</code> or a single-click launch in your IDE.</td></tr></table><h2 id="what-do-i-do" tabindex="-1">What do I do? <a class="header-anchor" href="#what-do-i-do" aria-label="Permalink to "What do I do?"">​</a></h2><p>You are responsible for the interesting parts of your application:</p><ul><li>Data Model</li><li>Business Logic</li><li>External Integrations</li><li>Page Content</li><li>Site Design</li><li>Custom Scripting</li></ul><h2 id="what-is-done-for-me" tabindex="-1">What is done for me? <a class="header-anchor" href="#what-is-done-for-me" aria-label="Permalink to "What is done for me?"">​</a></h2><p>Coalesce builds the part of your application that are mundane and monotonous to build:</p><ul><li>Client side <a href="/Coalesce/stacks/vue/layers/viewmodels.html">TypeScript ViewModels</a> that mirror your data model for both lists and individual objects. Utilize these to rapidly build out your application's various pages.</li><li>APIs to interact with your models via endpoints like List, Get, Save, and more.</li><li>Out-of-the-box <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/overview.html">Vue Components</a> for common controls like dates, selecting objects via drop downs, enums, etc. Dropdowns support searching and paging automatically.</li><li>A complete set of admin pages are provided, allowing you to read, create, edit, and delete data straight away without writing any additional code.</li></ul><h2 id="getting-started" tabindex="-1">Getting Started <a class="header-anchor" href="#getting-started" aria-label="Permalink to "Getting Started"">​</a></h2><p>To get started with Coalesce, check out <a href="/Coalesce/stacks/vue/getting-started.html">Getting Started with Vue</a>.</p><p>While Knockout.js is still supported by Coalesce, it is a deprecated option and not recommended for new projects. If you do still want to choose Knockout, click <a href="/Coalesce/stacks/ko/getting-started.html">here</a>.</p>',12),h=[p];function u(m,g,f,_,b,w){return o(),t("div",null,h)}const C=e(c,[["render",u]]);export{v as __pageData,C as default}; diff --git a/assets/introduction.md.BE8ZZqMg.lean.js b/assets/introduction.md.BE8ZZqMg.lean.js new file mode 100644 index 000000000..89a7f507e --- /dev/null +++ b/assets/introduction.md.BE8ZZqMg.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o,a7 as a,ab as i,ac as r,ad as s,ae as n,af as l,ag as d}from"./chunks/framework.Be4oCqIX.js";const v=JSON.parse('{"title":"Introduction","description":"Documentation home page for IntelliTect.Coalesce","frontmatter":{"lang":"en-US","title":"Introduction","description":"Documentation home page for IntelliTect.Coalesce"},"headers":[],"relativePath":"introduction.md","filePath":"introduction.md"}'),c={name:"introduction.md"},p=a("",12),h=[p];function u(m,g,f,_,b,w){return o(),t("div",null,h)}const C=e(c,[["render",u]]);export{v as __pageData,C as default}; diff --git a/assets/modeling_model-components_attributes.md.B5unI9Yv.js b/assets/modeling_model-components_attributes.md.B5unI9Yv.js new file mode 100644 index 000000000..834f99d21 --- /dev/null +++ b/assets/modeling_model-components_attributes.md.B5unI9Yv.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.Be4oCqIX.js";const b=JSON.parse('{"title":"Attributes","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes.md","filePath":"modeling/model-components/attributes.md"}'),r={name:"modeling/model-components/attributes.md"},i=o('<h1 id="attributes" tabindex="-1">Attributes <a class="header-anchor" href="#attributes" aria-label="Permalink to "Attributes"">​</a></h1><p>Coalesce provides a number of C# attributes that can be used to decorate your model classes and their properties in order to customize behavior, appearance, security, and more. Coalesce also supports a number of annotations from <code>System.ComponentModel.DataAnnotations</code>.</p><h2 id="coalesce-attributes" tabindex="-1">Coalesce Attributes <a class="header-anchor" href="#coalesce-attributes" aria-label="Permalink to "Coalesce Attributes"">​</a></h2><p>Browse the list in the sidebar to learn about the attributes that Coalesce provides that can be used to decorate your models.</p><h2 id="componentmodel-attributes" tabindex="-1">ComponentModel Attributes <a class="header-anchor" href="#componentmodel-attributes" aria-label="Permalink to "ComponentModel Attributes"">​</a></h2><p>Coalesce also supports a number of the built-in <code>System.ComponentModel.DataAnnotations</code> attributes and will use these to shape the generated code.</p><h3 id="display" tabindex="-1">[Display] <a class="header-anchor" href="#display" aria-label="Permalink to "[Display]"">​</a></h3><p>The displayed name and description of a property, as well as the order in which it appears in generated views, can be set via the <code>[Display]</code> attribute. By default, properties will be displayed in the order in which they are defined in their class.</p><h3 id="displayname" tabindex="-1">[DisplayName] <a class="header-anchor" href="#displayname" aria-label="Permalink to "[DisplayName]"">​</a></h3><p>The displayed name of a property can also be set via the <code>[DisplayName]</code> attribute.</p><h3 id="required" tabindex="-1">[Required] <a class="header-anchor" href="#required" aria-label="Permalink to "[Required]"">​</a></h3><p>Properties with <code>[Required]</code> will generate <a href="/Coalesce/modeling/model-components/attributes/client-validation.html">client validation</a> and <a href="/Coalesce/topics/security.html#server-side-data-validation">server validation</a> rules.</p><h3 id="range" tabindex="-1">[Range] <a class="header-anchor" href="#range" aria-label="Permalink to "[Range]"">​</a></h3><p>Properties with <code>[Range]</code> will generate <a href="/Coalesce/modeling/model-components/attributes/client-validation.html">client validation</a> and <a href="/Coalesce/topics/security.html#server-side-data-validation">server validation</a> rules.</p><h3 id="minlength" tabindex="-1">[MinLength] <a class="header-anchor" href="#minlength" aria-label="Permalink to "[MinLength]"">​</a></h3><p>Properties with <code>[MinLength]</code> will generate <a href="/Coalesce/modeling/model-components/attributes/client-validation.html">client validation</a> and <a href="/Coalesce/topics/security.html#server-side-data-validation">server validation</a> rules.</p><h3 id="maxlength" tabindex="-1">[MaxLength] <a class="header-anchor" href="#maxlength" aria-label="Permalink to "[MaxLength]"">​</a></h3><p>Properties with <code>[MaxLength]</code> will generate <a href="/Coalesce/modeling/model-components/attributes/client-validation.html">client validation</a> and <a href="/Coalesce/topics/security.html#server-side-data-validation">server validation</a> rules.</p><h3 id="datatype" tabindex="-1">[DataType] <a class="header-anchor" href="#datatype" aria-label="Permalink to "[DataType]"">​</a></h3><p>Some values of <code>DataType</code> when provided to <code>DataTypeAttribute</code> on a <code>string</code> property will alter the behavior of the <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/overview.html">Vue Components</a>. See <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-display.html">c-display</a> and See <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-input.html">c-display</a> for details.</p><h3 id="foreignkey" tabindex="-1">[ForeignKey] <a class="header-anchor" href="#foreignkey" aria-label="Permalink to "[ForeignKey]"">​</a></h3><p>Normally, Coalesce figures out which properties are foreign keys, but if you don't use standard EF naming conventions then you'll need to annotate with <code>[ForeignKey]</code> to help out both EF and Coalesce. See the <a href="https://docs.microsoft.com/en-us/ef/core/modeling/relationships" target="_blank" rel="noreferrer">Entity Framework Relationships</a> documentation for more.</p><h3 id="inverseproperty" tabindex="-1">[InverseProperty] <a class="header-anchor" href="#inverseproperty" aria-label="Permalink to "[InverseProperty]"">​</a></h3><p>Sometimes, Coalesce (and EF, too) can have trouble figuring out what the foreign key is supposed to be for a collection navigation property. See the <a href="https://docs.microsoft.com/en-us/ef/core/modeling/relationships" target="_blank" rel="noreferrer">Entity Framework Relationships</a> documentation for details on how and why to use <code>[InverseProperty]</code>.</p><h3 id="databasegenerated" tabindex="-1">[DatabaseGenerated] <a class="header-anchor" href="#databasegenerated" aria-label="Permalink to "[DatabaseGenerated]"">​</a></h3><p>Primary Keys with <code>[DatabaseGenerated(DatabaseGeneratedOption.None)]</code> will be settable on the client and will be appropriately handled by the <a href="/Coalesce/modeling/model-components/behaviors.html#standard-behaviors">Standard Behaviors</a> on the server. Unsupported on the <a href="/Coalesce/stacks/ko/overview.html">Knockout front-end stack</a>.</p><h3 id="notmapped" tabindex="-1">[NotMapped] <a class="header-anchor" href="#notmapped" aria-label="Permalink to "[NotMapped]"">​</a></h3><p>Model properties that aren't mapped to the database should be marked with <code>[NotMapped]</code> so that Coalesce doesn't try to load them from the database when <a href="/Coalesce/modeling/model-components/attributes/search.html">searching</a> or carrying out the <a href="/Coalesce/modeling/model-components/data-sources.html#default-loading-behavior">Default Loading Behavior</a>.</p><h3 id="defaultvalue" tabindex="-1">[DefaultValue] <a class="header-anchor" href="#defaultvalue" aria-label="Permalink to "[DefaultValue]"">​</a></h3><p>Properties with <code>[DefaultValue]</code> will receive the specified value when a new ViewModel is instantiated on the client. This enables scenarios like pre-filling a required property with a suggested value.</p>',30),n=[i];function s(l,d,h,c,p,u){return t(),a("div",null,n)}const f=e(r,[["render",s]]);export{b as __pageData,f as default}; diff --git a/assets/modeling_model-components_attributes.md.B5unI9Yv.lean.js b/assets/modeling_model-components_attributes.md.B5unI9Yv.lean.js new file mode 100644 index 000000000..64e4e12c1 --- /dev/null +++ b/assets/modeling_model-components_attributes.md.B5unI9Yv.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.Be4oCqIX.js";const b=JSON.parse('{"title":"Attributes","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes.md","filePath":"modeling/model-components/attributes.md"}'),r={name:"modeling/model-components/attributes.md"},i=o("",30),n=[i];function s(l,d,h,c,p,u){return t(),a("div",null,n)}const f=e(r,[["render",s]]);export{b as __pageData,f as default}; diff --git a/assets/modeling_model-components_attributes_client-validation.md.ChVi5Qho.js b/assets/modeling_model-components_attributes_client-validation.md.ChVi5Qho.js new file mode 100644 index 000000000..367dac399 --- /dev/null +++ b/assets/modeling_model-components_attributes_client-validation.md.ChVi5Qho.js @@ -0,0 +1,31 @@ +import{_ as r,c,I as o,w as a,a7 as n,l as s,a as l,E as t,o as D}from"./chunks/framework.Be4oCqIX.js";const S=JSON.parse('{"title":"[ClientValidation]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/client-validation.md","filePath":"modeling/model-components/attributes/client-validation.md"}'),i={name:"modeling/model-components/attributes/client-validation.md"},y=n(`<h1 id="clientvalidation" tabindex="-1">[ClientValidation] <a class="header-anchor" href="#clientvalidation" aria-label="Permalink to "[ClientValidation]"">​</a></h1><p>The <code>[IntelliTect.Coalesce.DataAnnotations.ClientValidation]</code> attribute is used to control the behavior of client-side model validation and to add additional client-only validation parameters. Database validation is available via standard <code>System.ComponentModel.DataAnnotations</code> annotations.</p><p>These propagate to the client as validations in TypeScript via generated <a href="/Coalesce/stacks/vue/layers/metadata.html">Metadata</a> and <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ViewModel rules</a> (for Vue) or <a href="https://github.com/Knockout-Contrib/Knockout-Validation/" target="_blank" rel="noreferrer">Knockout-Validation</a> rules (for Knockout). For both stacks, any failing validation rules prevent saves from going to the server.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>This attribute controls client-side validation only. To perform server-side validation, create a custom <a href="/Coalesce/modeling/model-components/behaviors.html">Behaviors class</a> for your types and/or place C# validation attributes on your models. <a href="/Coalesce/topics/security.html#server-side-data-validation">Read More</a>.</p></div><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">ClientValidation</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">IsRequired</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">AllowSave</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> FirstName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">ClientValidation</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">IsRequired</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">AllowSave</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">MinLength</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">MaxLength</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">100</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> LastName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h2><h3 id="behavioral-properties" tabindex="-1">Behavioral Properties <a class="header-anchor" href="#behavioral-properties" aria-label="Permalink to "Behavioral Properties"">​</a></h3>`,8),C=n('<p>If set to <code>true</code>, any client validation errors on the property will not prevent saving on the client. This includes <strong>all</strong> client-side validation, including null-checking for required foreign keys and other validations that are implicit. This also includes other explicit validation from <code>System.ComponentModel.DataAnnotations</code> annotations.</p><p>Instead, validation errors will be treated only as warnings, and will be available through the <code>warnings: KnockoutValidationErrors</code> property on the TypeScript ViewModel.</p><div class="tip custom-block"><p class="custom-block-title">Note</p><p>Use <code>AllowSave = true</code> to allow partially complete data to still be saved, protecting your user from data loss upon navigation while still hinting to them that they are not done filling out data.</p></div>',3),d=s("p",null,"Set an error message to be used if any client validations fail",-1),u=s("h3",{id:"validation-rule-properties",tabindex:"-1"},[l("Validation Rule Properties "),s("a",{class:"header-anchor",href:"#validation-rule-properties","aria-label":'Permalink to "Validation Rule Properties"'},"​")],-1),h=s("p",null,[l("In addition to the following properties, you also customize validation on a per-instance basis of the "),s("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html#viewmodels"},"ViewModels"),l(" using the "),s("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html#rules-validation"},"Rules/Validation"),l(" methods.")],-1),b=s("div",{class:"language-c#"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"c#"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsRequired"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MinValue"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MaxValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MaxValue"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MinValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MinLength"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MaxValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MaxLength"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MinValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," string"),s("span",{style:{color:"#9CDCFE"}}," Pattern"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsEmail"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsPhoneUs"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")])])])],-1),E=s("p",null,[l("The following attribute properties all map directly to "),s("a",{href:"https://github.com/Knockout-Contrib/Knockout-Validation/",target:"_blank",rel:"noreferrer"},"Knockout-Validation"),l(" properties.")],-1),g=s("div",{class:"language-c#"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"c#"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsRequired"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MinValue"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MaxValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MaxValue"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MinValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MinLength"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MaxValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MaxLength"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MinValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," Step"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," string"),s("span",{style:{color:"#9CDCFE"}}," Pattern"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsEmail"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsPhoneUs"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsDate"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsDateIso"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsNumber"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsDigit"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")])])])],-1),F=s("p",null,"The following attribute properties are outputted to TypeScript unquoted. If you need to assert equality to a string, wrap the value you set to this property in quotes. Other literals (numerics, booleans, etc) need no wrapping.",-1),m=s("div",{class:"language-c#"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"c#"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," string"),s("span",{style:{color:"#9CDCFE"}}," Equal"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," string"),s("span",{style:{color:"#9CDCFE"}}," NotEqual"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")])])])],-1),v=s("p",null,[l("The following two properties may be used together to specify a custom "),s("a",{href:"https://github.com/Knockout-Contrib/Knockout-Validation/",target:"_blank",rel:"noreferrer"},"Knockout-Validation"),l(" property.")],-1),_=s("p",null,[l("It will be emitted into the TypeScript as "),s("code",null,"this.extend({ CustomName: CustomValue })"),l(". Neither value will be quoted in the emitted TypeScript - add quotes to your value as needed to generate valid TypeScript.")],-1),f=s("div",{class:"language-c#"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"c#"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," string"),s("span",{style:{color:"#9CDCFE"}}," CustomName"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," string"),s("span",{style:{color:"#9CDCFE"}}," CustomValue"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")])])])],-1);function k(V,T,w,I,M,x){const e=t("Prop"),p=t("CodeTabs");return D(),c("div",null,[y,o(e,{def:"public bool AllowSave { get; set; } // Knockout Only"}),C,o(e,{def:"public string ErrorMessage { get; set; }"}),d,u,o(p,null,{vue:a(()=>[h,b]),knockout:a(()=>[E,g,F,m,v,_,f]),_:1})])}const q=r(i,[["render",k]]);export{S as __pageData,q as default}; diff --git a/assets/modeling_model-components_attributes_client-validation.md.ChVi5Qho.lean.js b/assets/modeling_model-components_attributes_client-validation.md.ChVi5Qho.lean.js new file mode 100644 index 000000000..03cd66b30 --- /dev/null +++ b/assets/modeling_model-components_attributes_client-validation.md.ChVi5Qho.lean.js @@ -0,0 +1,22 @@ +import{_ as r,c,I as o,w as a,a7 as n,l as s,a as l,E as t,o as D}from"./chunks/framework.Be4oCqIX.js";const S=JSON.parse('{"title":"[ClientValidation]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/client-validation.md","filePath":"modeling/model-components/attributes/client-validation.md"}'),i={name:"modeling/model-components/attributes/client-validation.md"},y=n("",8),C=n("",3),d=s("p",null,"Set an error message to be used if any client validations fail",-1),u=s("h3",{id:"validation-rule-properties",tabindex:"-1"},[l("Validation Rule Properties "),s("a",{class:"header-anchor",href:"#validation-rule-properties","aria-label":'Permalink to "Validation Rule Properties"'},"​")],-1),h=s("p",null,[l("In addition to the following properties, you also customize validation on a per-instance basis of the "),s("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html#viewmodels"},"ViewModels"),l(" using the "),s("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html#rules-validation"},"Rules/Validation"),l(" methods.")],-1),b=s("div",{class:"language-c#"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"c#"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsRequired"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MinValue"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MaxValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MaxValue"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MinValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MinLength"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MaxValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MaxLength"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MinValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," string"),s("span",{style:{color:"#9CDCFE"}}," Pattern"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsEmail"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsPhoneUs"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")])])])],-1),E=s("p",null,[l("The following attribute properties all map directly to "),s("a",{href:"https://github.com/Knockout-Contrib/Knockout-Validation/",target:"_blank",rel:"noreferrer"},"Knockout-Validation"),l(" properties.")],-1),g=s("div",{class:"language-c#"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"c#"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsRequired"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MinValue"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MaxValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MaxValue"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MinValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MinLength"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MaxValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," MaxLength"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; } = "),s("span",{style:{color:"#569CD6"}},"double"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"MinValue"),s("span",{style:{color:"#D4D4D4"}},";")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," double"),s("span",{style:{color:"#9CDCFE"}}," Step"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," string"),s("span",{style:{color:"#9CDCFE"}}," Pattern"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsEmail"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsPhoneUs"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsDate"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsDateIso"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsNumber"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," bool"),s("span",{style:{color:"#9CDCFE"}}," IsDigit"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")])])])],-1),F=s("p",null,"The following attribute properties are outputted to TypeScript unquoted. If you need to assert equality to a string, wrap the value you set to this property in quotes. Other literals (numerics, booleans, etc) need no wrapping.",-1),m=s("div",{class:"language-c#"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"c#"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," string"),s("span",{style:{color:"#9CDCFE"}}," Equal"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," string"),s("span",{style:{color:"#9CDCFE"}}," NotEqual"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")])])])],-1),v=s("p",null,[l("The following two properties may be used together to specify a custom "),s("a",{href:"https://github.com/Knockout-Contrib/Knockout-Validation/",target:"_blank",rel:"noreferrer"},"Knockout-Validation"),l(" property.")],-1),_=s("p",null,[l("It will be emitted into the TypeScript as "),s("code",null,"this.extend({ CustomName: CustomValue })"),l(". Neither value will be quoted in the emitted TypeScript - add quotes to your value as needed to generate valid TypeScript.")],-1),f=s("div",{class:"language-c#"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"c#"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," string"),s("span",{style:{color:"#9CDCFE"}}," CustomName"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")]),l(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"public"),s("span",{style:{color:"#569CD6"}}," string"),s("span",{style:{color:"#9CDCFE"}}," CustomValue"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"get"),s("span",{style:{color:"#D4D4D4"}},"; "),s("span",{style:{color:"#9CDCFE"}},"set"),s("span",{style:{color:"#D4D4D4"}},"; }")])])])],-1);function k(V,T,w,I,M,x){const e=t("Prop"),p=t("CodeTabs");return D(),c("div",null,[y,o(e,{def:"public bool AllowSave { get; set; } // Knockout Only"}),C,o(e,{def:"public string ErrorMessage { get; set; }"}),d,u,o(p,null,{vue:a(()=>[h,b]),knockout:a(()=>[E,g,F,m,v,_,f]),_:1})])}const q=r(i,[["render",k]]);export{S as __pageData,q as default}; diff --git a/assets/modeling_model-components_attributes_coalesce.md.iDTpVbk-.js b/assets/modeling_model-components_attributes_coalesce.md.iDTpVbk-.js new file mode 100644 index 000000000..6e5f44249 --- /dev/null +++ b/assets/modeling_model-components_attributes_coalesce.md.iDTpVbk-.js @@ -0,0 +1 @@ +import{_ as e,c as t,o,a7 as a}from"./chunks/framework.Be4oCqIX.js";const u=JSON.parse('{"title":"[Coalesce]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/coalesce.md","filePath":"modeling/model-components/attributes/coalesce.md"}'),s={name:"modeling/model-components/attributes/coalesce.md"},l=a('<h1 id="coalesce" tabindex="-1">[Coalesce] <a class="header-anchor" href="#coalesce" aria-label="Permalink to "[Coalesce]"">​</a></h1><p>Used to mark a type or member for generation by Coalesce.</p><p>Some types and members will be implicitly included in generation - for example, all types represented by a <code>DbSet<T></code> on a <code>DbContext</code> that has a <code>[Coalesce]</code> attribute will automatically be included. Properties on these types will also be generated for unless explicitly excluded, since this is by far the most common usage scenario in Coalesce.</p><p>On the other hand, <a href="/Coalesce/modeling/model-components/methods.html">Methods</a> on these types will not have endpoints generated unless they are explicitly annotated with <code>[Coalesce]</code> to avoid accidentally exposing methods that were perhaps not intended to be exposed.</p><p>The documentation pages for types and members that require/accept this attribute will state as such. An exhaustive list of all valid targets for <code>[Coalesce]</code> will not be found on this page.</p>',5),n=[l];function c(i,d,r,p,m,h){return o(),t("div",null,n)}const b=e(s,[["render",c]]);export{u as __pageData,b as default}; diff --git a/assets/modeling_model-components_attributes_coalesce.md.iDTpVbk-.lean.js b/assets/modeling_model-components_attributes_coalesce.md.iDTpVbk-.lean.js new file mode 100644 index 000000000..55c8846a2 --- /dev/null +++ b/assets/modeling_model-components_attributes_coalesce.md.iDTpVbk-.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o,a7 as a}from"./chunks/framework.Be4oCqIX.js";const u=JSON.parse('{"title":"[Coalesce]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/coalesce.md","filePath":"modeling/model-components/attributes/coalesce.md"}'),s={name:"modeling/model-components/attributes/coalesce.md"},l=a("",5),n=[l];function c(i,d,r,p,m,h){return o(),t("div",null,n)}const b=e(s,[["render",c]]);export{u as __pageData,b as default}; diff --git a/assets/modeling_model-components_attributes_controller-action.md.DXjXwMYh.js b/assets/modeling_model-components_attributes_controller-action.md.DXjXwMYh.js new file mode 100644 index 000000000..6033be646 --- /dev/null +++ b/assets/modeling_model-components_attributes_controller-action.md.DXjXwMYh.js @@ -0,0 +1,27 @@ +import{_ as o,c as e,I as a,a7 as s,o as l,E as p}from"./chunks/framework.Be4oCqIX.js";const _=JSON.parse('{"title":"[ControllerAction]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/controller-action.md","filePath":"modeling/model-components/attributes/controller-action.md"}'),t={name:"modeling/model-components/attributes/controller-action.md"},r=s(`<h1 id="controlleraction" tabindex="-1">[ControllerAction] <a class="header-anchor" href="#controlleraction" aria-label="Permalink to "[ControllerAction]"">​</a></h1><p>Specifies how a <a href="/Coalesce/modeling/model-components/methods.html">custom method</a> is exposed via HTTP. Can be used to customize the HTTP method/verb for the method, as well as caching behavior.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> LastName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> PictureHash</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">ControllerAction</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Method</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">HttpMethod</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Get</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> static</span><span style="color:#569CD6;"> long</span><span style="color:#DCDCAA;"> PersonCount</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#9CDCFE;"> db</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> lastNameStartsWith</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">""</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">People</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Count</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">LastName</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">StartsWith</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">lastNameStartsWith</span><span style="color:#D4D4D4;">));</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">ControllerAction</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">HttpMethod</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Get</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">VaryByProperty</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">nameof</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">PictureHash</span><span style="color:#D4D4D4;">))]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> IFile</span><span style="color:#DCDCAA;"> GetPicture</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#9CDCFE;"> db</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#569CD6;"> new</span><span style="color:#4EC9B0;"> IntelliTect</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Models</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">File</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">PersonPictures</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Where</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">PersonId</span><span style="color:#D4D4D4;"> == </span><span style="color:#569CD6;">this</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">PersonId</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Select</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Content</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> )</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> ContentType</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">"image/jpg"</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#D4D4D4;"> };</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h2>`,5),c=s("<p>The HTTP method to use on the generated API Controller.</p><p>Enum values are:</p><ul><li><code>HttpMethod.Post</code> Use the POST method.</li><li><code>HttpMethod.Get</code> Use the GET method.</li><li><code>HttpMethod.Put</code> Use the PUT method.</li><li><code>HttpMethod.Delete</code> Use the DELETE method.</li><li><code>HttpMethod.Patch</code> Use the PATCH method.</li></ul>",3),D=s('<p>For HTTP GET model instance methods, if <code>VaryByProperty</code> is set to the name of a property on the parent model class, <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag" target="_blank" rel="noreferrer">ETag headers</a> based on the value of this property will be used to implement caching. If the client provides a matching <code>If-None-Match</code> Header with the request, the method will not be invoked and HTTP Status `304 Not Modified`` will be returned.</p><p>Additionally, if the <code>VaryByProperty</code> is set to a client-exposed <a href="/Coalesce/modeling/model-components/properties.html">property</a>, the value of the property will be included in the query string when performing API calls to invoke the method. If the query string value matches the current value on the model, a long-term <code>Cache-Control</code> header will be set on the response, allowing the client to avoid making future invocations to the same method while the value of the <code>VaryByProperty</code> remains the same.</p>',2);function y(i,C,d,h,m,u){const n=p("Prop");return l(),e("div",null,[r,a(n,{def:"public HttpMethod Method { get; set; } = HttpMethod.Post;",ctor:"1"}),c,a(n,{def:"public string VaryByProperty { get; set; }"}),D])}const P=o(t,[["render",y]]);export{_ as __pageData,P as default}; diff --git a/assets/modeling_model-components_attributes_controller-action.md.DXjXwMYh.lean.js b/assets/modeling_model-components_attributes_controller-action.md.DXjXwMYh.lean.js new file mode 100644 index 000000000..72602f32d --- /dev/null +++ b/assets/modeling_model-components_attributes_controller-action.md.DXjXwMYh.lean.js @@ -0,0 +1 @@ +import{_ as o,c as e,I as a,a7 as s,o as l,E as p}from"./chunks/framework.Be4oCqIX.js";const _=JSON.parse('{"title":"[ControllerAction]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/controller-action.md","filePath":"modeling/model-components/attributes/controller-action.md"}'),t={name:"modeling/model-components/attributes/controller-action.md"},r=s("",5),c=s("",3),D=s("",2);function y(i,C,d,h,m,u){const n=p("Prop");return l(),e("div",null,[r,a(n,{def:"public HttpMethod Method { get; set; } = HttpMethod.Post;",ctor:"1"}),c,a(n,{def:"public string VaryByProperty { get; set; }"}),D])}const P=o(t,[["render",y]]);export{_ as __pageData,P as default}; diff --git a/assets/modeling_model-components_attributes_controller.md.CZcJPWfz.js b/assets/modeling_model-components_attributes_controller.md.CZcJPWfz.js new file mode 100644 index 000000000..edf53cc12 --- /dev/null +++ b/assets/modeling_model-components_attributes_controller.md.CZcJPWfz.js @@ -0,0 +1,7 @@ +import{_ as n,c as a,I as t,a7 as s,l as e,a as l,o as r,E as c}from"./chunks/framework.Be4oCqIX.js";const I=JSON.parse('{"title":"[Controller]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/controller.md","filePath":"modeling/model-components/attributes/controller.md"}'),p={name:"modeling/model-components/attributes/controller.md"},i=s(`<h1 id="controller" tabindex="-1">[Controller] <a class="header-anchor" href="#controller" aria-label="Permalink to "[Controller]"">​</a></h1><p>Allows for control over the generated MVC Controllers.</p><p>Currently only controls over the API controllers are present, but additional properties may be added in the future.</p><p>This attribute may be placed on any type from which an API controller is generated, including <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a>, <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>, and <a href="/Coalesce/modeling/model-types/services.html">Services</a>.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Controller</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ApiRouted</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">ApiControllerSuffix</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">"Gen"</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">ApiActionsProtected</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h2>`,7),d=s("<p>Determines whether or not a <code>[Route]</code> annotation will be placed on the generated API controller. Set to <code>false</code> to prevent emission of the <code>[Route]</code> attribute.</p><p>Use cases include:</p><ul><li>Defining your routes through IRouteBuilder in Startup.cs instead</li><li>Preventing API controllers from being exposed by default.</li><li>Routing to your own custom controller that inherits from the generated API controller in order to implement more granular or complex authorization logic.</li></ul>",3),u=e("p",null,"If set, will determine the name of the generated API controller.",-1),h=e("p",null,[l("Takes precedence over the value of "),e("code",null,"ApiControllerSuffix"),l(".")],-1),m=e("p",null,"If set, will be appended to the default name of the API controller generated for this model.",-1),D=e("p",null,[l("Will be overridden by the value of "),e("code",null,"ApiControllerName"),l(" if it is set.")],-1),_=s('<p>If true, actions on the generated API controller will have an access modifier of <code>protected</code> instead of <code>public</code>.</p><p>In order to consume the generated API controller, you must inherit from the generated controller and override each desired generated action method via hiding (i.e. use <code>public new ...</code>, not <code>public override ...</code>).</p><div class="tip custom-block"><p class="custom-block-title">Note</p><p>If you inherit from the generated API controllers and override their methods without setting <code>ApiActionsProtected = true</code>, all non-overridden actions from the generated controller will still be exposed as normal.</p></div>',3);function f(y,C,g,b,A,P){const o=c("Prop");return r(),a("div",null,[i,t(o,{def:"public bool ApiRouted { get; set; } = true;"}),d,t(o,{def:"public string ApiControllerName { get; set; } = null;"}),u,h,t(o,{def:"public string ApiControllerSuffix { get; set; } = null;"}),m,D,t(o,{def:"public bool ApiActionsProtected { get; set; } = false;"}),_])}const T=n(p,[["render",f]]);export{I as __pageData,T as default}; diff --git a/assets/modeling_model-components_attributes_controller.md.CZcJPWfz.lean.js b/assets/modeling_model-components_attributes_controller.md.CZcJPWfz.lean.js new file mode 100644 index 000000000..824e4d2ae --- /dev/null +++ b/assets/modeling_model-components_attributes_controller.md.CZcJPWfz.lean.js @@ -0,0 +1 @@ +import{_ as n,c as a,I as t,a7 as s,l as e,a as l,o as r,E as c}from"./chunks/framework.Be4oCqIX.js";const I=JSON.parse('{"title":"[Controller]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/controller.md","filePath":"modeling/model-components/attributes/controller.md"}'),p={name:"modeling/model-components/attributes/controller.md"},i=s("",7),d=s("",3),u=e("p",null,"If set, will determine the name of the generated API controller.",-1),h=e("p",null,[l("Takes precedence over the value of "),e("code",null,"ApiControllerSuffix"),l(".")],-1),m=e("p",null,"If set, will be appended to the default name of the API controller generated for this model.",-1),D=e("p",null,[l("Will be overridden by the value of "),e("code",null,"ApiControllerName"),l(" if it is set.")],-1),_=s("",3);function f(y,C,g,b,A,P){const o=c("Prop");return r(),a("div",null,[i,t(o,{def:"public bool ApiRouted { get; set; } = true;"}),d,t(o,{def:"public string ApiControllerName { get; set; } = null;"}),u,h,t(o,{def:"public string ApiControllerSuffix { get; set; } = null;"}),m,D,t(o,{def:"public bool ApiActionsProtected { get; set; } = false;"}),_])}const T=n(p,[["render",f]]);export{I as __pageData,T as default}; diff --git a/assets/modeling_model-components_attributes_create-controller.md.CFTGXpG6.js b/assets/modeling_model-components_attributes_create-controller.md.CFTGXpG6.js new file mode 100644 index 000000000..67566cd98 --- /dev/null +++ b/assets/modeling_model-components_attributes_create-controller.md.CFTGXpG6.js @@ -0,0 +1,7 @@ +import{_ as a,c as o,I as s,a7 as l,o as n,E as t}from"./chunks/framework.Be4oCqIX.js";const m=JSON.parse('{"title":"[CreateController]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/create-controller.md","filePath":"modeling/model-components/attributes/create-controller.md"}'),r={name:"modeling/model-components/attributes/create-controller.md"},p=l(`<h1 id="createcontroller" tabindex="-1">[CreateController] <a class="header-anchor" href="#createcontroller" aria-label="Permalink to "[CreateController]"">​</a></h1><p>By default an API and View controller are both created. This allows for suppressing the creation of either or both of these.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">CreateController</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">view</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">api</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h2>`,5);function c(i,D,d,C,u,y){const e=t("Prop");return n(),o("div",null,[p,s(e,{def:"public bool WillCreateView { get; set; } = true",ctor:"1"}),s(e,{def:"public bool WillCreateApi { get; set; } = true",ctor:"2"})])}const _=a(r,[["render",c]]);export{m as __pageData,_ as default}; diff --git a/assets/modeling_model-components_attributes_create-controller.md.CFTGXpG6.lean.js b/assets/modeling_model-components_attributes_create-controller.md.CFTGXpG6.lean.js new file mode 100644 index 000000000..941ca9ed8 --- /dev/null +++ b/assets/modeling_model-components_attributes_create-controller.md.CFTGXpG6.lean.js @@ -0,0 +1 @@ +import{_ as a,c as o,I as s,a7 as l,o as n,E as t}from"./chunks/framework.Be4oCqIX.js";const m=JSON.parse('{"title":"[CreateController]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/create-controller.md","filePath":"modeling/model-components/attributes/create-controller.md"}'),r={name:"modeling/model-components/attributes/create-controller.md"},p=l("",5);function c(i,D,d,C,u,y){const e=t("Prop");return n(),o("div",null,[p,s(e,{def:"public bool WillCreateView { get; set; } = true",ctor:"1"}),s(e,{def:"public bool WillCreateApi { get; set; } = true",ctor:"2"})])}const _=a(r,[["render",c]]);export{m as __pageData,_ as default}; diff --git a/assets/modeling_model-components_attributes_date-type.md.Bj8PZnZT.js b/assets/modeling_model-components_attributes_date-type.md.Bj8PZnZT.js new file mode 100644 index 000000000..4a04afc36 --- /dev/null +++ b/assets/modeling_model-components_attributes_date-type.md.Bj8PZnZT.js @@ -0,0 +1,7 @@ +import{_ as t,c as n,I as o,a,a7 as l,l as e,o as p,E as r}from"./chunks/framework.Be4oCqIX.js";const g=JSON.parse('{"title":"[DateType]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/date-type.md","filePath":"modeling/model-components/attributes/date-type.md"}'),c={name:"modeling/model-components/attributes/date-type.md"},D=l(`<h1 id="datetype" tabindex="-1">[DateType] <a class="header-anchor" href="#datetype" aria-label="Permalink to "[DateType]"">​</a></h1><p>Specifies whether a DateTime type will have a date and a time, or only a date.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DateType</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">DateTypeAttribute</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">DateTypes</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">DateOnly</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DateTimeOffset</span><span style="color:#D4D4D4;">? </span><span style="color:#9CDCFE;">BirthDate</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h2>`,5),i=e("p",null,"The type of date the property represents.",-1),y=e("p",null,"Enum values are:",-1),d=e("ul",null,[e("li",null,[e("code",null,"DateTypeAttribute.DateTypes.DateTime"),a(" Subject is both a date and time.")]),e("li",null,[e("code",null,"DateTypeAttribute.DateTypes.DateOnly"),a(" Subject is only a date with no significant time component.")])],-1);function u(m,_,h,C,T,b){const s=r("Prop");return p(),n("div",null,[D,o(s,{def:"public DateTypes DateType { get; set; } = DateTypes.DateTime; ",ctor:"1"}),a(),i,y,d])}const E=t(c,[["render",u]]);export{g as __pageData,E as default}; diff --git a/assets/modeling_model-components_attributes_date-type.md.Bj8PZnZT.lean.js b/assets/modeling_model-components_attributes_date-type.md.Bj8PZnZT.lean.js new file mode 100644 index 000000000..f45a1dc47 --- /dev/null +++ b/assets/modeling_model-components_attributes_date-type.md.Bj8PZnZT.lean.js @@ -0,0 +1 @@ +import{_ as t,c as n,I as o,a,a7 as l,l as e,o as p,E as r}from"./chunks/framework.Be4oCqIX.js";const g=JSON.parse('{"title":"[DateType]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/date-type.md","filePath":"modeling/model-components/attributes/date-type.md"}'),c={name:"modeling/model-components/attributes/date-type.md"},D=l("",5),i=e("p",null,"The type of date the property represents.",-1),y=e("p",null,"Enum values are:",-1),d=e("ul",null,[e("li",null,[e("code",null,"DateTypeAttribute.DateTypes.DateTime"),a(" Subject is both a date and time.")]),e("li",null,[e("code",null,"DateTypeAttribute.DateTypes.DateOnly"),a(" Subject is only a date with no significant time component.")])],-1);function u(m,_,h,C,T,b){const s=r("Prop");return p(),n("div",null,[D,o(s,{def:"public DateTypes DateType { get; set; } = DateTypes.DateTime; ",ctor:"1"}),a(),i,y,d])}const E=t(c,[["render",u]]);export{g as __pageData,E as default}; diff --git a/assets/modeling_model-components_attributes_default-order-by.md.D-E4Vwd5.js b/assets/modeling_model-components_attributes_default-order-by.md.D-E4Vwd5.js new file mode 100644 index 000000000..88276c184 --- /dev/null +++ b/assets/modeling_model-components_attributes_default-order-by.md.D-E4Vwd5.js @@ -0,0 +1,23 @@ +import{_ as l,c as o,I as n,a as e,a7 as p,l as s,o as t,E as r}from"./chunks/framework.Be4oCqIX.js";const O=JSON.parse('{"title":"[DefaultOrderBy]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/default-order-by.md","filePath":"modeling/model-components/attributes/default-order-by.md"}'),c={name:"modeling/model-components/attributes/default-order-by.md"},D=p(`<h1 id="defaultorderby" tabindex="-1">[DefaultOrderBy] <a class="header-anchor" href="#defaultorderby" aria-label="Permalink to "[DefaultOrderBy]"">​</a></h1><p>Allows setting of the default manner in which the data returned to the client will be sorted. Multiple fields can be used to sort an object by specifying an index.</p><p>This affects the sort order both when requesting a list of the model itself, as well as when the model appears as a child collection off of a navigation property of another object.</p><p>In the first case (a list of the model itself), this can be overridden by setting the <code>orderBy</code> or <code>orderByDescending</code> property on the TypeScript <code>ListViewModel</code> - see <a href="/Coalesce/stacks/disambiguation/list-view-model.html">TypeScript List ViewModels</a>.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> DepartmentId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DefaultOrderBy</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">FieldOrder</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">FieldName</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">nameof</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Department</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Order</span><span style="color:#D4D4D4;">))]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> Department</span><span style="color:#9CDCFE;"> Department</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DefaultOrderBy</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">FieldOrder</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> LastName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> DepartmentId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DefaultOrderBy</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">FieldOrder</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">FieldName</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">nameof</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Department</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Order</span><span style="color:#D4D4D4;">))]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> Department</span><span style="color:#9CDCFE;"> Department</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DefaultOrderBy</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">FieldOrder</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> LastName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h2>`,8),i=s("p",null,"Specify the index of this field when sorting by multiple fields.",-1),y=s("p",null,[e("Lower-valued properties will be used first; higher-valued properties will be used as a tiebreaker (i.e. "),s("code",null,".ThenBy(...)"),e(").")],-1),d=s("p",null,"Specify the direction of the ordering for the property.",-1),C=s("p",null,"Enum values are:",-1),u=s("ul",null,[s("li",null,[s("code",null,"DefaultOrderByAttribute.OrderByDirections.Ascending")]),s("li",null,[s("code",null,"DefaultOrderByAttribute.OrderByDirections.Descending")])],-1),h=s("p",null,[e("When using the "),s("code",null,"DefaultOrderByAttribute"),e(" on an object property, specifies the field on the object to use for sorting. See the first example above.")],-1);function f(m,b,g,_,E,B){const a=r("Prop");return t(),o("div",null,[D,n(a,{def:"public int FieldOrder { get; set; } = 0; ",ctor:"1"}),e(),i,y,n(a,{def:"public OrderByDirections OrderByDirection { get; set; } = OrderByDirections.Ascending;",ctor:"2"}),d,C,u,n(a,{def:"public string FieldName { get; set; }"}),h])}const v=l(c,[["render",f]]);export{O as __pageData,v as default}; diff --git a/assets/modeling_model-components_attributes_default-order-by.md.D-E4Vwd5.lean.js b/assets/modeling_model-components_attributes_default-order-by.md.D-E4Vwd5.lean.js new file mode 100644 index 000000000..7b0cfa608 --- /dev/null +++ b/assets/modeling_model-components_attributes_default-order-by.md.D-E4Vwd5.lean.js @@ -0,0 +1 @@ +import{_ as l,c as o,I as n,a as e,a7 as p,l as s,o as t,E as r}from"./chunks/framework.Be4oCqIX.js";const O=JSON.parse('{"title":"[DefaultOrderBy]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/default-order-by.md","filePath":"modeling/model-components/attributes/default-order-by.md"}'),c={name:"modeling/model-components/attributes/default-order-by.md"},D=p("",8),i=s("p",null,"Specify the index of this field when sorting by multiple fields.",-1),y=s("p",null,[e("Lower-valued properties will be used first; higher-valued properties will be used as a tiebreaker (i.e. "),s("code",null,".ThenBy(...)"),e(").")],-1),d=s("p",null,"Specify the direction of the ordering for the property.",-1),C=s("p",null,"Enum values are:",-1),u=s("ul",null,[s("li",null,[s("code",null,"DefaultOrderByAttribute.OrderByDirections.Ascending")]),s("li",null,[s("code",null,"DefaultOrderByAttribute.OrderByDirections.Descending")])],-1),h=s("p",null,[e("When using the "),s("code",null,"DefaultOrderByAttribute"),e(" on an object property, specifies the field on the object to use for sorting. See the first example above.")],-1);function f(m,b,g,_,E,B){const a=r("Prop");return t(),o("div",null,[D,n(a,{def:"public int FieldOrder { get; set; } = 0; ",ctor:"1"}),e(),i,y,n(a,{def:"public OrderByDirections OrderByDirection { get; set; } = OrderByDirections.Ascending;",ctor:"2"}),d,C,u,n(a,{def:"public string FieldName { get; set; }"}),h])}const v=l(c,[["render",f]]);export{O as __pageData,v as default}; diff --git a/assets/modeling_model-components_attributes_dto-includes-excludes.md.Dd89hsVh.js b/assets/modeling_model-components_attributes_dto-includes-excludes.md.Dd89hsVh.js new file mode 100644 index 000000000..5d0e4b55f --- /dev/null +++ b/assets/modeling_model-components_attributes_dto-includes-excludes.md.Dd89hsVh.js @@ -0,0 +1,40 @@ +import{_ as c,c as r,I as o,w as l,a as e,a7 as a,l as s,E as n,o as i}from"./chunks/framework.Be4oCqIX.js";const F=JSON.parse('{"title":"[DtoIncludes] & [DtoExcludes]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/dto-includes-excludes.md","filePath":"modeling/model-components/attributes/dto-includes-excludes.md"}'),D={name:"modeling/model-components/attributes/dto-includes-excludes.md"},d=a(`<h1 id="dtoincludes-dtoexcludes" tabindex="-1">[DtoIncludes] & [DtoExcludes] <a class="header-anchor" href="#dtoincludes-dtoexcludes" aria-label="Permalink to "[DtoIncludes] & [DtoExcludes]"">​</a></h1><p>Allows for easily controlling what data gets set to the client. When requesting data from the generated client-side list view models, you can specify an <code>includes</code> property on the ViewModel or ListViewModel.</p><p>For more information about the includes string, see <a href="/Coalesce/concepts/includes.html">Includes String</a>.</p><p>When the database entries are returned to the client they will be trimmed based on the requested includes string and the values in <code>DtoExcludes</code> and <code>DtoIncludes</code>.</p><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>These attributes are <strong>not security attributes</strong> - consumers of your application's API can set the includes string to any value when making a request.</p><p>Do not use them to keep certain data private - use the <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">Security Attributes</a> family of attributes for that.</p></div><p>It is important to note that the value of the includes string will match against these attributes on <em>any</em> of your models that appears in the object graph being mapped to DTOs - it is not limited only to the model type of the root object.</p><div class="tip custom-block"><p class="custom-block-title">Important</p><p><code>DtoIncludes</code> does not ensure that specific data will be loaded from the database. It only <em>permits</em> what is <em>already</em> loaded into the current EF DbContext to be returned from the API. See <a href="/Coalesce/modeling/model-components/data-sources.html">Data Sources</a> to learn how to control what data gets loaded from the database.</p></div><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><p>Server code:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#6A9955;"> // Don't include CreatedBy when editing - will be included for all other views</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DtoExcludes</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Editor"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> AppUser</span><span style="color:#9CDCFE;"> CreatedBy</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Only include the Person's Department when \`includes == "details"\` on the TypeScript ViewModel.</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DtoIncludes</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"details"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> Department</span><span style="color:#9CDCFE;"> Department</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // LastName will be included in all views</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> LastName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Department</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DtoIncludes</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"details"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> ICollection</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Person</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">People</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>Client code:</p>`,11),y=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"const"),s("span",{style:{color:"#4FC1FF"}}," personList"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"Editor"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"await"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}},"// Objects in personList.$items will not contain CreatedBy nor Department objects.")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"const"),s("span",{style:{color:"#4FC1FF"}}," personList2"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList2"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"await"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}},"// Objects in personList2.items will be allowed to contain both CreatedBy and Department objects. ")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}},"// Department will be allowed to include its other Person objects.")])])])],-1),C=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ListViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"PersonList"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"Editor"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"(() "),s("span",{style:{color:"#569CD6"}},"=>"),s("span",{style:{color:"#D4D4D4"}}," {")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}}," // objects in personList.items will not contain CreatedBy nor Department objects.")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#D4D4D4"}},"});")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," personList2"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ListViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"PersonList"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList2"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList2"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"(() "),s("span",{style:{color:"#569CD6"}},"=>"),s("span",{style:{color:"#D4D4D4"}}," {")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}}," // objects in personList2.items will be allowed to contain both CreatedBy and Department objects. Department will be allowed to include its other Person objects.")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#D4D4D4"}},"});")])])])],-1),u=s("h2",{id:"properties",tabindex:"-1"},[e("Properties "),s("a",{class:"header-anchor",href:"#properties","aria-label":'Permalink to "Properties"'},"​")],-1),h=a('<p>A comma-delimited list of values of <a href="/Coalesce/concepts/includes.html"><code>includes</code></a> on which to operate.</p><p>For <code>DtoIncludes</code>, this will be the values of <code>includes</code> for which this property will be <strong>allowed</strong> to be serialized and sent to the client.</p><p>For <code>DtoExcludes</code>, this will be the values of <code>includes</code> for which this property will <strong>not</strong> be serialized and sent to the client.</p>',3);function m(b,E,w,g,_,f){const t=n("CodeTabs"),p=n("Prop");return i(),r("div",null,[d,o(t,null,{vue:l(()=>[y]),knockout:l(()=>[C]),_:1}),u,o(p,{def:"public string ContentViews { get; set; }",ctor:"1"}),e(),h])}const v=c(D,[["render",m]]);export{F as __pageData,v as default}; diff --git a/assets/modeling_model-components_attributes_dto-includes-excludes.md.Dd89hsVh.lean.js b/assets/modeling_model-components_attributes_dto-includes-excludes.md.Dd89hsVh.lean.js new file mode 100644 index 000000000..919cfb6ec --- /dev/null +++ b/assets/modeling_model-components_attributes_dto-includes-excludes.md.Dd89hsVh.lean.js @@ -0,0 +1,22 @@ +import{_ as c,c as r,I as o,w as l,a as e,a7 as a,l as s,E as n,o as i}from"./chunks/framework.Be4oCqIX.js";const F=JSON.parse('{"title":"[DtoIncludes] & [DtoExcludes]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/dto-includes-excludes.md","filePath":"modeling/model-components/attributes/dto-includes-excludes.md"}'),D={name:"modeling/model-components/attributes/dto-includes-excludes.md"},d=a("",11),y=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"const"),s("span",{style:{color:"#4FC1FF"}}," personList"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"Editor"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"await"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}},"// Objects in personList.$items will not contain CreatedBy nor Department objects.")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"const"),s("span",{style:{color:"#4FC1FF"}}," personList2"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList2"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"await"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}},"// Objects in personList2.items will be allowed to contain both CreatedBy and Department objects. ")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}},"// Department will be allowed to include its other Person objects.")])])])],-1),C=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," personList"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ListViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"PersonList"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"Editor"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"(() "),s("span",{style:{color:"#569CD6"}},"=>"),s("span",{style:{color:"#D4D4D4"}}," {")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}}," // objects in personList.items will not contain CreatedBy nor Department objects.")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#D4D4D4"}},"});")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," personList2"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ListViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"PersonList"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList2"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"includes"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"details"'),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"personList2"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"(() "),s("span",{style:{color:"#569CD6"}},"=>"),s("span",{style:{color:"#D4D4D4"}}," {")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}}," // objects in personList2.items will be allowed to contain both CreatedBy and Department objects. Department will be allowed to include its other Person objects.")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#D4D4D4"}},"});")])])])],-1),u=s("h2",{id:"properties",tabindex:"-1"},[e("Properties "),s("a",{class:"header-anchor",href:"#properties","aria-label":'Permalink to "Properties"'},"​")],-1),h=a("",3);function m(b,E,w,g,_,f){const t=n("CodeTabs"),p=n("Prop");return i(),r("div",null,[d,o(t,null,{vue:l(()=>[y]),knockout:l(()=>[C]),_:1}),u,o(p,{def:"public string ContentViews { get; set; }",ctor:"1"}),e(),h])}const v=c(D,[["render",m]]);export{F as __pageData,v as default}; diff --git a/assets/modeling_model-components_attributes_execute.md.BdJBAyrr.js b/assets/modeling_model-components_attributes_execute.md.BdJBAyrr.js new file mode 100644 index 000000000..9f5e1d68e --- /dev/null +++ b/assets/modeling_model-components_attributes_execute.md.BdJBAyrr.js @@ -0,0 +1,11 @@ +import{_ as l,c as n,I as o,a7 as t,l as e,a,o as r,E as c}from"./chunks/framework.Be4oCqIX.js";const P=JSON.parse('{"title":"[Execute]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/execute.md","filePath":"modeling/model-components/attributes/execute.md"}'),i={name:"modeling/model-components/attributes/execute.md"},p=t(`<h1 id="execute" tabindex="-1">[Execute] <a class="header-anchor" href="#execute" aria-label="Permalink to "[Execute]"">​</a></h1><p>Controls permissions for executing of a static or instance method through the API.</p><p>For other security controls, see <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">Security Attributes</a>.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Execute</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Roles</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">"Payroll,HR"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> GiveRaise</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">int</span><span style="color:#9CDCFE;"> centsPerHour</span><span style="color:#D4D4D4;">) {</span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h2>`,6),d=e("p",null,"A comma-separated list of roles which are allowed to execute the method.",-1),u=t("<p>The level of access to allow for the action for the method.</p><p>Enum values are:</p><ul><li><code>SecurityPermissionLevels.AllowAll</code> Allow all users to perform the action for the attribute, including users who are not authenticated at all.</li><li><code>SecurityPermissionLevels.AllowAuthorized</code> Allow only users who are members of the roles specified on the attribute to perform the action. If no roles are specified on the attribute, then all authenticated users are allowed (no anonymous access).</li><li><code>SecurityPermissionLevels.DenyAll</code> Deny the action to all users, regardless of authentication status or authorization level. If <code>DenyAll</code> is used, no API endpoint for the action will be generated.</li></ul>",3),h=e("p",null,"If true, the method's arguments will be cleared after a successful invocation on admin pages.",-1),D=e("p",null,[a("If non-null, overrides the value of "),e("a",{href:"/Coalesce/topics/security.html#attribute-validation"},[e("code",null,"CoalesceOptions.ValidateAttributesForMethods")]),a(" when determining whether to perform automatic server-side validation of the method's parameters.")],-1),m=e("p",null,"If validation is performed, the method's parameters will be validated by the server and the method invocation prevented if errors are found.",-1);function y(_,f,b,C,v,g){const s=c("Prop");return r(),n("div",null,[p,o(s,{def:"public string Roles { get; set; }"}),d,o(s,{def:"public SecurityPermissionLevels PermissionLevel { get; set; } = SecurityPermissionLevels.AllowAuthorized;"}),u,o(s,{def:"public bool AutoClear { get; set; }"}),h,o(s,{def:"public bool? ValidateAttributes { get; set; }"}),D,m])}const x=l(i,[["render",y]]);export{P as __pageData,x as default}; diff --git a/assets/modeling_model-components_attributes_execute.md.BdJBAyrr.lean.js b/assets/modeling_model-components_attributes_execute.md.BdJBAyrr.lean.js new file mode 100644 index 000000000..7c4831f04 --- /dev/null +++ b/assets/modeling_model-components_attributes_execute.md.BdJBAyrr.lean.js @@ -0,0 +1 @@ +import{_ as l,c as n,I as o,a7 as t,l as e,a,o as r,E as c}from"./chunks/framework.Be4oCqIX.js";const P=JSON.parse('{"title":"[Execute]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/execute.md","filePath":"modeling/model-components/attributes/execute.md"}'),i={name:"modeling/model-components/attributes/execute.md"},p=t("",6),d=e("p",null,"A comma-separated list of roles which are allowed to execute the method.",-1),u=t("",3),h=e("p",null,"If true, the method's arguments will be cleared after a successful invocation on admin pages.",-1),D=e("p",null,[a("If non-null, overrides the value of "),e("a",{href:"/Coalesce/topics/security.html#attribute-validation"},[e("code",null,"CoalesceOptions.ValidateAttributesForMethods")]),a(" when determining whether to perform automatic server-side validation of the method's parameters.")],-1),m=e("p",null,"If validation is performed, the method's parameters will be validated by the server and the method invocation prevented if errors are found.",-1);function y(_,f,b,C,v,g){const s=c("Prop");return r(),n("div",null,[p,o(s,{def:"public string Roles { get; set; }"}),d,o(s,{def:"public SecurityPermissionLevels PermissionLevel { get; set; } = SecurityPermissionLevels.AllowAuthorized;"}),u,o(s,{def:"public bool AutoClear { get; set; }"}),h,o(s,{def:"public bool? ValidateAttributes { get; set; }"}),D,m])}const x=l(i,[["render",y]]);export{P as __pageData,x as default}; diff --git a/assets/modeling_model-components_attributes_hidden.md.DXMeApNl.js b/assets/modeling_model-components_attributes_hidden.md.DXMeApNl.js new file mode 100644 index 000000000..7500fdaa0 --- /dev/null +++ b/assets/modeling_model-components_attributes_hidden.md.DXMeApNl.js @@ -0,0 +1,7 @@ +import{_ as a,c as t,I as n,a7 as e,o,E as l}from"./chunks/framework.Be4oCqIX.js";const b=JSON.parse('{"title":"[Hidden]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/hidden.md","filePath":"modeling/model-components/attributes/hidden.md"}'),r={name:"modeling/model-components/attributes/hidden.md"},i=e(`<h1 id="hidden" tabindex="-1">[Hidden] <a class="header-anchor" href="#hidden" aria-label="Permalink to "[Hidden]"">​</a></h1><p>Mark an property as hidden from the edit, List or All areas.</p><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>This attribute is <strong>not a security attribute</strong> - it only affects the rendering of the admin pages. It has no impact on data visibility in the API.</p><p>Do not use it to keep certain data private - use the <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">Security Attributes</a> family of attributes for that.</p></div><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Hidden</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">HiddenAttribute</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Areas</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">All</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#D4D4D4;">? </span><span style="color:#9CDCFE;">IncomeLevelId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h2>`,6),p=e("<p>The areas in which the property should be hidden.</p><p>Enum values are:</p><ul><li><code>HiddenAttribute.Areas.None</code> Hide from no generated views. Primary and Foreign keys are hidden by default - setting this value explicitly can override this default behavior.</li><li><code>HiddenAttribute.Areas.All</code> Hide from all generated views</li><li><code>HiddenAttribute.Areas.List</code> Hide from generated list views only (Knockout Table/Cards, Vue <code>c-admin-table</code>)</li><li><code>HiddenAttribute.Areas.Edit</code> Hide from generated editor only (Knockout CreateEdit, Vue <code>c-admin-editor</code>)</li></ul>",3);function c(d,D,u,h,y,m){const s=l("Prop");return o(),t("div",null,[i,n(s,{def:"public Areas Area { get; set; } = Areas.All;",ctor:"1"}),p])}const C=a(r,[["render",c]]);export{b as __pageData,C as default}; diff --git a/assets/modeling_model-components_attributes_hidden.md.DXMeApNl.lean.js b/assets/modeling_model-components_attributes_hidden.md.DXMeApNl.lean.js new file mode 100644 index 000000000..1b6f37429 --- /dev/null +++ b/assets/modeling_model-components_attributes_hidden.md.DXMeApNl.lean.js @@ -0,0 +1 @@ +import{_ as a,c as t,I as n,a7 as e,o,E as l}from"./chunks/framework.Be4oCqIX.js";const b=JSON.parse('{"title":"[Hidden]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/hidden.md","filePath":"modeling/model-components/attributes/hidden.md"}'),r={name:"modeling/model-components/attributes/hidden.md"},i=e("",6),p=e("",3);function c(d,D,u,h,y,m){const s=l("Prop");return o(),t("div",null,[i,n(s,{def:"public Areas Area { get; set; } = Areas.All;",ctor:"1"}),p])}const C=a(r,[["render",c]]);export{b as __pageData,C as default}; diff --git a/assets/modeling_model-components_attributes_inject.md.B9bthKFm.js b/assets/modeling_model-components_attributes_inject.md.B9bthKFm.js new file mode 100644 index 000000000..96c57d1af --- /dev/null +++ b/assets/modeling_model-components_attributes_inject.md.B9bthKFm.js @@ -0,0 +1,12 @@ +import{_ as s,c as a,o as n,a7 as e}from"./chunks/framework.Be4oCqIX.js";const m=JSON.parse('{"title":"[Inject]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/inject.md","filePath":"modeling/model-components/attributes/inject.md"}'),o={name:"modeling/model-components/attributes/inject.md"},l=e(`<h1 id="inject" tabindex="-1">[Inject] <a class="header-anchor" href="#inject" aria-label="Permalink to "[Inject]"">​</a></h1><p>Used to mark a <a href="/Coalesce/modeling/model-components/methods.html">Method</a> parameter for dependency injection from the application's <code>IServiceProvider</code>.</p><p>See <a href="/Coalesce/modeling/model-components/methods.html">Methods</a> for more.</p><p>This gets translated to a <code>Microsoft.AspNetCore.Mvc.FromServicesAttribute</code> in the generated API controller's action.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> FirstName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> LastName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#DCDCAA;"> GetFullName</span><span style="color:#D4D4D4;">([</span><span style="color:#4EC9B0;">Inject</span><span style="color:#D4D4D4;">] </span><span style="color:#4EC9B0;">ILogger</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Person</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">logger</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> logger</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">LogInformation</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Person "</span><span style="color:#D4D4D4;"> + </span><span style="color:#9CDCFE;">PersonId</span><span style="color:#D4D4D4;"> + </span><span style="color:#CE9178;">"'s full name was requested"</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> FirstName</span><span style="color:#D4D4D4;"> + </span><span style="color:#CE9178;">" "</span><span style="color:#D4D4D4;"> + </span><span style="color:#9CDCFE;">LastName</span><span style="color:#CE9178;">"</span><span style="color:#F44747;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div>`,6),p=[l];function t(c,r,D,i,y,d){return n(),a("div",null,p)}const u=s(o,[["render",t]]);export{m as __pageData,u as default}; diff --git a/assets/modeling_model-components_attributes_inject.md.B9bthKFm.lean.js b/assets/modeling_model-components_attributes_inject.md.B9bthKFm.lean.js new file mode 100644 index 000000000..420286449 --- /dev/null +++ b/assets/modeling_model-components_attributes_inject.md.B9bthKFm.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as n,a7 as e}from"./chunks/framework.Be4oCqIX.js";const m=JSON.parse('{"title":"[Inject]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/inject.md","filePath":"modeling/model-components/attributes/inject.md"}'),o={name:"modeling/model-components/attributes/inject.md"},l=e("",6),p=[l];function t(c,r,D,i,y,d){return n(),a("div",null,p)}const u=s(o,[["render",t]]);export{m as __pageData,u as default}; diff --git a/assets/modeling_model-components_attributes_internal-use.md.gmzAsQ0e.js b/assets/modeling_model-components_attributes_internal-use.md.gmzAsQ0e.js new file mode 100644 index 000000000..776cb6ad2 --- /dev/null +++ b/assets/modeling_model-components_attributes_internal-use.md.gmzAsQ0e.js @@ -0,0 +1,20 @@ +import{_ as s,c as a,o as n,a7 as e}from"./chunks/framework.Be4oCqIX.js";const m=JSON.parse('{"title":"[InternalUse]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/internal-use.md","filePath":"modeling/model-components/attributes/internal-use.md"}'),l={name:"modeling/model-components/attributes/internal-use.md"},o=e(`<h1 id="internaluse" tabindex="-1">[InternalUse] <a class="header-anchor" href="#internaluse" aria-label="Permalink to "[InternalUse]"">​</a></h1><p>Used to mark a type, property or method for internal use. Internal Use members are:</p><ul><li>Not exposed via the API.</li><li>Not present in the generated TypeScript view models.</li><li>Not present nor accounted for in the generated C# DTOs.</li><li>Not present in the generated editor or list views.</li></ul><p>Effectively, an Internal Use member is invisible to Coalesce. This attribute can be considered a <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">Security Attribute</a>.</p><p>Note that this only needs to be used on members that are public. Non-public members (including <code>internal</code>) are always invisible to Coalesce.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><p>In this example, <code>Color</code> is the property exposed to the API, but <code>ColorHex</code> is the property that maps to the database that stores the value. A helper method also exists for the color generation, but needs no attribute to be hidden since methods must be explicitly exposed with <a href="/Coalesce/modeling/model-components/attributes/coalesce.html">[Coalesce]</a>.</p><p>If no color is saved in the database (the user hasn't picked a color), one is deterministically created.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> ApplicationUser</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> ApplicationUserId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">InternalUse</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> ColorHex</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">NotMapped</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Color</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> get</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">ColorHex</span><span style="color:#D4D4D4;"> ?? </span><span style="color:#DCDCAA;">GenerateColor</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ApplicationUserId</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">ToRGBHexString</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#569CD6;"> set</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">ColorHex</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">value</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> static</span><span style="color:#4EC9B0;"> HSLColor</span><span style="color:#DCDCAA;"> GenerateColor</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">int</span><span style="color:#D4D4D4;">? </span><span style="color:#9CDCFE;">seed</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> var</span><span style="color:#9CDCFE;"> random</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">seed</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">HasValue</span><span style="color:#D4D4D4;"> ? </span><span style="color:#569CD6;">new</span><span style="color:#4EC9B0;"> Random</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">seed</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Value</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">new</span><span style="color:#4EC9B0;"> Random</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#569CD6;"> new</span><span style="color:#4EC9B0;"> HSLColor</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">random</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">NextDouble</span><span style="color:#D4D4D4;">(), </span><span style="color:#9CDCFE;">random</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Next</span><span style="color:#D4D4D4;">(</span><span style="color:#B5CEA8;">40</span><span style="color:#D4D4D4;">, </span><span style="color:#B5CEA8;">100</span><span style="color:#D4D4D4;">) / </span><span style="color:#B5CEA8;">100d</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">random</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Next</span><span style="color:#D4D4D4;">(</span><span style="color:#B5CEA8;">25</span><span style="color:#D4D4D4;">, </span><span style="color:#B5CEA8;">65</span><span style="color:#D4D4D4;">) / </span><span style="color:#B5CEA8;">100d</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div>`,9),p=[o];function t(r,c,D,i,y,C){return n(),a("div",null,p)}const u=s(l,[["render",t]]);export{m as __pageData,u as default}; diff --git a/assets/modeling_model-components_attributes_internal-use.md.gmzAsQ0e.lean.js b/assets/modeling_model-components_attributes_internal-use.md.gmzAsQ0e.lean.js new file mode 100644 index 000000000..6f22db549 --- /dev/null +++ b/assets/modeling_model-components_attributes_internal-use.md.gmzAsQ0e.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as n,a7 as e}from"./chunks/framework.Be4oCqIX.js";const m=JSON.parse('{"title":"[InternalUse]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/internal-use.md","filePath":"modeling/model-components/attributes/internal-use.md"}'),l={name:"modeling/model-components/attributes/internal-use.md"},o=e("",9),p=[o];function t(r,c,D,i,y,C){return n(),a("div",null,p)}const u=s(l,[["render",t]]);export{m as __pageData,u as default}; diff --git a/assets/modeling_model-components_attributes_list-text.md.Px-9u6YU.js b/assets/modeling_model-components_attributes_list-text.md.Px-9u6YU.js new file mode 100644 index 000000000..edf52871a --- /dev/null +++ b/assets/modeling_model-components_attributes_list-text.md.Px-9u6YU.js @@ -0,0 +1,12 @@ +import{_ as s,c as a,o as n,a7 as e}from"./chunks/framework.Be4oCqIX.js";const m=JSON.parse('{"title":"[ListText]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/list-text.md","filePath":"modeling/model-components/attributes/list-text.md"}'),l={name:"modeling/model-components/attributes/list-text.md"},t=e(`<h1 id="listtext" tabindex="-1">[ListText] <a class="header-anchor" href="#listtext" aria-label="Permalink to "[ListText]"">​</a></h1><p>When a textual representation of an object needs to be displayed in the UI, this attribute controls which property will be used. Examples include dropdowns and cells in admin UI tables.</p><p>If this attribute is not used, and a property named <code>Name</code> exists on the model, that property will be used. Otherwise, the primary key will be used.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> FirstName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> LastName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">ListText</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">NotMapped</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Name</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">FirstName</span><span style="color:#D4D4D4;"> + </span><span style="color:#CE9178;">" "</span><span style="color:#D4D4D4;"> + </span><span style="color:#9CDCFE;">LastName</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div>`,5),p=[t];function o(c,r,i,D,y,d){return n(),a("div",null,p)}const u=s(l,[["render",o]]);export{m as __pageData,u as default}; diff --git a/assets/modeling_model-components_attributes_list-text.md.Px-9u6YU.lean.js b/assets/modeling_model-components_attributes_list-text.md.Px-9u6YU.lean.js new file mode 100644 index 000000000..1199e2c14 --- /dev/null +++ b/assets/modeling_model-components_attributes_list-text.md.Px-9u6YU.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as n,a7 as e}from"./chunks/framework.Be4oCqIX.js";const m=JSON.parse('{"title":"[ListText]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/list-text.md","filePath":"modeling/model-components/attributes/list-text.md"}'),l={name:"modeling/model-components/attributes/list-text.md"},t=e("",5),p=[t];function o(c,r,i,D,y,d){return n(),a("div",null,p)}const u=s(l,[["render",o]]);export{m as __pageData,u as default}; diff --git a/assets/modeling_model-components_attributes_load-from-data-source.md.Dv6-2Hym.js b/assets/modeling_model-components_attributes_load-from-data-source.md.Dv6-2Hym.js new file mode 100644 index 000000000..ce7d69b4b --- /dev/null +++ b/assets/modeling_model-components_attributes_load-from-data-source.md.Dv6-2Hym.js @@ -0,0 +1,11 @@ +import{_ as o,c as n,I as l,a7 as t,l as s,a,o as p,E as r}from"./chunks/framework.Be4oCqIX.js";const g=JSON.parse('{"title":"[LoadFromDataSource]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/load-from-data-source.md","filePath":"modeling/model-components/attributes/load-from-data-source.md"}'),c={name:"modeling/model-components/attributes/load-from-data-source.md"},D=t(`<h1 id="loadfromdatasource" tabindex="-1">[LoadFromDataSource] <a class="header-anchor" href="#loadfromdatasource" aria-label="Permalink to "[LoadFromDataSource]"">​</a></h1><p>Specifies that the targeted model instance method should load the instance it is called on from the specified data source when invoked from an API endpoint. If not defined, the model's default data source is used.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> FirstName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">LoadFromDataSource</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">typeof</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">WithoutCases</span><span style="color:#D4D4D4;">))]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> ChangeSpacesToDashesInName</span><span style="color:#D4D4D4;">()</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> FirstName</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">FirstName</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Replace</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">" "</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">"-"</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h2>`,5),i=s("p",null,[a("The name of the "),s("a",{href:"/Coalesce/modeling/model-components/data-sources.html"},"Data Source"),a(" to load the instance object from.")],-1);function d(m,y,u,C,h,_){const e=r("Prop");return p(),n("div",null,[D,l(e,{def:"public Type DataSourceType { get; }",ctor:"1"}),i])}const b=o(c,[["render",d]]);export{g as __pageData,b as default}; diff --git a/assets/modeling_model-components_attributes_load-from-data-source.md.Dv6-2Hym.lean.js b/assets/modeling_model-components_attributes_load-from-data-source.md.Dv6-2Hym.lean.js new file mode 100644 index 000000000..b296ab29b --- /dev/null +++ b/assets/modeling_model-components_attributes_load-from-data-source.md.Dv6-2Hym.lean.js @@ -0,0 +1 @@ +import{_ as o,c as n,I as l,a7 as t,l as s,a,o as p,E as r}from"./chunks/framework.Be4oCqIX.js";const g=JSON.parse('{"title":"[LoadFromDataSource]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/load-from-data-source.md","filePath":"modeling/model-components/attributes/load-from-data-source.md"}'),c={name:"modeling/model-components/attributes/load-from-data-source.md"},D=t("",5),i=s("p",null,[a("The name of the "),s("a",{href:"/Coalesce/modeling/model-components/data-sources.html"},"Data Source"),a(" to load the instance object from.")],-1);function d(m,y,u,C,h,_){const e=r("Prop");return p(),n("div",null,[D,l(e,{def:"public Type DataSourceType { get; }",ctor:"1"}),i])}const b=o(c,[["render",d]]);export{g as __pageData,b as default}; diff --git a/assets/modeling_model-components_attributes_many-to-many.md.BkQD-eVo.js b/assets/modeling_model-components_attributes_many-to-many.md.BkQD-eVo.js new file mode 100644 index 000000000..6850b955d --- /dev/null +++ b/assets/modeling_model-components_attributes_many-to-many.md.BkQD-eVo.js @@ -0,0 +1,9 @@ +import{_ as n,c as o,I as a,a7 as t,l as e,o as l,E as p}from"./chunks/framework.Be4oCqIX.js";const g=JSON.parse('{"title":"[ManyToMany]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/many-to-many.md","filePath":"modeling/model-components/attributes/many-to-many.md"}'),r={name:"modeling/model-components/attributes/many-to-many.md"},c=t(`<h1 id="manytomany" tabindex="-1">[ManyToMany] <a class="header-anchor" href="#manytomany" aria-label="Permalink to "[ManyToMany]"">​</a></h1><p>Used to specify a Many to Many relationship. Because EF core does not support automatic intermediate mapping tables, this field is used to allow for direct reference of the many-to-many collections from the ViewModel.</p><p>The named specified in the attribute will be used as the name of a collection of the objects on the other side of the relationship in the generated <a href="/Coalesce/stacks/disambiguation/view-model.html">TypeScript ViewModels</a>.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> FirstName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> LastName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">ManyToMany</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Appointments"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> ICollection</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">PersonAppointment</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">PersonAppointments</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h2>`,6),i=e("p",null,"The name of the collection that will contain the set of objects on the other side of the many-to-many relationship.",-1),y=e("p",null,"The name of the navigation property on the middle entity that points at the far side of the many-to-many relationship. Use this to resolve ambiguities when the middle table of the many-to-many relationship has more than two reference navigation properties on it.",-1);function D(m,d,h,u,C,f){const s=p("Prop");return l(),o("div",null,[c,a(s,{def:"public string CollectionName { get; }",ctor:"1"}),i,a(s,{def:"public string FarNavigationProperty { get; set; }"}),y])}const b=n(r,[["render",D]]);export{g as __pageData,b as default}; diff --git a/assets/modeling_model-components_attributes_many-to-many.md.BkQD-eVo.lean.js b/assets/modeling_model-components_attributes_many-to-many.md.BkQD-eVo.lean.js new file mode 100644 index 000000000..9d2a32183 --- /dev/null +++ b/assets/modeling_model-components_attributes_many-to-many.md.BkQD-eVo.lean.js @@ -0,0 +1 @@ +import{_ as n,c as o,I as a,a7 as t,l as e,o as l,E as p}from"./chunks/framework.Be4oCqIX.js";const g=JSON.parse('{"title":"[ManyToMany]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/many-to-many.md","filePath":"modeling/model-components/attributes/many-to-many.md"}'),r={name:"modeling/model-components/attributes/many-to-many.md"},c=t("",6),i=e("p",null,"The name of the collection that will contain the set of objects on the other side of the many-to-many relationship.",-1),y=e("p",null,"The name of the navigation property on the middle entity that points at the far side of the many-to-many relationship. Use this to resolve ambiguities when the middle table of the many-to-many relationship has more than two reference navigation properties on it.",-1);function D(m,d,h,u,C,f){const s=p("Prop");return l(),o("div",null,[c,a(s,{def:"public string CollectionName { get; }",ctor:"1"}),i,a(s,{def:"public string FarNavigationProperty { get; set; }"}),y])}const b=n(r,[["render",D]]);export{g as __pageData,b as default}; diff --git a/assets/modeling_model-components_attributes_restrict.md.ByU_F_Nf.js b/assets/modeling_model-components_attributes_restrict.md.ByU_F_Nf.js new file mode 100644 index 000000000..97a00caa5 --- /dev/null +++ b/assets/modeling_model-components_attributes_restrict.md.ByU_F_Nf.js @@ -0,0 +1,23 @@ +import{_ as s,c as n,o as a,a7 as e}from"./chunks/framework.Be4oCqIX.js";const m=JSON.parse('{"title":"[Restrict]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/restrict.md","filePath":"modeling/model-components/attributes/restrict.md"}'),o={name:"modeling/model-components/attributes/restrict.md"},l=e(`<h1 id="restrict" tabindex="-1">[Restrict] <a class="header-anchor" href="#restrict" aria-label="Permalink to "[Restrict]"">​</a></h1><p>In addition to <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">role-based</a> property restrictions, you can also define property restrictions that can execute custom code for each model instance if your logic require more nuanced decisions than can be made with roles.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">using</span><span style="color:#4EC9B0;"> IntelliTect</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">DataAnnotations</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> Id</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> UserId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Restrict</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">SalaryRestriction</span><span style="color:#D4D4D4;">>]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> decimal</span><span style="color:#9CDCFE;"> Salary</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> SalaryRestriction</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">MyUserService</span><span style="color:#9CDCFE;"> userService</span><span style="color:#D4D4D4;">) : </span><span style="color:#4EC9B0;">IPropertyRestriction</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> bool</span><span style="color:#DCDCAA;"> UserCanRead</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IMappingContext</span><span style="color:#9CDCFE;"> context</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> propertyName</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Employee</span><span style="color:#9CDCFE;"> model</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">GetUserId</span><span style="color:#D4D4D4;">() == </span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">UserId</span><span style="color:#D4D4D4;"> || </span><span style="color:#9CDCFE;">userService</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsPayroll</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> bool</span><span style="color:#DCDCAA;"> UserCanWrite</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IMappingContext</span><span style="color:#9CDCFE;"> context</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> propertyName</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Employee</span><span style="color:#9CDCFE;"> model</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">object</span><span style="color:#9CDCFE;"> incomingValue</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">userService</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsPayroll</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> bool</span><span style="color:#DCDCAA;"> UserCanFilter</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IMappingContext</span><span style="color:#9CDCFE;"> context</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> propertyName</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">userService</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsPayroll</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>Restriction classes support dependency injection, so you can inject any supplemental services needed to make a determination.</p><p>The <code>UserCanRead</code> method controls whether values of the restricted property will be mapped from model instances to the generated DTO. Similarly, <code>UserCanWrite</code> controls whether the property can be mapped back to the model instance from the generated DTO.</p><p>The <code>UserCanFilter</code> method has a default implementation that returns <code>false</code>, but can be implemented if there is an appropriate, instance-agnostic way to determine if a user can sort, search, or filter values of that property.</p><p>Multiple different restrictions can be placed on a single property; all of them must succeed for the operation to be permitted. Restrictions also stack on top of role attribute restrictions (<code>[Read]</code> and <code>[Edit]</code>).</p><p>A non-generic variant of <code>IPropertyRestriction</code> also exists for restrictions that might be reused across multiple model types.</p>`,8),p=[l];function t(r,c,D,y,i,C){return a(),n("div",null,p)}const u=s(o,[["render",t]]);export{m as __pageData,u as default}; diff --git a/assets/modeling_model-components_attributes_restrict.md.ByU_F_Nf.lean.js b/assets/modeling_model-components_attributes_restrict.md.ByU_F_Nf.lean.js new file mode 100644 index 000000000..d932ca601 --- /dev/null +++ b/assets/modeling_model-components_attributes_restrict.md.ByU_F_Nf.lean.js @@ -0,0 +1 @@ +import{_ as s,c as n,o as a,a7 as e}from"./chunks/framework.Be4oCqIX.js";const m=JSON.parse('{"title":"[Restrict]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/restrict.md","filePath":"modeling/model-components/attributes/restrict.md"}'),o={name:"modeling/model-components/attributes/restrict.md"},l=e("",8),p=[l];function t(r,c,D,y,i,C){return a(),n("div",null,p)}const u=s(o,[["render",t]]);export{m as __pageData,u as default}; diff --git a/assets/modeling_model-components_attributes_search.md.Bfjkh84A.js b/assets/modeling_model-components_attributes_search.md.Bfjkh84A.js new file mode 100644 index 000000000..f03c90068 --- /dev/null +++ b/assets/modeling_model-components_attributes_search.md.Bfjkh84A.js @@ -0,0 +1,18 @@ +import{_ as n,c as l,I as s,a7 as o,l as e,a as t,o as r,E as i}from"./chunks/framework.Be4oCqIX.js";const _=JSON.parse('{"title":"[Search]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/search.md","filePath":"modeling/model-components/attributes/search.md"}'),c={name:"modeling/model-components/attributes/search.md"},p=o(`<h1 id="search" tabindex="-1">[Search] <a class="header-anchor" href="#search" aria-label="Permalink to "[Search]"">​</a></h1><p>Coalesce supports searching through the generated API in its various implementations, including the generated list views (Table & Cards), in Select2 dropdowns, and directly through the TypeScript ListViewModels' <code>search</code> property.</p><p>The <code>search</code> parameter of the API can also be formatted as <code>PropertyName:SearchTerm</code> in order to search on an arbitrary property of a model. For example, a value of <code>Nickname:Steve-o</code> for a search term would search the <code>Nickname</code> property, even through it is not marked as searchable using this attribute.</p><p>By default, the system will search any field with the name 'Name'. If this doesn't exist, the ID is used as the only searchable field. Once you place the <code>Search</code> attribute on one or more properties on a model, only those annotated properties will be searched.</p><h2 id="searchable-property-types" tabindex="-1">Searchable Property Types <a class="header-anchor" href="#searchable-property-types" aria-label="Permalink to "Searchable Property Types"">​</a></h2><h4 id="strings" tabindex="-1">Strings <a class="header-anchor" href="#strings" aria-label="Permalink to "Strings"">​</a></h4><p>String fields will be searched based on the <code>SearchMethod</code> property on the attribute. See below.</p><h4 id="numeric-types" tabindex="-1">Numeric Types <a class="header-anchor" href="#numeric-types" aria-label="Permalink to "Numeric Types"">​</a></h4><p>If the input is numeric, numeric fields will be searched for the exact value.</p><h4 id="enums" tabindex="-1">Enums <a class="header-anchor" href="#enums" aria-label="Permalink to "Enums"">​</a></h4><p>If the input is a valid name of an enum value for an enum property and that property is searchable, rows will be searched for the exact value.</p><h4 id="dates" tabindex="-1">Dates <a class="header-anchor" href="#dates" aria-label="Permalink to "Dates"">​</a></h4><p>If the input is a parsable date, rows will be searched based on that date.</p><p>Date search will do its best to guess at the user's intentions:</p><ul><li>Various forms of year/month combos are supported, and if only a year/month is inputted, it will look for all dates in that month, e.g. "Feb 2017" or "2016-11".</li><li>A date without a time (or a time of exactly midnight) will search the entire day, e.g. "2017/4/18".</li><li>A date/time with minutes and seconds equal to 0 will search the entire hour, e.g. "April 7, 2017 11 AM".</li></ul><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>When searching on date properties, you should almost always set <code>IsSplitOnSpaces = false</code> on the <code>Search</code> attribute. This allows natural inputs like "July 21, 2017" to search correctly. Otherwise, only non-whitespace date formats will work, like "2017/21/07".</p></div><h4 id="reference-navigation-properties" tabindex="-1">Reference Navigation Properties <a class="header-anchor" href="#reference-navigation-properties" aria-label="Permalink to "Reference Navigation Properties"">​</a></h4><p>When a reference navigation property is marked with <code>[Search]</code>, searchable properties on the referenced object will also be searched. This behavior will go up to two levels away from the root object, and can be controlled with the <code>RootWhitelist</code> and <code>RootBlacklist</code> properties on the <code>[Search]</code> attribute that are outlined below.</p><h4 id="collection-navigation-properties" tabindex="-1">Collection Navigation Properties <a class="header-anchor" href="#collection-navigation-properties" aria-label="Permalink to "Collection Navigation Properties"">​</a></h4><p>When a collection navigation property is marked with <code>[Search]</code>, searchable properties on the child objects will also be searched. This behavior will go up to two levels away from the root object, and can be controlled with the <code>RootWhitelist</code> and <code>RootBlacklist</code> properties on the <code>[Search]</code> attribute that are outlined below.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Searches on collection navigation properties usually don't translate well with EF Core, leading to potentially degraded performance. Use this feature cautiously.</p></div><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Search</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> FirstName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Search</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> LastName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Search</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">IsSplitOnSpaces</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> BirthDate</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Nickname</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Search</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">RootWhitelist</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">nameof</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Person</span><span style="color:#D4D4D4;">))]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> ICollection</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Address</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">Addresses</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h2>`,24),h=e("p",null,[t("If set to true (the default), each word in the search terms will be searched for in each searchable field independently, and a row will only be considered a match if each word in the search term is a match on at least one searchable property where "),e("code",null,"IsSplitOnSpaces == true")],-1),d=e("p",null,[t("This is useful when searching for a full name across two or more fields. In the above example, using "),e("code",null,"IsSplitOnSpaces = true"),t(" would provide more intuitive behavior since it will search both first name and last name for each word entered into the search field. But, "),e("a",{href:"https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/",target:"_blank",rel:"noreferrer"},"you probably shouldn't be doing that"),t(".")],-1),u=o("<p>For string properties, specifies how the value in the property/column will be matched.</p><ul><li><code>BeginsWith</code>: Search term will be checked for at the beginning of the field's value in a case insensitive manner.</li><li><code>Equals</code>: Search term must match the field exactly in a case insensitive manner.</li><li><code>EqualsNatural</code>: Search term must match exactly, using the natural casing handling of the evaluation environment. Default database collation will be used if evaluated in SQL, and exact casing will be used if evaluated in memory. This allows index seeks to be used instead of index scans, providing extra high performance searches against indexed columns</li><li><code>Contains</code>: Search term will be checked for anywhere inside the field's value in a case insensitive manner. <strong>Will be slow against large databases - performance cannot be improved with database indexing.</strong></li></ul>",2),D=e("p",null,"A comma-delimited list of model class names that, if set, will prevent the targeted property from being searched unless the root object of the API call was one of the specified class names.",-1),m=e("p",null,"A comma-delimited list of model class names that, if set, will prevent the targeted property from being searched if the root object of the API call was one of the specified class names.",-1);function y(b,f,g,w,C,v){const a=i("Prop");return r(),l("div",null,[p,s(a,{def:"public bool IsSplitOnSpaces { get; set; } = true;"}),h,d,s(a,{def:"public SearchMethods SearchMethod { get; set; } = SearchMethods.BeginsWith;"}),u,s(a,{def:"public string RootWhitelist { get; set; } = null;"}),D,s(a,{def:"public string RootBlacklist { get; set; } = null;"}),m])}const k=n(c,[["render",y]]);export{_ as __pageData,k as default}; diff --git a/assets/modeling_model-components_attributes_search.md.Bfjkh84A.lean.js b/assets/modeling_model-components_attributes_search.md.Bfjkh84A.lean.js new file mode 100644 index 000000000..d8ed69b92 --- /dev/null +++ b/assets/modeling_model-components_attributes_search.md.Bfjkh84A.lean.js @@ -0,0 +1 @@ +import{_ as n,c as l,I as s,a7 as o,l as e,a as t,o as r,E as i}from"./chunks/framework.Be4oCqIX.js";const _=JSON.parse('{"title":"[Search]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/search.md","filePath":"modeling/model-components/attributes/search.md"}'),c={name:"modeling/model-components/attributes/search.md"},p=o("",24),h=e("p",null,[t("If set to true (the default), each word in the search terms will be searched for in each searchable field independently, and a row will only be considered a match if each word in the search term is a match on at least one searchable property where "),e("code",null,"IsSplitOnSpaces == true")],-1),d=e("p",null,[t("This is useful when searching for a full name across two or more fields. In the above example, using "),e("code",null,"IsSplitOnSpaces = true"),t(" would provide more intuitive behavior since it will search both first name and last name for each word entered into the search field. But, "),e("a",{href:"https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/",target:"_blank",rel:"noreferrer"},"you probably shouldn't be doing that"),t(".")],-1),u=o("",2),D=e("p",null,"A comma-delimited list of model class names that, if set, will prevent the targeted property from being searched unless the root object of the API call was one of the specified class names.",-1),m=e("p",null,"A comma-delimited list of model class names that, if set, will prevent the targeted property from being searched if the root object of the API call was one of the specified class names.",-1);function y(b,f,g,w,C,v){const a=i("Prop");return r(),l("div",null,[p,s(a,{def:"public bool IsSplitOnSpaces { get; set; } = true;"}),h,d,s(a,{def:"public SearchMethods SearchMethod { get; set; } = SearchMethods.BeginsWith;"}),u,s(a,{def:"public string RootWhitelist { get; set; } = null;"}),D,s(a,{def:"public string RootBlacklist { get; set; } = null;"}),m])}const k=n(c,[["render",y]]);export{_ as __pageData,k as default}; diff --git a/assets/modeling_model-components_attributes_security-attribute.md.DhnyKpJ3.js b/assets/modeling_model-components_attributes_security-attribute.md.DhnyKpJ3.js new file mode 100644 index 000000000..198f317fa --- /dev/null +++ b/assets/modeling_model-components_attributes_security-attribute.md.DhnyKpJ3.js @@ -0,0 +1,27 @@ +import{_ as l,c as n,I as o,a as e,a7 as t,l as s,o as r,E as p}from"./chunks/framework.Be4oCqIX.js";const v=JSON.parse('{"title":"Security Attributes","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/security-attribute.md","filePath":"modeling/model-components/attributes/security-attribute.md"}'),c={name:"modeling/model-components/attributes/security-attribute.md"},i=t(`<h1 id="security-attributes" tabindex="-1">Security Attributes <a class="header-anchor" href="#security-attributes" aria-label="Permalink to "Security Attributes"">​</a></h1><p>Coalesce provides a collection of attributes which can provide class-level (and property-level, where appropriate) security controls over the generated API.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>This page provides API-level documentation for a specific set of attributes. For a complete overview of all the security-focused techniques that can be used in a Coalesce application, see the <a href="/Coalesce/topics/security.html">Security</a> page.</p></div><h2 id="class-vs-property-security" tabindex="-1">Class vs. Property Security <a class="header-anchor" href="#class-vs-property-security" aria-label="Permalink to "Class vs. Property Security"">​</a></h2><p>There are important differences between class-level security and property-level security, beyond the usage of the attributes themselves. In general, class-level security is implemented in the generated API Controllers as <code>[Authorize]</code> attributes on the generated actions. Property security attributes are implemented in the <a href="/Coalesce/stacks/agnostic/dtos.html">Generated C# DTOs</a>.</p><h2 id="implementations" tabindex="-1">Implementations <a class="header-anchor" href="#implementations" aria-label="Permalink to "Implementations"">​</a></h2><h3 id="read" tabindex="-1">[Read] <a class="header-anchor" href="#read" aria-label="Permalink to "[Read]"">​</a></h3><p>Controls permissions for reading of objects and properties through the API.</p><p>For <strong>property-level</strong> security only, if a <code>[Read]</code> attribute is present without an <code>[Edit]</code> attribute, the property is read-only.</p><p>Additionally, you can set <code>NoAutoInclude = true</code> the <code>[Read]</code> attribute to suppress the <a href="/Coalesce/modeling/model-components/data-sources.html#default-loading-behavior">Default Loading Behavior</a>.</p><h4 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h4><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Roles</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">"Management"</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">PermissionLevel</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">SecurityPermissionLevels</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">AllowAuthorized</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> EmployeeId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Payroll"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> LastFourSsn</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="edit" tabindex="-1">[Edit] <a class="header-anchor" href="#edit" aria-label="Permalink to "[Edit]"">​</a></h3><p>Controls permissions for editing of objects and properties through the API.</p><p>For <strong>property-level</strong> security only, if a <code>[Read]</code> attribute is present, one of its roles must be fulfilled in addition to the roles specified (if any) for the <code>[Edit]</code> attribute.</p><h4 id="example-usage-1" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage-1" aria-label="Permalink to "Example Usage"">​</a></h4><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Edit</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Roles</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">"Management,Payroll"</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">PermissionLevel</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">SecurityPermissionLevels</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">AllowAuthorized</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> EmployeeId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Payroll,HumanResources"</span><span style="color:#D4D4D4;">), </span><span style="color:#4EC9B0;">Edit</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Payroll"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> LastFourSsn</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="create" tabindex="-1">[Create] <a class="header-anchor" href="#create" aria-label="Permalink to "[Create]"">​</a></h3><p>Controls permissions for creation of an object of the targeted type through the API.</p><h4 id="example-usage-2" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage-2" aria-label="Permalink to "Example Usage"">​</a></h4><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Create</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Roles</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">"HumanResources"</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">PermissionLevel</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">SecurityPermissionLevels</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">AllowAuthorized</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="delete" tabindex="-1">[Delete] <a class="header-anchor" href="#delete" aria-label="Permalink to "[Delete]"">​</a></h3><p>Controls permissions for deletion of an object of the targeted type through the API.</p><h4 id="example-usage-3" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage-3" aria-label="Permalink to "Example Usage"">​</a></h4><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Delete</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Roles</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">"HumanResources,Management"</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">PermissionLevel</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">SecurityPermissionLevels</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">AllowAuthorized</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="execute" tabindex="-1">[Execute] <a class="header-anchor" href="#execute" aria-label="Permalink to "[Execute]"">​</a></h3><p>A separate attribute for controlling method execution exists. Its documentation may be found on the <a href="/Coalesce/modeling/model-components/attributes/execute.html">[Execute]</a> page.</p><h3 id="restrict" tabindex="-1">[Restrict] <a class="header-anchor" href="#restrict" aria-label="Permalink to "[Restrict]"">​</a></h3><p>For property security, <code>[Read]</code> and <code>[Edit]</code> can be used to apply role-based security. If you need logic more complicated than checking for the presence of a role, <a href="/Coalesce/modeling/model-components/attributes/restrict.html">[Restrict]</a> offers the ability to write custom code to control the read and/or write permissions of a property.</p><h2 id="attribute-properties" tabindex="-1">Attribute Properties <a class="header-anchor" href="#attribute-properties" aria-label="Permalink to "Attribute Properties"">​</a></h2>`,30),D=s("p",null,"A comma-delimited list of roles that are authorized to take perform the action represented by the attribute. If the current user belongs to any of the listed roles, the action will be allowed.",-1),d=s("p",null,[e("The string set for this property will be outputted as an "),s("code",null,'[Authorize(Roles="RolesString")]'),e(" attribute on generated API controller actions.")],-1),u=t("<p>The level of access to allow for the action for <strong>class-level security</strong> only. Has no effect for property-level security.</p><p>Enum values are:</p><ul><li><code>SecurityPermissionLevels.AllowAll</code> Allow all users to perform the action for the attribute, including users who are not authenticated at all.</li><li><code>SecurityPermissionLevels.AllowAuthorized</code> Allow only users who are members of the roles specified on the attribute to perform the action. If no roles are specified on the attribute, then all authenticated users are allowed (no anonymous access).</li><li><code>SecurityPermissionLevels.DenyAll</code> Deny the action to all users, regardless of authentication status or authorization level. If <code>DenyAll</code> is used, no API endpoint for the action will be generated.</li></ul>",3);function y(h,m,C,b,f,g){const a=p("Prop");return r(),n("div",null,[i,o(a,{def:"public string Roles { get; set; }",ctor:"1"}),e(),D,d,o(a,{def:"public SecurityPermissionLevels PermissionLevel { get; set; }",ctor:"2"}),e(),u])}const P=l(c,[["render",y]]);export{v as __pageData,P as default}; diff --git a/assets/modeling_model-components_attributes_security-attribute.md.DhnyKpJ3.lean.js b/assets/modeling_model-components_attributes_security-attribute.md.DhnyKpJ3.lean.js new file mode 100644 index 000000000..e94fdabbd --- /dev/null +++ b/assets/modeling_model-components_attributes_security-attribute.md.DhnyKpJ3.lean.js @@ -0,0 +1 @@ +import{_ as l,c as n,I as o,a as e,a7 as t,l as s,o as r,E as p}from"./chunks/framework.Be4oCqIX.js";const v=JSON.parse('{"title":"Security Attributes","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/security-attribute.md","filePath":"modeling/model-components/attributes/security-attribute.md"}'),c={name:"modeling/model-components/attributes/security-attribute.md"},i=t("",30),D=s("p",null,"A comma-delimited list of roles that are authorized to take perform the action represented by the attribute. If the current user belongs to any of the listed roles, the action will be allowed.",-1),d=s("p",null,[e("The string set for this property will be outputted as an "),s("code",null,'[Authorize(Roles="RolesString")]'),e(" attribute on generated API controller actions.")],-1),u=t("",3);function y(h,m,C,b,f,g){const a=p("Prop");return r(),n("div",null,[i,o(a,{def:"public string Roles { get; set; }",ctor:"1"}),e(),D,d,o(a,{def:"public SecurityPermissionLevels PermissionLevel { get; set; }",ctor:"2"}),e(),u])}const P=l(c,[["render",y]]);export{v as __pageData,P as default}; diff --git a/assets/modeling_model-components_attributes_select-filter.md.BUJLRc9i.js b/assets/modeling_model-components_attributes_select-filter.md.BUJLRc9i.js new file mode 100644 index 000000000..211e18f84 --- /dev/null +++ b/assets/modeling_model-components_attributes_select-filter.md.BUJLRc9i.js @@ -0,0 +1,19 @@ +import{_ as o,c as n,I as l,a7 as p,l as s,a as e,o as t,E as c}from"./chunks/framework.Be4oCqIX.js";const k=JSON.parse('{"title":"[SelectFilter]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/select-filter.md","filePath":"modeling/model-components/attributes/select-filter.md"}'),r={name:"modeling/model-components/attributes/select-filter.md"},D=p(`<h1 id="selectfilter" tabindex="-1">[SelectFilter] <a class="header-anchor" href="#selectfilter" aria-label="Permalink to "[SelectFilter]"">​</a></h1><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>This attribute only affects the generated Knockout HTML views - it does not enforce any relational rules in your data.</p><p>This attribute also currently has no effect against the Vue stack.</p></div><p>Specify a property to restrict dropdown menus by. Values presented will be only those where the value of the foreign property matches the value of the local property.</p><p>The local property name defaults to the same value of the foreign property.</p><p>Additionally, in place of a <code>LocalPropertyName</code> to check against, you may instead specify a static value using <code>StaticPropertyValue</code> to filter by a constant.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><p>In this example, a dropdown for <code>EmployeeRank</code> created using <code>@Knockout.SelectForObject</code> in cshtml files will only present possible values of <code>EmployeeRank</code> which are valid for the <code>EmployeeType</code> of the <code>Employee</code>.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> EmployeeId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> EmployeeTypeId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> EmployeeType</span><span style="color:#9CDCFE;"> EmployeeType</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> EmployeeRankId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">SelectFilter</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ForeignPropertyName</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">nameof</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">EmployeeRank</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeTypeId</span><span style="color:#D4D4D4;">), </span><span style="color:#9CDCFE;">LocalPropertyName</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">nameof</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Employee</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeTypeId</span><span style="color:#D4D4D4;">))]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> EmployeeRank</span><span style="color:#9CDCFE;"> EmployeeRank</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> EmployeeRank</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> EmployeeRankId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> EmployeeTypeId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> EmployeeType</span><span style="color:#9CDCFE;"> EmployeeType</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><div class="language-razor"><button title="Copy Code" class="copy"></button><span class="lang">razor</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#C586C0;"> @(</span><span style="color:#9CDCFE;">Knockout</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">SelectForObject</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Models</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">>(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeRank</span><span style="color:#D4D4D4;">)</span><span style="color:#C586C0;">)</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h2>`,10),y=s("p",null,"The name of the property on the foreign object to filter against.",-1),i=s("p",null,"The name of another property belonging to the class in which this attribute is used. The results of select lists will be filtered to match this value.",-1),d=s("p",null,[e("Defaults to the value of "),s("code",null,"ForeignPropertyName"),e(" if not set.")],-1),C=s("p",null,[e("If specified, the "),s("code",null,"LocalPropertyName"),e(" will be resolved from the property by this name that resides on the local object.")],-1),u=s("p",null,"This allows for querying against properties that are one level away from the current object.",-1),h=s("p",null,[e("A constant value that the foreign property will be filtered against. This string must be parsable into the foreign property's type to have any effect. If this is set, "),s("code",null,"LocalPropertyName"),e(" will be ignored.")],-1);function m(f,g,E,b,_,F){const a=c("Prop");return t(),n("div",null,[D,l(a,{def:"public string ForeignPropertyName { get; set; }"}),y,l(a,{def:"public string LocalPropertyName { get; set; }"}),i,d,l(a,{def:"public string LocalPropertyObjectName { get; set; }"}),C,u,l(a,{def:"public string StaticPropertyValue { get; set; }"}),h])}const T=o(r,[["render",m]]);export{k as __pageData,T as default}; diff --git a/assets/modeling_model-components_attributes_select-filter.md.BUJLRc9i.lean.js b/assets/modeling_model-components_attributes_select-filter.md.BUJLRc9i.lean.js new file mode 100644 index 000000000..4a60e41e1 --- /dev/null +++ b/assets/modeling_model-components_attributes_select-filter.md.BUJLRc9i.lean.js @@ -0,0 +1 @@ +import{_ as o,c as n,I as l,a7 as p,l as s,a as e,o as t,E as c}from"./chunks/framework.Be4oCqIX.js";const k=JSON.parse('{"title":"[SelectFilter]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/select-filter.md","filePath":"modeling/model-components/attributes/select-filter.md"}'),r={name:"modeling/model-components/attributes/select-filter.md"},D=p("",10),y=s("p",null,"The name of the property on the foreign object to filter against.",-1),i=s("p",null,"The name of another property belonging to the class in which this attribute is used. The results of select lists will be filtered to match this value.",-1),d=s("p",null,[e("Defaults to the value of "),s("code",null,"ForeignPropertyName"),e(" if not set.")],-1),C=s("p",null,[e("If specified, the "),s("code",null,"LocalPropertyName"),e(" will be resolved from the property by this name that resides on the local object.")],-1),u=s("p",null,"This allows for querying against properties that are one level away from the current object.",-1),h=s("p",null,[e("A constant value that the foreign property will be filtered against. This string must be parsable into the foreign property's type to have any effect. If this is set, "),s("code",null,"LocalPropertyName"),e(" will be ignored.")],-1);function m(f,g,E,b,_,F){const a=c("Prop");return t(),n("div",null,[D,l(a,{def:"public string ForeignPropertyName { get; set; }"}),y,l(a,{def:"public string LocalPropertyName { get; set; }"}),i,d,l(a,{def:"public string LocalPropertyObjectName { get; set; }"}),C,u,l(a,{def:"public string StaticPropertyValue { get; set; }"}),h])}const T=o(r,[["render",m]]);export{k as __pageData,T as default}; diff --git a/assets/modeling_model-components_attributes_typescript-partial.md.BmqcZBS2.js b/assets/modeling_model-components_attributes_typescript-partial.md.BmqcZBS2.js new file mode 100644 index 000000000..465024703 --- /dev/null +++ b/assets/modeling_model-components_attributes_typescript-partial.md.BmqcZBS2.js @@ -0,0 +1,7 @@ +import{_ as a,c as s,I as t,a7 as o,l as n,o as l,E as p}from"./chunks/framework.Be4oCqIX.js";const _=JSON.parse('{"title":"[TypeScriptPartial]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/typescript-partial.md","filePath":"modeling/model-components/attributes/typescript-partial.md"}'),r={name:"modeling/model-components/attributes/typescript-partial.md"},i=o(`<h1 id="typescriptpartial" tabindex="-1">[TypeScriptPartial] <a class="header-anchor" href="#typescriptpartial" aria-label="Permalink to "[TypeScriptPartial]"">​</a></h1><div class="tip custom-block"><p class="custom-block-title">Note</p><p>This attribute only applies to the Knockout front-end stack. It is not applicable to the Vue stack.</p></div><p>If defined on a model, a typescript file will be generated in ./Scripts/Partials if one does not already exist. This 'Partial' TypeScript file contains a class which inherits from the generated TypeScript ViewModel. The partial class has the same name as the generated ViewModel would normally have, and the generated ViewModel is renamed to <code>"<ClassName>Partial"</code>.</p><p>This behavior allows you to extend the behavior of the generated TypeScript view models with your own properties and methods for defining more advanced behavior on the client. One of the most common use cases of this is to define additional Knockout <code>ComputedObservable</code> properties for information that is only useful in the browser - for example, computing a css class based on data in the object.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">TypeScriptPartial</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> EmployeeId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h2>`,7),c=n("p",null,"If set, overrides the name of the generated ViewModel which becomes the base class for the generated 'Partial' TypeScript file.",-1);function d(h,m,y,u,f,D){const e=p("Prop");return l(),s("div",null,[i,t(e,{def:"public string BaseClassName { get; set; }"}),c])}const g=a(r,[["render",d]]);export{_ as __pageData,g as default}; diff --git a/assets/modeling_model-components_attributes_typescript-partial.md.BmqcZBS2.lean.js b/assets/modeling_model-components_attributes_typescript-partial.md.BmqcZBS2.lean.js new file mode 100644 index 000000000..a0471ee4e --- /dev/null +++ b/assets/modeling_model-components_attributes_typescript-partial.md.BmqcZBS2.lean.js @@ -0,0 +1 @@ +import{_ as a,c as s,I as t,a7 as o,l as n,o as l,E as p}from"./chunks/framework.Be4oCqIX.js";const _=JSON.parse('{"title":"[TypeScriptPartial]","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/attributes/typescript-partial.md","filePath":"modeling/model-components/attributes/typescript-partial.md"}'),r={name:"modeling/model-components/attributes/typescript-partial.md"},i=o("",7),c=n("p",null,"If set, overrides the name of the generated ViewModel which becomes the base class for the generated 'Partial' TypeScript file.",-1);function d(h,m,y,u,f,D){const e=p("Prop");return l(),s("div",null,[i,t(e,{def:"public string BaseClassName { get; set; }"}),c])}const g=a(r,[["render",d]]);export{_ as __pageData,g as default}; diff --git a/assets/modeling_model-components_behaviors.md.C6zcbZxr.js b/assets/modeling_model-components_behaviors.md.C6zcbZxr.js new file mode 100644 index 000000000..8fb54f2cd --- /dev/null +++ b/assets/modeling_model-components_behaviors.md.C6zcbZxr.js @@ -0,0 +1,70 @@ +import{_ as o,c as l,I as t,a7 as n,l as e,a as s,o as r,E as p}from"./chunks/framework.Be4oCqIX.js";const K=JSON.parse('{"title":"Behaviors","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/behaviors.md","filePath":"modeling/model-components/behaviors.md"}'),c={name:"modeling/model-components/behaviors.md"},i=n(`<h1 id="behaviors" tabindex="-1">Behaviors <a class="header-anchor" href="#behaviors" aria-label="Permalink to "Behaviors"">​</a></h1><p><em>In a CRUD system, creating, updating, and deleting are considered especially different from reading. In Coalesce, the dedicated classes that perform these operations are derivatives of a special interface known as the</em> <code>IBehaviors<T></code>. <em>These are their stories</em>.</p><hr><p>Coalesce separates out the parts of your API that read your data from the parts that mutate it. The read portion is performed by <a href="/Coalesce/modeling/model-components/data-sources.html">Data Sources</a>, and the mutations are performed by behaviors. Like data sources, there exists a standard set of behaviors that Coalesce provides out-of-the-box that cover the most common use cases for creating, updating, and deleting objects in your data model.</p><p>Also like data sources, these functions can be easily overridden on a per-model basis, allowing complete control over the ways in which your data is mutated by the APIs that Coalesce generates. However, unlike data sources which can have as many implementations per model as you like, you can only have one set of behaviors.</p><h2 id="defining-behaviors" tabindex="-1">Defining Behaviors <a class="header-anchor" href="#defining-behaviors" aria-label="Permalink to "Defining Behaviors"">​</a></h2><p>By default, each of your models that Coalesce exposes will utilize the standard behaviors (<code>IntelliTect.Coalesce.StandardBehaviors<T, TContext></code>) for the out-of-the-box API endpoints that Coalesce provides. These behaviors provide a set of create, update, and delete methods for an EF Core <code>DbContext</code>, as well as a plethora of virtual methods that make the <code>StandardBehaviors</code> a great base class for your custom implementations. Unlike data sources which require an annotation to override the Coalesce-provided standard class, the simple presence of an explicitly declared set of behaviors will suppress the standard behaviors.</p><div class="tip custom-block"><p class="custom-block-title">Note</p><p>When you define a set of custom behaviors, take note that these are only used by the standard set of API endpoints that Coalesce always provides. They will not be used to handle any mutations in any <a href="/Coalesce/modeling/model-components/methods.html">Methods</a> you write for your models.</p></div><p>To create your own behaviors, you simply need to define a class that implements <code>IntelliTect.Coalesce.IBehaviors<T></code>. To expose your behaviors to Coalesce, either place it as a nested class of the type <code>T</code> that your behaviors are for, or annotate it with the <code>[Coalesce]</code> attribute. Of course, the easiest way to create behaviors that doesn't require you to re-engineer a great deal of logic would be to inherit from <code>IntelliTect.Coalesce.StandardBehaviors<T, TContext></code>, and then override only the parts that you need.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Case</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> CaseId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> OwnerId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> IsDeleted</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> CaseBehaviors</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">StandardBehaviors</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Case</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> CaseBehaviors</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CrudContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">base</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) { }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> ItemResult</span><span style="color:#DCDCAA;"> BeforeSave</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">SaveKind</span><span style="color:#9CDCFE;"> kind</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Case</span><span style="color:#9CDCFE;"> oldItem</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Case</span><span style="color:#9CDCFE;"> item</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#6A9955;"> // Allow admins to bypass all validation.</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsInRole</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Admin"</span><span style="color:#D4D4D4;">)) </span><span style="color:#C586C0;">return</span><span style="color:#569CD6;"> true</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">kind</span><span style="color:#D4D4D4;"> == </span><span style="color:#9CDCFE;">SaveKind</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Update</span><span style="color:#D4D4D4;"> && </span><span style="color:#9CDCFE;">oldItem</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">OwnerId</span><span style="color:#D4D4D4;"> != </span><span style="color:#9CDCFE;">item</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">OwnerId</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#CE9178;"> "The owner of a case may not be changed"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // This is a new item, OR its an existing item and the owner isn't being modified.</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">item</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CreatedById</span><span style="color:#D4D4D4;"> != </span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">GetUserId</span><span style="color:#D4D4D4;">())</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#CE9178;"> "You are not the owner of this item."</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#569CD6;"> true</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> ItemResult</span><span style="color:#DCDCAA;"> BeforeDelete</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">Case</span><span style="color:#9CDCFE;"> item</span><span style="color:#D4D4D4;">) </span></span> +<span class="line"><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsInRole</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Manager"</span><span style="color:#D4D4D4;">) ? </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;"> : </span><span style="color:#CE9178;">"Unauthorized"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> Task</span><span style="color:#DCDCAA;"> ExecuteDeleteAsync</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">Case</span><span style="color:#9CDCFE;"> item</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#6A9955;"> // Soft delete the item.</span></span> +<span class="line"><span style="color:#9CDCFE;"> item</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">IsDeleted</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> Db</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">SaveChangesAsync</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="dependency-injection" tabindex="-1">Dependency Injection <a class="header-anchor" href="#dependency-injection" aria-label="Permalink to "Dependency Injection"">​</a></h3><p>All behaviors are instantiated using dependency injection and your application's <code>IServiceProvider</code>. As a result, you can add whatever constructor parameters you desire to your behaviors as long as a value for them can be resolved from your application's services. The single parameter to the <code>StandardBehaviors</code> is resolved in this way - the <code>CrudContext<TContext></code> contains the common set of objects most commonly used, including the <code>DbContext</code> and the <code>ClaimsPrincipal</code> representing the current user.</p><h2 id="standard-behaviors" tabindex="-1">Standard Behaviors <a class="header-anchor" href="#standard-behaviors" aria-label="Permalink to "Standard Behaviors"">​</a></h2><p>The standard behaviors, <code>IntelliTect.Coalesce.StandardBehaviors<T></code> and its EntityFramework-supporting sibling <code>IntelliTect.Coalesce.StandardBehaviors<T, TContext></code>, contain a significant number of properties and methods that can be utilized and/or overridden at your leisure.</p><h3 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h3>`,15),d=e("p",null,"The object passed to the constructor that contains the set of objects needed by the standard behaviors, and those that are most likely to be used in custom implementations.",-1),D=e("p",null,[s("An instance of the db context that contains a "),e("code",null,"DbSet<T>"),s(" for the entity handled by the behaviors")],-1),h=e("p",null,"The user making the current request.",-1),y=e("p",null,"A data source that, if set, will override the data source that is used to retrieve the target of an update operation from the database. The incoming values will then be set on this retrieved object. Null by default; override by setting a value in the constructor.",-1),u=e("p",null,"A data source that, if set, will override the data source that is used to retrieve a newly-created or just-updated object from the database after a save. The retrieved object will be returned to the client. Null by default; override by setting a value in the constructor.",-1),m=e("p",null,"A data source that, if set, will override the data source that is used to retrieve the target of an delete operation from the database. The retrieved object will then be deleted. Null by default; override by setting a value in the constructor.",-1),C=n(`<p>A data source that, if set, will override the data source that is used to retrieve the target of an delete operation from the database after it has been deleted. If an object is able to be retrieved from this data source, it will be sent back to the client. This allows soft-deleted items to be returned to the client when the user is able to see them. Null by default; override by setting a value in the constructor.</p><h3 id="method-overview" tabindex="-1">Method Overview <a class="header-anchor" href="#method-overview" aria-label="Permalink to "Method Overview"">​</a></h3><p>The standard behaviors implementation contains many different methods which can be overridden in your derived class to control functionality.</p><p>These methods often call one another, so overriding one method may cause some other method to no longer be called. The hierarchy of method calls, ignoring any logic or conditions contained within, is as follows:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki dark-plus vp-code"><code><span class="line"><span>SaveAsync</span></span> +<span class="line"><span> DetermineSaveKindAsync</span></span> +<span class="line"><span> GetDbSet</span></span> +<span class="line"><span> ValidateDto</span></span> +<span class="line"><span> MapIncomingDto</span></span> +<span class="line"><span> BeforeSaveAsync</span></span> +<span class="line"><span> BeforeSave</span></span> +<span class="line"><span> ExecuteSaveAsync</span></span> +<span class="line"><span> AfterSave</span></span> +<span class="line"><span></span></span> +<span class="line"><span>DeleteAsync</span></span> +<span class="line"><span> BeforeDeleteAsync</span></span> +<span class="line"><span> BeforeDelete</span></span> +<span class="line"><span> ExecuteDeleteAsync</span></span> +<span class="line"><span> GetDbSet</span></span> +<span class="line"><span> AfterDelete</span></span></code></pre></div><h3 id="method-details" tabindex="-1">Method Details <a class="header-anchor" href="#method-details" aria-label="Permalink to "Method Details"">​</a></h3><p>All of the methods outlined above can be overridden. A description of each of the methods is as follows:</p>`,7),v=e("p",null,[s("Save the given item. This is the main entry point for saving, and takes a DTO as a parameter. This method is responsible for performing mapping to your EF models and ultimately saving to your database. If it is required that you access properties from the incoming DTO in this method, a set of extension methods "),e("code",null,"GetValue"),s(" and "),e("code",null,"GetObject"),s(" are available on the DTO for accessing properties that are mapped 1:1 with your EF models.")],-1),b=e("p",null,"Given the incoming DTO on which Save has been called, examine its properties to determine if the operation is meant to be a create or an update operation. Return this distinction along with the key that was used to make the distinction.",-1),f=e("p",null,"This method is called outside of the standard data source by the base API controller to perform role-based security on saves at the controller level.",-1),T=e("p",null,[s("Returns a "),e("code",null,"DbSet<T>"),s(" that items can be added to (creates) or remove from (deletes).")],-1),g=e("p",null,[s("Provides a chance to validate the properties of the DTO object itself, as opposed to doing validation in "),e("code",null,"BeforeSave"),s(" of the properties of the model after the DTO has been mapped to the model. This also where "),e("a",{href:"/Coalesce/topics/security.html#attribute-validation"},"attribute-based validation"),s(" is performed.")],-1),_=e("p",null,[s("To perform custom validation in this method (uncommon), there are a number of extension methods on "),e("code",null,"IClassDto<T>"),s(" that can be used to access the value of the properties of "),e("a",{href:"/Coalesce/stacks/agnostic/dtos.html"},"Generated C# DTOs"),s(". For behaviors on "),e("a",{href:"/Coalesce/modeling/model-types/dtos.html"},"Custom DTOs"),s(" where the DTO type is known, simply cast to the correct type.")],-1),w=n("<p>Map the properties of the incoming DTO to the model that will be saved to the database. For a <code>SaveKind.Create</code>, this will call the <code>MapToNew</code> method on the DTO and a new instance must be returned (<code>item</code> will be null). For a <code>SaveKind.Update</code>, this will call the <code>MapTo</code> method on the DTO, and the incoming <code>item</code> must be returned. If more precise control is needed, extension methods on <code>IClassDto<T></code> or casting to a known type can be used to get specific values. If all else fails, the DTO can be reflected upon.</p>",1),S=e("p",null,"Provides an easy way for derived classes to intercept a save attempt and either reject it by returning an unsuccessful result, or approve it by returning success. The incoming item can also be modified at will in this method to override changes that the client made as desired.",-1),I=e("p",null,[s("Provides an easy way for derived classes to perform actions after a save operation has been completed. Failure results returned here will present an error to the client, but will not prevent modifications to the database since changes have already been saved at this point. This method can optionally modify or replace the item that is sent back to the client after a save by setting "),e("code",null,"ref T item"),s(" to another object or to null. Setting "),e("code",null,"ref IncludeTree includeTree"),s(" will override the "),e("a",{href:"/Coalesce/concepts/include-tree.html"},"Include Tree"),s(" used to shape the response object.")],-1),A=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"WARNING"),e("p",null,[s("Setting "),e("code",null,"ref T item"),s(" to null will prevent the new object from being returned - be aware that this can be harmful in create scenarios since it prevents the client from receiving the primary key of the newly created item. If autoSave is enabled on the client, this could cause a large number of duplicate objects to be created in the database, since each subsequent save by the client will be treated as a create when the incoming object lacks a primary key.")])],-1),E=e("p",null,"Deletes the given item.",-1),B=e("p",null,"Provides an easy way to intercept a delete request and potentially reject it (by returning a non-success ItemResult).",-1),k=e("p",null,[s("Performs the delete action against the database. The implementation of this method removes the item from its corresponding "),e("code",null,"DbSet<T>"),s(", and then calls "),e("code",null,"Db.SaveChangesAsync()"),s(".")],-1),x=e("p",null,"Overriding this allows for changing this row-deletion implementation to something else, like setting of a soft delete flag, or copying the data into another archival table before deleting.",-1),F=n(`<p>Allows for performing any sort of cleanup actions after a delete has completed. If the item was still able to be retrieved from the database after the delete operation completed, this method allows lets you modify or replace the item that is sent back to the client by setting <code>ref T item</code> to another object or to null. Setting <code>ref IncludeTree includeTree</code> will override the <a href="/Coalesce/concepts/include-tree.html">Include Tree</a> used to shape the response object.</p><h2 id="globally-replacing-the-standard-behaviors" tabindex="-1">Globally Replacing the Standard Behaviors <a class="header-anchor" href="#globally-replacing-the-standard-behaviors" aria-label="Permalink to "Globally Replacing the Standard Behaviors"">​</a></h2><p>You can, of course, create a custom base behaviors class that all your custom implementations inherit from. But, what if you want to override the standard behaviors across your entire application, so that <code>StandardBehaviors<,></code> will never be instantiated? You can do that too!</p><p>Simply create a class that implements <code>IEntityFrameworkBehaviors<,></code> (the <code>StandardBehaviors<,></code> already does - feel free to inherit from it), then register it at application startup like so:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> MyBehaviors</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">T</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">TContext</span><span style="color:#D4D4D4;">> : </span><span style="color:#4EC9B0;">StandardBehaviors</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">T</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">TContext</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#569CD6;"> where</span><span style="color:#4EC9B0;"> T</span><span style="color:#D4D4D4;"> : </span><span style="color:#569CD6;">class</span></span> +<span class="line"><span style="color:#569CD6;"> where</span><span style="color:#4EC9B0;"> TContext</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">DbContext</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> MyBehaviors</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CrudContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">TContext</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">base</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> ConfigureServices</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IServiceCollection</span><span style="color:#9CDCFE;"> services</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#9CDCFE;"> services</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">AddCoalesce</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">b</span><span style="color:#D4D4D4;"> =></span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> b</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">AddContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">>();</span></span> +<span class="line"><span style="color:#9CDCFE;"> b</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">UseDefaultBehaviors</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">typeof</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">MyBehaviors</span><span style="color:#D4D4D4;"><,>));</span></span> +<span class="line"><span style="color:#D4D4D4;"> });</span></span></code></pre></div><p>Your custom behaviors class must have the same generic type parameters - <code><T, TContext></code>. Otherwise, the Microsoft.Extensions.DependencyInjection service provider won't know how to inject it.</p>`,7);function P(q,j,O,R,N,M){const a=p("Prop");return r(),l("div",null,[i,t(a,{def:"CrudContext<TContext> Context"}),d,t(a,{def:"TContext Db"}),D,t(a,{def:"ClaimsPrincipal User"}),h,t(a,{def:"IDataSource<T> OverrideFetchForUpdateDataSource"}),y,t(a,{def:"IDataSource<T> OverridePostSaveResultDataSource"}),u,t(a,{def:"IDataSource<T> OverrideFetchForDeleteDataSource"}),m,t(a,{def:"IDataSource<T> OverridePostDeleteResultDataSource"}),C,t(a,{def:"Task<ItemResult<TDto?>> SaveAsync<TDto>(TDto incomingDto, IDataSource<T> dataSource, IDataSourceParameters parameters)"}),v,t(a,{def:"Task<(SaveKind Kind, object? IncomingKey)> DetermineSaveKindAsync<TDto>(TDto incomingDto, IDataSource<T> dataSource, IDataSourceParameters parameters)"}),b,f,t(a,{def:"DbSet<T> GetDbSet()"}),T,t(a,{def:"ItemResult ValidateDto(SaveKind kind, IClassDto<T> dto)"}),g,_,t(a,{def:"T MapIncomingDto<TDto>(SaveKind kind, T? item, TDto dto, IDataSourceParameters parameters)"}),w,t(a,{def:`Task<ItemResult> BeforeSaveAsync(SaveKind kind, T? oldItem, T item); +ItemResult BeforeSave(SaveKind kind, T? oldItem, T item)`}),S,t(a,{def:"ItemResult AfterSave(SaveKind kind, T? oldItem, ref T item, ref IncludeTree? includeTree)"}),I,A,t(a,{def:"Task<ItemResult<TDto?>> DeleteAsync<TDto>(object id, IDataSource<T> dataSource, IDataSourceParameters parameters)"}),E,t(a,{def:`Task<ItemResult> BeforeDeleteAsync(T item); +ItemResult BeforeDelete(T item)`}),B,t(a,{def:"Task ExecuteDeleteAsync(T item)"}),k,x,t(a,{def:"void AfterDelete(ref T item, ref IncludeTree? includeTree)"}),F])}const U=o(c,[["render",P]]);export{K as __pageData,U as default}; diff --git a/assets/modeling_model-components_behaviors.md.C6zcbZxr.lean.js b/assets/modeling_model-components_behaviors.md.C6zcbZxr.lean.js new file mode 100644 index 000000000..88e80ae82 --- /dev/null +++ b/assets/modeling_model-components_behaviors.md.C6zcbZxr.lean.js @@ -0,0 +1,3 @@ +import{_ as o,c as l,I as t,a7 as n,l as e,a as s,o as r,E as p}from"./chunks/framework.Be4oCqIX.js";const K=JSON.parse('{"title":"Behaviors","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/behaviors.md","filePath":"modeling/model-components/behaviors.md"}'),c={name:"modeling/model-components/behaviors.md"},i=n("",15),d=e("p",null,"The object passed to the constructor that contains the set of objects needed by the standard behaviors, and those that are most likely to be used in custom implementations.",-1),D=e("p",null,[s("An instance of the db context that contains a "),e("code",null,"DbSet<T>"),s(" for the entity handled by the behaviors")],-1),h=e("p",null,"The user making the current request.",-1),y=e("p",null,"A data source that, if set, will override the data source that is used to retrieve the target of an update operation from the database. The incoming values will then be set on this retrieved object. Null by default; override by setting a value in the constructor.",-1),u=e("p",null,"A data source that, if set, will override the data source that is used to retrieve a newly-created or just-updated object from the database after a save. The retrieved object will be returned to the client. Null by default; override by setting a value in the constructor.",-1),m=e("p",null,"A data source that, if set, will override the data source that is used to retrieve the target of an delete operation from the database. The retrieved object will then be deleted. Null by default; override by setting a value in the constructor.",-1),C=n("",7),v=e("p",null,[s("Save the given item. This is the main entry point for saving, and takes a DTO as a parameter. This method is responsible for performing mapping to your EF models and ultimately saving to your database. If it is required that you access properties from the incoming DTO in this method, a set of extension methods "),e("code",null,"GetValue"),s(" and "),e("code",null,"GetObject"),s(" are available on the DTO for accessing properties that are mapped 1:1 with your EF models.")],-1),b=e("p",null,"Given the incoming DTO on which Save has been called, examine its properties to determine if the operation is meant to be a create or an update operation. Return this distinction along with the key that was used to make the distinction.",-1),f=e("p",null,"This method is called outside of the standard data source by the base API controller to perform role-based security on saves at the controller level.",-1),T=e("p",null,[s("Returns a "),e("code",null,"DbSet<T>"),s(" that items can be added to (creates) or remove from (deletes).")],-1),g=e("p",null,[s("Provides a chance to validate the properties of the DTO object itself, as opposed to doing validation in "),e("code",null,"BeforeSave"),s(" of the properties of the model after the DTO has been mapped to the model. This also where "),e("a",{href:"/Coalesce/topics/security.html#attribute-validation"},"attribute-based validation"),s(" is performed.")],-1),_=e("p",null,[s("To perform custom validation in this method (uncommon), there are a number of extension methods on "),e("code",null,"IClassDto<T>"),s(" that can be used to access the value of the properties of "),e("a",{href:"/Coalesce/stacks/agnostic/dtos.html"},"Generated C# DTOs"),s(". For behaviors on "),e("a",{href:"/Coalesce/modeling/model-types/dtos.html"},"Custom DTOs"),s(" where the DTO type is known, simply cast to the correct type.")],-1),w=n("",1),S=e("p",null,"Provides an easy way for derived classes to intercept a save attempt and either reject it by returning an unsuccessful result, or approve it by returning success. The incoming item can also be modified at will in this method to override changes that the client made as desired.",-1),I=e("p",null,[s("Provides an easy way for derived classes to perform actions after a save operation has been completed. Failure results returned here will present an error to the client, but will not prevent modifications to the database since changes have already been saved at this point. This method can optionally modify or replace the item that is sent back to the client after a save by setting "),e("code",null,"ref T item"),s(" to another object or to null. Setting "),e("code",null,"ref IncludeTree includeTree"),s(" will override the "),e("a",{href:"/Coalesce/concepts/include-tree.html"},"Include Tree"),s(" used to shape the response object.")],-1),A=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"WARNING"),e("p",null,[s("Setting "),e("code",null,"ref T item"),s(" to null will prevent the new object from being returned - be aware that this can be harmful in create scenarios since it prevents the client from receiving the primary key of the newly created item. If autoSave is enabled on the client, this could cause a large number of duplicate objects to be created in the database, since each subsequent save by the client will be treated as a create when the incoming object lacks a primary key.")])],-1),E=e("p",null,"Deletes the given item.",-1),B=e("p",null,"Provides an easy way to intercept a delete request and potentially reject it (by returning a non-success ItemResult).",-1),k=e("p",null,[s("Performs the delete action against the database. The implementation of this method removes the item from its corresponding "),e("code",null,"DbSet<T>"),s(", and then calls "),e("code",null,"Db.SaveChangesAsync()"),s(".")],-1),x=e("p",null,"Overriding this allows for changing this row-deletion implementation to something else, like setting of a soft delete flag, or copying the data into another archival table before deleting.",-1),F=n("",7);function P(q,j,O,R,N,M){const a=p("Prop");return r(),l("div",null,[i,t(a,{def:"CrudContext<TContext> Context"}),d,t(a,{def:"TContext Db"}),D,t(a,{def:"ClaimsPrincipal User"}),h,t(a,{def:"IDataSource<T> OverrideFetchForUpdateDataSource"}),y,t(a,{def:"IDataSource<T> OverridePostSaveResultDataSource"}),u,t(a,{def:"IDataSource<T> OverrideFetchForDeleteDataSource"}),m,t(a,{def:"IDataSource<T> OverridePostDeleteResultDataSource"}),C,t(a,{def:"Task<ItemResult<TDto?>> SaveAsync<TDto>(TDto incomingDto, IDataSource<T> dataSource, IDataSourceParameters parameters)"}),v,t(a,{def:"Task<(SaveKind Kind, object? IncomingKey)> DetermineSaveKindAsync<TDto>(TDto incomingDto, IDataSource<T> dataSource, IDataSourceParameters parameters)"}),b,f,t(a,{def:"DbSet<T> GetDbSet()"}),T,t(a,{def:"ItemResult ValidateDto(SaveKind kind, IClassDto<T> dto)"}),g,_,t(a,{def:"T MapIncomingDto<TDto>(SaveKind kind, T? item, TDto dto, IDataSourceParameters parameters)"}),w,t(a,{def:`Task<ItemResult> BeforeSaveAsync(SaveKind kind, T? oldItem, T item); +ItemResult BeforeSave(SaveKind kind, T? oldItem, T item)`}),S,t(a,{def:"ItemResult AfterSave(SaveKind kind, T? oldItem, ref T item, ref IncludeTree? includeTree)"}),I,A,t(a,{def:"Task<ItemResult<TDto?>> DeleteAsync<TDto>(object id, IDataSource<T> dataSource, IDataSourceParameters parameters)"}),E,t(a,{def:`Task<ItemResult> BeforeDeleteAsync(T item); +ItemResult BeforeDelete(T item)`}),B,t(a,{def:"Task ExecuteDeleteAsync(T item)"}),k,x,t(a,{def:"void AfterDelete(ref T item, ref IncludeTree? includeTree)"}),F])}const U=o(c,[["render",P]]);export{K as __pageData,U as default}; diff --git a/assets/modeling_model-components_data-sources.md.BYHdRZTD.js b/assets/modeling_model-components_data-sources.md.BYHdRZTD.js new file mode 100644 index 000000000..63c729a7f --- /dev/null +++ b/assets/modeling_model-components_data-sources.md.BYHdRZTD.js @@ -0,0 +1,111 @@ +import{_ as p,c,I as a,w as l,a7 as n,l as s,a as e,E as r,o as i}from"./chunks/framework.Be4oCqIX.js";const X=JSON.parse('{"title":"Data Sources","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/data-sources.md","filePath":"modeling/model-components/data-sources.md"}'),D={name:"modeling/model-components/data-sources.md"},d=n(`<h1 id="data-sources" tabindex="-1">Data Sources <a class="header-anchor" href="#data-sources" aria-label="Permalink to "Data Sources"">​</a></h1><p>In Coalesce, all data that is retrieved from your database through the generated controllers is done so by a data source. These data sources control what data gets loaded and how it gets loaded. By default, there is a single generic data source that serves all data for your models in a generic way that fits many of the most common use cases - the <a href="/Coalesce/modeling/model-components/data-sources.html#standard-data-source">Standard Data Source</a>.</p><p>In addition to this standard data source, Coalesce allows you to create custom data sources that provide complete control over the way data is loaded and serialized for transfer to a requesting client. These data sources are defined on a per-model basis, and you can have as many of them as you like for each model.</p><h2 id="defining-data-sources" tabindex="-1">Defining Data Sources <a class="header-anchor" href="#defining-data-sources" aria-label="Permalink to "Defining Data Sources"">​</a></h2><p>By default, each of your models that Coalesce exposes will expose the standard data source (<code>IntelliTect.Coalesce.StandardDataSource<T, TContext></code>). This data source provides all the standard functionality one would expect - paging, sorting, searching, filtering, and so on. Each of these component pieces is implemented in one or more virtual methods, making the <code>StandardDataSource</code> a great place to start from when implementing your own data source. To suppress this behavior of always exposing the raw <code>StandardDataSource</code>, create your own custom data source and annotate it with <code>[DefaultDataSource]</code>.</p><p>To implement your own custom data source, you simply need to define a class that implements <code>IntelliTect.Coalesce.IDataSource<T></code>. To expose your data source to Coalesce, either place it as a nested class of the type <code>T</code> that you data source serves, or annotate it with the <code>[Coalesce]</code> attribute. Of course, the easiest way to create a data source that doesn't require you to re-engineer a great deal of logic would be to inherit from <code>IntelliTect.Coalesce.StandardDataSource<T, TContext></code>, and then override only the parts that you need.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DefaultDataSource</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> IncludeFamily</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">StandardDataSource</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Person</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> IncludeFamily</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CrudContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">base</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) { }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Person</span><span style="color:#D4D4D4;">> </span><span style="color:#DCDCAA;">GetQuery</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IDataSourceParameters</span><span style="color:#9CDCFE;"> parameters</span><span style="color:#D4D4D4;">) </span></span> +<span class="line"><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">Db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">People</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Where</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsInRole</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Admin"</span><span style="color:#D4D4D4;">) || </span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CreatedById</span><span style="color:#D4D4D4;"> == </span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">GetUserId</span><span style="color:#D4D4D4;">())</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Include</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Parents</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">ThenInclude</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">s</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">s</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Parents</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Include</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Cousins</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">ThenInclude</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">s</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">s</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Parents</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> NamesStartingWithA</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">StandardDataSource</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Person</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> NamesStartingWithA</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CrudContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">base</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) { }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Person</span><span style="color:#D4D4D4;">> </span><span style="color:#DCDCAA;">GetQuery</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IDataSourceParameters</span><span style="color:#9CDCFE;"> parameters</span><span style="color:#D4D4D4;">) </span></span> +<span class="line"><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">Db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">People</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Include</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Siblings</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">Where</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">FirstName</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">StartsWith</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"A"</span><span style="color:#D4D4D4;">));</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>The structure of the <code>IQueryable</code> built by the various methods of <code>StandardDataSource</code> is used to shape and trim the structure of the DTO as it is serialized and sent out to the client. One may also override method <code>IncludeTree GetIncludeTree(IQueryable<Person> query, IDataSourceParameters parameters)</code> to control this explicitly. See <a href="/Coalesce/concepts/include-tree.html">Include Tree</a> for more information on how this works.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>If you create a custom data source that has custom logic for securing your data, be aware that the default implementation of <code>StandardDataSource</code> (or your custom default implementation - see below) is still exposed unless you annotate one of your custom data sources with <code>[DefaultDataSource]</code>. Doing so will replace the default data source with the annotated class for your type <code>T</code>.</p></div><h3 id="dependency-injection" tabindex="-1">Dependency Injection <a class="header-anchor" href="#dependency-injection" aria-label="Permalink to "Dependency Injection"">​</a></h3><p>All data sources are instantiated using dependency injection and your application's <code>IServiceProvider</code>. As a result, you can add whatever constructor parameters you desire to your data sources as long as a value for them can be resolved from your application's services. The single parameter to the <code>StandardDataSource</code> is resolved in this way - the <code>CrudContext<TContext></code> contains the common set of objects most commonly used, including the <code>DbContext</code> and the <code>ClaimsPrincipal</code> representing the current user.</p><h2 id="consuming-data-sources" tabindex="-1">Consuming Data Sources <a class="header-anchor" href="#consuming-data-sources" aria-label="Permalink to "Consuming Data Sources"">​</a></h2>`,12),y=s("p",null,[e("The "),s("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html#viewmodels"},"ViewModels"),e(" and "),s("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html#listviewmodels"},"ListViewModels"),e(" each have a property called "),s("code",null,"$dataSource"),e(". This property accepts an instance of a "),s("a",{href:"/Coalesce/stacks/vue/layers/models.html"},"DataSource"),e(" class generated in the "),s("a",{href:"/Coalesce/stacks/vue/layers/models.html"},"Model Layer"),e(".")],-1),u=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"Person"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/models.g'")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"PersonViewModel"),s("span",{style:{color:"#D4D4D4"}},", "),s("span",{style:{color:"#9CDCFE"}},"PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," Person"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"DataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"IncludeFamily"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," list"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," Person"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"DataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"NamesStartingWith"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")])])])],-1),C=s("p",null,[e("The "),s("a",{href:"/Coalesce/stacks/ko/client/view-model.html"},"TypeScript ViewModels"),e(" and "),s("a",{href:"/Coalesce/stacks/ko/client/list-view-model.html"},"TypeScript ListViewModels"),e(" each have a property called "),s("code",null,"dataSource"),e(". These properties accept an instance of a "),s("code",null,"Coalesce.DataSource<T>"),e(". Generated classes that satisfy this relationship for all the data sources that were defined in C# may be found in the "),s("code",null,"dataSources"),e(" property on an instance of a ViewModel or ListViewModel, or in "),s("code",null,"ListViewModels.<ModelName>DataSources")],-1),h=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"Person"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"IncludeFamily"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," list"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ListViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"PersonList"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"NamesStartingWith"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"();")])])])],-1),m=n(`<h2 id="standard-parameters" tabindex="-1">Standard Parameters <a class="header-anchor" href="#standard-parameters" aria-label="Permalink to "Standard Parameters"">​</a></h2><p>All methods on <code>IDataSource<T></code> take a parameter that contains all the client-specified parameters for things paging, searching, sorting, and filtering information. Almost all virtual methods on <code>StandardDataSource</code> are also passed the relevant set of parameters.</p><h2 id="custom-parameters" tabindex="-1">Custom Parameters <a class="header-anchor" href="#custom-parameters" aria-label="Permalink to "Custom Parameters"">​</a></h2><p>On any data source that you create, you may add additional properties annotated with <code>[Coalesce]</code> that will then be exposed as parameters to the client. These property parameters are currently restricted to primitives (numeric types, strings) and dates (DateTime, DateTimeOffset). Property parameter primitives may be expanded to allow for more types in the future.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> NamesStartingWith</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">StandardDataSource</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Person</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> NamesStartingWith</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CrudContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">base</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) { }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> StartsWith</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Person</span><span style="color:#D4D4D4;">> </span><span style="color:#DCDCAA;">GetQuery</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IDataSourceParameters</span><span style="color:#9CDCFE;"> parameters</span><span style="color:#D4D4D4;">) </span></span> +<span class="line"><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">Db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">People</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Include</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Siblings</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Where</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;"> => </span><span style="color:#569CD6;">string</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsNullOrWhitespace</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">StartsWith</span><span style="color:#D4D4D4;">) ? </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;"> : </span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">FirstName</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">StartsWith</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">StartsWith</span><span style="color:#D4D4D4;">));</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="list-auto-loading" tabindex="-1">List Auto-loading <a class="header-anchor" href="#list-auto-loading" aria-label="Permalink to "List Auto-loading"">​</a></h3><p>You can setup <a href="/Coalesce/stacks/disambiguation/list-view-model.html">TypeScript List ViewModels</a> to automatically reload from the server when data source parameters change:</p>`,7),f=s("p",null,[e("To automatically reload a "),s("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),e(" when data source parameters change, simply use the list's "),s("code",null,"$useAutoLoad"),e(" or "),s("code",null,"$startAutoLoad"),e(" function:")],-1),g=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"Person"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/models.g'"),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'"),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"const"),s("span",{style:{color:"#4FC1FF"}}," list"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"const"),s("span",{style:{color:"#4FC1FF"}}," dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," Person"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"DataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"NamesStartingWith")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$useAutoLoad"),s("span",{style:{color:"#D4D4D4"}},"(); "),s("span",{style:{color:"#6A9955"}},"// When using options API, use $startAutoLoad(this)")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}},"// Trigger a reload:")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"startsWith"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"Jo"'),s("span",{style:{color:"#D4D4D4"}},";")])])])],-1),b=s("p",null,"The properties created on the TypeScript objects are observables so they may be bound to directly. In order to automatically reload a list when a data source parameter changes, you must explicitly subscribe to it:",-1),A=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," list"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ListViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"PersonList"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"NamesStartingWith"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"startsWith"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#CE9178"}},'"Jo"'),s("span",{style:{color:"#D4D4D4"}},");")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"subscribe"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"); "),s("span",{style:{color:"#6A9955"}},"// Enables automatic reloading.")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"();")])])])],-1),v=n('<h2 id="standard-data-source" tabindex="-1">Standard Data Source <a class="header-anchor" href="#standard-data-source" aria-label="Permalink to "Standard Data Source"">​</a></h2><p>The standard data sources, <code>IntelliTect.Coalesce.StandardDataSource<T></code> and its EntityFramework-supporting sibling <code>IntelliTect.Coalesce.StandardDataSource<T, TContext></code>, contain a significant number of properties and methods that can be utilized and/or overridden at your leisure.</p><h3 id="default-loading-behavior" tabindex="-1">Default Loading Behavior <a class="header-anchor" href="#default-loading-behavior" aria-label="Permalink to "Default Loading Behavior"">​</a></h3><p>When an object or list of objects is requested, the default behavior of the the <code>StandardDataSource</code> is to load all of the immediate relationships of the object (parent objects and child collections), as well as the far side of <a href="./attributes/many-to-many.html">many-to-many</a> relationships. This is performed in <code>StandardDataSource.GetQuery()</code>, so in order to suppress this behavior in a custom data source, don't build you query off of <code>base.GetQuery()</code>, but instead start directly from the <code>DbSet</code> for your entity when building your custom query.</p><p>Clients can suppress this per-request by setting <code>includes = "none"</code> on your TypeScript <a href="/Coalesce/stacks/disambiguation/view-model.html">ViewModel</a> or <a href="/Coalesce/stacks/disambiguation/list-view-model.html">ListViewModel</a>, but note this is not a security mechanism and should only be used to reduce payload size or improve response time.</p><p>On the server, you can suppress this behavior by placing <code>[Read(NoAutoInclude = true)]</code> on either an entire class (affecting all navigation properties of that type), or on specific navigation properties. When placed on a entity class that holds sensitive data, this can help ensure you don't accidentally leak records due to forgetting to customize the data sources of the types whose navigation properties reference your sensitive entity.</p><p>You can also suppress this for your entire application by placing <code>[assembly: CoalesceConfiguration(NoAutoInclude = true)]</code> on the assembly that holds your models.</p><h3 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h3><p>The following properties are available for use on the <code>StandardDataSource</code> any any derived instances.</p>',9),E=s("p",null,"The object passed to the constructor that contains the set of objects needed by the standard data source, and those that are most likely to be used in custom implementations.",-1),S=s("p",null,[e("An instance of the DbContext that contains a "),s("code",null,"DbSet<T>"),e(" for the entity served by the data source.")],-1),T=s("p",null,"The user making the current request.",-1),_=s("p",null,"The max number of search terms to process when interpreting a search term word-by-word. Override by setting a value in the constructor.",-1),w=s("p",null,"The page size to use if none is specified by the client. Override by setting a value in the constructor.",-1),F=n(`<p>The maximum page size that will be served. By default, client-specified page sizes will be clamped to this value. Override by setting a value in the constructor.</p><h3 id="method-overview" tabindex="-1">Method Overview <a class="header-anchor" href="#method-overview" aria-label="Permalink to "Method Overview"">​</a></h3><p>The standard data source contains 19 different methods which can be overridden in your derived class to control its behavior.</p><p>These methods often call one another, so overriding one method may cause some other method to no longer be called. The hierarchy of method calls, ignoring any logic or conditions contained within, is as follows:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki dark-plus vp-code"><code><span class="line"><span>GetMappedItemAsync</span></span> +<span class="line"><span> GetItemAsync</span></span> +<span class="line"><span> GetQueryAsync</span></span> +<span class="line"><span> GetQuery</span></span> +<span class="line"><span> GetIncludeTree</span></span> +<span class="line"><span> TransformResults</span></span> +<span class="line"><span></span></span> +<span class="line"><span>GetMappedListAsync</span></span> +<span class="line"><span> GetListAsync</span></span> +<span class="line"><span> GetQueryAsync</span></span> +<span class="line"><span> GetQuery</span></span> +<span class="line"><span> ApplyListFiltering</span></span> +<span class="line"><span> ApplyListPropertyFilters</span></span> +<span class="line"><span> ApplyListPropertyFilter</span></span> +<span class="line"><span> ApplyListSearchTerm</span></span> +<span class="line"><span> GetListTotalCountAsync</span></span> +<span class="line"><span> ApplyListSorting</span></span> +<span class="line"><span> ApplyListClientSpecifiedSorting</span></span> +<span class="line"><span> ApplyListDefaultSorting</span></span> +<span class="line"><span> ApplyListPaging</span></span> +<span class="line"><span> GetIncludeTree</span></span> +<span class="line"><span> TrimListFields</span></span> +<span class="line"><span> TransformResults</span></span> +<span class="line"><span></span></span> +<span class="line"><span>GetCountAsync</span></span> +<span class="line"><span> GetQueryAsync</span></span> +<span class="line"><span> GetQuery</span></span> +<span class="line"><span> ApplyListFiltering</span></span> +<span class="line"><span> ApplyListPropertyFilters</span></span> +<span class="line"><span> ApplyListPropertyFilter</span></span> +<span class="line"><span> ApplyListSearchTerm</span></span> +<span class="line"><span> GetListTotalCountAsync</span></span></code></pre></div><h3 id="method-details" tabindex="-1">Method Details <a class="header-anchor" href="#method-details" aria-label="Permalink to "Method Details"">​</a></h3><p>All of the methods outlined above can be overridden. A description of each of the non-interface inner methods is as follows:</p>`,7),I=n('<p>The method is the one that you will most commonly be override in order to implement custom query logic. The default implementation of GetQueryAsync simply calls GetQuery - be aware of this in cases of complex overrides/inheritance. From this method, you could:</p><ul><li>Specify additional query filtering such as row-level security or soft-delete logic. Or, restrict the data source entirely for users or whole roles by returning an empty query.</li><li>Include additional data using EF's <code>.Include()</code> and <code>.ThenInclude()</code>.</li><li>Add additional edges to the serialized object graph using Coalesce's <code>.IncludedSeparately()</code> and <code>.ThenIncluded()</code>.</li></ul><div class="tip custom-block"><p class="custom-block-title">Note</p><p>When <code>GetQuery</code> is overridden, the <a href="/Coalesce/modeling/model-components/data-sources.html#default-loading-behavior">Default Loading Behavior</a> is overridden as well. To restore this behavior, use the <code>IQueryable<T>.IncludeChildren()</code> extension method to build your query.</p></div>',3),P=s("p",null,[e("Allows for explicitly specifying the "),s("a",{href:"/Coalesce/concepts/include-tree.html"},"Include Tree"),e(" that will be used when serializing results obtained from this data source into DTOs. By default, the query that is build up through all the other methods in the data source will be used to build the include tree.")],-1),k=s("p",null,[e("Called by other methods in the standard data source to determine whether or not EF Core async methods will be used to evaluate queries. This may be globally disabled when bugs like "),s("a",{href:"https://github.com/dotnet/SqlClient/issues/593",target:"_blank",rel:"noreferrer"},"https://github.com/dotnet/SqlClient/issues/593"),e(" are present in EF Core.")],-1),x=s("p",null,[e("A simple wrapper that calls "),s("code",null,"ApplyListPropertyFilters"),e(" and "),s("code",null,"ApplyListSearchTerm"),e(".")],-1),q=s("p",null,[e("For each value in "),s("code",null,"parameters.Filter"),e(", invoke "),s("code",null,"ApplyListPropertyFilter"),e(" to apply a filter to the query.")],-1),L=s("p",null,"Given a property and a client-provided string value, perform some filtering on that property.",-1),B=s("ul",null,[s("li",null,"Dates with a time component will be matched exactly."),s("li",null,"Dates with no time component will match any dates that fell on that day."),s("li",null,[e("Strings will match exactly unless an asterisk is found, in which case they will be matched with "),s("code",null,"string.StartsWith"),e(".")]),s("li",null,"Enums will match by string or numeric value. Multiple comma-delimited values will create a filter that will match on any of the provided values."),s("li",null,"Numeric values will match exactly. Multiple comma-delimited values will create a filter that will match on any of the provided values.")],-1),M=s("p",null,[e("Applies filters to the query based on the specified search term. See "),s("a",{href:"/Coalesce/modeling/model-components/attributes/search.html"},"[Search]"),e(" for a detailed look at how searching works in Coalesce.")],-1),Q=s("p",null,[e("If any client-specified sort orders are present, invokes "),s("code",null,"ApplyListClientSpecifiedSorting"),e(". Otherwise, invokes "),s("code",null,"ApplyListDefaultSorting"),e(".")],-1),V=s("p",null,[e("Applies sorting to the query based on sort orders specified by the client. If the client specified "),s("code",null,'"none"'),e(" as the sort field, no sorting will take place.")],-1),G=s("p",null,[e("Applies default sorting behavior to the query, including behavior defined with use of "),s("code",null,"[DefaultOrderBy]"),e(" in C# POCOs, as well as fallback sorting to "),s("code",null,'"Name"'),e(" or primary key properties.")],-1),N=s("p",null,"Applies paging to the query based on incoming parameters. Provides the actual page and pageSize that were used as out parameters.",-1),W=s("p",null,[e("Simple wrapper around invoking "),s("code",null,".Count()"),e(" on a query.")],-1),O=n('<p>Allows for transformation of a result set after the query has been evaluated. This will be called for both lists of items and for single items. This can be used for populating non-mapped properties on a model, or conditionally loading navigation properties using logic that depends upon the contents of each loaded record.</p><p>This method is only called immediately before mapping to a DTO; it does not affect operations that don't involve mapping to a DTO - e.g. when loading the target of a <code>/save</code> operation or when loading the invocation target of an <a href="/Coalesce/modeling/model-components/methods.html#instance-methods">instance method</a>.</p><p>See the <a href="/Coalesce/topics/security.html#transform-results">Security</a> page for an example on how to use TransformResults to <a href="/Coalesce/topics/security.html#transform-results">apply filtered includes</a>.</p><p>Do not use <code>TransformResults</code> to modify any database-mapped scalar properties, since such changes could be inadvertently persisted to the database.</p>',4),R=n(`<p>Performs trimming of the fields of the result set based on the parameters given to the data source. Can be overridden to forcibly disable this, override the behavior to always trim specific fields, or any other functionality desired.</p><h2 id="globally-replacing-the-standard-data-source" tabindex="-1">Globally Replacing the Standard Data Source <a class="header-anchor" href="#globally-replacing-the-standard-data-source" aria-label="Permalink to "Globally Replacing the Standard Data Source"">​</a></h2><p>You can, of course, create a custom base data source that all your custom implementations inherit from. But, what if you want to override the standard data source across your entire application, so that <code>StandardDataSource<,></code> will never be instantiated? You can do that too!</p><p>Simply create a class that implements <code>IEntityFrameworkDataSource<,></code> (the <code>StandardDataSource<,></code> already does - feel free to inherit from it), then register it at application startup like so:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> MyDataSource</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">T</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">TContext</span><span style="color:#D4D4D4;">> : </span><span style="color:#4EC9B0;">StandardDataSource</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">T</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">TContext</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#569CD6;"> where</span><span style="color:#4EC9B0;"> T</span><span style="color:#D4D4D4;"> : </span><span style="color:#569CD6;">class</span></span> +<span class="line"><span style="color:#569CD6;"> where</span><span style="color:#4EC9B0;"> TContext</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">DbContext</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> MyDataSource</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CrudContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">TContext</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">base</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> ConfigureServices</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IServiceCollection</span><span style="color:#9CDCFE;"> services</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#9CDCFE;"> services</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">AddCoalesce</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">b</span><span style="color:#D4D4D4;"> =></span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> b</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">AddContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">>();</span></span> +<span class="line"><span style="color:#9CDCFE;"> b</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">UseDefaultDataSource</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">typeof</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">MyDataSource</span><span style="color:#D4D4D4;"><,>));</span></span> +<span class="line"><span style="color:#D4D4D4;"> });</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>Your custom data source must have the same generic type parameters - <code><T, TContext></code>. Otherwise, the Microsoft.Extensions.DependencyInjection service provider won't know how to inject it.</p>`,7);function j(z,$,U,Y,J,H){const t=r("CodeTabs"),o=r("Prop");return i(),c("div",null,[d,a(t,null,{vue:l(()=>[y,u]),knockout:l(()=>[C,h]),_:1}),m,a(t,null,{vue:l(()=>[f,g]),knockout:l(()=>[b,A]),_:1}),v,a(o,{def:"CrudContext<TContext> Context"}),E,a(o,{def:"TContext Db"}),S,a(o,{def:"ClaimsPrincipal User"}),T,a(o,{def:"int MaxSearchTerms"}),_,a(o,{def:"int DefaultPageSize"}),w,a(o,{def:"int MaxPageSize"}),F,a(o,{def:`IQueryable<T> GetQuery(IDataSourceParameters parameters); +Task<IQueryable<T>> GetQueryAsync(IDataSourceParameters parameters);`}),I,a(o,{def:"IncludeTree? GetIncludeTree(IQueryable<T> query, IDataSourceParameters parameters)"}),P,a(o,{def:"bool CanEvalQueryAsynchronously(IQueryable<T> query)"}),k,a(o,{def:"IQueryable<T> ApplyListFiltering(IQueryable<T> query, IFilterParameters parameters)"}),x,a(o,{def:"IQueryable<T> ApplyListPropertyFilters(IQueryable<T> query, IFilterParameters parameters)"}),q,a(o,{def:"IQueryable<T> ApplyListPropertyFilter(IQueryable<T> query, PropertyViewModel prop, string value)"}),L,B,a(o,{def:"IQueryable<T> ApplyListSearchTerm(IQueryable<T> query, IFilterParameters parameters)"}),M,a(o,{def:"IQueryable<T> ApplyListSorting(IQueryable<T> query, IListParameters parameters)"}),Q,a(o,{def:"IQueryable<T> ApplyListClientSpecifiedSorting(IQueryable<T> query, IListParameters parameters)"}),V,a(o,{def:"IQueryable<T> ApplyListDefaultSorting(IQueryable<T> query)"}),G,a(o,{def:"IQueryable<T> ApplyListPaging(IQueryable<T> query, IListParameters parameters, int? totalCount, out int page, out int pageSize)"}),N,a(o,{def:"Task<int> GetListTotalCountAsync(IQueryable<T> query, IFilterParameters parameters)"}),W,a(o,{def:`void TransformResults(IReadOnlyList<T> results, IDataSourceParameters parameters); +Task TransformResultsAsync(IReadOnlyList<T> results, IDataSourceParameters parameters);`}),O,a(o,{def:"IList<TDto> TrimListFields<TDto>(IList<TDto> mappedResult, IListParameters parameters)"}),R])}const Z=p(D,[["render",j]]);export{X as __pageData,Z as default}; diff --git a/assets/modeling_model-components_data-sources.md.BYHdRZTD.lean.js b/assets/modeling_model-components_data-sources.md.BYHdRZTD.lean.js new file mode 100644 index 000000000..f3780799c --- /dev/null +++ b/assets/modeling_model-components_data-sources.md.BYHdRZTD.lean.js @@ -0,0 +1,31 @@ +import{_ as p,c,I as a,w as l,a7 as n,l as s,a as e,E as r,o as i}from"./chunks/framework.Be4oCqIX.js";const X=JSON.parse('{"title":"Data Sources","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/data-sources.md","filePath":"modeling/model-components/data-sources.md"}'),D={name:"modeling/model-components/data-sources.md"},d=n("",12),y=s("p",null,[e("The "),s("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html#viewmodels"},"ViewModels"),e(" and "),s("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html#listviewmodels"},"ListViewModels"),e(" each have a property called "),s("code",null,"$dataSource"),e(". This property accepts an instance of a "),s("a",{href:"/Coalesce/stacks/vue/layers/models.html"},"DataSource"),e(" class generated in the "),s("a",{href:"/Coalesce/stacks/vue/layers/models.html"},"Model Layer"),e(".")],-1),u=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"Person"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/models.g'")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"PersonViewModel"),s("span",{style:{color:"#D4D4D4"}},", "),s("span",{style:{color:"#9CDCFE"}},"PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," Person"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"DataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"IncludeFamily"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," list"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," Person"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"DataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"NamesStartingWith"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")])])])],-1),C=s("p",null,[e("The "),s("a",{href:"/Coalesce/stacks/ko/client/view-model.html"},"TypeScript ViewModels"),e(" and "),s("a",{href:"/Coalesce/stacks/ko/client/list-view-model.html"},"TypeScript ListViewModels"),e(" each have a property called "),s("code",null,"dataSource"),e(". These properties accept an instance of a "),s("code",null,"Coalesce.DataSource<T>"),e(". Generated classes that satisfy this relationship for all the data sources that were defined in C# may be found in the "),s("code",null,"dataSources"),e(" property on an instance of a ViewModel or ListViewModel, or in "),s("code",null,"ListViewModels.<ModelName>DataSources")],-1),h=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"Person"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"IncludeFamily"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," list"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ListViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"PersonList"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"NamesStartingWith"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"();")])])])],-1),m=n("",7),f=s("p",null,[e("To automatically reload a "),s("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),e(" when data source parameters change, simply use the list's "),s("code",null,"$useAutoLoad"),e(" or "),s("code",null,"$startAutoLoad"),e(" function:")],-1),g=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"Person"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/models.g'"),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'"),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"const"),s("span",{style:{color:"#4FC1FF"}}," list"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," PersonListViewModel"),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"const"),s("span",{style:{color:"#4FC1FF"}}," dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"$dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," Person"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"DataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"NamesStartingWith")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$useAutoLoad"),s("span",{style:{color:"#D4D4D4"}},"(); "),s("span",{style:{color:"#6A9955"}},"// When using options API, use $startAutoLoad(this)")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#6A9955"}},"// Trigger a reload:")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"startsWith"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#CE9178"}},'"Jo"'),s("span",{style:{color:"#D4D4D4"}},";")])])])],-1),b=s("p",null,"The properties created on the TypeScript objects are observables so they may be bound to directly. In order to automatically reload a list when a data source parameter changes, you must explicitly subscribe to it:",-1),A=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," list"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ListViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"PersonList"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSources"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"NamesStartingWith"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"startsWith"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#CE9178"}},'"Jo"'),s("span",{style:{color:"#D4D4D4"}},");")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"subscribe"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"); "),s("span",{style:{color:"#6A9955"}},"// Enables automatic reloading.")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#9CDCFE"}},"dataSource"),s("span",{style:{color:"#D4D4D4"}},";")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"list"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"();")])])])],-1),v=n("",9),E=s("p",null,"The object passed to the constructor that contains the set of objects needed by the standard data source, and those that are most likely to be used in custom implementations.",-1),S=s("p",null,[e("An instance of the DbContext that contains a "),s("code",null,"DbSet<T>"),e(" for the entity served by the data source.")],-1),T=s("p",null,"The user making the current request.",-1),_=s("p",null,"The max number of search terms to process when interpreting a search term word-by-word. Override by setting a value in the constructor.",-1),w=s("p",null,"The page size to use if none is specified by the client. Override by setting a value in the constructor.",-1),F=n("",7),I=n("",3),P=s("p",null,[e("Allows for explicitly specifying the "),s("a",{href:"/Coalesce/concepts/include-tree.html"},"Include Tree"),e(" that will be used when serializing results obtained from this data source into DTOs. By default, the query that is build up through all the other methods in the data source will be used to build the include tree.")],-1),k=s("p",null,[e("Called by other methods in the standard data source to determine whether or not EF Core async methods will be used to evaluate queries. This may be globally disabled when bugs like "),s("a",{href:"https://github.com/dotnet/SqlClient/issues/593",target:"_blank",rel:"noreferrer"},"https://github.com/dotnet/SqlClient/issues/593"),e(" are present in EF Core.")],-1),x=s("p",null,[e("A simple wrapper that calls "),s("code",null,"ApplyListPropertyFilters"),e(" and "),s("code",null,"ApplyListSearchTerm"),e(".")],-1),q=s("p",null,[e("For each value in "),s("code",null,"parameters.Filter"),e(", invoke "),s("code",null,"ApplyListPropertyFilter"),e(" to apply a filter to the query.")],-1),L=s("p",null,"Given a property and a client-provided string value, perform some filtering on that property.",-1),B=s("ul",null,[s("li",null,"Dates with a time component will be matched exactly."),s("li",null,"Dates with no time component will match any dates that fell on that day."),s("li",null,[e("Strings will match exactly unless an asterisk is found, in which case they will be matched with "),s("code",null,"string.StartsWith"),e(".")]),s("li",null,"Enums will match by string or numeric value. Multiple comma-delimited values will create a filter that will match on any of the provided values."),s("li",null,"Numeric values will match exactly. Multiple comma-delimited values will create a filter that will match on any of the provided values.")],-1),M=s("p",null,[e("Applies filters to the query based on the specified search term. See "),s("a",{href:"/Coalesce/modeling/model-components/attributes/search.html"},"[Search]"),e(" for a detailed look at how searching works in Coalesce.")],-1),Q=s("p",null,[e("If any client-specified sort orders are present, invokes "),s("code",null,"ApplyListClientSpecifiedSorting"),e(". Otherwise, invokes "),s("code",null,"ApplyListDefaultSorting"),e(".")],-1),V=s("p",null,[e("Applies sorting to the query based on sort orders specified by the client. If the client specified "),s("code",null,'"none"'),e(" as the sort field, no sorting will take place.")],-1),G=s("p",null,[e("Applies default sorting behavior to the query, including behavior defined with use of "),s("code",null,"[DefaultOrderBy]"),e(" in C# POCOs, as well as fallback sorting to "),s("code",null,'"Name"'),e(" or primary key properties.")],-1),N=s("p",null,"Applies paging to the query based on incoming parameters. Provides the actual page and pageSize that were used as out parameters.",-1),W=s("p",null,[e("Simple wrapper around invoking "),s("code",null,".Count()"),e(" on a query.")],-1),O=n("",4),R=n("",7);function j(z,$,U,Y,J,H){const t=r("CodeTabs"),o=r("Prop");return i(),c("div",null,[d,a(t,null,{vue:l(()=>[y,u]),knockout:l(()=>[C,h]),_:1}),m,a(t,null,{vue:l(()=>[f,g]),knockout:l(()=>[b,A]),_:1}),v,a(o,{def:"CrudContext<TContext> Context"}),E,a(o,{def:"TContext Db"}),S,a(o,{def:"ClaimsPrincipal User"}),T,a(o,{def:"int MaxSearchTerms"}),_,a(o,{def:"int DefaultPageSize"}),w,a(o,{def:"int MaxPageSize"}),F,a(o,{def:`IQueryable<T> GetQuery(IDataSourceParameters parameters); +Task<IQueryable<T>> GetQueryAsync(IDataSourceParameters parameters);`}),I,a(o,{def:"IncludeTree? GetIncludeTree(IQueryable<T> query, IDataSourceParameters parameters)"}),P,a(o,{def:"bool CanEvalQueryAsynchronously(IQueryable<T> query)"}),k,a(o,{def:"IQueryable<T> ApplyListFiltering(IQueryable<T> query, IFilterParameters parameters)"}),x,a(o,{def:"IQueryable<T> ApplyListPropertyFilters(IQueryable<T> query, IFilterParameters parameters)"}),q,a(o,{def:"IQueryable<T> ApplyListPropertyFilter(IQueryable<T> query, PropertyViewModel prop, string value)"}),L,B,a(o,{def:"IQueryable<T> ApplyListSearchTerm(IQueryable<T> query, IFilterParameters parameters)"}),M,a(o,{def:"IQueryable<T> ApplyListSorting(IQueryable<T> query, IListParameters parameters)"}),Q,a(o,{def:"IQueryable<T> ApplyListClientSpecifiedSorting(IQueryable<T> query, IListParameters parameters)"}),V,a(o,{def:"IQueryable<T> ApplyListDefaultSorting(IQueryable<T> query)"}),G,a(o,{def:"IQueryable<T> ApplyListPaging(IQueryable<T> query, IListParameters parameters, int? totalCount, out int page, out int pageSize)"}),N,a(o,{def:"Task<int> GetListTotalCountAsync(IQueryable<T> query, IFilterParameters parameters)"}),W,a(o,{def:`void TransformResults(IReadOnlyList<T> results, IDataSourceParameters parameters); +Task TransformResultsAsync(IReadOnlyList<T> results, IDataSourceParameters parameters);`}),O,a(o,{def:"IList<TDto> TrimListFields<TDto>(IList<TDto> mappedResult, IListParameters parameters)"}),R])}const Z=p(D,[["render",j]]);export{X as __pageData,Z as default}; diff --git a/assets/modeling_model-components_methods.md.Bmp5l49a.js b/assets/modeling_model-components_methods.md.Bmp5l49a.js new file mode 100644 index 000000000..a8d419f2d --- /dev/null +++ b/assets/modeling_model-components_methods.md.Bmp5l49a.js @@ -0,0 +1,134 @@ +import{_ as l,c as t,I as p,w as a,a7 as n,E as r,o as c,l as s,a as e}from"./chunks/framework.Be4oCqIX.js";const B=JSON.parse('{"title":"Methods","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/methods.md","filePath":"modeling/model-components/methods.md"}'),i={name:"modeling/model-components/methods.md"},D=n(`<h1 id="methods" tabindex="-1">Methods <a class="header-anchor" href="#methods" aria-label="Permalink to "Methods"">​</a></h1><p>Any public methods annotated with the <a href="/Coalesce/modeling/model-components/attributes/coalesce.html">[Coalesce]</a> attribute that are placed on your model classes will have API endpoints and Typescript generated by Coalesce. Both instance methods and static methods are supported. Additionally, any instance methods on <a href="/Coalesce/modeling/model-types/services.html">Services</a> will also have API endpoints and TypeScript generated.</p><p>These custom methods allow you to implement any custom server-side functionality in your Coalesce application that falls outside of the standard CRUD functions that are generated for your entities.</p><h2 id="declaring-methods" tabindex="-1">Declaring Methods <a class="header-anchor" href="#declaring-methods" aria-label="Permalink to "Declaring Methods"">​</a></h2><h3 id="instance-methods" tabindex="-1">Instance Methods <a class="header-anchor" href="#instance-methods" aria-label="Permalink to "Instance Methods"">​</a></h3><p>Instance Methods can be declared on your <a href="/Coalesce/modeling/model-types/entities.html">Entity classes</a>. For example:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> User</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> UserId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Email</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> async</span><span style="color:#4EC9B0;"> Task</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">ItemResult</span><span style="color:#D4D4D4;">> </span><span style="color:#DCDCAA;">SendMessage</span><span style="color:#D4D4D4;">(</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Inject</span><span style="color:#D4D4D4;">] </span><span style="color:#4EC9B0;">SmtpClient</span><span style="color:#9CDCFE;"> client</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#4EC9B0;"> ClaimsPrincipal</span><span style="color:#9CDCFE;"> sender</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> message</span></span> +<span class="line"><span style="color:#D4D4D4;"> ) {</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#569CD6;">string</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsNullOrWhitespace</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Email</span><span style="color:#D4D4D4;">)) </span><span style="color:#C586C0;">return</span><span style="color:#CE9178;"> "Recipient has no email"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#569CD6;">string</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsNullOrWhitespace</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">message</span><span style="color:#D4D4D4;">)) </span><span style="color:#C586C0;">return</span><span style="color:#CE9178;"> "Message is required"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> await</span><span style="color:#9CDCFE;"> client</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">SendMailAsync</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">new</span><span style="color:#4EC9B0;"> MailMessage</span><span style="color:#D4D4D4;">( </span></span> +<span class="line"><span style="color:#9CDCFE;"> from</span><span style="color:#D4D4D4;">: </span><span style="color:#9CDCFE;">sender</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">GetEmailAddress</span><span style="color:#D4D4D4;">(),</span></span> +<span class="line"><span style="color:#9CDCFE;"> to</span><span style="color:#D4D4D4;">: </span><span style="color:#9CDCFE;">Email</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#9CDCFE;"> subject</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"Message from MyApp"</span><span style="color:#D4D4D4;">, </span></span> +<span class="line"><span style="color:#9CDCFE;"> body</span><span style="color:#D4D4D4;">: </span><span style="color:#9CDCFE;">message</span></span> +<span class="line"><span style="color:#D4D4D4;"> ));</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#569CD6;"> true</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>When an instance method is invoked, the target model instance will be loaded using the data source specified by an attribute <code>[LoadFromDataSource(typeof(MyDataSource))]</code> if present. Otherwise, the model instance will be loaded using the default data source for the model's type. If you have a <a href="/Coalesce/modeling/model-components/data-sources.html#defining-data-sources">Custom Data Source</a> annotated with <code>[DefaultDataSource]</code>, that data source will be used. Otherwise, the <a href="/Coalesce/modeling/model-components/data-sources.html#standard-data-source">Standard Data Source</a> will be used. The consequence of this is that a user cannot call a method on an instance of entity that they're not allowed to see or load.</p><p>Instance methods are generated onto the TypeScript ViewModels.</p><h4 id="when-should-i-use-instance-methods" tabindex="-1">When should I use Instance Methods? <a class="header-anchor" href="#when-should-i-use-instance-methods" aria-label="Permalink to "When should I use Instance Methods?"">​</a></h4><p>Instance methods, as opposed to <a href="#static-methods">static</a> or <a href="#service-methods">service</a> methods, are a good fit when implementing an action that directly acts on or depends upon a specific instance of one of your entity types. One of their biggest benefits is the automatic row-level security from data sources as described above.</p><h3 id="static-methods" tabindex="-1">Static Methods <a class="header-anchor" href="#static-methods" aria-label="Permalink to "Static Methods"">​</a></h3><p>Static Methods can be declared on your <a href="/Coalesce/modeling/model-types/entities.html">Entity classes</a>. For example:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> FirstName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> static</span><span style="color:#4EC9B0;"> ICollection</span><span style="color:#D4D4D4;"><</span><span style="color:#569CD6;">string</span><span style="color:#D4D4D4;">> </span><span style="color:#DCDCAA;">NamesStartingWith</span><span style="color:#D4D4D4;">(</span></span> +<span class="line"><span style="color:#4EC9B0;"> AppDbContext</span><span style="color:#9CDCFE;"> db</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> characters</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> ) {</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">People</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Select</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">p</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">p</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">FirstName</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Where</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">f</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">StartsWith</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">characters</span><span style="color:#D4D4D4;">))</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">ToList</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>Static methods are generated onto the TypeScript ListViewModels. All of the same members that are generated for instance methods are also generated for static methods.</p><h4 id="when-should-i-use-static-methods" tabindex="-1">When should I use Static Methods? <a class="header-anchor" href="#when-should-i-use-static-methods" aria-label="Permalink to "When should I use Static Methods?"">​</a></h4><p>Static methods are a good fit for actions that don't operate on a specific instance of an entity type, but whose functionality is still closely coupled with a specific, concrete entity type.</p><p>For example, imagine you have a File entity class. You could make a static method on that class that accepts a file as a parameter. This method would persist that file to storage and then save a new entity to the database. You would then <a href="/Coalesce/topics/security.html#endpoint-security">disable Create</a> on that entity, since the default <code>/save</code> endpoint cannot accept file uploads.</p><p>Or, imagine an Invoice class. You might make a static method that returns a summary of sales information for a given time range. Since this summarization would be performing aggregate functions against your Invoice entities and is therefore tightly coupled to Invoices, a static method would be suitable.</p><h3 id="service-methods" tabindex="-1">Service Methods <a class="header-anchor" href="#service-methods" aria-label="Permalink to "Service Methods"">​</a></h3><p>Service methods can be declared on a <a href="/Coalesce/modeling/model-types/services.html">Coalesce Service</a> class:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Service</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> MyService</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#DCDCAA;"> MyServiceMethod</span><span style="color:#D4D4D4;">() => </span><span style="color:#CE9178;">"Hello, World!"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>Or, they can be declared via a <a href="/Coalesce/modeling/model-types/services.html">Coalesce Service</a> <em>interface</em> that has an implementation registered with dependency injection:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Service</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> interface</span><span style="color:#4EC9B0;"> IMyService</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#DCDCAA;"> MyServiceMethod</span><span style="color:#D4D4D4;">() => </span><span style="color:#CE9178;">"Hello, World!"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>When declaring service methods by interface, a [Coalesce] attribute on each method is not needed - the entire interface is exposed by Coalesce.</p><h4 id="when-should-i-use-service-methods" tabindex="-1">When should I use Service Methods? <a class="header-anchor" href="#when-should-i-use-service-methods" aria-label="Permalink to "When should I use Service Methods?"">​</a></h4><p><a href="/Coalesce/modeling/model-types/services.html">Services</a> are a catch-all feature and can be used for almost any conceivable purpose in Coalesce to implement custom functionality that needs to be invoked by your front-end app.</p><p>However, there are some reasons why you might <em>not</em> want to use a service:</p><ul><li>If the method logically operates on a single entity instance, and/or if using an instance method would let you utilize the row-level security already implemented by one of your data sources to authorize who can invoke the method.</li><li>If the service would only have one or two methods and would logically make sense as a static or instance method. In other words, if adding a new service class would be detrimental to the organization of your codebase and create "file sprawl".</li></ul><p>On the other hand, services have some benefits that instance and static methods cannot provide:</p><ul><li>Coalesce Services can be declared with an interface, rather than a concrete type, allowing for their implementation to be substituted more easily. For example, a service providing an external integration that you want to mock or stub during automated testing and/or local development.</li></ul><h2 id="parameters" tabindex="-1">Parameters <a class="header-anchor" href="#parameters" aria-label="Permalink to "Parameters"">​</a></h2><p>The following parameters can be added to your methods:</p><table><thead><tr><td>Type</td><td>Description</td></tr></thead><tr><td><p>Primitives, Dates, and other Scalars</p></td><td><p>Most common built-in primitive and scalar data types (numerics, strings, booleans, enums, <code>DateTime</code>, <code>DateTimeOffset</code>), and their nullable variants, are accepted as parameters to be passed from the client to the method call.</p></td></tr><tr><td><p><a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a></p></td><td><p>When invoking the method on the client, the object's properties will only be serialized one level deep. If an entity model parameter has additional child object properties, they will not be included in the invocation of the method - only the object's primitive & date properties will be deserialized from the client.</p></td></tr><tr><td><p><a href="/Coalesce/modeling/model-types/external-types.html">External Types</a></p></td><td><p>Unlike entity model parameters, external type parameters will be serialized and sent by the client to an arbitrarily deep level, excluding any entity model properties that may be nested inside an external type.</p></td></tr><tr><td><p>Files</p></td><td><p>Methods can accept file uploads by using a parameter of type <code>IntelliTect.Coalesce.Models.IFile</code> (or any derived type, like <code>IntelliTect.Coalesce.Models.File</code>).</p></td></tr><tr><td><p><a href="https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.icollection-1" target="_blank" rel="noreferrer">ICollection<T></a>, <a href="https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noreferrer">IEnumerable<T></a></p></td><td><p>Collections of any of the above valid parameter types above are also valid parameter types.</p></td></tr><tr><td><p><a href="https://learn.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.dbcontext" target="_blank" rel="noreferrer">DbContext</a></p></td><td><p>If the method has a parameter assignable to <code>Microsoft.EntityFrameworkCore.DbContext</code>, then the parameter will be implicitly <code>[Inject]</code>ed.</p></td></tr><tr><td><p><a href="https://learn.microsoft.com/en-us/dotnet/api/system.security.claims.claimsprincipal" target="_blank" rel="noreferrer">ClaimsPrincipal</a></p></td><td><p>If the method has a parameter of type ClaimsPrincipal, the value of <code>HttpContext.User</code> will be passed to the parameter.</p></td></tr><tr><td><p><a href="/Coalesce/modeling/model-components/attributes/inject.html">[Inject]</a></p></td><td><p>If a parameter is marked with the <a href="/Coalesce/modeling/model-components/attributes/inject.html">[Inject]</a> attribute, it will be injected from the application's <code>IServiceProvider</code>.</p></td></tr><tr><td><p><code>out</code> <a href="/Coalesce/concepts/include-tree.html">IncludeTree</a></p></td><td><p>Deprecated. If you need to return an <a href="/Coalesce/concepts/include-tree.html">Include Tree</a> to shape the serialization of the method's return value, you should use an <code>ItemResult<T></code> return value and populate the <code>IncludeTree</code> property on the <code>ItemResult</code> object.</p></td></tr></table><h2 id="return-values" tabindex="-1">Return Values <a class="header-anchor" href="#return-values" aria-label="Permalink to "Return Values"">​</a></h2><p>You can return virtually anything from these methods:</p><table><thead><tr><td>Type</td><td>Description</td></tr></thead><tr><td><p>Primitives, Dates, and other Scalars</p></td><td><p>Most common built-in primitive and scalar data types (numerics, strings, booleans, enums, <code>DateTime</code>, <code>DateTimeOffset</code>), and their nullable variants, may be returned from methods.</p></td></tr><tr><td><p><a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a></p></td><td><p>Any of the types of your models may be returned.</p></td></tr><tr><td><p><a href="/Coalesce/modeling/model-types/external-types.html">External Types</a></p></td><td><p>Any <a href="/Coalesce/modeling/model-types/external-types.html">External Types</a> you define may also be returned from a method.</p><p>When returning custom types from methods, be careful of the types of their properties. Coalesce will <strong>recursively</strong> discover and generate code for all public properties of your <a href="/Coalesce/modeling/model-types/external-types.html">External Types</a>. If you accidentally include a type that you do not own, these generated types could get out of hand extremely quickly.</p><p>Mark any properties you don't want generated with the <a href="/Coalesce/modeling/model-components/attributes/internal-use.html">[InternalUse]</a> attribute, or give them a non-public access modifier. Whenever possible, don't return types that you don't own or control.</p></td></tr><tr><td><p><a href="https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.icollection-1" target="_blank" rel="noreferrer">ICollection<T></a>, <a href="https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noreferrer">IEnumerable<T></a></p></td><td><p>Collections of any of the above valid return types above are also valid return types. IEnumerables are useful for generator functions using <code>yield</code>. <code>ICollection</code> is highly suggested over <code>IEnumerable</code> whenever appropriate, though.</p></td></tr><tr><td><p><a href="https://learn.microsoft.com/en-us/dotnet/api/system.linq.iqueryable" target="_blank" rel="noreferrer">IQueryable<T></a></p></td><td><p>Queryables of the valid return types above are valid return types. The query will be evaluated, and Coalesce will attempt to pull an <a href="/Coalesce/concepts/include-tree.html">Include Tree</a> from the queryable to shape the response.</p><p>When <a href="/Coalesce/concepts/include-tree.html">Include Tree</a> functionality is needed to shape the response but an <code>IQueryable<></code> return type is not feasible, an <code>ItemResult</code> return value with an <code>IncludeTree</code> set on it will do the trick as well.</p></td></tr><tr><td><p><a href="#file-downloads">Files</a></p></td><td><p>Methods can return file downloads using type <code>IntelliTect.Coalesce.Models.IFile</code> (or any derived type, like <code>IntelliTect.Coalesce.Models.File</code>).</p><p>Please see the <a href="#file-downloads">File Downloads</a> section below for more details</p></td></tr><tr><td><p><code>ItemResult<T></code>, <code>ItemResult</code>, <code>ListResult<T></code></p></td><td><p>An <code>IntelliTect.Coalesce.Models.ItemResult<T></code> of any of the valid return types above, including collections, is valid, as well as its non-generic variant <code>ItemResult</code>, and its list variant <code>ListResult<T></code>.</p><p>Use an <code>ItemResult</code> whenever you might need to signal failure and return an error message from a custom method. The <code>WasSuccessful</code> and <code>Message</code> properties on the result object will be sent along to the client to indicate success or failure of the method. The type <code>T</code> will be mapped to the appropriate DTO object before being serialized as normal.</p><p>An <a href="/Coalesce/concepts/include-tree.html">Include Tree</a> can be set on the object's <code>IncludeTree</code> parameter to shape the serialization of the method's returned value.</p></td></tr></table><h2 id="security" tabindex="-1">Security <a class="header-anchor" href="#security" aria-label="Permalink to "Security"">​</a></h2><p>You can implement role-based security on a method by placing the <a href="/Coalesce/modeling/model-components/attributes/execute.html">[Execute]</a> on the method. Placing this attribute on the method with no roles specified will simply require that the calling user be authenticated.</p><p>Security for instance methods is also controlled by the data source that loads the instance - if the data source can't provide an instance of the requested model, the method won't be executed.</p><p>See the <a href="/Coalesce/topics/security.html#custom-methods-and-services">Security</a> page to read more about custom method security, as well as all other security mechanisms in Coalesce.</p><h2 id="generated-typescript" tabindex="-1">Generated TypeScript <a class="header-anchor" href="#generated-typescript" aria-label="Permalink to "Generated TypeScript"">​</a></h2><p>See <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Callers</a> and <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ViewModel Layer</a> for details on the code that is generated for your custom methods.</p><div class="tip custom-block"><p class="custom-block-title">Note</p><p>Any Task-returning methods with "Async" as a suffix to the C# method's name will have the "Async" suffix stripped from the generated Typescript.</p></div><h2 id="method-annotations" tabindex="-1">Method Annotations <a class="header-anchor" href="#method-annotations" aria-label="Permalink to "Method Annotations"">​</a></h2><p>Methods can be annotated with attributes to control API exposure and TypeScript generation. The following attributes are available for model methods. General annotations can be found on the <a href="/Coalesce/modeling/model-components/attributes.html">Attributes</a> page.</p><h3 id="coalesce" tabindex="-1"><code>[Coalesce]</code> <a class="header-anchor" href="#coalesce" aria-label="Permalink to "\`[Coalesce]\`"">​</a></h3><p>The <a href="/Coalesce/modeling/model-components/attributes/coalesce.html">[Coalesce]</a> attribute causes the method to be exposed via a generated API controller. This is not needed for methods defined on an interface marked with <code>[Service]</code> - Coalesce assumes that all methods on the interface are intended to be exposed. If this is not desired, create a new, more restricted interface with only the desired methods to be exposed.</p><h3 id="controlleraction-method-httpmethod-varybyproperty-string" tabindex="-1"><code>[ControllerAction(Method = HttpMethod, VaryByProperty = string)]</code> <a class="header-anchor" href="#controlleraction-method-httpmethod-varybyproperty-string" aria-label="Permalink to "\`[ControllerAction(Method = HttpMethod, VaryByProperty = string)]\`"">​</a></h3><p>The <a href="/Coalesce/modeling/model-components/attributes/controller-action.html">[ControllerAction]</a> attribute controls how this method is exposed via HTTP. Can be used to customize the HTTP method/verb for the method, as well as caching behavior.</p><h3 id="execute-string-roles" tabindex="-1"><code>[Execute(string roles)]</code> <a class="header-anchor" href="#execute-string-roles" aria-label="Permalink to "\`[Execute(string roles)]\`"">​</a></h3><p>The <a href="/Coalesce/modeling/model-components/attributes/execute.html">[Execute]</a> attribute specifies which roles can execute this method from the generated API controller. Additional security restrictions that cannot be implemented with roles should be enforced with custom code in the method's implementation.</p><h3 id="loadfromdatasource-type-datasourcetype" tabindex="-1"><code>[LoadFromDataSource(Type dataSourceType)]</code> <a class="header-anchor" href="#loadfromdatasource-type-datasourcetype" aria-label="Permalink to "\`[LoadFromDataSource(Type dataSourceType)]\`"">​</a></h3><p>The <a href="/Coalesce/modeling/model-components/attributes/load-from-data-source.html">[LoadFromDataSource]</a> attribute specifies that the targeted model instance method should load the instance it is called on from the specified data source when invoked from an API endpoint. If not defined, the model's default data source is used.</p><h2 id="file-downloads" tabindex="-1">File Downloads <a class="header-anchor" href="#file-downloads" aria-label="Permalink to "File Downloads"">​</a></h2><p>Coalesce supports exposing file downloads via custom methods. Simply return a <code>IntelliTect.Coalesce.Models.IFile</code> (or any derived type, like <code>IntelliTect.Coalesce.Models.File</code>), or an <code>ItemResult<></code> of such.</p><h3 id="consuming-file-downloads" tabindex="-1">Consuming file downloads <a class="header-anchor" href="#consuming-file-downloads" aria-label="Permalink to "Consuming file downloads"">​</a></h3><p>There are a few conveniences for easily consuming downloaded files from your custom pages.</p>`,58),d=s("p",null,[e("The "),s("a",{href:"/Coalesce/stacks/vue/layers/api-clients.html#api-callers"},"API Callers"),e(" have a property "),s("code",null,"url"),e(". This can be provided directly to your HTML template, with the browser invoking the endpoint automatically.")],-1),y=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"PersonViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")])])])],-1),h=s("div",{class:"language-html"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"html"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#808080"}},"<"),s("span",{style:{color:"#569CD6"}},"img"),s("span",{style:{color:"#9CDCFE"}}," :src"),s("span",{style:{color:"#D4D4D4"}},"="),s("span",{style:{color:"#CE9178"}},'"downloadPicture.url"'),s("span",{style:{color:"#808080"}},">")])])])],-1),C=s("hr",null,null,-1),u=s("p",null,[e("Alternatively, the "),s("a",{href:"/Coalesce/stacks/vue/layers/api-clients.html#api-callers"},"API Callers"),e(" for file-returning methods have a method "),s("code",null,"getResultObjectUrl(vue)"),e(". If the method was invoked programmatically (i.e. via "),s("code",null,"caller()"),e(", "),s("code",null,"caller.invoke()"),e(", or "),s("code",null,"caller.invokeWithArgs()"),e("), this method returns an "),s("a",{href:"https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL",target:"_blank",rel:"noreferrer"},"Object URL"),e(" that can be set as the "),s("code",null,"src"),e(" of an "),s("code",null,"image"),e(" or "),s("code",null,"video"),e(" HTML tag.")],-1),m=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"PersonViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"await"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"await"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"downloadPicture"),s("span",{style:{color:"#D4D4D4"}},"();")])])])],-1),b=s("div",{class:"language-html"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"html"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#808080"}},"<"),s("span",{style:{color:"#569CD6"}},"img"),s("span",{style:{color:"#9CDCFE"}}," :src"),s("span",{style:{color:"#D4D4D4"}},"="),s("span",{style:{color:"#CE9178"}},'"downloadPicture.getResultObjectUrl()"'),s("span",{style:{color:"#808080"}},">")])])])],-1),g=s("p",null,[e("The "),s("a",{href:"/Coalesce/stacks/ko/client/methods.html"},"TypeScript Method Objects"),e(" for HTTP GET methods have a property "),s("code",null,"url"),e(". This can be provided directly to your HTML, with the browser invoking the endpoint as normal.")],-1),f=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"Person"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")])])])],-1),v=s("div",{class:"language-html"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"html"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#808080"}},"<"),s("span",{style:{color:"#569CD6"}},"img"),s("span",{style:{color:"#9CDCFE"}}," data-bind"),s("span",{style:{color:"#D4D4D4"}},"="),s("span",{style:{color:"#CE9178"}},'"attr: {src: downloadPicture.url }"'),s("span",{style:{color:"#808080"}},">")])])])],-1),E=s("hr",null,null,-1),w=s("p",null,[e("Alternatively, the "),s("a",{href:"/Coalesce/stacks/ko/client/methods.html"},"TypeScript Method Objects"),e(" for file-returning methods have a property "),s("code",null,"resultObjectUrl"),e(". If the method is invoked programmatically (i.e. via "),s("code",null,".invoke()"),e(" or "),s("code",null,".invokeWithArgs()"),e("), this property contains an "),s("a",{href:"https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL",target:"_blank",rel:"noreferrer"},"Object URL"),e(" that can be set as the "),s("code",null,"src"),e(" of an "),s("code",null,"image"),e(" or "),s("code",null,"video"),e(" HTML tag.")],-1),A=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"Person"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},", () "),s("span",{style:{color:"#569CD6"}},"=>"),s("span",{style:{color:"#D4D4D4"}}," {")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"downloadPicture"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"invoke"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#D4D4D4"}},"});")])])])],-1),F=s("div",{class:"language-html"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"html"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#808080"}},"<"),s("span",{style:{color:"#569CD6"}},"img"),s("span",{style:{color:"#9CDCFE"}}," data-bind"),s("span",{style:{color:"#D4D4D4"}},"="),s("span",{style:{color:"#CE9178"}},'"attr: {src: downloadPicture.resultObjectUrl }"'),s("span",{style:{color:"#808080"}},">")])])])],-1),T=n(`<h3 id="database-stored-files" tabindex="-1">Database-stored Files <a class="header-anchor" href="#database-stored-files" aria-label="Permalink to "Database-stored Files"">​</a></h3><p>When storing large <code>byte[]</code> objects in your EF models, it is important that these are never loaded unless necessary. Loading these can cause significant garbage collector churn, or even <a href="https://github.com/dotnet/SqlClient/issues/593" target="_blank" rel="noreferrer">bring your app to a halt</a>. To achieve this with EF, you can either utilize <a href="https://docs.microsoft.com/en-us/ef/core/modeling/table-splitting" target="_blank" rel="noreferrer">Table Splitting</a>, or you can use an entire dedicated table that only contains a primary key and the binary content, and nothing else.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Storing large binary objects in relational databases comes with significant drawbacks. For large-volume cloud solutions, it is much more costly than dedicated cloud-native file storage like Azure Storage or S3. Also of note is that the larger a database is, the more difficult its backup process becomes.</p></div><p>For files that are stored in your database, Coalesce supports a pattern that allows the file to be streamed directly to the HTTP response without needing to allocate a chunk of memory for the whole file at once. Simply pass an EF <code>IQueryable<byte[]></code> to the constructor of <code>IntelliTect.Coalesce.Models.File</code>. This implementation, however, is specific to the underlying EF database provider. Currently, only SQL Server and SQLite are supported. Please open a Github issue to request support for other providers. An example of this mechanism is included in the <code>DownloadAttachment</code> method in the code sample below.</p><p>The following is an example of utilizing Table Splitting for database-stored files. Generally speaking, metadata about the file should be stored on the "main" entity, and only the bytes of the content should be split into a separate entity.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> AppDbContext</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">DbContext</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DbSet</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Case</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">Cases</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> protected</span><span style="color:#569CD6;"> override</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> OnModelCreating</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">ModelBuilder</span><span style="color:#9CDCFE;"> modelBuilder</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> modelBuilder</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Entity</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Case</span><span style="color:#D4D4D4;">>()</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">ToTable</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Cases"</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">HasOne</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">AttachmentContent</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">WithOne</span><span style="color:#D4D4D4;">()</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">HasForeignKey</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">CaseAttachmentContent</span><span style="color:#D4D4D4;">>(</span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CaseId</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#9CDCFE;"> modelBuilder</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Entity</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">CaseAttachmentContent</span><span style="color:#D4D4D4;">>()</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">ToTable</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Cases"</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">HasKey</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">d</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">d</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CaseId</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Case</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> CaseId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> AttachmentName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> long</span><span style="color:#9CDCFE;"> AttachmentSize</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> AttachmentType</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">MaxLength</span><span style="color:#D4D4D4;">(</span><span style="color:#B5CEA8;">32</span><span style="color:#D4D4D4;">)] </span><span style="color:#6A9955;">// Adjust max length based on chosen hash algorithm.</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> byte</span><span style="color:#D4D4D4;">[] </span><span style="color:#9CDCFE;">AttachmentHash</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; } </span><span style="color:#6A9955;">// Could also be a base64 string if so desired.</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">InternalUse</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> CaseAttachmentContent</span><span style="color:#9CDCFE;"> AttachmentContent</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; } = </span><span style="color:#569CD6;">new</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> async</span><span style="color:#4EC9B0;"> Task</span><span style="color:#DCDCAA;"> UploadAttachment</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#9CDCFE;"> db</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">IFile</span><span style="color:#9CDCFE;"> file</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">file</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Content</span><span style="color:#D4D4D4;"> == </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;">) </span><span style="color:#C586C0;">return</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> var</span><span style="color:#9CDCFE;"> content</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#569CD6;"> byte</span><span style="color:#D4D4D4;">[</span><span style="color:#9CDCFE;">file</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Length</span><span style="color:#D4D4D4;">];</span></span> +<span class="line"><span style="color:#569CD6;"> await</span><span style="color:#9CDCFE;"> file</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Content</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">ReadAsync</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">content</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">AsMemory</span><span style="color:#D4D4D4;">());</span></span> +<span class="line"></span> +<span class="line"><span style="color:#9CDCFE;"> AttachmentContent</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#D4D4D4;"> () { </span><span style="color:#9CDCFE;">CaseId</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">CaseId</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">Content</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">content</span><span style="color:#D4D4D4;"> };</span></span> +<span class="line"><span style="color:#9CDCFE;"> AttachmentName</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">file</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Name</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#9CDCFE;"> AttachmentSize</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">file</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Length</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#9CDCFE;"> AttachmentType</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">file</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ContentType</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#9CDCFE;"> AttachmentHash</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">SHA256</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">HashData</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">content</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">ControllerAction</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">HttpMethod</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Get</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">VaryByProperty</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">nameof</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">AttachmentHash</span><span style="color:#D4D4D4;">))]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> IFile</span><span style="color:#DCDCAA;"> DownloadAttachment</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#9CDCFE;"> db</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#569CD6;"> new</span><span style="color:#4EC9B0;"> IntelliTect</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Models</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">File</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Cases</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Where</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CaseId</span><span style="color:#D4D4D4;"> == </span><span style="color:#569CD6;">this</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CaseId</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Select</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">AttachmentContent</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Content</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> )</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> Name</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">AttachmentName</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#9CDCFE;"> ContentType</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">AttachmentType</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#D4D4D4;"> };</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> CaseAttachmentContent</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> CaseId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Required</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> byte</span><span style="color:#D4D4D4;">[] </span><span style="color:#9CDCFE;">Content</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="other-file-storage" tabindex="-1">Other File Storage <a class="header-anchor" href="#other-file-storage" aria-label="Permalink to "Other File Storage"">​</a></h3><p>For any other storage mechanism, implementations are similar to the database storage approach above. However, instead of table splitting or using a whole separate table, the file contents are simply stored elsewhere. Continue storing metadata about the file on the primary entity, and implement upload/download methods as desired that wrap the storage provider.</p><p>For downloads, prefer directly providing the underlying <code>Stream</code> to the <code>IFile</code> versus wrapping a <code>byte[]</code> in a <code>MemoryStream</code>. This will reduce server memory usage and garbage collector churn.</p><p>For cloud storage providers where complex security logic is not needed, consider having clients consume the URL of the cloud resource directly rather than passing the file content through your own server.</p>`,10);function k(I,S,M,_,q,x){const o=r("CodeTabs");return c(),t("div",null,[D,p(o,null,{vue:a(()=>[d,y,h,C,u,m,b]),knockout:a(()=>[g,f,v,E,w,A,F]),_:1}),T])}const R=l(i,[["render",k]]);export{B as __pageData,R as default}; diff --git a/assets/modeling_model-components_methods.md.Bmp5l49a.lean.js b/assets/modeling_model-components_methods.md.Bmp5l49a.lean.js new file mode 100644 index 000000000..96004ecab --- /dev/null +++ b/assets/modeling_model-components_methods.md.Bmp5l49a.lean.js @@ -0,0 +1,12 @@ +import{_ as l,c as t,I as p,w as a,a7 as n,E as r,o as c,l as s,a as e}from"./chunks/framework.Be4oCqIX.js";const B=JSON.parse('{"title":"Methods","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/methods.md","filePath":"modeling/model-components/methods.md"}'),i={name:"modeling/model-components/methods.md"},D=n("",58),d=s("p",null,[e("The "),s("a",{href:"/Coalesce/stacks/vue/layers/api-clients.html#api-callers"},"API Callers"),e(" have a property "),s("code",null,"url"),e(". This can be provided directly to your HTML template, with the browser invoking the endpoint automatically.")],-1),y=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"PersonViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")])])])],-1),h=s("div",{class:"language-html"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"html"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#808080"}},"<"),s("span",{style:{color:"#569CD6"}},"img"),s("span",{style:{color:"#9CDCFE"}}," :src"),s("span",{style:{color:"#D4D4D4"}},"="),s("span",{style:{color:"#CE9178"}},'"downloadPicture.url"'),s("span",{style:{color:"#808080"}},">")])])])],-1),C=s("hr",null,null,-1),u=s("p",null,[e("Alternatively, the "),s("a",{href:"/Coalesce/stacks/vue/layers/api-clients.html#api-callers"},"API Callers"),e(" for file-returning methods have a method "),s("code",null,"getResultObjectUrl(vue)"),e(". If the method was invoked programmatically (i.e. via "),s("code",null,"caller()"),e(", "),s("code",null,"caller.invoke()"),e(", or "),s("code",null,"caller.invokeWithArgs()"),e("), this method returns an "),s("a",{href:"https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL",target:"_blank",rel:"noreferrer"},"Object URL"),e(" that can be set as the "),s("code",null,"src"),e(" of an "),s("code",null,"image"),e(" or "),s("code",null,"video"),e(" HTML tag.")],-1),m=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"import"),s("span",{style:{color:"#D4D4D4"}}," { "),s("span",{style:{color:"#9CDCFE"}},"PersonViewModel"),s("span",{style:{color:"#D4D4D4"}}," } "),s("span",{style:{color:"#C586C0"}},"from"),s("span",{style:{color:"#CE9178"}}," '@/viewmodels.g'")]),e(` +`),s("span",{class:"line"}),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#DCDCAA"}}," PersonViewModel"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"await"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"$load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#C586C0"}},"await"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"downloadPicture"),s("span",{style:{color:"#D4D4D4"}},"();")])])])],-1),b=s("div",{class:"language-html"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"html"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#808080"}},"<"),s("span",{style:{color:"#569CD6"}},"img"),s("span",{style:{color:"#9CDCFE"}}," :src"),s("span",{style:{color:"#D4D4D4"}},"="),s("span",{style:{color:"#CE9178"}},'"downloadPicture.getResultObjectUrl()"'),s("span",{style:{color:"#808080"}},">")])])])],-1),g=s("p",null,[e("The "),s("a",{href:"/Coalesce/stacks/ko/client/methods.html"},"TypeScript Method Objects"),e(" for HTTP GET methods have a property "),s("code",null,"url"),e(". This can be provided directly to your HTML, with the browser invoking the endpoint as normal.")],-1),f=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"Person"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},");")])])])],-1),v=s("div",{class:"language-html"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"html"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#808080"}},"<"),s("span",{style:{color:"#569CD6"}},"img"),s("span",{style:{color:"#9CDCFE"}}," data-bind"),s("span",{style:{color:"#D4D4D4"}},"="),s("span",{style:{color:"#CE9178"}},'"attr: {src: downloadPicture.url }"'),s("span",{style:{color:"#808080"}},">")])])])],-1),E=s("hr",null,null,-1),w=s("p",null,[e("Alternatively, the "),s("a",{href:"/Coalesce/stacks/ko/client/methods.html"},"TypeScript Method Objects"),e(" for file-returning methods have a property "),s("code",null,"resultObjectUrl"),e(". If the method is invoked programmatically (i.e. via "),s("code",null,".invoke()"),e(" or "),s("code",null,".invokeWithArgs()"),e("), this property contains an "),s("a",{href:"https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL",target:"_blank",rel:"noreferrer"},"Object URL"),e(" that can be set as the "),s("code",null,"src"),e(" of an "),s("code",null,"image"),e(" or "),s("code",null,"video"),e(" HTML tag.")],-1),A=s("div",{class:"language-ts"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"ts"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#569CD6"}},"var"),s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}}," = "),s("span",{style:{color:"#569CD6"}},"new"),s("span",{style:{color:"#9CDCFE"}}," ViewModels"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"Person"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}},"viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"load"),s("span",{style:{color:"#D4D4D4"}},"("),s("span",{style:{color:"#B5CEA8"}},"1"),s("span",{style:{color:"#D4D4D4"}},", () "),s("span",{style:{color:"#569CD6"}},"=>"),s("span",{style:{color:"#D4D4D4"}}," {")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#9CDCFE"}}," viewModel"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#9CDCFE"}},"downloadPicture"),s("span",{style:{color:"#D4D4D4"}},"."),s("span",{style:{color:"#DCDCAA"}},"invoke"),s("span",{style:{color:"#D4D4D4"}},"();")]),e(` +`),s("span",{class:"line"},[s("span",{style:{color:"#D4D4D4"}},"});")])])])],-1),F=s("div",{class:"language-html"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"html"),s("pre",{class:"shiki dark-plus vp-code"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#808080"}},"<"),s("span",{style:{color:"#569CD6"}},"img"),s("span",{style:{color:"#9CDCFE"}}," data-bind"),s("span",{style:{color:"#D4D4D4"}},"="),s("span",{style:{color:"#CE9178"}},'"attr: {src: downloadPicture.resultObjectUrl }"'),s("span",{style:{color:"#808080"}},">")])])])],-1),T=n("",10);function k(I,S,M,_,q,x){const o=r("CodeTabs");return c(),t("div",null,[D,p(o,null,{vue:a(()=>[d,y,h,C,u,m,b]),knockout:a(()=>[g,f,v,E,w,A,F]),_:1}),T])}const R=l(i,[["render",k]]);export{B as __pageData,R as default}; diff --git a/assets/modeling_model-components_properties.md.CIU0sEVx.js b/assets/modeling_model-components_properties.md.CIU0sEVx.js new file mode 100644 index 000000000..40dd32543 --- /dev/null +++ b/assets/modeling_model-components_properties.md.CIU0sEVx.js @@ -0,0 +1 @@ +import{_ as e,c as t,o,a7 as a}from"./chunks/framework.Be4oCqIX.js";const y=JSON.parse('{"title":"Properties","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/properties.md","filePath":"modeling/model-components/properties.md"}'),r={name:"modeling/model-components/properties.md"},i=a('<h1 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h1><p>Models in a Coalesce application are just EF Core POCOs. The properties defined on your models should fit within the constraints of EF Core.</p><p>Coalesce currently has a few more restrictions than what EF Core allows, but hopefully over time some of these restrictions can be relaxed as Coalesce grows in capability.</p><h2 id="property-varieties" tabindex="-1">Property Varieties <a class="header-anchor" href="#property-varieties" aria-label="Permalink to "Property Varieties"">​</a></h2><p>The following kinds of properties may be declared on your models.</p><h3 id="primary-key" tabindex="-1">Primary Key <a class="header-anchor" href="#primary-key" aria-label="Permalink to "Primary Key"">​</a></h3><p>To work with Coalesce, your model must have a single property for a primary key. By convention, this property should be named the same as your model class with <code>Id</code> appended to that name, but you can also annotate a property with <code>[Key]</code> or name it exactly "Id" to denote it as the primary key.</p><h3 id="foreign-keys-reference-navigation-properties" tabindex="-1">Foreign Keys & Reference Navigation Properties <a class="header-anchor" href="#foreign-keys-reference-navigation-properties" aria-label="Permalink to "Foreign Keys & Reference Navigation Properties"">​</a></h3><p>While a foreign key may be declared on your model using only the EF OnModuleBuilding method to specify its purpose, Coalesce won't know what the property is a key for. Therefore, foreign key properties should always be accompanied by a reference navigation property, and vice versa.</p><p>In cases where the foreign key is not named after the navigation property with <code>"Id"</code> appended, the <code>[ForeignKeyAttribute]</code> may be used on either the key or the navigation property to denote the other property of the pair, in accordance with the recommendations set forth by <a href="https://learn.microsoft.com/en-us/ef/core/modeling/relationships/mapping-attributes#foreignkeyattribute" target="_blank" rel="noreferrer">EF Core's Modeling Guidelines</a>.</p><h3 id="collection-navigation-properties" tabindex="-1">Collection Navigation Properties <a class="header-anchor" href="#collection-navigation-properties" aria-label="Permalink to "Collection Navigation Properties"">​</a></h3><p>Collection navigation properties can be used in a straightforward manner. In the event where the inverse property on the other side of the relationship cannot be determined, <code>[InversePropertyAttribute]</code> will need to be used. <a href="https://learn.microsoft.com/en-us/ef/core/modeling/relationships/mapping-attributes#inversepropertyattribute" target="_blank" rel="noreferrer">EF Core provides documentation</a> on how to use this attribute. Errors will be displayed at generation time if an inverse property cannot be determined without the attribute. We recommend recommended that you declare the type of collection navigation properties as <code>ICollection<T></code>.</p><h3 id="non-mapped-pocos" tabindex="-1">Non-mapped POCOs <a class="header-anchor" href="#non-mapped-pocos" aria-label="Permalink to "Non-mapped POCOs"">​</a></h3><p>Properties of a type that are not on your <code>DbContext</code> will also have corresponding properties generated on the <a href="/Coalesce/stacks/disambiguation/view-model.html">TypeScript ViewModels</a> typed as <a href="/Coalesce/stacks/disambiguation/external-view-model.html">TypeScript External ViewModels</a>, and the values of such properties will be sent with the object to the client when requested. Properties of this type will also be sent back to the server by the client when they are encountered (currently supported by the <a href="/Coalesce/stacks/vue/overview.html">Vue Stack</a> only).</p><p>See <a href="/Coalesce/modeling/model-types/external-types.html">External Types</a> for more information.</p><h3 id="primitives-scalars-dates" tabindex="-1">Primitives, Scalars, & Dates <a class="header-anchor" href="#primitives-scalars-dates" aria-label="Permalink to "Primitives, Scalars, & Dates"">​</a></h3><p>Most common built-in primitive and scalar data types (numerics, strings, booleans, enums, <code>DateTime</code>, <code>DateTimeOffset</code>), and their nullable variants, are all supported as model properties.</p><h3 id="getter-only-properties" tabindex="-1">Getter-only Properties <a class="header-anchor" href="#getter-only-properties" aria-label="Permalink to "Getter-only Properties"">​</a></h3><p>Any property that only has a getter will also have a corresponding property generated in the <a href="/Coalesce/stacks/disambiguation/view-model.html">TypeScript ViewModels</a>, but won't be sent back to the server during any save actions.</p><p>If such a property is defined as an auto-property, the <code>[NotMapped]</code> attribute should be used to prevent EF Core from attempting to map such a property to your database.</p><h3 id="init-only-properties" tabindex="-1">Init-only Properties <a class="header-anchor" href="#init-only-properties" aria-label="Permalink to "Init-only Properties"">​</a></h3><p>Properties on <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> that use an <code>init</code> accessor rather than a <code>set</code> accessor will be implicitly treated as required, and can also only have a value provided when the entity is created for the first time. Any values provided during save actions for init-only properties when updating an existing entity will be ignored.</p><h2 id="property-customization" tabindex="-1">Property Customization <a class="header-anchor" href="#property-customization" aria-label="Permalink to "Property Customization"">​</a></h2><p>For any of the kinds of properties outlined above, the following customizations can be applied:</p><h3 id="attributes" tabindex="-1">Attributes <a class="header-anchor" href="#attributes" aria-label="Permalink to "Attributes"">​</a></h3><p>Coalesce provides a number of <a href="/Coalesce/modeling/model-components/attributes.html">Attributes</a>, and supports a number of other .NET attributes, that allow for further customization of your model.</p><h3 id="security" tabindex="-1">Security <a class="header-anchor" href="#security" aria-label="Permalink to "Security"">​</a></h3><p>Property values received by the server from the client will be ignored if rejected by any <a href="/Coalesce/topics/security.html#property-column-security">property-level Security</a>. This security is implemented in the <a href="/Coalesce/stacks/agnostic/dtos.html">Generated C# DTOs</a>.</p><h3 id="loading-serialization" tabindex="-1">Loading & Serialization <a class="header-anchor" href="#loading-serialization" aria-label="Permalink to "Loading & Serialization"">​</a></h3><p>The <a href="/Coalesce/modeling/model-components/data-sources.html#default-loading-behavior">Default Loading Behavior</a>, any custom functionality defined in <a href="/Coalesce/modeling/model-components/data-sources.html">Data Sources</a>, and <a href="/Coalesce/modeling/model-components/attributes/dto-includes-excludes.html">[DtoIncludes] & [DtoExcludes]</a> may also restrict which properties are sent to the client when requested.</p><h3 id="notmapped" tabindex="-1">NotMapped <a class="header-anchor" href="#notmapped" aria-label="Permalink to "NotMapped"">​</a></h3><p>While Coalesce does not do anything special for the <code>[NotMapped]</code> attribute, it is still an important attribute to keep in mind while building your model, as it prevents EF Core from doing anything with the property.</p>',32),n=[i];function s(l,p,d,c,h,m){return o(),t("div",null,n)}const f=e(r,[["render",s]]);export{y as __pageData,f as default}; diff --git a/assets/modeling_model-components_properties.md.CIU0sEVx.lean.js b/assets/modeling_model-components_properties.md.CIU0sEVx.lean.js new file mode 100644 index 000000000..763961f0e --- /dev/null +++ b/assets/modeling_model-components_properties.md.CIU0sEVx.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o,a7 as a}from"./chunks/framework.Be4oCqIX.js";const y=JSON.parse('{"title":"Properties","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-components/properties.md","filePath":"modeling/model-components/properties.md"}'),r={name:"modeling/model-components/properties.md"},i=a("",32),n=[i];function s(l,p,d,c,h,m){return o(),t("div",null,n)}const f=e(r,[["render",s]]);export{y as __pageData,f as default}; diff --git a/assets/modeling_model-types_dtos.md.DTDoLnze.js b/assets/modeling_model-types_dtos.md.DTDoLnze.js new file mode 100644 index 000000000..0fd962c25 --- /dev/null +++ b/assets/modeling_model-types_dtos.md.DTDoLnze.js @@ -0,0 +1,86 @@ +import{_ as s,c as a,o as n,a7 as e}from"./chunks/framework.Be4oCqIX.js";const u=JSON.parse('{"title":"Custom DTOs","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-types/dtos.md","filePath":"modeling/model-types/dtos.md"}'),o={name:"modeling/model-types/dtos.md"},l=e(`<h1 id="custom-dtos" tabindex="-1">Custom DTOs <a class="header-anchor" href="#custom-dtos" aria-label="Permalink to "Custom DTOs"">​</a></h1><p>In addition to the generated <a href="/Coalesce/stacks/agnostic/dtos.html">Generated C# DTOs</a> that Coalesce will create for you, you may also create your own implementations of an <code>IClassDto</code>. These types are first-class citizens in Coalesce - you will get a full suite of features surrounding them as if they were entities. This includes generated API Controllers, Admin Views, and full <a href="/Coalesce/stacks/disambiguation/view-model.html">TypeScript ViewModels</a> and <a href="/Coalesce/stacks/disambiguation/list-view-model.html">TypeScript List ViewModels</a>.</p><p>The difference between a Custom DTO and the underlying entity that they represent is as follows:</p><ul><li><p>The only time your custom DTO will be served is when it is requested directly from one of the endpoints on its generated controller, or when its type is explicitly used by a <a href="/Coalesce/modeling/model-components/methods.html">method</a> or <a href="./../model-components/properties.html">property</a> of another type.</p></li><li><p>When mapping data from your database, or mapping data incoming from the client, the DTO itself must manually map all properties, since there is no corresponding <a href="/Coalesce/stacks/agnostic/dtos.html">Generated DTO</a>. Attributes like <a href="/Coalesce/modeling/model-components/attributes/dto-includes-excludes.html">[DtoIncludes] & [DtoExcludes]</a> and property-level security through <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">Security Attributes</a> have no effect on custom DTOs, since those attribute only affect what get generated for <a href="/Coalesce/stacks/agnostic/dtos.html">Generated C# DTOs</a>.</p></li></ul><h2 id="creating-a-custom-dto" tabindex="-1">Creating a Custom DTO <a class="header-anchor" href="#creating-a-custom-dto" aria-label="Permalink to "Creating a Custom DTO"">​</a></h2><p>To create a custom DTO, define a class annotated with <a href="/Coalesce/modeling/model-components/attributes/coalesce.html">[Coalesce]</a> that implements <code>IClassDTO<T></code>, where <code>T</code> is an EF Core POCO with a corresponding <code>DbSet<T></code> on a <code>DbContext</code> that has also been exposed with <a href="/Coalesce/modeling/model-components/attributes/coalesce.html">[Coalesce]</a>. Add any <a href="/Coalesce/modeling/model-components/properties.html">Properties</a> to it just as you would add <a href="/Coalesce/modeling/model-components/properties.html">model properties</a> to a regular EF model. If you are not exposing a <code>DbContext</code> class with <a href="/Coalesce/modeling/model-components/attributes/coalesce.html">[Coalesce]</a> but still wish to create a Custom DTO based upon one of its entities, you can inherit from <code>IClassDTO<T, TContext></code> instead as a means of explicitly declaring the type of the DbContext.</p><p>Next, ensure that one property is annotated with <code>[Key]</code> so that Coalesce can know the primary key of your DTO in order to perform database lookups and keep track of your object uniquely in the client-side TypeScript.</p><p>Now, populate the required <code>MapTo</code> and <code>MapFrom</code> methods with code for mapping from and to your DTO, respectively (the methods are named with respect to the underlying entity, not the DTO). Most properties probably map one-to-one in both directions, but you probably created a DTO because you wanted some sort of custom mapping - say, mapping a collection on your entity with a comma-delimited string on the DTO. This is also the place to perform any user-based, role-based, property-level security. You can access the current user on the <code>IMappingContext</code> object.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> CaseDto</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">IClassDto</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Case</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Key</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> CaseId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Title</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> AssignedToName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> MapTo</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">Case</span><span style="color:#9CDCFE;"> obj</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">IMappingContext</span><span style="color:#9CDCFE;"> context</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> obj</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Title</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">Title</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> MapFrom</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">Case</span><span style="color:#9CDCFE;"> obj</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">IMappingContext</span><span style="color:#9CDCFE;"> context</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">IncludeTree</span><span style="color:#9CDCFE;"> tree</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> CaseId</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">obj</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CaseKey</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#9CDCFE;"> Title</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">obj</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Title</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">obj</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">AssignedTo</span><span style="color:#D4D4D4;"> != </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> AssignedToName</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">obj</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">AssignedTo</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Name</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Custom DTOs do not utilize property-level <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">Security Attributes</a> nor <a href="/Coalesce/modeling/model-components/attributes/dto-includes-excludes.html">[DtoIncludes] & [DtoExcludes]</a>, since these are handled in the <a href="/Coalesce/stacks/agnostic/dtos.html">Generated DTOs</a>. If you need property-level security or trimming, you must write it yourself in the <code>MapTo</code> and <code>MapFrom</code> methods.</p></div><p>If you have any child objects on your DTO, you can invoke the mapper for some other object using the static <code>Mapper</code> class. Also seen in this example is how to respect the <a href="/Coalesce/concepts/include-tree.html">Include Tree</a> when mapping entity types; however, respecting the <code>IncludeTree</code> is optional. Since this DTO is a custom type that you've written, if you're certain your use cases don't need to worry about object graph trimming, then you can ignore the <code>IncludeTree</code>. If you do ignore the <code>IncludeTree</code>, you should pass <code>null</code> to calls to <code>Mapper</code> - don't pass in the incoming <code>IncludeTree</code>, as this could cause unexpected results.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">using</span><span style="color:#4EC9B0;"> IntelliTect</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Mapping</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> CaseDto</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">IClassDto</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Case</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> ProductId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> Product</span><span style="color:#9CDCFE;"> Product</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> MapFrom</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">Case</span><span style="color:#9CDCFE;"> obj</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">IMappingContext</span><span style="color:#9CDCFE;"> context</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">IncludeTree</span><span style="color:#9CDCFE;"> tree</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> ProductId</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">obj</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ProductId</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">tree</span><span style="color:#D4D4D4;"> == </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;"> || </span><span style="color:#9CDCFE;">tree</span><span style="color:#D4D4D4;">[</span><span style="color:#569CD6;">nameof</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">this</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Product</span><span style="color:#D4D4D4;">)] != </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#9CDCFE;"> Product</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">Mapper</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">MapToDto</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Product</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">ProductDtoGen</span><span style="color:#D4D4D4;">>(</span><span style="color:#9CDCFE;">obj</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Product</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">tree</span><span style="color:#D4D4D4;">?[</span><span style="color:#569CD6;">nameof</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">this</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Product</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="using-custom-datasources-and-behaviors" tabindex="-1">Using Custom DataSources and Behaviors <a class="header-anchor" href="#using-custom-datasources-and-behaviors" aria-label="Permalink to "Using Custom DataSources and Behaviors"">​</a></h2><h3 id="declaring-an-iclassdto-datasource" tabindex="-1">Declaring an IClassDto DataSource <a class="header-anchor" href="#declaring-an-iclassdto-datasource" aria-label="Permalink to "Declaring an IClassDto DataSource"">​</a></h3><p>When you create a custom DTO, it will use the <a href="/Coalesce/modeling/model-components/data-sources.html#standard-data-source">Standard Data Source</a> and <a href="/Coalesce/modeling/model-components/behaviors.html#standard-behaviors">Standard Behaviors</a> just like any of your regular <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a>. If you wish to override this, your custom data source and/or behaviors MUST be declared in one of the following ways:</p><ol><li><p>As a nested class of the DTO. The relationship between your data source or behaviors and your DTO will be picked up automatically.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> CaseDto</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">IClassDto</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Case</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Key</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> CaseId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Title</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> MyCaseDtoSource</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">StandardDataSource</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Case</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div></li><li><p>With a <code>[DeclaredFor]</code> attribute that references the DTO type:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> CaseDto</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">IClassDto</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Case</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Key</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> CaseId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Title</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">DeclaredFor</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">typeof</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CaseDto</span><span style="color:#D4D4D4;">))]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> MyCaseDtoSource</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">StandardDataSource</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Case</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div></li></ol><h3 id="projecteddtodatasource" tabindex="-1">ProjectedDtoDataSource <a class="header-anchor" href="#projecteddtodatasource" aria-label="Permalink to "ProjectedDtoDataSource"">​</a></h3><p>In addition to creating a <a href="/Coalesce/modeling/model-components/data-sources.html">Data Source</a> by deriving from <a href="/Coalesce/modeling/model-components/data-sources.html#standard-data-source">Standard Data Source</a>, there also exists a class <code>ProjectedDtoDataSource</code> that can be used to easily perform projection from EF model types to your custom DTO types using EF query projections. <code>ProjectedDtoDataSource</code> inherits from <a href="/Coalesce/modeling/model-components/data-sources.html#standard-data-source">Standard Data Source</a>.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">DeclaredFor</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">typeof</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CaseDto</span><span style="color:#D4D4D4;">))]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> CaseDtoSource</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">ProjectedDtoDataSource</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Case</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">CaseDto</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> CaseDtoSource</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CrudContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">base</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) { }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">CaseDto</span><span style="color:#D4D4D4;">> </span><span style="color:#DCDCAA;">ApplyProjection</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Case</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">query</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">IDataSourceParameters</span><span style="color:#9CDCFE;"> parameters</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> query</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Select</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;"> => </span><span style="color:#569CD6;">new</span><span style="color:#4EC9B0;"> CaseDto</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> CaseId</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CaseKey</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#9CDCFE;"> Title</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Title</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#9CDCFE;"> AssignedToName</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">AssignedTo</span><span style="color:#D4D4D4;"> == </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;"> ? </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;"> : </span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">AssignedTo</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Name</span></span> +<span class="line"><span style="color:#D4D4D4;"> });</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="surgical-saves" tabindex="-1">Surgical Saves <a class="header-anchor" href="#surgical-saves" aria-label="Permalink to "Surgical Saves"">​</a></h2><p>The <a href="./../../stacks/vue/layers/viewmodels.html">Vue ViewModels</a> support surgical saves through their <code>$saveMode</code> property, and <a href="./../../stacks/ko/client/view-model.html">Knockout ViewModels</a> through the <a href="./../../stacks/ko/client/model-config.html#viewmodelconfiguration"><code>saveIncludedFields</code> configuration</a>.</p><p>Surgical saves require DTOs on the server that are capable of determining which of their properties have been set by the model binder, as surgical saves are sent from the client by entirely omitting properties from the <code>x-www-form-urlencoded</code> body that is sent to the server.</p><p>The <a href="/Coalesce/stacks/agnostic/dtos.html">Generated C# DTOs</a> implement the necessary logic for this; however, any <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a> must have this logic manually written by you, the developer. Either implement the same pattern that can be seen in the <a href="/Coalesce/stacks/agnostic/dtos.html">Generated C# DTOs</a>, or do not use surgical saves with Custom DTOs.</p>`,23),p=[l];function t(c,r,D,y,i,C){return n(),a("div",null,p)}const h=s(o,[["render",t]]);export{u as __pageData,h as default}; diff --git a/assets/modeling_model-types_dtos.md.DTDoLnze.lean.js b/assets/modeling_model-types_dtos.md.DTDoLnze.lean.js new file mode 100644 index 000000000..23a0b4244 --- /dev/null +++ b/assets/modeling_model-types_dtos.md.DTDoLnze.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as n,a7 as e}from"./chunks/framework.Be4oCqIX.js";const u=JSON.parse('{"title":"Custom DTOs","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-types/dtos.md","filePath":"modeling/model-types/dtos.md"}'),o={name:"modeling/model-types/dtos.md"},l=e("",23),p=[l];function t(c,r,D,y,i,C){return n(),a("div",null,p)}const h=s(o,[["render",t]]);export{u as __pageData,h as default}; diff --git a/assets/modeling_model-types_entities.md.BEoDTH5o.js b/assets/modeling_model-types_entities.md.BEoDTH5o.js new file mode 100644 index 000000000..e97b6ec47 --- /dev/null +++ b/assets/modeling_model-types_entities.md.BEoDTH5o.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.Be4oCqIX.js";const f=JSON.parse('{"title":"Entity Models","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-types/entities.md","filePath":"modeling/model-types/entities.md"}'),r={name:"modeling/model-types/entities.md"},s=o('<h1 id="entity-models" tabindex="-1">Entity Models <a class="header-anchor" href="#entity-models" aria-label="Permalink to "Entity Models"">​</a></h1><p>Models are the core business objects of your application - they serve as the fundamental representation of data in your application. The design of your models is very important. In <a href="https://docs.microsoft.com/en-us/ef/core/" target="_blank" rel="noreferrer">Entity Framework Core</a> (EF), data models are just Plain Old CLR Objects (POCOs).</p><h2 id="building-a-data-model" tabindex="-1">Building a Data Model <a class="header-anchor" href="#building-a-data-model" aria-label="Permalink to "Building a Data Model"">​</a></h2><p>To start building your data model that Coalesce will generate code for, follow the best practices for <a href="https://docs.microsoft.com/en-us/ef/core/" target="_blank" rel="noreferrer">EF Core</a>. Guidance on this topic is available in abundance in the <a href="https://docs.microsoft.com/en-us/ef/core/" target="_blank" rel="noreferrer">Entity Framework Core documentation</a>.</p><p>Don't worry about querying or saving data when you're just getting started - Coalesce will provide a lot of that functionality for you, and it is very easy to customize what Coalesce offers later. To get started, just build your POCOs and <code>DbContext</code> classes. Annotate your <code>DbContext</code> class with <code>[Coalesce]</code> so that Coalesce will discover it and generate code based off of your context for you.</p><p>Before you start building, you are highly encouraged to read the sections below. The linked pages explain in greater detail what Coalesce will build for you for each part of your data model.</p><h3 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h3><p>Read <a href="/Coalesce/modeling/model-components/properties.html">Properties</a> for an outline of the different types of properties that you may place on your models and the code that Coalesce will generate for each of them.</p><h3 id="attributes" tabindex="-1">Attributes <a class="header-anchor" href="#attributes" aria-label="Permalink to "Attributes"">​</a></h3><p>Coalesce provides a number of C# attributes that can be used to decorate your model classes and their properties in order to customize behavior, appearance, security, and more. Coalesce also supports a number of annotations from <code>System.ComponentModel.DataAnnotations</code>.</p><p>Read <a href="/Coalesce/modeling/model-components/attributes.html">Attributes</a> to learn more.</p><h3 id="methods" tabindex="-1">Methods <a class="header-anchor" href="#methods" aria-label="Permalink to "Methods"">​</a></h3><p>You can place both static and interface methods on your model classes. Any public methods annotated with <a href="/Coalesce/modeling/model-components/attributes/coalesce.html">[Coalesce]</a> will have a generated API endpoint and corresponding generated TypeScript members for calling this API endpoint. Read <a href="/Coalesce/modeling/model-components/methods.html">Methods</a> to learn more.</p><h2 id="customizing-crud-operations" tabindex="-1">Customizing CRUD Operations <a class="header-anchor" href="#customizing-crud-operations" aria-label="Permalink to "Customizing CRUD Operations"">​</a></h2><p>Once you've got a solid data model in place, its time to start customizing the way that Coalesce will <em>read</em> your data, as well as the way that it will handle your data when processing <em>creates</em>, <em>updates</em>, and <em>deletes</em>.</p><h3 id="data-sources" tabindex="-1">Data Sources <a class="header-anchor" href="#data-sources" aria-label="Permalink to "Data Sources"">​</a></h3><p>The method by which you can control what data the users of your application can access through Coalesce's generated APIs is by creating custom data sources. These are classes that allow complete control over the way that data is retrieved from your database and provided to clients. Read <a href="/Coalesce/modeling/model-components/data-sources.html">Data Sources</a> to learn more.</p><h3 id="behaviors" tabindex="-1">Behaviors <a class="header-anchor" href="#behaviors" aria-label="Permalink to "Behaviors"">​</a></h3><p>Behaviors in Coalesce are to mutating data as data sources are to reading data. Defining a behaviors class for a model allows complete control over the way that Coalesce will create, update, and delete your application's data in response to requests made through its generated API. Read <a href="/Coalesce/modeling/model-components/behaviors.html">Behaviors</a> to learn more.</p>',19),i=[s];function n(l,d,c,h,m,u){return t(),a("div",null,i)}const b=e(r,[["render",n]]);export{f as __pageData,b as default}; diff --git a/assets/modeling_model-types_entities.md.BEoDTH5o.lean.js b/assets/modeling_model-types_entities.md.BEoDTH5o.lean.js new file mode 100644 index 000000000..4bb0423d8 --- /dev/null +++ b/assets/modeling_model-types_entities.md.BEoDTH5o.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.Be4oCqIX.js";const f=JSON.parse('{"title":"Entity Models","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-types/entities.md","filePath":"modeling/model-types/entities.md"}'),r={name:"modeling/model-types/entities.md"},s=o("",19),i=[s];function n(l,d,c,h,m,u){return t(),a("div",null,i)}const b=e(r,[["render",n]]);export{f as __pageData,b as default}; diff --git a/assets/modeling_model-types_external-types.md.DW99dR-e.js b/assets/modeling_model-types_external-types.md.DW99dR-e.js new file mode 100644 index 000000000..b523d11d6 --- /dev/null +++ b/assets/modeling_model-types_external-types.md.DW99dR-e.js @@ -0,0 +1,41 @@ +import{_ as s,c as a,o as n,a7 as l}from"./chunks/framework.Be4oCqIX.js";const u=JSON.parse('{"title":"External Types","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-types/external-types.md","filePath":"modeling/model-types/external-types.md"}'),e={name:"modeling/model-types/external-types.md"},p=l(`<h1 id="external-types" tabindex="-1">External Types <a class="header-anchor" href="#external-types" aria-label="Permalink to "External Types"">​</a></h1><p>In Coalesce, any type which is connected to your data model but is not directly part of it is considered to be an "external type".</p><p>The collection of external types for a data model looks like this:</p><ol><li>Take all of the api-served types in your data model. This includes <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>.</li><li>Take all of the property types, method parameters, and method return types of these types.</li><li>Any of these types which are not built-in scalar types and not one of the aforementioned api-served types are external types.</li><li>For any external type discovered, any of the property types which qualify under the above rules are also external types.</li></ol><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Be careful when using types that you do not own for properties and method returns in your data model. When Coalesce generates external type ViewModels and DTOs, it will not stop until it has exhausted all paths that can be reached by following public property types and method returns.</p><p>In general, you should only expose types that you have created so that you will always have full control over them. Mark any properties you don't wish to expose with <a href="/Coalesce/modeling/model-components/attributes/internal-use.html">[InternalUse]</a>, or make those members non-public.</p></div><h2 id="generated-code" tabindex="-1">Generated Code <a class="header-anchor" href="#generated-code" aria-label="Permalink to "Generated Code"">​</a></h2><p>For each external type found in your application's model, Coalesce will generate:</p><ul><li>A <a href="/Coalesce/stacks/agnostic/dtos.html">Generated DTO</a></li><li>A <a href="/Coalesce/stacks/disambiguation/external-view-model.html">TypeScript Model</a></li></ul><h2 id="example-data-model" tabindex="-1">Example Data Model <a class="header-anchor" href="#example-data-model" aria-label="Permalink to "Example Data Model"">​</a></h2><p>For example, in the following scenario, the following classes are considered as external types:</p><ul><li><code>PluginMetadata</code>, exposed through a getter-only property on <code>ApplicationPlugin</code>.</li><li><code>PluginResult</code>, exposed through a method return on <code>ApplicationPlugin</code>.</li></ul><p><code>PluginHandler</code> is not because it not exposed by the model, neither directly nor through any of the other external types.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> AppDbContext</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">DbContext</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DbSet</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Application</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">Applications</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DbSet</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">ApplicationPlugin</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">ApplicationPlugins</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Application</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> ApplicationId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Name</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> ICollection</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">ApplicationPlugin</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">Plugins</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> ApplicationPlugin</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> ApplicationPluginId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> ApplicationId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> Application</span><span style="color:#9CDCFE;"> Application</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> TypeName</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> private</span><span style="color:#4EC9B0;"> PluginHandler</span><span style="color:#DCDCAA;"> GetInstance</span><span style="color:#D4D4D4;">() => </span></span> +<span class="line"><span style="color:#D4D4D4;"> ((</span><span style="color:#4EC9B0;">PluginHandler</span><span style="color:#D4D4D4;">)</span><span style="color:#9CDCFE;">Activator</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">CreateInstance</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Type</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">GetType</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">TypeName</span><span style="color:#D4D4D4;">)));</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> PluginMetadata</span><span style="color:#9CDCFE;"> Metadata</span><span style="color:#D4D4D4;"> => </span><span style="color:#DCDCAA;">GetInstance</span><span style="color:#D4D4D4;">().</span><span style="color:#DCDCAA;">GetMetadata</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> PluginResult</span><span style="color:#DCDCAA;"> Invoke</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> action</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> data</span><span style="color:#D4D4D4;">) => </span><span style="color:#DCDCAA;">GetInstance</span><span style="color:#D4D4D4;">().</span><span style="color:#DCDCAA;">Invoke</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Application</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">action</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">data</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> abstract</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> PluginHandler</span><span style="color:#D4D4D4;"> { </span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> abstract</span><span style="color:#4EC9B0;"> PluginMetadata</span><span style="color:#DCDCAA;"> GetMetadata</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> abstract</span><span style="color:#4EC9B0;"> PluginResult</span><span style="color:#DCDCAA;"> Invoke</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">Application</span><span style="color:#9CDCFE;"> app</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> action</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> data</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> abstract</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> PluginMetadata</span><span style="color:#D4D4D4;"> { </span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> Name</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Version</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> ICollection</span><span style="color:#D4D4D4;"><</span><span style="color:#569CD6;">string</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">Actions</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> abstract</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> PluginResult</span><span style="color:#D4D4D4;"> { </span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> Success</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Message</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="loading-serialization" tabindex="-1">Loading & Serialization <a class="header-anchor" href="#loading-serialization" aria-label="Permalink to "Loading & Serialization"">​</a></h2><p>External types have slightly different behavior when undergoing serialization to be sent to the client. Unlike database-mapped types which are subject to the rules of <a href="/Coalesce/concepts/include-tree.html">Include Tree</a>, external types ignore the Include Tree when being mapped to DTOs for serialization. Read <a href="/Coalesce/concepts/include-tree.html#external-type-caveats">External Type Caveats</a> for a more detailed explanation of this exception.</p>`,15),o=[p];function t(c,r,D,y,i,C){return n(),a("div",null,o)}const h=s(e,[["render",t]]);export{u as __pageData,h as default}; diff --git a/assets/modeling_model-types_external-types.md.DW99dR-e.lean.js b/assets/modeling_model-types_external-types.md.DW99dR-e.lean.js new file mode 100644 index 000000000..1337c8f45 --- /dev/null +++ b/assets/modeling_model-types_external-types.md.DW99dR-e.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as n,a7 as l}from"./chunks/framework.Be4oCqIX.js";const u=JSON.parse('{"title":"External Types","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-types/external-types.md","filePath":"modeling/model-types/external-types.md"}'),e={name:"modeling/model-types/external-types.md"},p=l("",15),o=[p];function t(c,r,D,y,i,C){return n(),a("div",null,o)}const h=s(e,[["render",t]]);export{u as __pageData,h as default}; diff --git a/assets/modeling_model-types_services.md.B4VMmBhF.js b/assets/modeling_model-types_services.md.B4VMmBhF.js new file mode 100644 index 000000000..fc781b318 --- /dev/null +++ b/assets/modeling_model-types_services.md.B4VMmBhF.js @@ -0,0 +1,27 @@ +import{_ as s,c as e,o as a,a7 as n}from"./chunks/framework.Be4oCqIX.js";const h=JSON.parse('{"title":"Services","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-types/services.md","filePath":"modeling/model-types/services.md"}'),o={name:"modeling/model-types/services.md"},l=n(`<h1 id="services" tabindex="-1">Services <a class="header-anchor" href="#services" aria-label="Permalink to "Services"">​</a></h1><p>In a Coalesce application, you are likely to end up with a need for some API endpoints that aren't closely tied with your regular data model. While you could stick <a href="/Coalesce/modeling/model-components/methods.html#static-methods">Static Methods</a> on one of your entities, do so is detrimental to the organization of your code.</p><p>Instead, Coalesce allows you to generate API Controllers and a TypeScript client from a service. A service, in this case, is nothing more than a C# class or an interface with methods on it, annotated with <code>[Coalesce, Service]</code>. An implementation of this class or interface must be injectable from your application's service container, so a registration in Startup.cs is needed.</p><p>The instance methods of these services work just like other custom <a href="/Coalesce/modeling/model-components/methods.html">Methods</a> in Coalesce, with one notable distinction: Instance methods don't operate on an instance of a model, but instead on a dependency injected instance of the service.</p><h2 id="generated-code" tabindex="-1">Generated Code <a class="header-anchor" href="#generated-code" aria-label="Permalink to "Generated Code"">​</a></h2><p>For each external type found in your application's model, Coalesce will generate:</p><ul><li>An API controller with endpoints that correspond to the service's instance methods.</li><li>A TypeScript client containing the members outlined in <a href="/Coalesce/modeling/model-components/methods.html">Methods</a> for invoking these endpoints.</li></ul><h2 id="example-service" tabindex="-1">Example Service <a class="header-anchor" href="#example-service" aria-label="Permalink to "Example Service"">​</a></h2><p>An example of a service might look something like this:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Service</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> interface</span><span style="color:#4EC9B0;"> IWeatherService</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#4EC9B0;"> WeatherData</span><span style="color:#DCDCAA;"> GetWeather</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> zipCode</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>With an implementation:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> WeatherService</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">IWeatherService</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> WeatherService</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#9CDCFE;"> db</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> this</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">db</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">db</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> WeatherData</span><span style="color:#DCDCAA;"> GetWeather</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> zipCode</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#6A9955;"> // Assuming some magic HttpGet method that works as follows...</span></span> +<span class="line"><span style="color:#569CD6;"> var</span><span style="color:#9CDCFE;"> response</span><span style="color:#D4D4D4;"> = </span><span style="color:#DCDCAA;">HttpGet</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"http://www.example.com/api/weather/"</span><span style="color:#D4D4D4;"> + </span><span style="color:#9CDCFE;">zipCode</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> response</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Body</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">SerializeTo</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">WeatherData</span><span style="color:#D4D4D4;">>();</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> MethodThatIsNotExposedBecauseItIsNotOnTheExposedInterface</span><span style="color:#D4D4D4;">() { }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>And a registration:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Startup</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> ConfigureServices</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IServiceCollection</span><span style="color:#9CDCFE;"> services</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> services</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">AddCoalesce</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">>();</span></span> +<span class="line"><span style="color:#9CDCFE;"> services</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">AddScoped</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">IWeatherService</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">WeatherService</span><span style="color:#D4D4D4;">>();</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>While it isn't required that an interface for your service exist (you can generate directly from the implementation), it is highly recommended that an interface be used. Interfaces increase testability and reduce risk of accidentally changing the signature of a published API, among other benefits.</p>`,15),p=[l];function t(c,r,i,D,d,y){return a(),e("div",null,p)}const m=s(o,[["render",t]]);export{h as __pageData,m as default}; diff --git a/assets/modeling_model-types_services.md.B4VMmBhF.lean.js b/assets/modeling_model-types_services.md.B4VMmBhF.lean.js new file mode 100644 index 000000000..a5edcff96 --- /dev/null +++ b/assets/modeling_model-types_services.md.B4VMmBhF.lean.js @@ -0,0 +1 @@ +import{_ as s,c as e,o as a,a7 as n}from"./chunks/framework.Be4oCqIX.js";const h=JSON.parse('{"title":"Services","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-types/services.md","filePath":"modeling/model-types/services.md"}'),o={name:"modeling/model-types/services.md"},l=n("",15),p=[l];function t(c,r,i,D,d,y){return a(),e("div",null,p)}const m=s(o,[["render",t]]);export{h as __pageData,m as default}; diff --git a/assets/modeling_model-types_standalone-entities.md.dEM9wcnV.js b/assets/modeling_model-types_standalone-entities.md.dEM9wcnV.js new file mode 100644 index 000000000..938286d79 --- /dev/null +++ b/assets/modeling_model-types_standalone-entities.md.dEM9wcnV.js @@ -0,0 +1,48 @@ +import{_ as s,c as a,o as n,a7 as l}from"./chunks/framework.Be4oCqIX.js";const E=JSON.parse('{"title":"Standalone Entities","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-types/standalone-entities.md","filePath":"modeling/model-types/standalone-entities.md"}'),o={name:"modeling/model-types/standalone-entities.md"},p=l(`<h1 id="standalone-entities" tabindex="-1">Standalone Entities <a class="header-anchor" href="#standalone-entities" aria-label="Permalink to "Standalone Entities"">​</a></h1><p>In Coalesce, Standalone Entities are types that behave like <a href="./entities.html">entity types</a> (they can support the full suite generated CRUD endpoints), but are not based on Entity Framework. These types are discovered by Coalesce by annotating them with <code>[Coalesce, StandaloneEntity]</code>.</p><p>For these types, you must define at least one custom <a href="/Coalesce/modeling/model-components/data-sources.html">Data Source</a>, and optionally a <a href="/Coalesce/modeling/model-components/behaviors.html">Behaviors</a> class as well. If no behaviors are defined, the type is implicitly read-only, equivalent to turning off create/edit/delete via the <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">Security Attributes</a>.</p><p>To define data sources and behaviors for Standalone Entities, it is recommended you inherit from <code>StandardDataSource<T></code> and <code>StandardBehaviors<T></code>, respectively. For example:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">StandaloneEntity</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> StandaloneExample</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> Id</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Search</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">SearchMethod</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">SearchAttribute</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">SearchMethods</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Contains</span><span style="color:#D4D4D4;">), </span><span style="color:#4EC9B0;">ListText</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Name</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; } = </span><span style="color:#CE9178;">""</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DefaultOrderBy</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DateTimeOffset</span><span style="color:#9CDCFE;"> Date</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> private</span><span style="color:#569CD6;"> static</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> nextId</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#569CD6;"> private</span><span style="color:#569CD6;"> static</span><span style="color:#4EC9B0;"> ConcurrentDictionary</span><span style="color:#D4D4D4;"><</span><span style="color:#569CD6;">int</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">StandaloneExample</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">backingStore</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#4EC9B0;"> ConcurrentDictionary</span><span style="color:#D4D4D4;"><</span><span style="color:#569CD6;">int</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">StandaloneExample</span><span style="color:#D4D4D4;">>();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> DefaultSource</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">StandardDataSource</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">StandaloneExample</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> DefaultSource</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CrudContext</span><span style="color:#9CDCFE;"> context</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">base</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) { }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> Task</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">StandaloneExample</span><span style="color:#D4D4D4;">>> </span><span style="color:#DCDCAA;">GetQueryAsync</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IDataSourceParameters</span><span style="color:#9CDCFE;"> parameters</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">Task</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">FromResult</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">backingStore</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Values</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">AsQueryable</span><span style="color:#D4D4D4;">());</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Behaviors</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">StandardBehaviors</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">StandaloneExample</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> Behaviors</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CrudContext</span><span style="color:#9CDCFE;"> context</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">base</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) { }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> Task</span><span style="color:#DCDCAA;"> ExecuteDeleteAsync</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">StandaloneExample</span><span style="color:#9CDCFE;"> item</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> backingStore</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">TryRemove</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">item</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Id</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">out</span><span style="color:#9CDCFE;"> _</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> Task</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CompletedTask</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> Task</span><span style="color:#DCDCAA;"> ExecuteSaveAsync</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">SaveKind</span><span style="color:#9CDCFE;"> kind</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">StandaloneExample</span><span style="color:#D4D4D4;">? </span><span style="color:#9CDCFE;">oldItem</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">StandaloneExample</span><span style="color:#9CDCFE;"> item</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">kind</span><span style="color:#D4D4D4;"> == </span><span style="color:#9CDCFE;">SaveKind</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Create</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> item</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Id</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">Interlocked</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Increment</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">ref</span><span style="color:#9CDCFE;"> nextId</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#9CDCFE;"> backingStore</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">TryAdd</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">item</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Id</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">item</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#C586C0;"> else</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> backingStore</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">TryRemove</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">item</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Id</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">out</span><span style="color:#9CDCFE;"> _</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#9CDCFE;"> backingStore</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">TryAdd</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">item</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Id</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">item</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> Task</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CompletedTask</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>The above example is admittedly contrived, as it is unlikely that you would be using an in-memory collection as a data persistence mechanism. A more likely real-world scenario would be to inject an interface to some other data store. Data Source and Behavior classes are instantiated using your application's service provider, so any registered service can be injected.</p>`,6),e=[p];function t(D,c,r,y,C,i){return n(),a("div",null,e)}const m=s(o,[["render",t]]);export{E as __pageData,m as default}; diff --git a/assets/modeling_model-types_standalone-entities.md.dEM9wcnV.lean.js b/assets/modeling_model-types_standalone-entities.md.dEM9wcnV.lean.js new file mode 100644 index 000000000..073ee90cd --- /dev/null +++ b/assets/modeling_model-types_standalone-entities.md.dEM9wcnV.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as n,a7 as l}from"./chunks/framework.Be4oCqIX.js";const E=JSON.parse('{"title":"Standalone Entities","description":"","frontmatter":{},"headers":[],"relativePath":"modeling/model-types/standalone-entities.md","filePath":"modeling/model-types/standalone-entities.md"}'),o={name:"modeling/model-types/standalone-entities.md"},p=l("",6),e=[p];function t(D,c,r,y,C,i){return n(),a("div",null,e)}const m=s(o,[["render",t]]);export{E as __pageData,m as default}; diff --git a/assets/security-overview.BO07VrRB.jpg b/assets/security-overview.BO07VrRB.jpg new file mode 100644 index 000000000..483ebdbc7 Binary files /dev/null and b/assets/security-overview.BO07VrRB.jpg differ diff --git a/assets/stacks_agnostic_dtos.md.BF2vCqh3.js b/assets/stacks_agnostic_dtos.md.BF2vCqh3.js new file mode 100644 index 000000000..8e685a378 --- /dev/null +++ b/assets/stacks_agnostic_dtos.md.BF2vCqh3.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as a,a7 as s}from"./chunks/framework.Be4oCqIX.js";const f=JSON.parse('{"title":"Generated C# DTOs","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/agnostic/dtos.md","filePath":"stacks/agnostic/dtos.md"}'),o={name:"stacks/agnostic/dtos.md"},r=s('<h1 id="generated-c-dtos" tabindex="-1">Generated C# DTOs <a class="header-anchor" href="#generated-c-dtos" aria-label="Permalink to "Generated C# DTOs"">​</a></h1><p>Data Transfer Objects, or DTOs, allow for transformations of data from the data store into a format more suited for transfer and use on the client side. This often means trimming properties and flattening structures to provide a leaner over-the-wire experience. Coalesce aims to support this as seamlessly as possible.</p><p>Coalesce supports two types of DTOs:</p><ul><li>DTOs that are automatically generated for each POCO database object. These are controlled via <a href="/Coalesce/modeling/model-components/attributes.html">Attributes</a> on the POCO. These are outlined below.</li><li>DTOs that you create with IClassDto. These are outlined at <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>.</li></ul><h2 id="automatically-generated-dtos" tabindex="-1">Automatically Generated DTOs <a class="header-anchor" href="#automatically-generated-dtos" aria-label="Permalink to "Automatically Generated DTOs"">​</a></h2><p>Every class that is exposed through Coalesce's generated API will have a corresponding DTO generated for it. These DTOs are used to shuttle data back and forth to the client. They are generated classes that have nullable versions of all the properties on the POCO class.</p><p><a href="/Coalesce/modeling/model-components/attributes/dto-includes-excludes.html">[DtoIncludes] & [DtoExcludes]</a> and the <a href="/Coalesce/concepts/includes.html">Includes String</a> infrastructure can be used to indicate which properties should be transferred to the client in which cases, and <a href="/Coalesce/concepts/include-tree.html">Include Tree</a> is used to dictate how these DTOs are constructed from POCOs retrieved from the database.</p><p>The <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">[Read] and [Edit] attributes</a> can be used to apply property-level security, which manifests as conditional logic in the mapping methods on the generated DTOs.</p><p>See the <a href="/Coalesce/topics/security.html#property-column-security">Security</a> page to read more about property-level security, as well as all other security mechanisms in Coalesce.</p>',9),l=[r];function n(i,c,d,h,u,p){return a(),t("div",null,l)}const T=e(o,[["render",n]]);export{f as __pageData,T as default}; diff --git a/assets/stacks_agnostic_dtos.md.BF2vCqh3.lean.js b/assets/stacks_agnostic_dtos.md.BF2vCqh3.lean.js new file mode 100644 index 000000000..13339fbe8 --- /dev/null +++ b/assets/stacks_agnostic_dtos.md.BF2vCqh3.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as a,a7 as s}from"./chunks/framework.Be4oCqIX.js";const f=JSON.parse('{"title":"Generated C# DTOs","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/agnostic/dtos.md","filePath":"stacks/agnostic/dtos.md"}'),o={name:"stacks/agnostic/dtos.md"},r=s("",9),l=[r];function n(i,c,d,h,u,p){return a(),t("div",null,l)}const T=e(o,[["render",n]]);export{f as __pageData,T as default}; diff --git a/assets/stacks_agnostic_generation.md.BWKL3slG.js b/assets/stacks_agnostic_generation.md.BWKL3slG.js new file mode 100644 index 000000000..9f83b41b3 --- /dev/null +++ b/assets/stacks_agnostic_generation.md.BWKL3slG.js @@ -0,0 +1,18 @@ +import{_ as e,c as o,o as a,a7 as n}from"./chunks/framework.Be4oCqIX.js";const f=JSON.parse('{"title":"Code Generation Overview","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/agnostic/generation.md","filePath":"stacks/agnostic/generation.md"}'),s={name:"stacks/agnostic/generation.md"},t=n(`<h1 id="code-generation-overview" tabindex="-1">Code Generation Overview <a class="header-anchor" href="#code-generation-overview" aria-label="Permalink to "Code Generation Overview"">​</a></h1><p>Coalesce's principal purpose is a code generation framework for automating the creation of the boring-but-necessary parts of a web application. Below, you find an overview of the different components of Coalesce's code generation features.</p><h2 id="running-code-generation" tabindex="-1">Running Code Generation <a class="header-anchor" href="#running-code-generation" aria-label="Permalink to "Running Code Generation"">​</a></h2><p>Coalesce's code generation is ran via a dotnet CLI tool, <code>dotnet coalesce</code>. In order to invoke this tool, you must have the appropriate references to the package that provides it in your .csproj file:</p><div class="language-xml"><button title="Copy Code" class="copy"></button><span class="lang">xml</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">Project</span><span style="color:#9CDCFE;"> Sdk</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"Microsoft.NET.Sdk.Web"</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">PropertyGroup</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">TargetFramework</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">net7.0</span><span style="color:#808080;"></</span><span style="color:#569CD6;">TargetFramework</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> <!-- Necessary to use DotNetCliToolReference with modern framework versions --></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">DotnetCliToolTargetFramework</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">net7.0</span><span style="color:#808080;"></</span><span style="color:#569CD6;">DotnetCliToolTargetFramework</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> </</span><span style="color:#569CD6;">PropertyGroup</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">ItemGroup</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">PackageReference</span><span style="color:#9CDCFE;"> Include</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"IntelliTect.Coalesce"</span><span style="color:#9CDCFE;"> Version</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"..."</span><span style="color:#808080;"> /></span></span> +<span class="line"><span style="color:#808080;"> </</span><span style="color:#569CD6;">ItemGroup</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">ItemGroup</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">DotNetCliToolReference</span><span style="color:#9CDCFE;"> Include</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"IntelliTect.Coalesce.Tools"</span><span style="color:#9CDCFE;"> Version</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"..."</span><span style="color:#808080;"> /></span></span> +<span class="line"><span style="color:#808080;"> </</span><span style="color:#569CD6;">ItemGroup</span><span style="color:#808080;">></span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">Project</span><span style="color:#808080;">></span></span></code></pre></div><h3 id="cli-options" tabindex="-1">CLI Options <a class="header-anchor" href="#cli-options" aria-label="Permalink to "CLI Options"">​</a></h3><p>All configuration of the way that Coalesce interacts with your projects, including locating, analyzing, and producing generated code, is done in a json configuration file, <code>coalesce.json</code>. Read more about this file at <a href="/Coalesce/topics/coalesce-json.html">Code Generation Configuration</a>.</p><p>There are a couple of extra options which are only available as CLI parameters to <code>dotnet coalesce</code>. These options do not affect the behavior of the code generation - only the behavior of the CLI itself.</p><p><code>--debug</code> - When this flag is specified when running <code>dotnet coalesce</code>, Coalesce will wait for a debugger to be attached to its process before starting code generation.</p><p><code>-v|--verbosity <level></code> - Set the verbosity of the output. Options are <code>trace</code>, <code>debug</code>, <code>information</code>, <code>warning</code>, <code>error</code>, <code>critical</code>, and <code>none</code>.</p><h2 id="generated-code" tabindex="-1">Generated Code <a class="header-anchor" href="#generated-code" aria-label="Permalink to "Generated Code"">​</a></h2><p>Coalesce will generate a full vertical stack of code for you:</p><h3 id="backend-c" tabindex="-1">Backend C# <a class="header-anchor" href="#backend-c" aria-label="Permalink to "Backend C#"">​</a></h3><h4 id="api-controllers" tabindex="-1">API Controllers <a class="header-anchor" href="#api-controllers" aria-label="Permalink to "API Controllers"">​</a></h4><p>For each of your <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a>, <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>, and <a href="/Coalesce/modeling/model-types/services.html">Services</a>, an API controller is created in the <code>/Api/Generated</code> directory of your web project. These controllers provide a number of endpoints for interacting with your data.</p><p>These controllers can be secured at a high level using <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">Security Attributes</a>, and when applicable to the type, with <a href="/Coalesce/modeling/model-components/data-sources.html">Data Sources</a> and <a href="/Coalesce/modeling/model-components/behaviors.html">Behaviors</a>.</p><h4 id="c-dtos" tabindex="-1">C# DTOs <a class="header-anchor" href="#c-dtos" aria-label="Permalink to "C# DTOs"">​</a></h4><p>For each of your <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a>, a C# DTO class is created. These classes are used to hold the data that will be serialized and sent to the client, as well as data that has been received from the client before it has been mapped back to your EF POCO class.</p><p>See <a href="/Coalesce/stacks/agnostic/dtos.html">Generated C# DTOs</a> for more information.</p><h3 id="frontend-vue" tabindex="-1">Frontend - Vue <a class="header-anchor" href="#frontend-vue" aria-label="Permalink to "Frontend - Vue"">​</a></h3><p>An overview of the Vue generated code can be found at <a href="/Coalesce/stacks/vue/overview.html">Vue Overview</a>.</p><h3 id="frontend-knockout" tabindex="-1">Frontend - Knockout <a class="header-anchor" href="#frontend-knockout" aria-label="Permalink to "Frontend - Knockout"">​</a></h3><p>An overview of the legacy Knockout generated code can be found at <a href="/Coalesce/stacks/ko/overview.html">Knockout Overview</a>.</p>`,23),l=[t];function r(c,p,i,d,h,u){return a(),o("div",null,l)}const g=e(s,[["render",r]]);export{f as __pageData,g as default}; diff --git a/assets/stacks_agnostic_generation.md.BWKL3slG.lean.js b/assets/stacks_agnostic_generation.md.BWKL3slG.lean.js new file mode 100644 index 000000000..b43f10019 --- /dev/null +++ b/assets/stacks_agnostic_generation.md.BWKL3slG.lean.js @@ -0,0 +1 @@ +import{_ as e,c as o,o as a,a7 as n}from"./chunks/framework.Be4oCqIX.js";const f=JSON.parse('{"title":"Code Generation Overview","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/agnostic/generation.md","filePath":"stacks/agnostic/generation.md"}'),s={name:"stacks/agnostic/generation.md"},t=n("",23),l=[t];function r(c,p,i,d,h,u){return a(),o("div",null,l)}const g=e(s,[["render",r]]);export{f as __pageData,g as default}; diff --git a/assets/stacks_agnostic_getting-started-modeling.md.C3weGRHD.js b/assets/stacks_agnostic_getting-started-modeling.md.C3weGRHD.js new file mode 100644 index 000000000..95b8f28ad --- /dev/null +++ b/assets/stacks_agnostic_getting-started-modeling.md.C3weGRHD.js @@ -0,0 +1 @@ +import{_ as e,c as t,o,a7 as a}from"./chunks/framework.Be4oCqIX.js";const m=JSON.parse('{"title":"Data Modeling","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/agnostic/getting-started-modeling.md","filePath":"stacks/agnostic/getting-started-modeling.md"}'),n={name:"stacks/agnostic/getting-started-modeling.md"},i=a('<h1 id="data-modeling" tabindex="-1">Data Modeling <a class="header-anchor" href="#data-modeling" aria-label="Permalink to "Data Modeling"">​</a></h1><p>At this point, you can open up the newly-created solution in Visual Studio and run your application. However, your application won't do much without a data model, so you will probably want to do the following before running:</p><ul><li><p>Create an initial <a href="/Coalesce/modeling/model-types/entities.html">Data Model</a> by adding EF entity classes to the data project and the corresponding <code>DbSet<></code> properties to <code>AppDbContext</code>. You will notice that the starter project includes a single model, <code>Widget</code>, to start with. Feel free to change this model or remove it entirely. Read <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> for more information about creating a data model.</p></li><li><p>Run <code>dotnet ef migrations add Init</code> (Init can be any name) in the data project to create an initial database migration.</p></li><li><p>Run Coalesce's code generation by either:</p><ul><li>Running <code>dotnet coalesce</code> in the web project's root directory</li><li>Running the <code>coalesce</code> npm script (Vue) or gulp task (Knockout) in the Task Runner Explorer</li></ul></li></ul><p>You're now at a point where you can start creating your own pages!</p>',4),d=[i];function r(l,c,s,p,g,u){return o(),t("div",null,d)}const _=e(n,[["render",r]]);export{m as __pageData,_ as default}; diff --git a/assets/stacks_agnostic_getting-started-modeling.md.C3weGRHD.lean.js b/assets/stacks_agnostic_getting-started-modeling.md.C3weGRHD.lean.js new file mode 100644 index 000000000..ee0be3003 --- /dev/null +++ b/assets/stacks_agnostic_getting-started-modeling.md.C3weGRHD.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o,a7 as a}from"./chunks/framework.Be4oCqIX.js";const m=JSON.parse('{"title":"Data Modeling","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/agnostic/getting-started-modeling.md","filePath":"stacks/agnostic/getting-started-modeling.md"}'),n={name:"stacks/agnostic/getting-started-modeling.md"},i=a("",4),d=[i];function r(l,c,s,p,g,u){return o(),t("div",null,d)}const _=e(n,[["render",r]]);export{m as __pageData,_ as default}; diff --git a/assets/stacks_disambiguation_external-view-model.md.DAw1p-qQ.js b/assets/stacks_disambiguation_external-view-model.md.DAw1p-qQ.js new file mode 100644 index 000000000..7a73ddf76 --- /dev/null +++ b/assets/stacks_disambiguation_external-view-model.md.DAw1p-qQ.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.Be4oCqIX.js";const _=JSON.parse('{"title":"TypeScript External ViewModels","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/disambiguation/external-view-model.md","filePath":"stacks/disambiguation/external-view-model.md"}'),s={name:"stacks/disambiguation/external-view-model.md"},r=o('<h1 id="typescript-external-viewmodels" tabindex="-1">TypeScript External ViewModels <a class="header-anchor" href="#typescript-external-viewmodels" aria-label="Permalink to "TypeScript External ViewModels"">​</a></h1><p>This is a disambiguation page for a concept in Coalesce that is implemented differently between the available front-end stack choices. Please select your preferred stack.</p><h2 id="vue" tabindex="-1">Vue <a class="header-anchor" href="#vue" aria-label="Permalink to "Vue"">​</a></h2><p>The Vue stack for Coalesce does not create dedicated ViewModels for <a href="/Coalesce/modeling/model-types/external-types.html">External Types</a>. The interfaces in the <a href="/Coalesce/stacks/vue/layers/models.html">Model Layer</a> are used as the only representation of <a href="/Coalesce/modeling/model-types/external-types.html">External Types</a> on the client.</p><h2 id="knockout" tabindex="-1">Knockout <a class="header-anchor" href="#knockout" aria-label="Permalink to "Knockout"">​</a></h2><p>See: <a href="/Coalesce/stacks/ko/client/external-view-model.html">TypeScript External ViewModels</a></p>',6),l=[r];function i(n,c,d,p,h,m){return t(),a("div",null,l)}const f=e(s,[["render",i]]);export{_ as __pageData,f as default}; diff --git a/assets/stacks_disambiguation_external-view-model.md.DAw1p-qQ.lean.js b/assets/stacks_disambiguation_external-view-model.md.DAw1p-qQ.lean.js new file mode 100644 index 000000000..9cda6c87a --- /dev/null +++ b/assets/stacks_disambiguation_external-view-model.md.DAw1p-qQ.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.Be4oCqIX.js";const _=JSON.parse('{"title":"TypeScript External ViewModels","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/disambiguation/external-view-model.md","filePath":"stacks/disambiguation/external-view-model.md"}'),s={name:"stacks/disambiguation/external-view-model.md"},r=o("",6),l=[r];function i(n,c,d,p,h,m){return t(),a("div",null,l)}const f=e(s,[["render",i]]);export{_ as __pageData,f as default}; diff --git a/assets/stacks_disambiguation_list-view-model.md.DmMly1hf.js b/assets/stacks_disambiguation_list-view-model.md.DmMly1hf.js new file mode 100644 index 000000000..15df704e6 --- /dev/null +++ b/assets/stacks_disambiguation_list-view-model.md.DmMly1hf.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as a,a7 as i}from"./chunks/framework.Be4oCqIX.js";const _=JSON.parse('{"title":"TypeScript List ViewModels","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/disambiguation/list-view-model.md","filePath":"stacks/disambiguation/list-view-model.md"}'),s={name:"stacks/disambiguation/list-view-model.md"},o=i('<h1 id="typescript-list-viewmodels" tabindex="-1">TypeScript List ViewModels <a class="header-anchor" href="#typescript-list-viewmodels" aria-label="Permalink to "TypeScript List ViewModels"">​</a></h1><p>This is a disambiguation page for a concept in Coalesce that is implemented differently between the available front-end stack choices. Please select your preferred stack.</p><h2 id="vue" tabindex="-1">Vue <a class="header-anchor" href="#vue" aria-label="Permalink to "Vue"">​</a></h2><p>See: <a href="/Coalesce/stacks/vue/layers/viewmodels.html">Vue ListViewModels</a></p><h2 id="knockout" tabindex="-1">Knockout <a class="header-anchor" href="#knockout" aria-label="Permalink to "Knockout"">​</a></h2><p>See: <a href="/Coalesce/stacks/ko/client/list-view-model.html">Knockout ListViewModels</a></p>',6),l=[o];function c(r,n,d,p,h,m){return a(),t("div",null,l)}const k=e(s,[["render",c]]);export{_ as __pageData,k as default}; diff --git a/assets/stacks_disambiguation_list-view-model.md.DmMly1hf.lean.js b/assets/stacks_disambiguation_list-view-model.md.DmMly1hf.lean.js new file mode 100644 index 000000000..2c6657d73 --- /dev/null +++ b/assets/stacks_disambiguation_list-view-model.md.DmMly1hf.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as a,a7 as i}from"./chunks/framework.Be4oCqIX.js";const _=JSON.parse('{"title":"TypeScript List ViewModels","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/disambiguation/list-view-model.md","filePath":"stacks/disambiguation/list-view-model.md"}'),s={name:"stacks/disambiguation/list-view-model.md"},o=i("",6),l=[o];function c(r,n,d,p,h,m){return a(),t("div",null,l)}const k=e(s,[["render",c]]);export{_ as __pageData,k as default}; diff --git a/assets/stacks_disambiguation_view-model.md.CzBeA1Ds.js b/assets/stacks_disambiguation_view-model.md.CzBeA1Ds.js new file mode 100644 index 000000000..d98eb2750 --- /dev/null +++ b/assets/stacks_disambiguation_view-model.md.CzBeA1Ds.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.Be4oCqIX.js";const _=JSON.parse('{"title":"TypeScript ViewModels","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/disambiguation/view-model.md","filePath":"stacks/disambiguation/view-model.md"}'),i={name:"stacks/disambiguation/view-model.md"},s=o('<h1 id="typescript-viewmodels" tabindex="-1">TypeScript ViewModels <a class="header-anchor" href="#typescript-viewmodels" aria-label="Permalink to "TypeScript ViewModels"">​</a></h1><p>This is a disambiguation page for a concept in Coalesce that is implemented differently between the available front-end stack choices. Please select your preferred stack.</p><h2 id="vue" tabindex="-1">Vue <a class="header-anchor" href="#vue" aria-label="Permalink to "Vue"">​</a></h2><p>See: <a href="/Coalesce/stacks/vue/layers/viewmodels.html">Vue ViewModels</a></p><h2 id="knockout" tabindex="-1">Knockout <a class="header-anchor" href="#knockout" aria-label="Permalink to "Knockout"">​</a></h2><p>See: <a href="/Coalesce/stacks/ko/client/view-model.html">Knockout ViewModels</a></p>',6),c=[s];function r(l,n,d,p,h,m){return t(),a("div",null,c)}const k=e(i,[["render",r]]);export{_ as __pageData,k as default}; diff --git a/assets/stacks_disambiguation_view-model.md.CzBeA1Ds.lean.js b/assets/stacks_disambiguation_view-model.md.CzBeA1Ds.lean.js new file mode 100644 index 000000000..a5fdf654e --- /dev/null +++ b/assets/stacks_disambiguation_view-model.md.CzBeA1Ds.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.Be4oCqIX.js";const _=JSON.parse('{"title":"TypeScript ViewModels","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/disambiguation/view-model.md","filePath":"stacks/disambiguation/view-model.md"}'),i={name:"stacks/disambiguation/view-model.md"},s=o("",6),c=[s];function r(l,n,d,p,h,m){return t(),a("div",null,c)}const k=e(i,[["render",r]]);export{_ as __pageData,k as default}; diff --git a/assets/stacks_ko_client_bindings.md.B_vNJUNj.js b/assets/stacks_ko_client_bindings.md.B_vNJUNj.js new file mode 100644 index 000000000..b94526b46 --- /dev/null +++ b/assets/stacks_ko_client_bindings.md.B_vNJUNj.js @@ -0,0 +1,40 @@ +import{_ as a,c as n,I as o,a7 as l,l as e,a as t,o as p,E as i}from"./chunks/framework.Be4oCqIX.js";const me=JSON.parse('{"title":"Knockout Bindings","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/client/bindings.md","filePath":"stacks/ko/client/bindings.md"}'),c={name:"stacks/ko/client/bindings.md"},r=l(`<h1 id="knockout-bindings" tabindex="-1">Knockout Bindings <a class="header-anchor" href="#knockout-bindings" aria-label="Permalink to "Knockout Bindings"">​</a></h1><p>Coalesce provides a number of knockout bindings that make common model binding activities much easier.</p><p>Editors Note: On this page, some bindings are split into their requisite HTML component with their <code>data-bind</code> component listed immediately after. Keep this in mind when reading.</p><h2 id="input-bindings" tabindex="-1">Input Bindings <a class="header-anchor" href="#input-bindings" aria-label="Permalink to "Input Bindings"">​</a></h2><h3 id="select2ajax" tabindex="-1">select2Ajax <a class="header-anchor" href="#select2ajax" aria-label="Permalink to "select2Ajax"">​</a></h3><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">select</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"</span></span> +<span class="line"><span style="color:#CE9178;"> select2Ajax: personId, </span></span> +<span class="line"><span style="color:#CE9178;"> url: '/api/Person/list', </span></span> +<span class="line"><span style="color:#CE9178;"> idField: 'personId', </span></span> +<span class="line"><span style="color:#CE9178;"> textField: 'Name', </span></span> +<span class="line"><span style="color:#CE9178;"> object: person, </span></span> +<span class="line"><span style="color:#CE9178;"> allowClear: true</span></span> +<span class="line"><span style="color:#CE9178;">"</span><span style="color:#808080;">></</span><span style="color:#569CD6;">select</span><span style="color:#808080;">></span></span></code></pre></div><p>Creates a select2 dropdown using the specified url and fields that can be used to select an object from the endpoint specified. Additional complimentary bindings include:</p>`,7),d=e("p",null,"The Coalesce List API url to call to populate the contents of the dropdown.",-1),h=e("p",null,[t("The name of the field on each item in the results of the AJAX call which contains the ID of the option. The value of this field will be set on the observable specified for the main "),e("code",null,"select2Ajax"),t(" binding.")],-1),u=e("p",null,"The name of the field on each item in the results of the AJAX call which contains the text to be displayed for each option.",-1),y=e("p",null,[t("An observable that holds the full object corresponding to the foreign key property being bound to. If the selected value changes, this will be set to null to avoid representation of incorrect data (unless "),e("code",null,"setObject"),t(" is used - see below).")],-1),m=l("<p>If true, the observable specified by the <code>object</code> binding will be set to the selected data when an option is chosen in the dropdown. Binding <code>itemViewModel</code> is required if this binding is set.</p><p>Additionally, requests to the API to populate the dropdown will request the entire object, as opposed to only the two fields specified for <code>idField</code> and <code>textField</code> like is normally done when this binding is missing or set to false. To override this behavior and continue requesting only specific fields even when <code>setObject</code> is true, add <code>fields=field1,field2,...</code> to the query string of the <code>url</code> binding.</p>",2),b=e("p",null,[t("A reference to the class that represents the type of the object held in the "),e("code",null,"object"),t(" observable. This is used when constructing new objects from the results of the API call. Not used if "),e("code",null,"setObject"),t(" is false or unspecified. For example, "),e("code",null,"setObject: true, itemViewModel: ViewModels.Person"),t(".")],-1),f=e("p",null,"The number of items to request in each call to the server.",-1),g=e("p",null,[t("A string containing the substring "),e("code",null,"{0}"),t(", which will be replaced with the text value of an option in the dropdown list when the option is displayed.")],-1),D=e("p",null,[t("A string containing the substring "),e("code",null,"{0}"),t(", which will be replaced with the text value of the selected option of the dropdown list.")],-1),C=e("p",null,"If true, a cache-busting querystring parameter will be included in AJAX requests.",-1),_=e("p",null,[t("Directly maps to select2 option "),e("code",null,"selectOnClose"),t(".")],-1),w=e("p",null,[t("Whether or not to allow the current select to be set to null. Directly maps to select2 option "),e("code",null,"allowClear"),t(".")],-1),v=e("p",null,[t("Placeholder when nothing is selected. Directly maps to select2 option "),e("code",null,"placeholder"),t(".")],-1),k=l(`<p>If true, the dropdown will open when tabbed to. Browser support may be incomplete in some versions of IE.</p><h3 id="select2ajaxmultiple" tabindex="-1">select2AjaxMultiple <a class="header-anchor" href="#select2ajaxmultiple" aria-label="Permalink to "select2AjaxMultiple"">​</a></h3><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">select</span><span style="color:#9CDCFE;"> multiple</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"multiple"</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"</span></span> +<span class="line"><span style="color:#CE9178;"> select2AjaxMultiple: people, </span></span> +<span class="line"><span style="color:#CE9178;"> url: '/api/Person/list', </span></span> +<span class="line"><span style="color:#CE9178;"> idField: 'personId', </span></span> +<span class="line"><span style="color:#CE9178;"> textField: 'Name', </span></span> +<span class="line"><span style="color:#CE9178;"> itemViewModel: ViewModels.PersonCase</span></span> +<span class="line"><span style="color:#CE9178;">"</span><span style="color:#808080;">></</span><span style="color:#569CD6;">select</span><span style="color:#808080;">></span></span></code></pre></div><p>Creates a select2 multi-select input for choosing objects that participate as the foreign object in a many-to-many relationship with the current object. The primary <code>select2AjaxMultiple</code> binding takes the collection of items that make up the foreign side of the relationship. This is NOT the collection of the join objects (a.k.a. middle table objects) in the relationship.</p><p>Additional complimentary bindings include:</p>`,5),x=e("p",null,[t("The Coalesce List API url to call to populate the contents of the dropdown. In order to only receive specific fields from the server, add "),e("code",null,"fields=field1,field2,..."),t(" to the query string of the url, ensuring that at least the "),e("code",null,"idField"),t(" and "),e("code",null,"textField"),t(" are included in that collection.")],-1),q=e("p",null,"The name of the field on each item in the results of the AJAX call which contains the ID of the option. The value of this field will be set as the key of the foreign object in the many-to-many relationship.",-1),T=e("p",null,"The name of the field on each item in the results of the AJAX call which contains the text to be displayed for each option.",-1),A=e("p",null,[t("A reference to the class that represents the types in the supplied collection. For example, a many-to-many between "),e("code",null,"Person"),t(" and "),e("code",null,"Case"),t(" objects where "),e("code",null,"Case"),t(" is the object being bound to and "),e("code",null,"Person"),t(" is the type represented by a child collection, the correct value is "),e("code",null,"ViewModels.Person"),t(". This is used when constructing new objects representing the relationship when a new item is selected.")],-1),j=e("p",null,"The number of items to request in each call to the server.",-1),E=e("p",null,[t("A string containing the substring "),e("code",null,"{0}"),t(", which will be replaced with the text value of an option in the dropdown list when the option is displayed.")],-1),F=e("p",null,[t("A string containing the substring "),e("code",null,"{0}"),t(", which will be replaced with the text value of the selected option of the dropdown list.")],-1),I=e("p",null,"If true, a cache-busting querystring parameter will be included in AJAX requests.",-1),P=e("p",null,[t("Directly maps to select2 option "),e("code",null,"selectOnClose"),t(".")],-1),S=e("p",null,[t("Whether or not to allow the current select to be set to null. Directly maps to select2 option "),e("code",null,"allowClear"),t(".")],-1),M=e("p",null,[t("Placeholder when nothing is selected. Directly maps to select2 option "),e("code",null,"placeholder"),t(".")],-1),V=l(`<p>If true, the dropdown will open when tabbed to. Browser support may be incomplete in some versions of IE.</p><h3 id="select2ajaxtext" tabindex="-1">select2AjaxText <a class="header-anchor" href="#select2ajaxtext" aria-label="Permalink to "select2AjaxText"">​</a></h3><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">select</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"</span></span> +<span class="line"><span style="color:#CE9178;"> select2AjaxText: schoolName, </span></span> +<span class="line"><span style="color:#CE9178;"> url: '/api/Person/SchoolNames'</span></span> +<span class="line"><span style="color:#CE9178;">"</span><span style="color:#808080;">></</span><span style="color:#569CD6;">select</span><span style="color:#808080;">></span></span></code></pre></div><p>Creates a select2 dropdown against the specified url where the url returns a collection of string values that are potential selection candidates. The dropdown also allows the user to input any value they choose - the API simply serves suggested values.</p>`,4),O=l("<p>The url to call to populate the contents of the dropdown. This should be an endpoint that returns one of the following:</p><ul><li>A raw <code>string[]</code></li><li>An object that conforms to <code>{ list: string[] }</code></li><li>An object that conforms to <code>{ object: string[] }</code></li><li>An object that conforms to <code>{ list: { [prop: string]: string } }</code> where the value given to <code>resultField</code> is a valid property of the returned objects.</li><li>An object that conforms to <code>{ object: { [prop: string]: string } }</code> where the value given to <code>resultField</code> is a valid property of the returned objects.</li></ul><p>The url will also be passed a <code>search</code> parameter and a <code>page</code> parameter appended to the query string. The chosen endpoint is responsible for implementing this functionality. Page size is expected to be some fixed value. Implementer should anticipate that the requested page may be out of range.</p><p>The cases listed above that accept arrays of objects (as opposed to arrays of strings) require that the <code>resultField</code> binding is also used. These are designed for obtaining string values from objects obtained from the standard <code>list</code> endpoint.</p>",4),B=e("p",null,[t("If provided, specifies a field on the objects returned from the API to pull the string values from. See examples in "),e("code",null,"url"),t(" above.")],-1),N=e("p",null,[t("If "),e("code",null,"false"),t(", the user's search input will not be presented as a valid selectable value; only the exact values obtained from the API endpoint will be selectable.")],-1),K=e("p",null,[t("Directly maps to select2 option "),e("code",null,"selectOnClose"),t(".")],-1),Y=e("p",null,[t("Whether or not to allow the current select to be set to null. Directly maps to select2 option "),e("code",null,"allowClear"),t(".")],-1),z=e("p",null,[t("Placeholder when nothing is selected. Directly maps to select2 option "),e("code",null,"placeholder"),t(".")],-1),$=l(`<p>If true, the dropdown will open when tabbed to. Browser support may be incomplete in some versions of IE.</p><h3 id="select2" tabindex="-1">select2 <a class="header-anchor" href="#select2" aria-label="Permalink to "select2"">​</a></h3><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">select</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"select2: selectedNumber"</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">option</span><span style="color:#9CDCFE;"> value</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"1"</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">Option 1</span><span style="color:#808080;"></</span><span style="color:#569CD6;">option</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">option</span><span style="color:#9CDCFE;"> value</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"2"</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">Option 2</span><span style="color:#808080;"></</span><span style="color:#569CD6;">option</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">select</span><span style="color:#808080;">></span></span></code></pre></div><p>Sets up a basic select2 dropdown on an HTML select element. Dropdown contents should be populated through other means - either using stock <a href="https://knockoutjs.com/" target="_blank" rel="noreferrer">Knockout</a> bindings or server-side static contents (via cshtml).</p>`,4),R=e("p",null,[t("Directly maps to select2 option "),e("code",null,"selectOnClose"),t(".")],-1),W=e("p",null,[t("Whether or not to allow the current select to be set to null. Directly maps to select2 option "),e("code",null,"allowClear"),t(".")],-1),J=e("p",null,[t("Placeholder when nothing is selected. Directly maps to select2 option "),e("code",null,"placeholder"),t(".")],-1),L=l(`<p>If true, the dropdown will open when tabbed to. Browser support may be incomplete in some versions of IE.</p><h3 id="datepicker" tabindex="-1">datePicker <a class="header-anchor" href="#datepicker" aria-label="Permalink to "datePicker"">​</a></h3><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> class</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"input-group date"</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">input</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"datePicker: birthDate"</span><span style="color:#9CDCFE;"> type</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"text"</span><span style="color:#9CDCFE;"> class</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"form-control"</span><span style="color:#9CDCFE;"> id-prefix</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"datePicker"</span><span style="color:#808080;"> /></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">span</span><span style="color:#9CDCFE;"> class</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"input-group-addon"</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">span</span><span style="color:#9CDCFE;"> class</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"fa fa-calendar"</span><span style="color:#808080;">></</span><span style="color:#569CD6;">span</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> </</span><span style="color:#569CD6;">span</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span></code></pre></div><p>Creates a date/time picker for changing a <code>moment.Moment</code> property. The control used is <a href="https://www.npmjs.com/package/eonasdan-bootstrap-datetimepicker" target="_blank" rel="noreferrer">bootstrap-datetimepicker</a></p>`,4),X=e("p",null,[t("If true, the date portion of the "),e("code",null,"moment.Moment"),t(" object will be preserved by the date picker. Only the time portion will be changed by user input.")],-1),H=e("p",null,[t("If true, the time portion of the "),e("code",null,"moment.Moment"),t(" object will be preserved by the date picker. Only the date portion will be changed by user input.")],-1),Q=e("p",null,[t("Specify the moment-compatible format string to be used as the display format for the text value shown on the date picker. Defaults to "),e("code",null,"M/D/YY h:mm a"),t(". Direct pass-through to "),e("a",{href:"https://www.npmjs.com/package/eonasdan-bootstrap-datetimepicker",target:"_blank",rel:"noreferrer"},"bootstrap-datetimepicker"),t(".")],-1),U=e("p",null,[t("If true, places the time picker next to the date picker, visible at the same time. Direct pass-through to corresponding "),e("a",{href:"https://www.npmjs.com/package/eonasdan-bootstrap-datetimepicker",target:"_blank",rel:"noreferrer"},"bootstrap-datetimepicker"),t(" option.")],-1),Z=e("p",null,[t("Direct pass-through to corresponding "),e("a",{href:"https://www.npmjs.com/package/eonasdan-bootstrap-datetimepicker",target:"_blank",rel:"noreferrer"},"bootstrap-datetimepicker"),t(" option.")],-1),G=e("p",null,[t("Direct pass-through to corresponding "),e("a",{href:"https://www.npmjs.com/package/eonasdan-bootstrap-datetimepicker",target:"_blank",rel:"noreferrer"},"bootstrap-datetimepicker"),t(" option.")],-1),ee=e("p",null,[t("Override key bindings of the date picker. Direct pass-through to corresponding "),e("a",{href:"https://www.npmjs.com/package/eonasdan-bootstrap-datetimepicker",target:"_blank",rel:"noreferrer"},"bootstrap-datetimepicker"),t(" option.")],-1),te=l(`<p>If true, the datePicker will update the underlying observable on each input change. Otherwise, the observable will only be changed when the datePicker loses focus (on <code>blur</code>).</p><h3 id="saveimmediately" tabindex="-1">saveImmediately <a class="header-anchor" href="#saveimmediately" aria-label="Permalink to "saveImmediately"">​</a></h3><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"with: product"</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">input</span><span style="color:#9CDCFE;"> type</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"text"</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"textValue: description, saveImmediately: true"</span><span style="color:#808080;"> /></span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span></code></pre></div><p>When used in a context where <code>$data</code> is a <code>Coalesce.BaseViewModel</code>, that object's <code>saveTimeoutMs</code> configuration property (see <a href="/Coalesce/stacks/ko/client/model-config.html">ViewModel Configuration</a>) will be set to <code>0</code> when the element it is placed on gains focus. This value will be reverted to its previous value when the element loses focus. This will cause any changes to the object, including any observable bound as input on the element, to trigger a save immediately rather than after a delay (defaults to 500ms).</p><h3 id="delaysave" tabindex="-1">delaySave <a class="header-anchor" href="#delaysave" aria-label="Permalink to "delaySave"">​</a></h3><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"with: product"</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">input</span><span style="color:#9CDCFE;"> type</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"text"</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"textValue: description, delaySave: true"</span><span style="color:#808080;"> /></span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span></code></pre></div><p>When used in a context where <code>$data</code> is a <code>Coalesce.BaseViewModel</code>, that object's <code>autoSaveEnabled</code> configuration property (see <a href="/Coalesce/stacks/ko/client/model-config.html">ViewModel Configuration</a>) will be set to <code>false</code> when the element it is placed on gains focus. This will cause any changes to the object, including any observable bound as input on the element, to not trigger auto saves while the element has focus. When the element loses focus, the <code>autoSaveEnabled</code> flag will be reverted to its previous value and an attempt will be made to save the object.</p><h2 id="display-bindings" tabindex="-1">Display Bindings <a class="header-anchor" href="#display-bindings" aria-label="Permalink to "Display Bindings"">​</a></h2><h3 id="tooltip" tabindex="-1">tooltip <a class="header-anchor" href="#tooltip" aria-label="Permalink to "tooltip"">​</a></h3><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"tooltip: tooltipText"</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">Some Element</span><span style="color:#808080;"></</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"tooltip: {title: note, placement: 'bottom', animation: false}"</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">Some Element</span><span style="color:#808080;"></</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span></code></pre></div><p>Wrapper around the <a href="https://getbootstrap.com/docs/3.3/javascript/#tooltips" target="_blank" rel="noreferrer">Bootstrap tooltip component</a>. Binding can either be simply a string (or observable string), or it can be an object that will be passed directly to the Bootstrap tooltip component.</p><h3 id="fadevisible" tabindex="-1">fadeVisible <a class="header-anchor" href="#fadevisible" aria-label="Permalink to "fadeVisible"">​</a></h3><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"fadeVisible: isVisible"</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">Some Element</span><span style="color:#808080;"></</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span></code></pre></div><p>Similar to the Knockout <code>visible</code> binding, but uses jQuery <code>fadeIn/fadeOut</code> calls to perform the transition.</p><h3 id="slidevisible" tabindex="-1">slideVisible <a class="header-anchor" href="#slidevisible" aria-label="Permalink to "slideVisible"">​</a></h3><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"slideVisible: isVisible"</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">Some Element</span><span style="color:#808080;"></</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span></code></pre></div><p>Similar to the Knockout <code>visible</code>, but uses jQuery <code>slideIn/slideOut</code> calls to perform the transition.</p><h3 id="moment" tabindex="-1">moment <a class="header-anchor" href="#moment" aria-label="Permalink to "moment"">​</a></h3><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"moment: momentObservable"</span><span style="color:#808080;">></</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"moment: momentObservable, format: 'MM/DD/YYYY hh:mm a'"</span><span style="color:#808080;">></</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span></code></pre></div><p>Controls the text of the element by calling the <code>format</code> method on a moment object.</p><h3 id="momentfromnow" tabindex="-1">momentFromNow <a class="header-anchor" href="#momentfromnow" aria-label="Permalink to "momentFromNow"">​</a></h3><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"momentFromNow: momentObservable"</span><span style="color:#808080;">></</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"momentFromNow: momentObservable, shorten: true"</span><span style="color:#808080;">></</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span></code></pre></div><p>Controls the text of the element by calling the <code>fromNow</code> method on a moment object. If shorten is true, certain phrases will be slightly shortened.</p><h2 id="utility-bindings" tabindex="-1">Utility Bindings <a class="header-anchor" href="#utility-bindings" aria-label="Permalink to "Utility Bindings"">​</a></h2><h3 id="let" tabindex="-1">let <a class="header-anchor" href="#let" aria-label="Permalink to "let"">​</a></h3><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> class</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"item"</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#6A9955;"> <!-- ko let: { showControls: $data.isEditing() || $parent.editingChildren() } --></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">button</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"click: $root.editItem, visible: showControls"</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">Edit</span><span style="color:#808080;"></</span><span style="color:#569CD6;">button</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">span</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"text: name"</span><span style="color:#808080;">></</span><span style="color:#569CD6;">span</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">button</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"click: $root.deleteItem, visible: showControls"</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">Delete</span><span style="color:#808080;"></</span><span style="color:#569CD6;">button</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#6A9955;"> <!-- /ko --></span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span></code></pre></div><p>The let binding is a somewhat common construct used in Knockout applications, but isn't part of Knockout itself. It effectively allows the creation of variables in the binding context, allowing complex statements which may be used multiple times to be aliased for both clarity of code and better performance.</p><h2 id="knockout-binding-defaults" tabindex="-1">Knockout Binding Defaults <a class="header-anchor" href="#knockout-binding-defaults" aria-label="Permalink to "Knockout Binding Defaults"">​</a></h2><h3 id="knockout-helpers" tabindex="-1">Knockout Helpers <a class="header-anchor" href="#knockout-helpers" aria-label="Permalink to "Knockout Helpers"">​</a></h3><p>These are static properties on <code>IntelliTect.Coalesce.Knockout.Helpers.Knockout</code> you can assign to somewhere in the app lifecycle startup to change the default markup generated server-side when using <code>@Knockout.*</code> methods to render Knockout bindings in your <code>.cshtml</code> files.</p>`,30),se=e("p",null,"The default number of Bootstrap grid columns a field label should span across.",-1),oe=e("p",null,"The default number of Bootstrap grid columns a form input should span across.",-1),le=e("p",null,[t("Sets the default date-only format to be used by all date/time pickers. This only applies to models with a date-only "),e("a",{href:"/Coalesce/modeling/model-components/attributes/date-type.html"},"[DateType]"),t(" attribute.")],-1),ae=e("p",null,[t("Sets the default time-only format to be used by all date/time pickers. This only applies to models with a time-only "),e("a",{href:"/Coalesce/modeling/model-components/attributes/date-type.html"},"[DateType]"),t(" attribute.")],-1),ne=l(`<p>Sets the default date/time format to be used by all date/time pickers. This only applies to <code>DateTimeOffset</code> model properties that do not have a limiting <a href="/Coalesce/modeling/model-components/attributes/date-type.html">[DateType]</a> attribute.</p><div class="tip custom-block"><p class="custom-block-title">Note</p><p><code>DefaultDateFormat</code>, <code>DefaultTimeFormat</code> and <code>DefaultDateTimeFormat</code> all take various formatting strings from the Moment.js library. A full listing can be found on the <a href="https://momentjs.com/docs/#/displaying/format/" target="_blank" rel="noreferrer">Moment website</a>.</p></div><h3 id="timezone" tabindex="-1">Timezone <a class="header-anchor" href="#timezone" aria-label="Permalink to "Timezone"">​</a></h3><p>The date/time picker properties can be coupled with <code>DateTimeOffset</code> model properties to display time values localized for the current user's locale. If you want to make the localization static, simply include a script block in your <code>_Layout.cshtml</code> or in a specific view that sets the default for Moment.js:</p><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#9CDCFE;">moment</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">tz</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">setDefault</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"America/Chicago"</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span></code></pre></div><div class="tip custom-block"><p class="custom-block-title">Note</p><p>This needs to happen <em>after</em> Moment is loaded, but <em>before</em> the bootstrap-datetimepicker script is loaded.</p></div>`,6);function pe(ie,ce,re,de,he,ue){const s=i("Prop");return p(),n("div",null,[r,o(s,{def:"url: string",lang:"ts","id-prefix":"select2Ajax"}),d,o(s,{def:"idField: string",lang:"ts","id-prefix":"select2Ajax"}),h,o(s,{def:"textField: string",lang:"ts","id-prefix":"select2Ajax"}),u,o(s,{def:"object?: KnockoutObservable<Coalesce.BaseViewModel | null>",lang:"ts","id-prefix":"select2Ajax"}),y,o(s,{def:"setObject: boolean = false",lang:"ts","id-prefix":"select2Ajax"}),m,o(s,{def:"itemViewModel?: (new (newItem: object) => Coalesce.BaseViewModel)",lang:"ts","id-prefix":"select2Ajax"}),b,o(s,{def:"pageSize: number = 25",lang:"ts","id-prefix":"select2Ajax"}),f,o(s,{def:"format: string = '{0}'",lang:"ts","id-prefix":"select2Ajax"}),g,o(s,{def:"selectionFormat: string = '{0}'",lang:"ts","id-prefix":"select2Ajax"}),D,o(s,{def:"cache: boolean = true",lang:"ts","id-prefix":"select2Ajax"}),C,o(s,{def:"selectOnClose: boolean = false",lang:"ts","id-prefix":"select2Ajax"}),_,o(s,{def:"allowClear: boolean = true",lang:"ts","id-prefix":"select2Ajax"}),w,o(s,{def:"placeholder: string = 'select'",lang:"ts","id-prefix":"select2Ajax"}),v,o(s,{def:"openOnFocus: boolean = false",lang:"ts","id-prefix":"select2Ajax"}),k,o(s,{def:"url: string",lang:"ts","id-prefix":"select2AjaxMultiple"}),x,o(s,{def:"idField: string",lang:"ts","id-prefix":"select2AjaxMultiple"}),q,o(s,{def:"textField: string",lang:"ts","id-prefix":"select2AjaxMultiple"}),T,o(s,{def:"itemViewModel: (new (newItem: object) => Coalesce.BaseViewModel)",lang:"ts","id-prefix":"select2AjaxMultiple"}),A,o(s,{def:"pageSize: number = 25",lang:"ts","id-prefix":"select2AjaxMultiple"}),j,o(s,{def:"format: string = '{0}'",lang:"ts","id-prefix":"select2AjaxMultiple"}),E,o(s,{def:"selectionFormat: string = '{0}'",lang:"ts","id-prefix":"select2AjaxMultiple"}),F,o(s,{def:"cache: boolean = true",lang:"ts","id-prefix":"select2AjaxMultiple"}),I,o(s,{def:"selectOnClose: boolean = false",lang:"ts","id-prefix":"select2AjaxMultiple"}),P,o(s,{def:"allowClear: boolean = true",lang:"ts","id-prefix":"select2AjaxMultiple"}),S,o(s,{def:"placeholder: string = 'select'",lang:"ts","id-prefix":"select2AjaxMultiple"}),M,o(s,{def:"openOnFocus: boolean = false",lang:"ts","id-prefix":"select2AjaxMultiple"}),V,o(s,{def:"url: string",lang:"ts","id-prefix":"select2AjaxText"}),O,o(s,{def:"resultField?: string",lang:"ts","id-prefix":"select2AjaxText"}),B,o(s,{def:"allowCustom: boolean = true",lang:"ts","id-prefix":"select2AjaxText"}),N,o(s,{def:"selectOnClose: boolean = false",lang:"ts","id-prefix":"select2AjaxText"}),K,o(s,{def:"allowClear: boolean = true",lang:"ts","id-prefix":"select2AjaxText"}),Y,o(s,{def:"placeholder: string = 'select'",lang:"ts","id-prefix":"select2AjaxText"}),z,o(s,{def:"openOnFocus: boolean = false",lang:"ts","id-prefix":"select2AjaxText"}),$,o(s,{def:"selectOnClose: boolean = false",lang:"ts","id-prefix":"select2"}),R,o(s,{def:"allowClear: boolean = true",lang:"ts","id-prefix":"select2"}),W,o(s,{def:"placeholder: string = 'select'",lang:"ts","id-prefix":"select2"}),J,o(s,{def:"openOnFocus: boolean = false",lang:"ts","id-prefix":"select2"}),L,o(s,{def:"preserveDate: boolean = false",lang:"ts","id-prefix":"date-picker"}),X,o(s,{def:"preserveTime: boolean = false",lang:"ts","id-prefix":"date-picker"}),H,o(s,{def:"format: string = 'M/D/YY h:mm a'",lang:"ts","id-prefix":"date-picker"}),Q,o(s,{def:"sideBySide: boolean = false",lang:"ts","id-prefix":"date-picker"}),U,o(s,{def:"stepping: number = 1",lang:"ts","id-prefix":"date-picker"}),Z,o(s,{def:"timeZone: string = ''",lang:"ts","id-prefix":"date-picker"}),G,o(s,{def:"keyBinds = { left: null, right: null, delete: null }",lang:"ts","id-prefix":"date-picker"}),ee,o(s,{def:"updateImmediate: boolean = false",lang:"ts","id-prefix":"date-picker"}),te,o(s,{def:"public static int DefaultLabelCols { get; set; } = 3;"}),se,o(s,{def:"public static int DefaultInputCols { get; set; } = 9;"}),oe,o(s,{def:'public static string DefaultDateFormat { get; set; } = "M/D/YYYY";'}),le,o(s,{def:'public static string DefaultTimeFormat { get; set; } = "h:mm a";'}),ae,o(s,{def:'public static string DefaultDateTimeFormat { get; set; } = "M/D/YYYY h:mm a";'}),ne])}const be=a(c,[["render",pe]]);export{me as __pageData,be as default}; diff --git a/assets/stacks_ko_client_bindings.md.B_vNJUNj.lean.js b/assets/stacks_ko_client_bindings.md.B_vNJUNj.lean.js new file mode 100644 index 000000000..659e34687 --- /dev/null +++ b/assets/stacks_ko_client_bindings.md.B_vNJUNj.lean.js @@ -0,0 +1 @@ +import{_ as a,c as n,I as o,a7 as l,l as e,a as t,o as p,E as i}from"./chunks/framework.Be4oCqIX.js";const me=JSON.parse('{"title":"Knockout Bindings","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/client/bindings.md","filePath":"stacks/ko/client/bindings.md"}'),c={name:"stacks/ko/client/bindings.md"},r=l("",7),d=e("p",null,"The Coalesce List API url to call to populate the contents of the dropdown.",-1),h=e("p",null,[t("The name of the field on each item in the results of the AJAX call which contains the ID of the option. The value of this field will be set on the observable specified for the main "),e("code",null,"select2Ajax"),t(" binding.")],-1),u=e("p",null,"The name of the field on each item in the results of the AJAX call which contains the text to be displayed for each option.",-1),y=e("p",null,[t("An observable that holds the full object corresponding to the foreign key property being bound to. If the selected value changes, this will be set to null to avoid representation of incorrect data (unless "),e("code",null,"setObject"),t(" is used - see below).")],-1),m=l("",2),b=e("p",null,[t("A reference to the class that represents the type of the object held in the "),e("code",null,"object"),t(" observable. This is used when constructing new objects from the results of the API call. Not used if "),e("code",null,"setObject"),t(" is false or unspecified. For example, "),e("code",null,"setObject: true, itemViewModel: ViewModels.Person"),t(".")],-1),f=e("p",null,"The number of items to request in each call to the server.",-1),g=e("p",null,[t("A string containing the substring "),e("code",null,"{0}"),t(", which will be replaced with the text value of an option in the dropdown list when the option is displayed.")],-1),D=e("p",null,[t("A string containing the substring "),e("code",null,"{0}"),t(", which will be replaced with the text value of the selected option of the dropdown list.")],-1),C=e("p",null,"If true, a cache-busting querystring parameter will be included in AJAX requests.",-1),_=e("p",null,[t("Directly maps to select2 option "),e("code",null,"selectOnClose"),t(".")],-1),w=e("p",null,[t("Whether or not to allow the current select to be set to null. Directly maps to select2 option "),e("code",null,"allowClear"),t(".")],-1),v=e("p",null,[t("Placeholder when nothing is selected. Directly maps to select2 option "),e("code",null,"placeholder"),t(".")],-1),k=l("",5),x=e("p",null,[t("The Coalesce List API url to call to populate the contents of the dropdown. In order to only receive specific fields from the server, add "),e("code",null,"fields=field1,field2,..."),t(" to the query string of the url, ensuring that at least the "),e("code",null,"idField"),t(" and "),e("code",null,"textField"),t(" are included in that collection.")],-1),q=e("p",null,"The name of the field on each item in the results of the AJAX call which contains the ID of the option. The value of this field will be set as the key of the foreign object in the many-to-many relationship.",-1),T=e("p",null,"The name of the field on each item in the results of the AJAX call which contains the text to be displayed for each option.",-1),A=e("p",null,[t("A reference to the class that represents the types in the supplied collection. For example, a many-to-many between "),e("code",null,"Person"),t(" and "),e("code",null,"Case"),t(" objects where "),e("code",null,"Case"),t(" is the object being bound to and "),e("code",null,"Person"),t(" is the type represented by a child collection, the correct value is "),e("code",null,"ViewModels.Person"),t(". This is used when constructing new objects representing the relationship when a new item is selected.")],-1),j=e("p",null,"The number of items to request in each call to the server.",-1),E=e("p",null,[t("A string containing the substring "),e("code",null,"{0}"),t(", which will be replaced with the text value of an option in the dropdown list when the option is displayed.")],-1),F=e("p",null,[t("A string containing the substring "),e("code",null,"{0}"),t(", which will be replaced with the text value of the selected option of the dropdown list.")],-1),I=e("p",null,"If true, a cache-busting querystring parameter will be included in AJAX requests.",-1),P=e("p",null,[t("Directly maps to select2 option "),e("code",null,"selectOnClose"),t(".")],-1),S=e("p",null,[t("Whether or not to allow the current select to be set to null. Directly maps to select2 option "),e("code",null,"allowClear"),t(".")],-1),M=e("p",null,[t("Placeholder when nothing is selected. Directly maps to select2 option "),e("code",null,"placeholder"),t(".")],-1),V=l("",4),O=l("",4),B=e("p",null,[t("If provided, specifies a field on the objects returned from the API to pull the string values from. See examples in "),e("code",null,"url"),t(" above.")],-1),N=e("p",null,[t("If "),e("code",null,"false"),t(", the user's search input will not be presented as a valid selectable value; only the exact values obtained from the API endpoint will be selectable.")],-1),K=e("p",null,[t("Directly maps to select2 option "),e("code",null,"selectOnClose"),t(".")],-1),Y=e("p",null,[t("Whether or not to allow the current select to be set to null. Directly maps to select2 option "),e("code",null,"allowClear"),t(".")],-1),z=e("p",null,[t("Placeholder when nothing is selected. Directly maps to select2 option "),e("code",null,"placeholder"),t(".")],-1),$=l("",4),R=e("p",null,[t("Directly maps to select2 option "),e("code",null,"selectOnClose"),t(".")],-1),W=e("p",null,[t("Whether or not to allow the current select to be set to null. Directly maps to select2 option "),e("code",null,"allowClear"),t(".")],-1),J=e("p",null,[t("Placeholder when nothing is selected. Directly maps to select2 option "),e("code",null,"placeholder"),t(".")],-1),L=l("",4),X=e("p",null,[t("If true, the date portion of the "),e("code",null,"moment.Moment"),t(" object will be preserved by the date picker. Only the time portion will be changed by user input.")],-1),H=e("p",null,[t("If true, the time portion of the "),e("code",null,"moment.Moment"),t(" object will be preserved by the date picker. Only the date portion will be changed by user input.")],-1),Q=e("p",null,[t("Specify the moment-compatible format string to be used as the display format for the text value shown on the date picker. Defaults to "),e("code",null,"M/D/YY h:mm a"),t(". Direct pass-through to "),e("a",{href:"https://www.npmjs.com/package/eonasdan-bootstrap-datetimepicker",target:"_blank",rel:"noreferrer"},"bootstrap-datetimepicker"),t(".")],-1),U=e("p",null,[t("If true, places the time picker next to the date picker, visible at the same time. Direct pass-through to corresponding "),e("a",{href:"https://www.npmjs.com/package/eonasdan-bootstrap-datetimepicker",target:"_blank",rel:"noreferrer"},"bootstrap-datetimepicker"),t(" option.")],-1),Z=e("p",null,[t("Direct pass-through to corresponding "),e("a",{href:"https://www.npmjs.com/package/eonasdan-bootstrap-datetimepicker",target:"_blank",rel:"noreferrer"},"bootstrap-datetimepicker"),t(" option.")],-1),G=e("p",null,[t("Direct pass-through to corresponding "),e("a",{href:"https://www.npmjs.com/package/eonasdan-bootstrap-datetimepicker",target:"_blank",rel:"noreferrer"},"bootstrap-datetimepicker"),t(" option.")],-1),ee=e("p",null,[t("Override key bindings of the date picker. Direct pass-through to corresponding "),e("a",{href:"https://www.npmjs.com/package/eonasdan-bootstrap-datetimepicker",target:"_blank",rel:"noreferrer"},"bootstrap-datetimepicker"),t(" option.")],-1),te=l("",30),se=e("p",null,"The default number of Bootstrap grid columns a field label should span across.",-1),oe=e("p",null,"The default number of Bootstrap grid columns a form input should span across.",-1),le=e("p",null,[t("Sets the default date-only format to be used by all date/time pickers. This only applies to models with a date-only "),e("a",{href:"/Coalesce/modeling/model-components/attributes/date-type.html"},"[DateType]"),t(" attribute.")],-1),ae=e("p",null,[t("Sets the default time-only format to be used by all date/time pickers. This only applies to models with a time-only "),e("a",{href:"/Coalesce/modeling/model-components/attributes/date-type.html"},"[DateType]"),t(" attribute.")],-1),ne=l("",6);function pe(ie,ce,re,de,he,ue){const s=i("Prop");return p(),n("div",null,[r,o(s,{def:"url: string",lang:"ts","id-prefix":"select2Ajax"}),d,o(s,{def:"idField: string",lang:"ts","id-prefix":"select2Ajax"}),h,o(s,{def:"textField: string",lang:"ts","id-prefix":"select2Ajax"}),u,o(s,{def:"object?: KnockoutObservable<Coalesce.BaseViewModel | null>",lang:"ts","id-prefix":"select2Ajax"}),y,o(s,{def:"setObject: boolean = false",lang:"ts","id-prefix":"select2Ajax"}),m,o(s,{def:"itemViewModel?: (new (newItem: object) => Coalesce.BaseViewModel)",lang:"ts","id-prefix":"select2Ajax"}),b,o(s,{def:"pageSize: number = 25",lang:"ts","id-prefix":"select2Ajax"}),f,o(s,{def:"format: string = '{0}'",lang:"ts","id-prefix":"select2Ajax"}),g,o(s,{def:"selectionFormat: string = '{0}'",lang:"ts","id-prefix":"select2Ajax"}),D,o(s,{def:"cache: boolean = true",lang:"ts","id-prefix":"select2Ajax"}),C,o(s,{def:"selectOnClose: boolean = false",lang:"ts","id-prefix":"select2Ajax"}),_,o(s,{def:"allowClear: boolean = true",lang:"ts","id-prefix":"select2Ajax"}),w,o(s,{def:"placeholder: string = 'select'",lang:"ts","id-prefix":"select2Ajax"}),v,o(s,{def:"openOnFocus: boolean = false",lang:"ts","id-prefix":"select2Ajax"}),k,o(s,{def:"url: string",lang:"ts","id-prefix":"select2AjaxMultiple"}),x,o(s,{def:"idField: string",lang:"ts","id-prefix":"select2AjaxMultiple"}),q,o(s,{def:"textField: string",lang:"ts","id-prefix":"select2AjaxMultiple"}),T,o(s,{def:"itemViewModel: (new (newItem: object) => Coalesce.BaseViewModel)",lang:"ts","id-prefix":"select2AjaxMultiple"}),A,o(s,{def:"pageSize: number = 25",lang:"ts","id-prefix":"select2AjaxMultiple"}),j,o(s,{def:"format: string = '{0}'",lang:"ts","id-prefix":"select2AjaxMultiple"}),E,o(s,{def:"selectionFormat: string = '{0}'",lang:"ts","id-prefix":"select2AjaxMultiple"}),F,o(s,{def:"cache: boolean = true",lang:"ts","id-prefix":"select2AjaxMultiple"}),I,o(s,{def:"selectOnClose: boolean = false",lang:"ts","id-prefix":"select2AjaxMultiple"}),P,o(s,{def:"allowClear: boolean = true",lang:"ts","id-prefix":"select2AjaxMultiple"}),S,o(s,{def:"placeholder: string = 'select'",lang:"ts","id-prefix":"select2AjaxMultiple"}),M,o(s,{def:"openOnFocus: boolean = false",lang:"ts","id-prefix":"select2AjaxMultiple"}),V,o(s,{def:"url: string",lang:"ts","id-prefix":"select2AjaxText"}),O,o(s,{def:"resultField?: string",lang:"ts","id-prefix":"select2AjaxText"}),B,o(s,{def:"allowCustom: boolean = true",lang:"ts","id-prefix":"select2AjaxText"}),N,o(s,{def:"selectOnClose: boolean = false",lang:"ts","id-prefix":"select2AjaxText"}),K,o(s,{def:"allowClear: boolean = true",lang:"ts","id-prefix":"select2AjaxText"}),Y,o(s,{def:"placeholder: string = 'select'",lang:"ts","id-prefix":"select2AjaxText"}),z,o(s,{def:"openOnFocus: boolean = false",lang:"ts","id-prefix":"select2AjaxText"}),$,o(s,{def:"selectOnClose: boolean = false",lang:"ts","id-prefix":"select2"}),R,o(s,{def:"allowClear: boolean = true",lang:"ts","id-prefix":"select2"}),W,o(s,{def:"placeholder: string = 'select'",lang:"ts","id-prefix":"select2"}),J,o(s,{def:"openOnFocus: boolean = false",lang:"ts","id-prefix":"select2"}),L,o(s,{def:"preserveDate: boolean = false",lang:"ts","id-prefix":"date-picker"}),X,o(s,{def:"preserveTime: boolean = false",lang:"ts","id-prefix":"date-picker"}),H,o(s,{def:"format: string = 'M/D/YY h:mm a'",lang:"ts","id-prefix":"date-picker"}),Q,o(s,{def:"sideBySide: boolean = false",lang:"ts","id-prefix":"date-picker"}),U,o(s,{def:"stepping: number = 1",lang:"ts","id-prefix":"date-picker"}),Z,o(s,{def:"timeZone: string = ''",lang:"ts","id-prefix":"date-picker"}),G,o(s,{def:"keyBinds = { left: null, right: null, delete: null }",lang:"ts","id-prefix":"date-picker"}),ee,o(s,{def:"updateImmediate: boolean = false",lang:"ts","id-prefix":"date-picker"}),te,o(s,{def:"public static int DefaultLabelCols { get; set; } = 3;"}),se,o(s,{def:"public static int DefaultInputCols { get; set; } = 9;"}),oe,o(s,{def:'public static string DefaultDateFormat { get; set; } = "M/D/YYYY";'}),le,o(s,{def:'public static string DefaultTimeFormat { get; set; } = "h:mm a";'}),ae,o(s,{def:'public static string DefaultDateTimeFormat { get; set; } = "M/D/YYYY h:mm a";'}),ne])}const be=a(c,[["render",pe]]);export{me as __pageData,be as default}; diff --git a/assets/stacks_ko_client_external-view-model.md.DmCJfjvS.js b/assets/stacks_ko_client_external-view-model.md.DmCJfjvS.js new file mode 100644 index 000000000..9585e6d9b --- /dev/null +++ b/assets/stacks_ko_client_external-view-model.md.DmCJfjvS.js @@ -0,0 +1,8 @@ +import{_ as r,c as l,I as a,a7 as n,l as e,a as o,o as s,E as i}from"./chunks/framework.Be4oCqIX.js";const T=JSON.parse('{"title":"TypeScript External ViewModels","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/client/external-view-model.md","filePath":"stacks/ko/client/external-view-model.md"}'),c={name:"stacks/ko/client/external-view-model.md"},p=n('<h1 id="typescript-external-viewmodels" tabindex="-1">TypeScript External ViewModels <a class="header-anchor" href="#typescript-external-viewmodels" aria-label="Permalink to "TypeScript External ViewModels"">​</a></h1><p>For all <a href="/Coalesce/modeling/model-types/external-types.html">External Types</a> in your model, Coalesce will generate a TypeScript class that provides a bare-bones representation of that type's properties.</p><p>These ViewModels are dependent on <a href="https://knockoutjs.com/" target="_blank" rel="noreferrer">Knockout</a>, and are designed to be used directly from Knockout bindings in your HTML. All data properties on the generated model are Knockout observables.</p><h2 id="base-members" tabindex="-1">Base Members <a class="header-anchor" href="#base-members" aria-label="Permalink to "Base Members"">​</a></h2><p>The TypeScript ViewModels for external types do not have a common base class, and do not have any of the behaviors or convenience properties that the regular <a href="/Coalesce/stacks/ko/client/view-model.html">TypeScript ViewModels</a> for database-mapped classes have.</p><h2 id="model-specific-members" tabindex="-1">Model-Specific Members <a class="header-anchor" href="#model-specific-members" aria-label="Permalink to "Model-Specific Members"">​</a></h2><h3 id="data-properties" tabindex="-1">Data Properties <a class="header-anchor" href="#data-properties" aria-label="Permalink to "Data Properties"">​</a></h3>',7),d=e("p",null,[o("For each exposed property on the underlying EF POCO, a "),e("code",null,"KnockoutObservable<T>"),o(" property will exist on the TypeScript model. For navigation properties, these will be typed with the corresponding TypeScript ViewModel for the other end of the relationship. For collections (including collection navigation properties), these properties will be "),e("code",null,"KnockoutObservableArray<T>"),o(" objects.")],-1),b=e("h3",{id:"enum-members",tabindex:"-1"},[o("Enum Members "),e("a",{class:"header-anchor",href:"#enum-members","aria-label":'Permalink to "Enum Members"'},"​")],-1),m=e("p",null,[o("For each "),e("code",null,"enum"),o(" property on your POCO, the following will be created:")],-1),u=e("p",null,[o("A "),e("code",null,"KnockoutComputed<string>"),o(" property that will provide the text to display for that property.")],-1);function h(k,_,v,y,f,x){const t=i("Prop");return s(),l("div",null,[p,a(t,{def:` +public personId: KnockoutObservable<number | null> = ko.observable(null); +public fullName: KnockoutObservable<string | null> = ko.observable(null); +public gender: KnockoutObservable<number | null> = ko.observable(null); +public companyId: KnockoutObservable<number | null> = ko.observable(null); +public company: KnockoutObservable<ViewModels.Company | null> = ko.observable(null); +public addresses: KnockoutObservableArray<ViewModels.Address> = ko.observableArray([]); +public birthDate: KnockoutObservable<moment.Moment | null> = ko.observable(moment());`,lang:"ts",id:"data-property-members"}),d,b,m,a(t,{def:"public genderText: KnockoutComputed<string | null>",lang:"ts"}),u])}const g=r(c,[["render",h]]);export{T as __pageData,g as default}; diff --git a/assets/stacks_ko_client_external-view-model.md.DmCJfjvS.lean.js b/assets/stacks_ko_client_external-view-model.md.DmCJfjvS.lean.js new file mode 100644 index 000000000..412bc6949 --- /dev/null +++ b/assets/stacks_ko_client_external-view-model.md.DmCJfjvS.lean.js @@ -0,0 +1,8 @@ +import{_ as r,c as l,I as a,a7 as n,l as e,a as o,o as s,E as i}from"./chunks/framework.Be4oCqIX.js";const T=JSON.parse('{"title":"TypeScript External ViewModels","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/client/external-view-model.md","filePath":"stacks/ko/client/external-view-model.md"}'),c={name:"stacks/ko/client/external-view-model.md"},p=n("",7),d=e("p",null,[o("For each exposed property on the underlying EF POCO, a "),e("code",null,"KnockoutObservable<T>"),o(" property will exist on the TypeScript model. For navigation properties, these will be typed with the corresponding TypeScript ViewModel for the other end of the relationship. For collections (including collection navigation properties), these properties will be "),e("code",null,"KnockoutObservableArray<T>"),o(" objects.")],-1),b=e("h3",{id:"enum-members",tabindex:"-1"},[o("Enum Members "),e("a",{class:"header-anchor",href:"#enum-members","aria-label":'Permalink to "Enum Members"'},"​")],-1),m=e("p",null,[o("For each "),e("code",null,"enum"),o(" property on your POCO, the following will be created:")],-1),u=e("p",null,[o("A "),e("code",null,"KnockoutComputed<string>"),o(" property that will provide the text to display for that property.")],-1);function h(k,_,v,y,f,x){const t=i("Prop");return s(),l("div",null,[p,a(t,{def:` +public personId: KnockoutObservable<number | null> = ko.observable(null); +public fullName: KnockoutObservable<string | null> = ko.observable(null); +public gender: KnockoutObservable<number | null> = ko.observable(null); +public companyId: KnockoutObservable<number | null> = ko.observable(null); +public company: KnockoutObservable<ViewModels.Company | null> = ko.observable(null); +public addresses: KnockoutObservableArray<ViewModels.Address> = ko.observableArray([]); +public birthDate: KnockoutObservable<moment.Moment | null> = ko.observable(moment());`,lang:"ts",id:"data-property-members"}),d,b,m,a(t,{def:"public genderText: KnockoutComputed<string | null>",lang:"ts"}),u])}const g=r(c,[["render",h]]);export{T as __pageData,g as default}; diff --git a/assets/stacks_ko_client_list-view-model.md.BDLFsClf.js b/assets/stacks_ko_client_list-view-model.md.BDLFsClf.js new file mode 100644 index 000000000..e491315ca --- /dev/null +++ b/assets/stacks_ko_client_list-view-model.md.BDLFsClf.js @@ -0,0 +1,12 @@ +import{_ as n,c as l,I as o,a7 as a,l as e,a as s,o as i,E as r}from"./chunks/framework.Be4oCqIX.js";const Z=JSON.parse('{"title":"TypeScript ListViewModels","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/client/list-view-model.md","filePath":"stacks/ko/client/list-view-model.md"}'),c={name:"stacks/ko/client/list-view-model.md"},d=a('<h1 id="typescript-listviewmodels" tabindex="-1">TypeScript ListViewModels <a class="header-anchor" href="#typescript-listviewmodels" aria-label="Permalink to "TypeScript ListViewModels"">​</a></h1><p>In addition to <a href="/Coalesce/stacks/ko/client/view-model.html">TypeScript ViewModels</a> for interacting with instances of your data classes in TypeScript, Coalesce will also generated a List ViewModel for loading searched, sorted, paginated data from the server.</p><p>These ListViewModels, like the ViewModels, are dependent on Knockout and are designed to be used directly from Knockout bindings in your HTML.</p><h2 id="base-members" tabindex="-1">Base Members <a class="header-anchor" href="#base-members" aria-label="Permalink to "Base Members"">​</a></h2><p>The following members are defined on <code>BaseListViewModel<></code> and are available to the ListViewModels for all of your model types:</p>',5),h=e("p",null,"Name of the primary key of the model that this list represents.",-1),p=e("p",null,[s("String that is used to control loading and serialization on the server. See "),e("a",{href:"/Coalesce/concepts/includes.html"},"Includes String"),s(" for more information.")],-1),m=e("p",null,"The collection of items that have been loaded from the server.",-1),u=e("p",null,"Adds a new item to the items collection.",-1),g=e("p",null,"Deletes an item and removes it from the items collection.",-1),f=e("p",null,"An arbitrary URL query string to append to the API call when loading the list of items.",-1),b=e("p",null,[s("Search criteria for the list. This can be easily bound to with a text box for easy search behavior. See "),e("a",{href:"/Coalesce/modeling/model-components/attributes/search.html"},"[Search]"),s(" for a detailed look at how searching works in Coalesce.")],-1),_=e("p",null,"True if the list is loading.",-1),y=e("p",null,"True once the list has been loaded.",-1),w=e("p",null,"Load the list using current parameters for paging, searching, etc Result is placed into the items property.",-1),C=e("p",null,"If a load failed, this is a message about why it failed.",-1),v=e("p",null,"Gets the count of items without getting all the items. Result is placed into the count property.",-1),D=e("p",null,"The result of getCount(), or the total on this page.",-1),S=e("p",null,"Total count of items, even ones that are not on the page.",-1),k=e("p",null,"Change to the next page.",-1),T=e("p",null,"True if there is another page after the current page.",-1),M=e("p",null,"Change to the previous page.",-1),P=e("p",null,"True if there is another page before the current page.",-1),V=e("p",null,"Page number. This can be set to get a new page.",-1),L=e("p",null,"Total page count",-1),x=e("p",null,"Number of items on a page.",-1),N=e("p",null,"Name of a field by which this list will be loaded in ascending order.",-1),O=e("p",null,[s("If set to "),e("code",null,'"none"'),s(", default sorting behavior, including behavior defined with use of "),e("a",{href:"/Coalesce/modeling/model-components/attributes/default-order-by.html"},"[DefaultOrderBy]"),s(" in C# POCOs, is suppressed.")],-1),I=e("p",null,"Name of a field by which this list will be loaded in descending order.",-1),A=e("p",null,"Toggles sorting between ascending, descending, and no order on the specified field.",-1),E=e("h2",{id:"model-specific-members",tabindex:"-1"},[s("Model-Specific Members "),e("a",{class:"header-anchor",href:"#model-specific-members","aria-label":'Permalink to "Model-Specific Members"'},"​")],-1),K=e("h3",{id:"configuration",tabindex:"-1"},[s("Configuration "),e("a",{class:"header-anchor",href:"#configuration","aria-label":'Permalink to "Configuration"'},"​")],-1),F=e("p",null,[s("A static configuration object for configuring all instances of the ListViewModel's type is created. See "),e("a",{href:"/Coalesce/stacks/ko/client/model-config.html"},"ViewModel Configuration"),s(".")],-1),q=e("p",null,[s("An per-instance configuration object for configuring each specific ListViewModel instance is created. See "),e("a",{href:"/Coalesce/stacks/ko/client/model-config.html"},"ViewModel Configuration"),s(".")],-1),B=e("h3",{id:"filter-object",tabindex:"-1"},[s("Filter Object "),e("a",{class:"header-anchor",href:"#filter-object","aria-label":'Permalink to "Filter Object"'},"​")],-1),j=a(`<p>For each exposed scalar property on the underlying EF POCO, <code>filter</code> will have a corresponding property. If the <code>filter</code> object is set, requests made to the server to retrieve data will be passed all the values in this object via the URL's query string. These parameters will filter the resulting data to only rows where the parameter values match the row's values. For example, if <code>filter.companyId</code> is set to a value, only people from that company will be returned.</p><p>These parameters all allow for freeform string values, allowing the server to implement any kind of filtering logic desired. The <a href="/Coalesce/modeling/model-components/data-sources.html#standard-data-source">Standard Data Source</a> will perform the following depending on the property type:</p><ul><li>Dates with a time component will be matched exactly.</li><li>Dates with no time component will match any dates that fell on that day.</li><li>Strings will match exactly unless an asterisk is found, in which case they will be matched with <code>string.StartsWith</code>.</li><li>Enums will match by string or numeric value. Multiple comma-delimited values will create a filter that will match on any of the provided values.</li><li>Numeric values will match exactly. Multiple comma-delimited values will create a filter that will match on any of the provided values.</li></ul><p>Example usage:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">var</span><span style="color:#9CDCFE;"> list</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#9CDCFE;"> ListViewModels</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">PersonList</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">filter</span><span style="color:#D4D4D4;"> = { </span><span style="color:#9CDCFE;">lastName:</span><span style="color:#CE9178;"> "Erickson"</span><span style="color:#D4D4D4;"> };</span></span> +<span class="line"><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">load</span><span style="color:#D4D4D4;">();</span></span></code></pre></div><h3 id="static-method-members" tabindex="-1">Static Method Members <a class="header-anchor" href="#static-method-members" aria-label="Permalink to "Static Method Members"">​</a></h3>`,6),R=e("p",null,[s("For each exposed "),e("a",{href:"/Coalesce/modeling/model-components/methods.html#static-methods"},"Static Method"),s(" on your POCO, the members outlined in "),e("a",{href:"/Coalesce/stacks/ko/client/methods.html"},"Methods - Generated TypeScript"),s(" will be created.")],-1),W=e("h3",{id:"datasources",tabindex:"-1"},[s("DataSources "),e("a",{class:"header-anchor",href:"#datasources","aria-label":'Permalink to "DataSources"'},"​")],-1),J=a('<p>For each of the <a href="/Coalesce/modeling/model-components/data-sources.html">Data Sources</a> on the class, a corresponding class will be added to a namespace named <code>ListViewModels.<ClassName>DataSources</code>. This namespace can always be accessed on both <code>ViewModel</code> and <code>ListViewModel</code> instances via the <code>dataSources</code> property, and class instances can be assigned to the <code>dataSource</code> property.</p>',1);function $(Q,z,G,U,H,X){const t=r("Prop");return i(),l("div",null,[d,o(t,{def:"modelKeyName: string",lang:"ts"}),h,o(t,{def:"includes: string",lang:"ts"}),p,o(t,{def:"items: KnockoutObservableArray<TItem>",lang:"ts"}),m,o(t,{def:"addNewItem: (): TItem",lang:"ts"}),u,o(t,{def:"deleteItem: (item: TItem): JQueryPromise<any>",lang:"ts"}),g,o(t,{def:"queryString: string",lang:"ts"}),f,o(t,{def:"search: KnockoutObservable<string>",lang:"ts"}),b,o(t,{def:"isLoading: KnockoutObservable<boolean>",lang:"ts"}),_,o(t,{def:"isLoaded: KnockoutObservable<boolean>",lang:"ts"}),y,o(t,{def:"load: (callback?: any): JQueryPromise<any>",lang:"ts"}),w,o(t,{def:"message: KnockoutObservable<string>",lang:"ts"}),C,o(t,{def:"getCount: (callback?: any): JQueryPromise<any>",lang:"ts"}),v,o(t,{def:"count: KnockoutObservable<number>",lang:"ts"}),D,o(t,{def:"totalCount: KnockoutObservable<number>",lang:"ts"}),S,o(t,{def:"nextPage: (): void",lang:"ts"}),k,o(t,{def:"nextPageEnabled: KnockoutComputed<boolean>",lang:"ts"}),T,o(t,{def:"previousPage: (): void",lang:"ts"}),M,o(t,{def:"previousPageEnabled: KnockoutComputed<boolean>",lang:"ts"}),P,o(t,{def:"page: KnockoutObservable<number>",lang:"ts"}),V,o(t,{def:"pageCount: KnockoutObservable<number>",lang:"ts"}),L,o(t,{def:"pageSize: KnockoutObservable<number>",lang:"ts"}),x,o(t,{def:"orderBy: KnockoutObservable<string>",lang:"ts"}),N,O,o(t,{def:"orderByDescending: KnockoutObservable<string>",lang:"ts"}),I,o(t,{def:"orderByToggle: (field: string): void",lang:"ts"}),A,E,K,o(t,{def:"static coalesceConfig: Coalesce.ListViewModelConfiguration<PersonList, ViewModels.Person>",lang:"ts",id:"member-class-config"}),F,o(t,{def:"coalesceConfig: Coalesce.ListViewModelConfiguration<PersonList, ViewModels.Person>",lang:"ts",id:"member-instance-config"}),q,B,o(t,{def:`public filter: { + personId?: string + firstName?: string + lastName?: string + gender?: string + companyId?: string +} = null;`,lang:"ts",id:"code-filter-object"}),j,o(t,{def:`public readonly namesStartingWith = new Person.NamesStartingWith(this); +public static NamesStartingWith = class NamesStartingWith extends Coalesce.ClientMethod<PersonList, string[]> { ... };`,lang:"ts",id:"code-static-method-members"}),R,W,o(t,{def:` +public dataSources = ListViewModels.PersonDataSources; +public dataSource: DataSource<Person> = new this.dataSources.Default();`,lang:"ts",id:"code-data-source-members"}),J])}const ee=n(c,[["render",$]]);export{Z as __pageData,ee as default}; diff --git a/assets/stacks_ko_client_list-view-model.md.BDLFsClf.lean.js b/assets/stacks_ko_client_list-view-model.md.BDLFsClf.lean.js new file mode 100644 index 000000000..213ecc376 --- /dev/null +++ b/assets/stacks_ko_client_list-view-model.md.BDLFsClf.lean.js @@ -0,0 +1,10 @@ +import{_ as n,c as l,I as o,a7 as a,l as e,a as s,o as i,E as r}from"./chunks/framework.Be4oCqIX.js";const Z=JSON.parse('{"title":"TypeScript ListViewModels","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/client/list-view-model.md","filePath":"stacks/ko/client/list-view-model.md"}'),c={name:"stacks/ko/client/list-view-model.md"},d=a("",5),h=e("p",null,"Name of the primary key of the model that this list represents.",-1),p=e("p",null,[s("String that is used to control loading and serialization on the server. See "),e("a",{href:"/Coalesce/concepts/includes.html"},"Includes String"),s(" for more information.")],-1),m=e("p",null,"The collection of items that have been loaded from the server.",-1),u=e("p",null,"Adds a new item to the items collection.",-1),g=e("p",null,"Deletes an item and removes it from the items collection.",-1),f=e("p",null,"An arbitrary URL query string to append to the API call when loading the list of items.",-1),b=e("p",null,[s("Search criteria for the list. This can be easily bound to with a text box for easy search behavior. See "),e("a",{href:"/Coalesce/modeling/model-components/attributes/search.html"},"[Search]"),s(" for a detailed look at how searching works in Coalesce.")],-1),_=e("p",null,"True if the list is loading.",-1),y=e("p",null,"True once the list has been loaded.",-1),w=e("p",null,"Load the list using current parameters for paging, searching, etc Result is placed into the items property.",-1),C=e("p",null,"If a load failed, this is a message about why it failed.",-1),v=e("p",null,"Gets the count of items without getting all the items. Result is placed into the count property.",-1),D=e("p",null,"The result of getCount(), or the total on this page.",-1),S=e("p",null,"Total count of items, even ones that are not on the page.",-1),k=e("p",null,"Change to the next page.",-1),T=e("p",null,"True if there is another page after the current page.",-1),M=e("p",null,"Change to the previous page.",-1),P=e("p",null,"True if there is another page before the current page.",-1),V=e("p",null,"Page number. This can be set to get a new page.",-1),L=e("p",null,"Total page count",-1),x=e("p",null,"Number of items on a page.",-1),N=e("p",null,"Name of a field by which this list will be loaded in ascending order.",-1),O=e("p",null,[s("If set to "),e("code",null,'"none"'),s(", default sorting behavior, including behavior defined with use of "),e("a",{href:"/Coalesce/modeling/model-components/attributes/default-order-by.html"},"[DefaultOrderBy]"),s(" in C# POCOs, is suppressed.")],-1),I=e("p",null,"Name of a field by which this list will be loaded in descending order.",-1),A=e("p",null,"Toggles sorting between ascending, descending, and no order on the specified field.",-1),E=e("h2",{id:"model-specific-members",tabindex:"-1"},[s("Model-Specific Members "),e("a",{class:"header-anchor",href:"#model-specific-members","aria-label":'Permalink to "Model-Specific Members"'},"​")],-1),K=e("h3",{id:"configuration",tabindex:"-1"},[s("Configuration "),e("a",{class:"header-anchor",href:"#configuration","aria-label":'Permalink to "Configuration"'},"​")],-1),F=e("p",null,[s("A static configuration object for configuring all instances of the ListViewModel's type is created. See "),e("a",{href:"/Coalesce/stacks/ko/client/model-config.html"},"ViewModel Configuration"),s(".")],-1),q=e("p",null,[s("An per-instance configuration object for configuring each specific ListViewModel instance is created. See "),e("a",{href:"/Coalesce/stacks/ko/client/model-config.html"},"ViewModel Configuration"),s(".")],-1),B=e("h3",{id:"filter-object",tabindex:"-1"},[s("Filter Object "),e("a",{class:"header-anchor",href:"#filter-object","aria-label":'Permalink to "Filter Object"'},"​")],-1),j=a("",6),R=e("p",null,[s("For each exposed "),e("a",{href:"/Coalesce/modeling/model-components/methods.html#static-methods"},"Static Method"),s(" on your POCO, the members outlined in "),e("a",{href:"/Coalesce/stacks/ko/client/methods.html"},"Methods - Generated TypeScript"),s(" will be created.")],-1),W=e("h3",{id:"datasources",tabindex:"-1"},[s("DataSources "),e("a",{class:"header-anchor",href:"#datasources","aria-label":'Permalink to "DataSources"'},"​")],-1),J=a("",1);function $(Q,z,G,U,H,X){const t=r("Prop");return i(),l("div",null,[d,o(t,{def:"modelKeyName: string",lang:"ts"}),h,o(t,{def:"includes: string",lang:"ts"}),p,o(t,{def:"items: KnockoutObservableArray<TItem>",lang:"ts"}),m,o(t,{def:"addNewItem: (): TItem",lang:"ts"}),u,o(t,{def:"deleteItem: (item: TItem): JQueryPromise<any>",lang:"ts"}),g,o(t,{def:"queryString: string",lang:"ts"}),f,o(t,{def:"search: KnockoutObservable<string>",lang:"ts"}),b,o(t,{def:"isLoading: KnockoutObservable<boolean>",lang:"ts"}),_,o(t,{def:"isLoaded: KnockoutObservable<boolean>",lang:"ts"}),y,o(t,{def:"load: (callback?: any): JQueryPromise<any>",lang:"ts"}),w,o(t,{def:"message: KnockoutObservable<string>",lang:"ts"}),C,o(t,{def:"getCount: (callback?: any): JQueryPromise<any>",lang:"ts"}),v,o(t,{def:"count: KnockoutObservable<number>",lang:"ts"}),D,o(t,{def:"totalCount: KnockoutObservable<number>",lang:"ts"}),S,o(t,{def:"nextPage: (): void",lang:"ts"}),k,o(t,{def:"nextPageEnabled: KnockoutComputed<boolean>",lang:"ts"}),T,o(t,{def:"previousPage: (): void",lang:"ts"}),M,o(t,{def:"previousPageEnabled: KnockoutComputed<boolean>",lang:"ts"}),P,o(t,{def:"page: KnockoutObservable<number>",lang:"ts"}),V,o(t,{def:"pageCount: KnockoutObservable<number>",lang:"ts"}),L,o(t,{def:"pageSize: KnockoutObservable<number>",lang:"ts"}),x,o(t,{def:"orderBy: KnockoutObservable<string>",lang:"ts"}),N,O,o(t,{def:"orderByDescending: KnockoutObservable<string>",lang:"ts"}),I,o(t,{def:"orderByToggle: (field: string): void",lang:"ts"}),A,E,K,o(t,{def:"static coalesceConfig: Coalesce.ListViewModelConfiguration<PersonList, ViewModels.Person>",lang:"ts",id:"member-class-config"}),F,o(t,{def:"coalesceConfig: Coalesce.ListViewModelConfiguration<PersonList, ViewModels.Person>",lang:"ts",id:"member-instance-config"}),q,B,o(t,{def:`public filter: { + personId?: string + firstName?: string + lastName?: string + gender?: string + companyId?: string +} = null;`,lang:"ts",id:"code-filter-object"}),j,o(t,{def:`public readonly namesStartingWith = new Person.NamesStartingWith(this); +public static NamesStartingWith = class NamesStartingWith extends Coalesce.ClientMethod<PersonList, string[]> { ... };`,lang:"ts",id:"code-static-method-members"}),R,W,o(t,{def:` +public dataSources = ListViewModels.PersonDataSources; +public dataSource: DataSource<Person> = new this.dataSources.Default();`,lang:"ts",id:"code-data-source-members"}),J])}const ee=n(c,[["render",$]]);export{Z as __pageData,ee as default}; diff --git a/assets/stacks_ko_client_methods.md.rVDJ_aT5.js b/assets/stacks_ko_client_methods.md.rVDJ_aT5.js new file mode 100644 index 000000000..2c6a8b247 --- /dev/null +++ b/assets/stacks_ko_client_methods.md.rVDJ_aT5.js @@ -0,0 +1,5 @@ +import{_ as o,c as l,I as a,a7 as n,l as e,a as t,o as r,E as i}from"./chunks/framework.Be4oCqIX.js";const B=JSON.parse('{"title":"TypeScript Method Objects","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/client/methods.md","filePath":"stacks/ko/client/methods.md"}'),c={name:"stacks/ko/client/methods.md"},d=n(`<h1 id="typescript-method-objects" tabindex="-1">TypeScript Method Objects <a class="header-anchor" href="#typescript-method-objects" aria-label="Permalink to "TypeScript Method Objects"">​</a></h1><p>For each <a href="/Coalesce/modeling/model-components/methods.html">Custom Method</a> you define, a class will be created on the corresponding TypeScript ViewModel (instance methods) or ListViewModel (static methods) that contains the properties and functions for interaction with the method. This class is accessible through a static property named after the method. An instance of this class will also be created on each instance of its parent - this instance is in a property with the camel-cased name of the method.</p><p>Here's an example for a method called Rename that takes a single parameter 'string name' and returns a string.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> string</span><span style="color:#DCDCAA;"> Rename</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> name</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#9CDCFE;"> FirstName</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">name</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> FullName</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">// Return the new full name of the person.</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="base-members" tabindex="-1">Base Members <a class="header-anchor" href="#base-members" aria-label="Permalink to "Base Members"">​</a></h2><p>The following members are available on the method object for all client methods:</p>`,6),h=e("p",null,"Observable that will contain the results of the method call after it is complete.",-1),p=e("p",null,"Observable with the raw, deserialized JSON result of the method call. If the method call returns an object, this will contain the deserialized JSON object from the server before it has been loaded into ViewModels and its properties loaded into observables.",-1),u=e("p",null,"Observable boolean which is true while the call to the server is pending.",-1),m=e("p",null,"If the method was not successful, this contains exception information.",-1),b=e("p",null,"Observable boolean that indicates whether the method call was successful or not.",-1),f=e("h2",{id:"listresult-t-base-members",tabindex:"-1"},[e("code",null,"ListResult<T>"),t(" Base Members "),e("a",{class:"header-anchor",href:"#listresult-t-base-members","aria-label":'Permalink to "`ListResult<T>` Base Members"'},"​")],-1),g=e("p",null,[t("For methods that return a "),e("code",null,"ListResult<T>"),t(", the following additional members on the method object will be available:")],-1),_=e("p",null,"Page number of the results.",-1),w=e("p",null,"Page size of the results.",-1),y=e("p",null,"Total number of possible result pages.",-1),v=e("p",null,"Total number of results.",-1),k=e("h2",{id:"method-specific-members",tabindex:"-1"},[t("Method-specific Members "),e("a",{class:"header-anchor",href:"#method-specific-members","aria-label":'Permalink to "Method-specific Members"'},"​")],-1),D=e("p",null,[t("Declaration of the method object class. This will be generated on the parent "),e("a",{href:"./view-model.html"},"ViewModel"),t(" or "),e("a",{href:"./list-view-model.html"},"ListViewModel"),t(".")],-1),C=e("p",null,[t("Default instance of the method for easy calling of the method without needing to manually instantiate the class. This will be generated on the parent "),e("a",{href:"./view-model.html"},"ViewModel"),t(" or "),e("a",{href:"./list-view-model.html"},"ListViewModel"),t(".")],-1),O=e("p",null,[t("Function that takes all the method parameters and a callback. If "),e("code",null,"reload"),t(" is true, the ViewModel or ListViewModel that owns the method will be reloaded after the call is complete, and only after that happens will the callback be called.")],-1),T=e("p",null,"Class with one observable member per method argument for binding method arguments to user input. Only generated for methods with arguments.",-1),M=e("p",null,"Default instance of the args class. Only generated for methods with arguments.",-1),P=e("p",null,"Function for invoking the method using the args class. The default instance of the args class will be used if none is provided. Only generated for methods with arguments.",-1),R=e("p",null,[t("Simple interface using browser "),e("code",null,"prompt()"),t(" input boxes to prompt the user for the required data for the method call. The call is then made with the data provided. Only generated for methods with arguments.")],-1),j=e("p",null,[t("Observable that will contain an "),e("a",{href:"https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL",target:"_blank",rel:"noreferrer"},"Object URL"),t(" representing the last successful invocation result. Only generated for "),e("a",{href:"/Coalesce/modeling/model-components/methods.html#file-downloads"},"methods that return a file"),t(".")],-1),A=e("p",null,[t("The URL for the method. Can be useful for using as the "),e("code",null,"src"),t(" attribute of an "),e("code",null,"image"),t(" or "),e("code",null,"video"),t(" HTML element for file-downloading methods. Any arguments will be populated from "),e("code",null,"this.args"),t(". Only generated for HTTP GET methods, as configured by "),e("a",{href:"/Coalesce/modeling/model-components/attributes/controller-action.html"},"[ControllerAction]"),t(".")],-1);function S(V,L,x,K,F,N){const s=i("Prop");return r(),l("div",null,[d,a(s,{def:"public result: KnockoutObservable<string>",lang:"ts"}),h,a(s,{def:"public rawResult: KnockoutObservable<Coalesce.ApiResult>",lang:"ts"}),p,a(s,{def:"public isLoading: KnockoutObservable<boolean>",lang:"ts"}),u,a(s,{def:"public message: KnockoutObservable<string>",lang:"ts"}),m,a(s,{def:"public wasSuccessful: KnockoutObservable<boolean>",lang:"ts"}),b,f,g,a(s,{def:"public page: KnockoutObservable<number>",lang:"ts"}),_,a(s,{def:"public pageSize: KnockoutObservable<number>",lang:"ts"}),w,a(s,{def:"public pageCount: KnockoutObservable<number>",lang:"ts"}),y,a(s,{def:"public totalCount: KnockoutObservable<number>",lang:"ts"}),v,k,a(s,{def:"public static Rename = class Rename extends Coalesce.ClientMethod<Person, string> { ... }",lang:"ts",id:"method-object-class-declaration"}),D,a(s,{def:"public readonly rename = new Person.Rename(this)",lang:"ts",id:"method-object-instance"}),C,a(s,{def:"public invoke: (name: string, callback: (result: string) => void = null, reload: boolean = true): JQueryPromise<any>",lang:"ts"}),O,a(s,{def:"public static Args = class Args { public name: KnockoutObservable<string> = ko.observable(null); }",lang:"ts",id:"method-args-class-declaration"}),T,a(s,{def:"public args = new Rename.Args()",lang:"ts",id:"method-args-instance"}),M,a(s,{def:"public invokeWithArgs: (args = this.args, callback?: (result: string) => void, reload: boolean = true) => JQueryPromise<any>",lang:"ts"}),P,a(s,{def:"public invokeWithPrompts: (callback: (result: string) => void = null, reload: boolean = true) => JQueryPromise<any>",lang:"ts"}),R,a(s,{def:"public resultObjectUrl: KnockoutObservable<string | null>",lang:"ts"}),j,a(s,{def:"public url: KnockoutComputed<string>",lang:"ts"}),A])}const I=o(c,[["render",S]]);export{B as __pageData,I as default}; diff --git a/assets/stacks_ko_client_methods.md.rVDJ_aT5.lean.js b/assets/stacks_ko_client_methods.md.rVDJ_aT5.lean.js new file mode 100644 index 000000000..a2346e7da --- /dev/null +++ b/assets/stacks_ko_client_methods.md.rVDJ_aT5.lean.js @@ -0,0 +1 @@ +import{_ as o,c as l,I as a,a7 as n,l as e,a as t,o as r,E as i}from"./chunks/framework.Be4oCqIX.js";const B=JSON.parse('{"title":"TypeScript Method Objects","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/client/methods.md","filePath":"stacks/ko/client/methods.md"}'),c={name:"stacks/ko/client/methods.md"},d=n("",6),h=e("p",null,"Observable that will contain the results of the method call after it is complete.",-1),p=e("p",null,"Observable with the raw, deserialized JSON result of the method call. If the method call returns an object, this will contain the deserialized JSON object from the server before it has been loaded into ViewModels and its properties loaded into observables.",-1),u=e("p",null,"Observable boolean which is true while the call to the server is pending.",-1),m=e("p",null,"If the method was not successful, this contains exception information.",-1),b=e("p",null,"Observable boolean that indicates whether the method call was successful or not.",-1),f=e("h2",{id:"listresult-t-base-members",tabindex:"-1"},[e("code",null,"ListResult<T>"),t(" Base Members "),e("a",{class:"header-anchor",href:"#listresult-t-base-members","aria-label":'Permalink to "`ListResult<T>` Base Members"'},"​")],-1),g=e("p",null,[t("For methods that return a "),e("code",null,"ListResult<T>"),t(", the following additional members on the method object will be available:")],-1),_=e("p",null,"Page number of the results.",-1),w=e("p",null,"Page size of the results.",-1),y=e("p",null,"Total number of possible result pages.",-1),v=e("p",null,"Total number of results.",-1),k=e("h2",{id:"method-specific-members",tabindex:"-1"},[t("Method-specific Members "),e("a",{class:"header-anchor",href:"#method-specific-members","aria-label":'Permalink to "Method-specific Members"'},"​")],-1),D=e("p",null,[t("Declaration of the method object class. This will be generated on the parent "),e("a",{href:"./view-model.html"},"ViewModel"),t(" or "),e("a",{href:"./list-view-model.html"},"ListViewModel"),t(".")],-1),C=e("p",null,[t("Default instance of the method for easy calling of the method without needing to manually instantiate the class. This will be generated on the parent "),e("a",{href:"./view-model.html"},"ViewModel"),t(" or "),e("a",{href:"./list-view-model.html"},"ListViewModel"),t(".")],-1),O=e("p",null,[t("Function that takes all the method parameters and a callback. If "),e("code",null,"reload"),t(" is true, the ViewModel or ListViewModel that owns the method will be reloaded after the call is complete, and only after that happens will the callback be called.")],-1),T=e("p",null,"Class with one observable member per method argument for binding method arguments to user input. Only generated for methods with arguments.",-1),M=e("p",null,"Default instance of the args class. Only generated for methods with arguments.",-1),P=e("p",null,"Function for invoking the method using the args class. The default instance of the args class will be used if none is provided. Only generated for methods with arguments.",-1),R=e("p",null,[t("Simple interface using browser "),e("code",null,"prompt()"),t(" input boxes to prompt the user for the required data for the method call. The call is then made with the data provided. Only generated for methods with arguments.")],-1),j=e("p",null,[t("Observable that will contain an "),e("a",{href:"https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL",target:"_blank",rel:"noreferrer"},"Object URL"),t(" representing the last successful invocation result. Only generated for "),e("a",{href:"/Coalesce/modeling/model-components/methods.html#file-downloads"},"methods that return a file"),t(".")],-1),A=e("p",null,[t("The URL for the method. Can be useful for using as the "),e("code",null,"src"),t(" attribute of an "),e("code",null,"image"),t(" or "),e("code",null,"video"),t(" HTML element for file-downloading methods. Any arguments will be populated from "),e("code",null,"this.args"),t(". Only generated for HTTP GET methods, as configured by "),e("a",{href:"/Coalesce/modeling/model-components/attributes/controller-action.html"},"[ControllerAction]"),t(".")],-1);function S(V,L,x,K,F,N){const s=i("Prop");return r(),l("div",null,[d,a(s,{def:"public result: KnockoutObservable<string>",lang:"ts"}),h,a(s,{def:"public rawResult: KnockoutObservable<Coalesce.ApiResult>",lang:"ts"}),p,a(s,{def:"public isLoading: KnockoutObservable<boolean>",lang:"ts"}),u,a(s,{def:"public message: KnockoutObservable<string>",lang:"ts"}),m,a(s,{def:"public wasSuccessful: KnockoutObservable<boolean>",lang:"ts"}),b,f,g,a(s,{def:"public page: KnockoutObservable<number>",lang:"ts"}),_,a(s,{def:"public pageSize: KnockoutObservable<number>",lang:"ts"}),w,a(s,{def:"public pageCount: KnockoutObservable<number>",lang:"ts"}),y,a(s,{def:"public totalCount: KnockoutObservable<number>",lang:"ts"}),v,k,a(s,{def:"public static Rename = class Rename extends Coalesce.ClientMethod<Person, string> { ... }",lang:"ts",id:"method-object-class-declaration"}),D,a(s,{def:"public readonly rename = new Person.Rename(this)",lang:"ts",id:"method-object-instance"}),C,a(s,{def:"public invoke: (name: string, callback: (result: string) => void = null, reload: boolean = true): JQueryPromise<any>",lang:"ts"}),O,a(s,{def:"public static Args = class Args { public name: KnockoutObservable<string> = ko.observable(null); }",lang:"ts",id:"method-args-class-declaration"}),T,a(s,{def:"public args = new Rename.Args()",lang:"ts",id:"method-args-instance"}),M,a(s,{def:"public invokeWithArgs: (args = this.args, callback?: (result: string) => void, reload: boolean = true) => JQueryPromise<any>",lang:"ts"}),P,a(s,{def:"public invokeWithPrompts: (callback: (result: string) => void = null, reload: boolean = true) => JQueryPromise<any>",lang:"ts"}),R,a(s,{def:"public resultObjectUrl: KnockoutObservable<string | null>",lang:"ts"}),j,a(s,{def:"public url: KnockoutComputed<string>",lang:"ts"}),A])}const I=o(c,[["render",S]]);export{B as __pageData,I as default}; diff --git a/assets/stacks_ko_client_model-config.md.BuytGqN2.js b/assets/stacks_ko_client_model-config.md.BuytGqN2.js new file mode 100644 index 000000000..fc07ea1e4 --- /dev/null +++ b/assets/stacks_ko_client_model-config.md.BuytGqN2.js @@ -0,0 +1,8 @@ +import{_ as n,c as l,I as t,a7 as i,l as e,a as o,o as s,E as r}from"./chunks/framework.Be4oCqIX.js";const X=JSON.parse('{"title":"ViewModel Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/client/model-config.md","filePath":"stacks/ko/client/model-config.md"}'),c={name:"stacks/ko/client/model-config.md"},d=i('<h1 id="viewmodel-configuration" tabindex="-1">ViewModel Configuration <a class="header-anchor" href="#viewmodel-configuration" aria-label="Permalink to "ViewModel Configuration"">​</a></h1><p>A crucial part of the generated TypeScript ViewModels that Coalesce creates for you is the hierarchical configuration system that allows coarse-grained or fine-grained control over their behaviors.</p><h2 id="hierarchy" tabindex="-1">Hierarchy <a class="header-anchor" href="#hierarchy" aria-label="Permalink to "Hierarchy"">​</a></h2><p>The configuration system has four levels where configuration can be performed, structured as follows:</p><h3 id="root-configuration" tabindex="-1">Root Configuration <a class="header-anchor" href="#root-configuration" aria-label="Permalink to "Root Configuration"">​</a></h3>',5),h=i('<p>The root configuration contains all configuration properties which apply to class category (<a href="/Coalesce/stacks/ko/client/view-model.html">TypeScript ViewModels</a>, <a href="/Coalesce/stacks/ko/client/list-view-model.html">TypeScript ListViewModels</a>, and <a href="/Coalesce/modeling/model-types/services.html">Services</a>). The <code>app</code> property contains global app configuration that exists independent of any models. Then, for each class kind, the following are available:</p><h3 id="root-viewmodel-listviewmodel-configuration" tabindex="-1">Root ViewModel/ListViewModel Configuration <a class="header-anchor" href="#root-viewmodel-listviewmodel-configuration" aria-label="Permalink to "Root ViewModel/ListViewModel Configuration"">​</a></h3>',2),u=e("p",null,[o("Additional root configuration objects exist, one for each class kind. These configuration objects govern behavior that applies to only objects of these types. Root configuration "),e("em",null,"can"),o(" be overridden using these objects, although the practicality of doing so is dubious.")],-1),f=e("h3",{id:"class-configuration",tabindex:"-1"},[o("Class Configuration "),e("a",{class:"header-anchor",href:"#class-configuration","aria-label":'Permalink to "Class Configuration"'},"​")],-1),p=e("p",null,[o("Each class kind has a static property named "),e("code",null,"coalesceConfig"),o(" that controls behavior for all instances of that class.")],-1),g=e("h3",{id:"instance-configuration",tabindex:"-1"},[o("Instance Configuration "),e("a",{class:"header-anchor",href:"#instance-configuration","aria-label":'Permalink to "Instance Configuration"'},"​")],-1),m=i('<p>Each instance of these classes also has a <code>coalesceConfig</code> property that controls behaviors for that instance only.</p><h2 id="evaluation" tabindex="-1">Evaluation <a class="header-anchor" href="#evaluation" aria-label="Permalink to "Evaluation"">​</a></h2><p>All configuration properties are Knockout <code>ComputedObservable<T></code> objects. These observables behave like any other observable - call them with no parameter to obtain the value, call with a parameter to set their value.</p><p>Whenever a configuration property is read from, it first checks its own configuration object for the value of that property. If the explicit value for that configuration object is null, the parent's configuration will be checked for a value. This continues until either a value is found or the root configuration object is reached.</p><p>When a configuration property is given a value, that value is established on that configuration object only. Any dependent configuration objects will not be modified, and if those dependent configuration objects already have a value for that property, their existing value will be used unless that value is later set to null.</p><p>To obtain the raw value for a specific configuration property, call the <code>raw()</code> method on the observable: <code>model.coalesceConfig.autoSaveEnabled.raw()</code>.</p><h2 id="available-properties-defaults" tabindex="-1">Available Properties & Defaults <a class="header-anchor" href="#available-properties-defaults" aria-label="Permalink to "Available Properties & Defaults"">​</a></h2><p>The following configuration properties are available. Their default values are also listed. Note that all configuration properties are observables, but for simplicity the documentation below lists the underlying type.</p><h3 id="root-configuration-1" tabindex="-1">Root Configuration <a class="header-anchor" href="#root-configuration-1" aria-label="Permalink to "Root Configuration"">​</a></h3><p>These properties on <code>Coalesce.GlobalConfiguration</code> are available to both ViewModelConfiguration, ListViewModelConfiguration, and ServiceClientConfiguration.</p>',10),b=e("p",null,"The relative url where the API may be found.",-1),v=e("p",null,"The relative url where the admin views may be found.",-1),_=e("p",null,[o("Whether or not the callback specified for "),e("code",null,"onFailure"),o(" will be called or not.")],-1),C=e("p",null,"A callback to be called when a failure response is received from the server.",-1),w=e("p",null,"A callback to be called when an AJAX request begins.",-1),y=e("p",null,"A callback to be called when an AJAX request completes.",-1),T=e("h3",{id:"app-configuration",tabindex:"-1"},[o("App Configuration "),e("a",{class:"header-anchor",href:"#app-configuration","aria-label":'Permalink to "App Configuration"'},"​")],-1),V=e("p",null,[o("These properties on "),e("code",null,"Coalesce.GlobalConfiguration.app"),o(" are not hierarchical - they govern the entire Coalesce application:")],-1),M=e("p",null,[o("The theme parameter to select2's constructor when called by Coalesce's select2 "),e("a",{href:"/Coalesce/stacks/ko/client/bindings.html"},"Knockout Bindings"),o(".")],-1),k=e("h3",{id:"viewmodelconfiguration",tabindex:"-1"},[o("ViewModelConfiguration "),e("a",{class:"header-anchor",href:"#viewmodelconfiguration","aria-label":'Permalink to "ViewModelConfiguration"'},"​")],-1),S=e("p",null,[o("Time to wait after a change is seen before auto-saving (if "),e("code",null,"autoSaveEnabled"),o(" is true). Acts as a debouncing timer for multiple simultaneous changes.")],-1),A=i('<p>An array of property names that, if set, will determine which fields will be sent to the server when saving. Only those values that are actually sent to the server will be mapped to the underlying entity.</p><p>This can improves the handling of concurrent changes being made by multiple users against different fields of the same entity. Specifically, if one page is designed to edit fields A and B, and another page is designed for editing fields C and D, you can configure this setting appropriately on each page to only save the corresponding fields.</p><p>Due to design limitations, this cannot be determined dynamically like it can with <a href="/Coalesce/stacks/vue/layers/viewmodels.html">Vue's $saveMode property</a></p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Surgical saves require DTOs on the server that are capable of determining which of their properties have been set by the model binder, as surgical saves are sent from the client by entirely omitting properties from the <code>x-www-form-urlencoded</code> body that is sent to the server.</p><p>The <a href="/Coalesce/stacks/agnostic/dtos.html">Generated C# DTOs</a> implement the necessary logic for this; however, any <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a> must have this logic manually written by you, the developer. Either implement the same pattern that can be seen in the <a href="/Coalesce/stacks/agnostic/dtos.html">Generated C# DTOs</a>, or do not use surgical saves with Custom DTOs.</p></div>',4),P=e("p",null,[o("Determines whether changes to a model will be automatically saved after "),e("code",null,"saveTimeoutMs"),o(" milliseconds have elapsed.")],-1),N=e("p",null,"Determines whether or not changes to many-to-many collection properties will automatically trigger a save call to the server or not.",-1),D=e("p",null,[o("Whether to invoke "),e("code",null,"onStartBusy"),o(" and "),e("code",null,"onFinishBusy"),o(" during saves.")],-1),x=e("p",null,[o("Whether or not to reload the ViewModel with the state of the object received from the server after a call to "),e("code",null,".save()"),o(".")],-1),L=e("p",null,"Whether or not to validate the model after loading it from a DTO from the server. Disabling this can improve performance in some cases.",-1),j=e("p",null,[o("Whether or not validation on a ViewModel should be setup in its constructor, or if validation must be set up manually by calling "),e("code",null,"viewModel.setupValidation()"),o(". Turning this off can improve performance in read-only scenarios.")],-1),q=e("p",null,"An optional callback to be called when an object is loaded from a response from the server. Callback will be called after all properties on the ViewModel have been set from the server response.",-1),I=e("p",null,[o("The dataSource (either an instance or a type) that will be used as the initial dataSource when a new object of this type is created. Not valid for global configuration; recommended to be used on class-level configuration. E.g. "),e("code",null,"ViewModels.MyModel.coalesceConfig.initialDataSource(MyModel.dataSources.MyDataSource);")],-1),B=e("h3",{id:"listviewmodelconfiguration",tabindex:"-1"},[o("ListViewModelConfiguration "),e("a",{class:"header-anchor",href:"#listviewmodelconfiguration","aria-label":'Permalink to "ListViewModelConfiguration"'},"​")],-1),E=e("p",null,"No special configuration is currently available for ListViewModels.",-1),R=e("h3",{id:"serviceclientconfiguration",tabindex:"-1"},[o("ServiceClientConfiguration "),e("a",{class:"header-anchor",href:"#serviceclientconfiguration","aria-label":'Permalink to "ServiceClientConfiguration"'},"​")],-1),G=e("p",null,"No special configuration is currently available for ServiceClients.",-1);function O(F,W,$,U,J,H){const a=r("Prop");return s(),l("div",null,[d,t(a,{def:`Coalesce.GlobalConfiguration: ModelConfiguration<any> +Coalesce.GlobalConfiguration.app: AppConfiguration`,lang:"ts",id:"code-root-config"}),h,t(a,{def:`Coalesce.GlobalConfiguration.viewModel: ViewModelConfiguration<BaseViewModel> +Coalesce.GlobalConfiguration.listViewModel: ListViewModelConfiguration<BaseListViewModel<BaseViewModel>, BaseViewModel> +Coalesce.GlobalConfiguration.serviceClient: ServiceClientConfiguration<ServiceClient>`,lang:"ts",id:"code-global-config"}),u,f,t(a,{def:`ViewModels.ClassName.coalesceConfig: ViewModelConfiguration<ViewModels.ClassName> +ListViewModels.ClassNameList.coalesceConfig: ListViewModelConfiguration<ListViewModels.ClassNameList, ViewModels.ClassName> +Services.ServiceNameClient.coalesceConfig: ServiceClientConfiguration<ServiceName>`,lang:"ts",id:"code-class-config"}),p,g,t(a,{def:`instance.coalesceConfig: ViewModelConfiguration<ViewModels.ClassName> +listInstance.coalesceConfig: ListViewModelConfiguration<ListViewModels.ClassNameList, ViewModels.ClassName> +serviceInstance.coalesceConfig: ServiceClientConfiguration<ServiceName>`,lang:"ts",id:"code-instance-config"}),m,t(a,{def:"baseApiUrl: string = '/api'",lang:"ts"}),b,t(a,{def:"baseViewUrl: string = ''",lang:"ts"}),v,t(a,{def:"showFailureAlerts: boolean = true",lang:"ts"}),_,t(a,{def:"onFailure: (obj, message) => alert(message)",lang:"ts"}),C,t(a,{def:"onStartBusy: obj => Coalesce.Utilities.showBusy()",lang:"ts"}),w,t(a,{def:"onFinishBusy: obj => Coalesce.Utilities.hideBusy()",lang:"ts"}),y,T,V,t(a,{def:"select2Theme: string | null = null",lang:"ts"}),M,k,t(a,{def:"saveTimeoutMs: number = 500",lang:"ts"}),S,t(a,{def:"saveIncludedFields: string[] | null = null",lang:"ts"}),A,t(a,{def:"autoSaveEnabled: boolean = true",lang:"ts"}),P,t(a,{def:"autoSaveCollectionsEnabled: boolean = true",lang:"ts"}),N,t(a,{def:"showBusyWhenSaving: boolean = false",lang:"ts"}),D,t(a,{def:"loadResponseFromSaves: boolean = true",lang:"ts"}),x,t(a,{def:"validateOnLoadFromDto: boolean = true",lang:"ts"}),L,t(a,{def:"setupValidationAutomatically: boolean = true",lang:"ts"}),j,t(a,{def:"onLoadFromDto: null | ((object: T) => void) = null",lang:"ts"}),q,t(a,{def:"initialDataSource: null | DataSource<T> | (new () => DataSource<T>) = null",lang:"ts"}),I,B,E,R,G])}const z=n(c,[["render",O]]);export{X as __pageData,z as default}; diff --git a/assets/stacks_ko_client_model-config.md.BuytGqN2.lean.js b/assets/stacks_ko_client_model-config.md.BuytGqN2.lean.js new file mode 100644 index 000000000..5f57503a2 --- /dev/null +++ b/assets/stacks_ko_client_model-config.md.BuytGqN2.lean.js @@ -0,0 +1,8 @@ +import{_ as n,c as l,I as t,a7 as i,l as e,a as o,o as s,E as r}from"./chunks/framework.Be4oCqIX.js";const X=JSON.parse('{"title":"ViewModel Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/client/model-config.md","filePath":"stacks/ko/client/model-config.md"}'),c={name:"stacks/ko/client/model-config.md"},d=i("",5),h=i("",2),u=e("p",null,[o("Additional root configuration objects exist, one for each class kind. These configuration objects govern behavior that applies to only objects of these types. Root configuration "),e("em",null,"can"),o(" be overridden using these objects, although the practicality of doing so is dubious.")],-1),f=e("h3",{id:"class-configuration",tabindex:"-1"},[o("Class Configuration "),e("a",{class:"header-anchor",href:"#class-configuration","aria-label":'Permalink to "Class Configuration"'},"​")],-1),p=e("p",null,[o("Each class kind has a static property named "),e("code",null,"coalesceConfig"),o(" that controls behavior for all instances of that class.")],-1),g=e("h3",{id:"instance-configuration",tabindex:"-1"},[o("Instance Configuration "),e("a",{class:"header-anchor",href:"#instance-configuration","aria-label":'Permalink to "Instance Configuration"'},"​")],-1),m=i("",10),b=e("p",null,"The relative url where the API may be found.",-1),v=e("p",null,"The relative url where the admin views may be found.",-1),_=e("p",null,[o("Whether or not the callback specified for "),e("code",null,"onFailure"),o(" will be called or not.")],-1),C=e("p",null,"A callback to be called when a failure response is received from the server.",-1),w=e("p",null,"A callback to be called when an AJAX request begins.",-1),y=e("p",null,"A callback to be called when an AJAX request completes.",-1),T=e("h3",{id:"app-configuration",tabindex:"-1"},[o("App Configuration "),e("a",{class:"header-anchor",href:"#app-configuration","aria-label":'Permalink to "App Configuration"'},"​")],-1),V=e("p",null,[o("These properties on "),e("code",null,"Coalesce.GlobalConfiguration.app"),o(" are not hierarchical - they govern the entire Coalesce application:")],-1),M=e("p",null,[o("The theme parameter to select2's constructor when called by Coalesce's select2 "),e("a",{href:"/Coalesce/stacks/ko/client/bindings.html"},"Knockout Bindings"),o(".")],-1),k=e("h3",{id:"viewmodelconfiguration",tabindex:"-1"},[o("ViewModelConfiguration "),e("a",{class:"header-anchor",href:"#viewmodelconfiguration","aria-label":'Permalink to "ViewModelConfiguration"'},"​")],-1),S=e("p",null,[o("Time to wait after a change is seen before auto-saving (if "),e("code",null,"autoSaveEnabled"),o(" is true). Acts as a debouncing timer for multiple simultaneous changes.")],-1),A=i("",4),P=e("p",null,[o("Determines whether changes to a model will be automatically saved after "),e("code",null,"saveTimeoutMs"),o(" milliseconds have elapsed.")],-1),N=e("p",null,"Determines whether or not changes to many-to-many collection properties will automatically trigger a save call to the server or not.",-1),D=e("p",null,[o("Whether to invoke "),e("code",null,"onStartBusy"),o(" and "),e("code",null,"onFinishBusy"),o(" during saves.")],-1),x=e("p",null,[o("Whether or not to reload the ViewModel with the state of the object received from the server after a call to "),e("code",null,".save()"),o(".")],-1),L=e("p",null,"Whether or not to validate the model after loading it from a DTO from the server. Disabling this can improve performance in some cases.",-1),j=e("p",null,[o("Whether or not validation on a ViewModel should be setup in its constructor, or if validation must be set up manually by calling "),e("code",null,"viewModel.setupValidation()"),o(". Turning this off can improve performance in read-only scenarios.")],-1),q=e("p",null,"An optional callback to be called when an object is loaded from a response from the server. Callback will be called after all properties on the ViewModel have been set from the server response.",-1),I=e("p",null,[o("The dataSource (either an instance or a type) that will be used as the initial dataSource when a new object of this type is created. Not valid for global configuration; recommended to be used on class-level configuration. E.g. "),e("code",null,"ViewModels.MyModel.coalesceConfig.initialDataSource(MyModel.dataSources.MyDataSource);")],-1),B=e("h3",{id:"listviewmodelconfiguration",tabindex:"-1"},[o("ListViewModelConfiguration "),e("a",{class:"header-anchor",href:"#listviewmodelconfiguration","aria-label":'Permalink to "ListViewModelConfiguration"'},"​")],-1),E=e("p",null,"No special configuration is currently available for ListViewModels.",-1),R=e("h3",{id:"serviceclientconfiguration",tabindex:"-1"},[o("ServiceClientConfiguration "),e("a",{class:"header-anchor",href:"#serviceclientconfiguration","aria-label":'Permalink to "ServiceClientConfiguration"'},"​")],-1),G=e("p",null,"No special configuration is currently available for ServiceClients.",-1);function O(F,W,$,U,J,H){const a=r("Prop");return s(),l("div",null,[d,t(a,{def:`Coalesce.GlobalConfiguration: ModelConfiguration<any> +Coalesce.GlobalConfiguration.app: AppConfiguration`,lang:"ts",id:"code-root-config"}),h,t(a,{def:`Coalesce.GlobalConfiguration.viewModel: ViewModelConfiguration<BaseViewModel> +Coalesce.GlobalConfiguration.listViewModel: ListViewModelConfiguration<BaseListViewModel<BaseViewModel>, BaseViewModel> +Coalesce.GlobalConfiguration.serviceClient: ServiceClientConfiguration<ServiceClient>`,lang:"ts",id:"code-global-config"}),u,f,t(a,{def:`ViewModels.ClassName.coalesceConfig: ViewModelConfiguration<ViewModels.ClassName> +ListViewModels.ClassNameList.coalesceConfig: ListViewModelConfiguration<ListViewModels.ClassNameList, ViewModels.ClassName> +Services.ServiceNameClient.coalesceConfig: ServiceClientConfiguration<ServiceName>`,lang:"ts",id:"code-class-config"}),p,g,t(a,{def:`instance.coalesceConfig: ViewModelConfiguration<ViewModels.ClassName> +listInstance.coalesceConfig: ListViewModelConfiguration<ListViewModels.ClassNameList, ViewModels.ClassName> +serviceInstance.coalesceConfig: ServiceClientConfiguration<ServiceName>`,lang:"ts",id:"code-instance-config"}),m,t(a,{def:"baseApiUrl: string = '/api'",lang:"ts"}),b,t(a,{def:"baseViewUrl: string = ''",lang:"ts"}),v,t(a,{def:"showFailureAlerts: boolean = true",lang:"ts"}),_,t(a,{def:"onFailure: (obj, message) => alert(message)",lang:"ts"}),C,t(a,{def:"onStartBusy: obj => Coalesce.Utilities.showBusy()",lang:"ts"}),w,t(a,{def:"onFinishBusy: obj => Coalesce.Utilities.hideBusy()",lang:"ts"}),y,T,V,t(a,{def:"select2Theme: string | null = null",lang:"ts"}),M,k,t(a,{def:"saveTimeoutMs: number = 500",lang:"ts"}),S,t(a,{def:"saveIncludedFields: string[] | null = null",lang:"ts"}),A,t(a,{def:"autoSaveEnabled: boolean = true",lang:"ts"}),P,t(a,{def:"autoSaveCollectionsEnabled: boolean = true",lang:"ts"}),N,t(a,{def:"showBusyWhenSaving: boolean = false",lang:"ts"}),D,t(a,{def:"loadResponseFromSaves: boolean = true",lang:"ts"}),x,t(a,{def:"validateOnLoadFromDto: boolean = true",lang:"ts"}),L,t(a,{def:"setupValidationAutomatically: boolean = true",lang:"ts"}),j,t(a,{def:"onLoadFromDto: null | ((object: T) => void) = null",lang:"ts"}),q,t(a,{def:"initialDataSource: null | DataSource<T> | (new () => DataSource<T>) = null",lang:"ts"}),I,B,E,R,G])}const z=n(c,[["render",O]]);export{X as __pageData,z as default}; diff --git a/assets/stacks_ko_client_view-model.md.ZI6fgw2k.js b/assets/stacks_ko_client_view-model.md.ZI6fgw2k.js new file mode 100644 index 000000000..a556d044d --- /dev/null +++ b/assets/stacks_ko_client_view-model.md.ZI6fgw2k.js @@ -0,0 +1,21 @@ +import{_ as s,c as l,I as a,a7 as n,l as e,a as t,o as i,E as r}from"./chunks/framework.Be4oCqIX.js";const ye=JSON.parse('{"title":"TypeScript ViewModels","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/client/view-model.md","filePath":"stacks/ko/client/view-model.md"}'),d={name:"stacks/ko/client/view-model.md"},c=n('<h1 id="typescript-viewmodels" tabindex="-1">TypeScript ViewModels <a class="header-anchor" href="#typescript-viewmodels" aria-label="Permalink to "TypeScript ViewModels"">​</a></h1><p>For each database-mapped type in your model, Coalesce will generate a TypeScript class that provides a multitude of functionality for interacting with the data on the client.</p><p>These ViewModels are dependent on <a href="https://knockoutjs.com/" target="_blank" rel="noreferrer">Knockout</a>, and are designed to be used directly from Knockout bindings in your HTML. All data properties on the generated model are Knockout observables.</p><h2 id="base-members" tabindex="-1">Base Members <a class="header-anchor" href="#base-members" aria-label="Permalink to "Base Members"">​</a></h2><p>The following base members are available to all generated ViewModel classes:</p>',5),h=e("p",null,[t("String that will be passed to the server when loading and saving that allows for data trimming via C# Attributes. See "),e("a",{href:"/Coalesce/concepts/includes.html"},"Includes String"),t(".")],-1),u=e("p",null,"Flag to use to determine if this item is checked. Only provided for convenience.",-1),p=e("p",null,"Flag to use to determine if this item is selected. Only provided for convenience.",-1),b=e("p",null,"Flag to use to determine if this item is being edited. Only provided for convenience.",-1),f=e("p",null,[t("Toggles the "),e("code",null,"isEditing"),t(" flag.")],-1),m=e("p",null,"Flag to use to determine if this item is expanded. Only provided for convenience.",-1),g=e("p",null,[t("Toggles the "),e("code",null,"isExpanded"),t(" flag.")],-1),_=e("p",null,"Flag to use to determine if this item is shown. Only provided for convenience.",-1),v=e("p",null,[t("Toggles the "),e("code",null,"isSelected"),t(" flag.")],-1),y=e("p",null,"Sets isSelected(true) on this object and clears on the rest of the items in the parent collection.",-1),w=e("p",null,"Dirty Flag. Set when a value on the model changes. Reset when the model is saved or reloaded.",-1),k=e("p",null,"True once the data has been loaded.",-1),C=e("p",null,"True if the object is loading.",-1),T=e("p",null,"True if the object is currently saving.",-1),S=e("p",null,"Returns true if the current object, or any of its children, are saving.",-1),M=e("p",null,"Loads the object from the server based on the id specified. If no id is specified, the current id, is used if one is set.",-1),P=e("p",null,"Loads any child objects that have an ID set, but not the full object. This is useful when creating an object that has a parent object and the ID is set on the new child.",-1),O=e("p",null,"Loads this object from a data transfer object received from the server.",-1),V=e("ul",null,[e("li",null,[e("code",null,"force"),t(" - Will override the check against isLoading that is done to prevent recursion.")]),e("li",null,[e("code",null,"allowCollectionDeletes"),t(" - Set true when entire collections are loaded. True is the default. In some cases only a partial collection is returned, set to false to only add/update collections.")])],-1),K=e("p",null,"Deletes the object without any prompt for confirmation.",-1),j=e("p",null,"Deletes the object if a prompt for confirmation is answered affirmatively.",-1),x=e("p",null,"Contains the error message from the last failed call to the server.",-1),D=e("p",null,[t("Register a callback to be called when a save is done. Returns "),e("code",null,"true"),t(" if the callback was registered, or "),e("code",null,"false"),t(" if the callback was already registered.")],-1),A=e("p",null,"Saves this object into a data transfer object to send to the server.",-1),I=e("p",null,"Saves the object to the server and then calls a callback. Returns false if there are validation errors.",-1),E=e("p",null,"Parent of this object, if this object was loaded as part of a hierarchy.",-1),F=e("p",null,"Parent of this object, if this object was loaded as part of list of objects.",-1),L=e("p",null,"URL to a stock editor for this object.",-1),N=e("p",null,"Displays an editor for the object in a modal dialog.",-1),R=e("p",null,"Triggers any validation messages to be shown, and returns a bool that indicates if there are any validation errors.",-1),B=e("p",null,"ValidationIssues returned from the server when trying to persist data",-1),q=e("p",null,"List of warnings found during validation. Saving is still allowed with warnings present.",-1),J=e("p",null,"List of errors found during validation. Any errors present will prevent saving.",-1),G=e("h2",{id:"model-specific-members",tabindex:"-1"},[t("Model-Specific Members "),e("a",{class:"header-anchor",href:"#model-specific-members","aria-label":'Permalink to "Model-Specific Members"'},"​")],-1),H=e("p",null,[t("The following members are generated for each generated ViewModel class and are unique to each class. The examples below are based on a type named "),e("code",null,"Person"),t(".")],-1),Q=e("h3",{id:"configuration",tabindex:"-1"},[t("Configuration "),e("a",{class:"header-anchor",href:"#configuration","aria-label":'Permalink to "Configuration"'},"​")],-1),$=e("p",null,[t("A static configuration object for configuring all instances of the ViewModel's type is created. See "),e("a",{href:"/Coalesce/stacks/ko/client/model-config.html"},"ViewModel Configuration"),t(".")],-1),U=e("p",null,[t("An per-instance configuration object for configuring each specific ViewModel instance is created. See "),e("a",{href:"/Coalesce/stacks/ko/client/model-config.html"},"ViewModel Configuration"),t(".")],-1),W=e("h3",{id:"datasources",tabindex:"-1"},[t("DataSources "),e("a",{class:"header-anchor",href:"#datasources","aria-label":'Permalink to "DataSources"'},"​")],-1),z=n('<p>For each of the <a href="/Coalesce/modeling/model-components/data-sources.html">Data Sources</a> for a model, a class will be added to a namespace named <code>ListViewModels.<ClassName>DataSources</code>. This namespace can always be accessed on both <code>ViewModel</code> and <code>ListViewModel</code> instances via the <code>dataSources</code> property, and class instances can be assigned to the <code>dataSource</code> property.</p><h3 id="data-properties" tabindex="-1">Data Properties <a class="header-anchor" href="#data-properties" aria-label="Permalink to "Data Properties"">​</a></h3>',2),X=e("p",null,[t("For each exposed property on the underlying EF POCO, a "),e("code",null,"KnockoutObservable<T>"),t(" property will exist on the TypeScript model. For navigation properties, these will be typed with the corresponding TypeScript ViewModel for the other end of the relationship. For collections (including collection navigation properties), these properties will be "),e("code",null,"KnockoutObservableArray<T>"),t(" objects.")],-1),Y=e("h3",{id:"enum-members",tabindex:"-1"},[t("Enum Members "),e("a",{class:"header-anchor",href:"#enum-members","aria-label":'Permalink to "Enum Members"'},"​")],-1),Z=e("p",null,[t("For each "),e("code",null,"enum"),t(" property on your POCO, the following will be created:")],-1),ee=e("p",null,[t("A "),e("code",null,"KnockoutComputed<string>"),t(" property that will provide the text to display for that property.")],-1),te=e("p",null,[t("A static array of objects with properties "),e("code",null,"id"),t(" and "),e("code",null,"value"),t(" that represent all the values of the enum.")],-1),oe=e("p",null,[t("A TypeScript enum that mirrors the C# enum directly. This enum is in a sub-namespace of "),e("code",null,"ViewModels"),t(" named the same as the class name.")],-1),ae=e("h3",{id:"collection-navigation-property-helpers",tabindex:"-1"},[t("Collection Navigation Property Helpers "),e("a",{class:"header-anchor",href:"#collection-navigation-property-helpers","aria-label":'Permalink to "Collection Navigation Property Helpers"'},"​")],-1),ne=e("p",null,"For each collection navigation property on the POCO, the following members will be created:",-1),se=e("p",null,[t("A method that will add a new object to that collection property. If "),e("code",null,"autoSave"),t(" is specified, the auto-save behavior of the new object will be set to that value. Otherwise, the inherited default will be used (see "),e("a",{href:"/Coalesce/stacks/ko/client/model-config.html"},"ViewModel Configuration"),t(")")],-1),le=e("p",null,[t("A "),e("code",null,"KnockoutComputed<string>"),t(" that evaluates to a relative url for the generated table view that contains only the items that belong to the collection navigation property.")],-1),ie=e("h3",{id:"reference-navigation-property-helpers",tabindex:"-1"},[t("Reference Navigation Property Helpers "),e("a",{class:"header-anchor",href:"#reference-navigation-property-helpers","aria-label":'Permalink to "Reference Navigation Property Helpers"'},"​")],-1),re=e("p",null,[t("For each reference navigation property on the POCO a method will be created that will call "),e("code",null,"showEditor"),t(" on that current value of the navigation property, or on a new instance if the current value is null.")],-1),de=e("p",null,[t("For each reference navigation property, a "),e("code",null,"KnockoutComputed<string>"),t(" property will be created that will provide the text to display for that property. This will be the property on the class annotated with "),e("a",{href:"/Coalesce/modeling/model-components/attributes/list-text.html"},"[ListText]"),t(".")],-1),ce=e("h3",{id:"instance-method-members",tabindex:"-1"},[t("Instance Method Members "),e("a",{class:"header-anchor",href:"#instance-method-members","aria-label":'Permalink to "Instance Method Members"'},"​")],-1),he=e("p",null,[t("For each "),e("a",{href:"/Coalesce/modeling/model-components/methods.html"},"Instance Method"),t(" on your POCO, a class and instance member will be created as described in "),e("a",{href:"/Coalesce/stacks/ko/client/methods.html"},"Methods - Generated TypeScript"),t(".")],-1);function ue(pe,be,fe,me,ge,_e){const o=r("Prop");return i(),l("div",null,[c,a(o,{def:"includes: string",lang:"ts"}),h,a(o,{def:"isChecked: KnockoutObservable<boolean>",lang:"ts"}),u,a(o,{def:"isSelected: KnockoutObservable<boolean>",lang:"ts"}),p,a(o,{def:"isEditing: KnockoutObservable<boolean>",lang:"ts"}),b,a(o,{def:"toggleIsEditing () => void",lang:"ts"}),f,a(o,{def:"isExpanded: KnockoutObservable<boolean>",lang:"ts"}),m,a(o,{def:"toggleIsExpanded: () => void",lang:"ts"}),g,a(o,{def:"isVisible: KnockoutObservable<boolean>",lang:"ts"}),_,a(o,{def:"toggleIsSelected () => void",lang:"ts"}),v,a(o,{def:"selectSingle: (): boolean",lang:"ts"}),y,a(o,{def:"isDirty: KnockoutObservable<boolean>",lang:"ts"}),w,a(o,{def:"isLoaded: KnockoutObservable<boolean>",lang:"ts"}),k,a(o,{def:"isLoading: KnockoutObservable<boolean>",lang:"ts"}),C,a(o,{def:"isSaving: KnockoutObservable<boolean>",lang:"ts"}),T,a(o,{def:"isThisOrChildSaving: KnockoutComputed<boolean>",lang:"ts"}),S,a(o,{def:"load: id: any, callback?: (self: T) => void): JQueryPromise<any> | undefined",lang:"ts"}),M,a(o,{def:"loadChildren: callback?: () => void) => void",lang:"ts"}),P,a(o,{def:"loadFromDto: data: any, force?: boolean, allowCollectionDeletes?: boolean) => void",lang:"ts"}),O,V,a(o,{def:"deleteItem: callback?: (self: T) => void): JQueryPromise<any> | undefined",lang:"ts"}),K,a(o,{def:"deleteItemWithConfirmation: callback?: () => void, message?: string): JQueryPromise<any> | undefined",lang:"ts"}),j,a(o,{def:"errorMessage: KnockoutObservable<string>",lang:"ts"}),x,a(o,{def:"onSave: callback: (self: T) => void): boolean",lang:"ts"}),D,a(o,{def:"saveToDto: () => any",lang:"ts"}),A,a(o,{def:"save: callback?: (self: T) => void): JQueryPromise<any> | boolean | undefined",lang:"ts"}),I,a(o,{def:"parent: any",lang:"ts"}),E,a(o,{def:"parentCollection: KnockoutObservableArray<T>",lang:"ts"}),F,a(o,{def:"editUrl: KnockoutComputed<string>",lang:"ts"}),L,a(o,{def:"showEditor: callback?: any): JQueryPromise<any>",lang:"ts"}),N,a(o,{def:"validate: (): boolean",lang:"ts"}),R,a(o,{def:"validationIssues: any",lang:"ts"}),B,a(o,{def:"warnings: KnockoutValidationErrors",lang:"ts"}),q,a(o,{def:"errors: KnockoutValidationErrors",lang:"ts"}),J,G,H,Q,a(o,{def:"static coalesceConfig: Coalesce.ViewModelConfiguration<Person>",lang:"ts",id:"member-class-config"}),$,a(o,{def:"coalesceConfig: Coalesce.ViewModelConfiguration<Person>",lang:"ts",id:"member-instance-config"}),U,W,a(o,{def:` +public dataSources = ListViewModels.PersonDataSources; +public dataSource: DataSource<Person> = new this.dataSources.Default();`,lang:"ts",id:"code-data-source-members"}),z,a(o,{def:` +public personId: KnockoutObservable<number | null> = ko.observable(null); +public fullName: KnockoutObservable<string | null> = ko.observable(null); +public gender: KnockoutObservable<number | null> = ko.observable(null); +public companyId: KnockoutObservable<number | null> = ko.observable(null); +public company: KnockoutObservable<ViewModels.Company | null> = ko.observable(null); +public addresses: KnockoutObservableArray<ViewModels.Address> = ko.observableArray([]); +public birthDate: KnockoutObservable<moment.Moment | null> = ko.observable(moment());`,lang:"ts",id:"code-data-members"}),X,Y,Z,a(o,{def:"public genderText: KnockoutComputed<string | null>",lang:"ts"}),ee,a(o,{def:`public genderValues: Coalesce.EnumValue[] = [ + { id: 1, value: 'Male' }, + { id: 2, value: 'Female' }, + { id: 3, value: 'Other' }, +];`,lang:"ts",id:"code-enum-members"}),te,a(o,{def:`export namespace Person { + export enum GenderEnum { + Male = 1, + Female = 2, + Other = 3, + }; +}`,lang:"ts","no-class":"",id:"code-enum-def"}),oe,ae,ne,a(o,{def:"public addToAddresses: (autoSave?: boolean) => ViewModels.Address;",lang:"ts"}),se,a(o,{def:"public addressesListUrl: KnockoutComputed<string>;",lang:"ts"}),le,ie,a(o,{def:"public showCompanyEditor: (callback?: any) => void;",lang:"ts"}),re,a(o,{def:"public companyText: KnockoutComputed<string>;",lang:"ts"}),de,ce,a(o,{def:`public readonly getBirthDate = new Person.GetBirthDate(this); +public static GetBirthDate = class GetBirthDate extends Coalesce.ClientMethod<Person, moment.Moment> { ... };`,lang:"ts",id:"code-instance-method-members"}),he])}const we=s(d,[["render",ue]]);export{ye as __pageData,we as default}; diff --git a/assets/stacks_ko_client_view-model.md.ZI6fgw2k.lean.js b/assets/stacks_ko_client_view-model.md.ZI6fgw2k.lean.js new file mode 100644 index 000000000..a89033e95 --- /dev/null +++ b/assets/stacks_ko_client_view-model.md.ZI6fgw2k.lean.js @@ -0,0 +1,21 @@ +import{_ as s,c as l,I as a,a7 as n,l as e,a as t,o as i,E as r}from"./chunks/framework.Be4oCqIX.js";const ye=JSON.parse('{"title":"TypeScript ViewModels","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/client/view-model.md","filePath":"stacks/ko/client/view-model.md"}'),d={name:"stacks/ko/client/view-model.md"},c=n("",5),h=e("p",null,[t("String that will be passed to the server when loading and saving that allows for data trimming via C# Attributes. See "),e("a",{href:"/Coalesce/concepts/includes.html"},"Includes String"),t(".")],-1),u=e("p",null,"Flag to use to determine if this item is checked. Only provided for convenience.",-1),p=e("p",null,"Flag to use to determine if this item is selected. Only provided for convenience.",-1),b=e("p",null,"Flag to use to determine if this item is being edited. Only provided for convenience.",-1),f=e("p",null,[t("Toggles the "),e("code",null,"isEditing"),t(" flag.")],-1),m=e("p",null,"Flag to use to determine if this item is expanded. Only provided for convenience.",-1),g=e("p",null,[t("Toggles the "),e("code",null,"isExpanded"),t(" flag.")],-1),_=e("p",null,"Flag to use to determine if this item is shown. Only provided for convenience.",-1),v=e("p",null,[t("Toggles the "),e("code",null,"isSelected"),t(" flag.")],-1),y=e("p",null,"Sets isSelected(true) on this object and clears on the rest of the items in the parent collection.",-1),w=e("p",null,"Dirty Flag. Set when a value on the model changes. Reset when the model is saved or reloaded.",-1),k=e("p",null,"True once the data has been loaded.",-1),C=e("p",null,"True if the object is loading.",-1),T=e("p",null,"True if the object is currently saving.",-1),S=e("p",null,"Returns true if the current object, or any of its children, are saving.",-1),M=e("p",null,"Loads the object from the server based on the id specified. If no id is specified, the current id, is used if one is set.",-1),P=e("p",null,"Loads any child objects that have an ID set, but not the full object. This is useful when creating an object that has a parent object and the ID is set on the new child.",-1),O=e("p",null,"Loads this object from a data transfer object received from the server.",-1),V=e("ul",null,[e("li",null,[e("code",null,"force"),t(" - Will override the check against isLoading that is done to prevent recursion.")]),e("li",null,[e("code",null,"allowCollectionDeletes"),t(" - Set true when entire collections are loaded. True is the default. In some cases only a partial collection is returned, set to false to only add/update collections.")])],-1),K=e("p",null,"Deletes the object without any prompt for confirmation.",-1),j=e("p",null,"Deletes the object if a prompt for confirmation is answered affirmatively.",-1),x=e("p",null,"Contains the error message from the last failed call to the server.",-1),D=e("p",null,[t("Register a callback to be called when a save is done. Returns "),e("code",null,"true"),t(" if the callback was registered, or "),e("code",null,"false"),t(" if the callback was already registered.")],-1),A=e("p",null,"Saves this object into a data transfer object to send to the server.",-1),I=e("p",null,"Saves the object to the server and then calls a callback. Returns false if there are validation errors.",-1),E=e("p",null,"Parent of this object, if this object was loaded as part of a hierarchy.",-1),F=e("p",null,"Parent of this object, if this object was loaded as part of list of objects.",-1),L=e("p",null,"URL to a stock editor for this object.",-1),N=e("p",null,"Displays an editor for the object in a modal dialog.",-1),R=e("p",null,"Triggers any validation messages to be shown, and returns a bool that indicates if there are any validation errors.",-1),B=e("p",null,"ValidationIssues returned from the server when trying to persist data",-1),q=e("p",null,"List of warnings found during validation. Saving is still allowed with warnings present.",-1),J=e("p",null,"List of errors found during validation. Any errors present will prevent saving.",-1),G=e("h2",{id:"model-specific-members",tabindex:"-1"},[t("Model-Specific Members "),e("a",{class:"header-anchor",href:"#model-specific-members","aria-label":'Permalink to "Model-Specific Members"'},"​")],-1),H=e("p",null,[t("The following members are generated for each generated ViewModel class and are unique to each class. The examples below are based on a type named "),e("code",null,"Person"),t(".")],-1),Q=e("h3",{id:"configuration",tabindex:"-1"},[t("Configuration "),e("a",{class:"header-anchor",href:"#configuration","aria-label":'Permalink to "Configuration"'},"​")],-1),$=e("p",null,[t("A static configuration object for configuring all instances of the ViewModel's type is created. See "),e("a",{href:"/Coalesce/stacks/ko/client/model-config.html"},"ViewModel Configuration"),t(".")],-1),U=e("p",null,[t("An per-instance configuration object for configuring each specific ViewModel instance is created. See "),e("a",{href:"/Coalesce/stacks/ko/client/model-config.html"},"ViewModel Configuration"),t(".")],-1),W=e("h3",{id:"datasources",tabindex:"-1"},[t("DataSources "),e("a",{class:"header-anchor",href:"#datasources","aria-label":'Permalink to "DataSources"'},"​")],-1),z=n("",2),X=e("p",null,[t("For each exposed property on the underlying EF POCO, a "),e("code",null,"KnockoutObservable<T>"),t(" property will exist on the TypeScript model. For navigation properties, these will be typed with the corresponding TypeScript ViewModel for the other end of the relationship. For collections (including collection navigation properties), these properties will be "),e("code",null,"KnockoutObservableArray<T>"),t(" objects.")],-1),Y=e("h3",{id:"enum-members",tabindex:"-1"},[t("Enum Members "),e("a",{class:"header-anchor",href:"#enum-members","aria-label":'Permalink to "Enum Members"'},"​")],-1),Z=e("p",null,[t("For each "),e("code",null,"enum"),t(" property on your POCO, the following will be created:")],-1),ee=e("p",null,[t("A "),e("code",null,"KnockoutComputed<string>"),t(" property that will provide the text to display for that property.")],-1),te=e("p",null,[t("A static array of objects with properties "),e("code",null,"id"),t(" and "),e("code",null,"value"),t(" that represent all the values of the enum.")],-1),oe=e("p",null,[t("A TypeScript enum that mirrors the C# enum directly. This enum is in a sub-namespace of "),e("code",null,"ViewModels"),t(" named the same as the class name.")],-1),ae=e("h3",{id:"collection-navigation-property-helpers",tabindex:"-1"},[t("Collection Navigation Property Helpers "),e("a",{class:"header-anchor",href:"#collection-navigation-property-helpers","aria-label":'Permalink to "Collection Navigation Property Helpers"'},"​")],-1),ne=e("p",null,"For each collection navigation property on the POCO, the following members will be created:",-1),se=e("p",null,[t("A method that will add a new object to that collection property. If "),e("code",null,"autoSave"),t(" is specified, the auto-save behavior of the new object will be set to that value. Otherwise, the inherited default will be used (see "),e("a",{href:"/Coalesce/stacks/ko/client/model-config.html"},"ViewModel Configuration"),t(")")],-1),le=e("p",null,[t("A "),e("code",null,"KnockoutComputed<string>"),t(" that evaluates to a relative url for the generated table view that contains only the items that belong to the collection navigation property.")],-1),ie=e("h3",{id:"reference-navigation-property-helpers",tabindex:"-1"},[t("Reference Navigation Property Helpers "),e("a",{class:"header-anchor",href:"#reference-navigation-property-helpers","aria-label":'Permalink to "Reference Navigation Property Helpers"'},"​")],-1),re=e("p",null,[t("For each reference navigation property on the POCO a method will be created that will call "),e("code",null,"showEditor"),t(" on that current value of the navigation property, or on a new instance if the current value is null.")],-1),de=e("p",null,[t("For each reference navigation property, a "),e("code",null,"KnockoutComputed<string>"),t(" property will be created that will provide the text to display for that property. This will be the property on the class annotated with "),e("a",{href:"/Coalesce/modeling/model-components/attributes/list-text.html"},"[ListText]"),t(".")],-1),ce=e("h3",{id:"instance-method-members",tabindex:"-1"},[t("Instance Method Members "),e("a",{class:"header-anchor",href:"#instance-method-members","aria-label":'Permalink to "Instance Method Members"'},"​")],-1),he=e("p",null,[t("For each "),e("a",{href:"/Coalesce/modeling/model-components/methods.html"},"Instance Method"),t(" on your POCO, a class and instance member will be created as described in "),e("a",{href:"/Coalesce/stacks/ko/client/methods.html"},"Methods - Generated TypeScript"),t(".")],-1);function ue(pe,be,fe,me,ge,_e){const o=r("Prop");return i(),l("div",null,[c,a(o,{def:"includes: string",lang:"ts"}),h,a(o,{def:"isChecked: KnockoutObservable<boolean>",lang:"ts"}),u,a(o,{def:"isSelected: KnockoutObservable<boolean>",lang:"ts"}),p,a(o,{def:"isEditing: KnockoutObservable<boolean>",lang:"ts"}),b,a(o,{def:"toggleIsEditing () => void",lang:"ts"}),f,a(o,{def:"isExpanded: KnockoutObservable<boolean>",lang:"ts"}),m,a(o,{def:"toggleIsExpanded: () => void",lang:"ts"}),g,a(o,{def:"isVisible: KnockoutObservable<boolean>",lang:"ts"}),_,a(o,{def:"toggleIsSelected () => void",lang:"ts"}),v,a(o,{def:"selectSingle: (): boolean",lang:"ts"}),y,a(o,{def:"isDirty: KnockoutObservable<boolean>",lang:"ts"}),w,a(o,{def:"isLoaded: KnockoutObservable<boolean>",lang:"ts"}),k,a(o,{def:"isLoading: KnockoutObservable<boolean>",lang:"ts"}),C,a(o,{def:"isSaving: KnockoutObservable<boolean>",lang:"ts"}),T,a(o,{def:"isThisOrChildSaving: KnockoutComputed<boolean>",lang:"ts"}),S,a(o,{def:"load: id: any, callback?: (self: T) => void): JQueryPromise<any> | undefined",lang:"ts"}),M,a(o,{def:"loadChildren: callback?: () => void) => void",lang:"ts"}),P,a(o,{def:"loadFromDto: data: any, force?: boolean, allowCollectionDeletes?: boolean) => void",lang:"ts"}),O,V,a(o,{def:"deleteItem: callback?: (self: T) => void): JQueryPromise<any> | undefined",lang:"ts"}),K,a(o,{def:"deleteItemWithConfirmation: callback?: () => void, message?: string): JQueryPromise<any> | undefined",lang:"ts"}),j,a(o,{def:"errorMessage: KnockoutObservable<string>",lang:"ts"}),x,a(o,{def:"onSave: callback: (self: T) => void): boolean",lang:"ts"}),D,a(o,{def:"saveToDto: () => any",lang:"ts"}),A,a(o,{def:"save: callback?: (self: T) => void): JQueryPromise<any> | boolean | undefined",lang:"ts"}),I,a(o,{def:"parent: any",lang:"ts"}),E,a(o,{def:"parentCollection: KnockoutObservableArray<T>",lang:"ts"}),F,a(o,{def:"editUrl: KnockoutComputed<string>",lang:"ts"}),L,a(o,{def:"showEditor: callback?: any): JQueryPromise<any>",lang:"ts"}),N,a(o,{def:"validate: (): boolean",lang:"ts"}),R,a(o,{def:"validationIssues: any",lang:"ts"}),B,a(o,{def:"warnings: KnockoutValidationErrors",lang:"ts"}),q,a(o,{def:"errors: KnockoutValidationErrors",lang:"ts"}),J,G,H,Q,a(o,{def:"static coalesceConfig: Coalesce.ViewModelConfiguration<Person>",lang:"ts",id:"member-class-config"}),$,a(o,{def:"coalesceConfig: Coalesce.ViewModelConfiguration<Person>",lang:"ts",id:"member-instance-config"}),U,W,a(o,{def:` +public dataSources = ListViewModels.PersonDataSources; +public dataSource: DataSource<Person> = new this.dataSources.Default();`,lang:"ts",id:"code-data-source-members"}),z,a(o,{def:` +public personId: KnockoutObservable<number | null> = ko.observable(null); +public fullName: KnockoutObservable<string | null> = ko.observable(null); +public gender: KnockoutObservable<number | null> = ko.observable(null); +public companyId: KnockoutObservable<number | null> = ko.observable(null); +public company: KnockoutObservable<ViewModels.Company | null> = ko.observable(null); +public addresses: KnockoutObservableArray<ViewModels.Address> = ko.observableArray([]); +public birthDate: KnockoutObservable<moment.Moment | null> = ko.observable(moment());`,lang:"ts",id:"code-data-members"}),X,Y,Z,a(o,{def:"public genderText: KnockoutComputed<string | null>",lang:"ts"}),ee,a(o,{def:`public genderValues: Coalesce.EnumValue[] = [ + { id: 1, value: 'Male' }, + { id: 2, value: 'Female' }, + { id: 3, value: 'Other' }, +];`,lang:"ts",id:"code-enum-members"}),te,a(o,{def:`export namespace Person { + export enum GenderEnum { + Male = 1, + Female = 2, + Other = 3, + }; +}`,lang:"ts","no-class":"",id:"code-enum-def"}),oe,ae,ne,a(o,{def:"public addToAddresses: (autoSave?: boolean) => ViewModels.Address;",lang:"ts"}),se,a(o,{def:"public addressesListUrl: KnockoutComputed<string>;",lang:"ts"}),le,ie,a(o,{def:"public showCompanyEditor: (callback?: any) => void;",lang:"ts"}),re,a(o,{def:"public companyText: KnockoutComputed<string>;",lang:"ts"}),de,ce,a(o,{def:`public readonly getBirthDate = new Person.GetBirthDate(this); +public static GetBirthDate = class GetBirthDate extends Coalesce.ClientMethod<Person, moment.Moment> { ... };`,lang:"ts",id:"code-instance-method-members"}),he])}const we=s(d,[["render",ue]]);export{ye as __pageData,we as default}; diff --git a/assets/stacks_ko_getting-started.md.G_8elEmE.js b/assets/stacks_ko_getting-started.md.G_8elEmE.js new file mode 100644 index 000000000..9c65def14 --- /dev/null +++ b/assets/stacks_ko_getting-started.md.G_8elEmE.js @@ -0,0 +1,51 @@ +import{_ as s,c as a,o as n,a7 as l}from"./chunks/framework.Be4oCqIX.js";const u=JSON.parse('{"title":"Getting Started with Knockout","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/getting-started.md","filePath":"stacks/ko/getting-started.md"}'),o={name:"stacks/ko/getting-started.md"},e=l(`<h1 id="getting-started-with-knockout" tabindex="-1">Getting Started with Knockout <a class="header-anchor" href="#getting-started-with-knockout" aria-label="Permalink to "Getting Started with Knockout"">​</a></h1><h2 id="creating-a-project" tabindex="-1">Creating a Project <a class="header-anchor" href="#creating-a-project" aria-label="Permalink to "Creating a Project"">​</a></h2><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>The Coalesce Knockout.js stack is deprecated and will be receiving only critical bug fixes going forward. You are strongly encouraged to start all new Coalesce projects with <a href="./../vue/getting-started.html">Vue</a>.</p></div><p>The quickest and easiest way to create a new Coalesce Knockout application is to use the <code>dotnet new</code> template. In your favorite shell:</p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#DCDCAA;">dotnet</span><span style="color:#CE9178;"> new</span><span style="color:#CE9178;"> install</span><span style="color:#CE9178;"> IntelliTect.Coalesce.KnockoutJS.Template</span></span> +<span class="line"><span style="color:#DCDCAA;">dotnet</span><span style="color:#CE9178;"> new</span><span style="color:#CE9178;"> coalesceko</span></span></code></pre></div><p><a href="https://www.nuget.org/packages/IntelliTect.Coalesce.KnockoutJS.Template/" target="_blank" rel="noreferrer"><img src="https://img.shields.io/nuget/v/IntelliTect.Coalesce.KnockoutJS.Template" alt=""></a> • <a href="https://github.com/IntelliTect/Coalesce.KnockoutJS.Template" target="_blank" rel="noreferrer">View on GitHub</a></p><h2 id="data-modeling" tabindex="-1">Data Modeling <a class="header-anchor" href="#data-modeling" aria-label="Permalink to "Data Modeling"">​</a></h2><p>At this point, you can open up the newly-created solution in Visual Studio and run your application. However, your application won't do much without a data model, so you will probably want to do the following before running:</p><ul><li><p>Create an initial <a href="/Coalesce/modeling/model-types/entities.html">Data Model</a> by adding EF entity classes to the data project and the corresponding <code>DbSet<></code> properties to <code>AppDbContext</code>. You will notice that the starter project includes a single model, <code>Widget</code>, to start with. Feel free to change this model or remove it entirely. Read <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> for more information about creating a data model.</p></li><li><p>Run <code>dotnet ef migrations add Init</code> (Init can be any name) in the data project to create an initial database migration.</p></li><li><p>Run Coalesce's code generation by either:</p><ul><li>Running <code>dotnet coalesce</code> in the web project's root directory</li><li>Running the <code>coalesce</code> npm script (Vue) or gulp task (Knockout) in the Task Runner Explorer</li></ul></li></ul><p>You're now at a point where you can start creating your own pages!</p><h2 id="building-pages-features" tabindex="-1">Building Pages & Features <a class="header-anchor" href="#building-pages-features" aria-label="Permalink to "Building Pages & Features"">​</a></h2><p>Lets say we've created a <a href="/Coalesce/modeling/model-types/entities.html">model</a> called <code>Person</code> as follows, and we've ran code generation with <code>dotnet coalesce</code>:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">namespace</span><span style="color:#4EC9B0;"> MyApplication</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Data</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Models</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Name</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DateTimeOffset</span><span style="color:#D4D4D4;">? </span><span style="color:#9CDCFE;">BirthDate</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>We can create a details page for a Person by creating:</p><ul><li><p>A controller in <code>src/MyApplication.Web/Controllers/PersonController.cs</code>:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">namespace</span><span style="color:#4EC9B0;"> MyApplication</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Web</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Controllers</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> partial</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> PersonController</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> IActionResult</span><span style="color:#DCDCAA;"> Details</span><span style="color:#D4D4D4;">() => </span><span style="color:#DCDCAA;">View</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div></li><li><p>A view in <code>src/MyApplication.Web/Views/Person/Details.cshtml</code>:</p><div class="language-razor"><button title="Copy Code" class="copy"></button><span class="lang">razor</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">h1</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">Person Details</span><span style="color:#808080;"></</span><span style="color:#569CD6;">h1</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"with: person"</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">dl</span><span style="color:#9CDCFE;"> class</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"dl-horizontal"</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">dt</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">Name </span><span style="color:#808080;"></</span><span style="color:#569CD6;">dt</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">dd</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"text: name"</span><span style="color:#808080;">></</span><span style="color:#569CD6;">dd</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">dt</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">Date of Birth </span><span style="color:#808080;"></</span><span style="color:#569CD6;">dt</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">dd</span><span style="color:#9CDCFE;"> data-bind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"moment: birthDate, format: 'MM/DD/YYYY hh:mm a'"</span><span style="color:#808080;">></</span><span style="color:#569CD6;">dd</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> </</span><span style="color:#569CD6;">dl</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">div</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#C586C0;">@section</span><span style="color:#9CDCFE;"> Scripts</span></span> +<span class="line"><span style="color:#C586C0;">{</span></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> src</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"~/js/person.details.js"</span><span style="color:#808080;">></</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#DCDCAA;"> $</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">function</span><span style="color:#D4D4D4;"> () {</span></span> +<span class="line"><span style="color:#569CD6;"> var</span><span style="color:#9CDCFE;"> vm</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#9CDCFE;"> MyApplication</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">PersonDetails</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#9CDCFE;"> ko</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">applyBindings</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">vm</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#9CDCFE;"> vm</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">load</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#D4D4D4;"> });</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#C586C0;">}</span></span></code></pre></div></li><li><p>And a script in <code>src/MyApplication.Web/Scripts/person.details.ts</code>:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#6A9955;">/// </span><span style="color:#808080;"><</span><span style="color:#569CD6;">reference</span><span style="color:#9CDCFE;"> path</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"viewmodels.generated.d.ts"</span><span style="color:#808080;"> /></span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">module</span><span style="color:#4EC9B0;"> MyApplication</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#C586C0;"> export</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> PersonDetails</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#9CDCFE;"> person</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#9CDCFE;"> ViewModels</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Person</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#DCDCAA;"> load</span><span style="color:#D4D4D4;">() {</span></span> +<span class="line"><span style="color:#569CD6;"> var</span><span style="color:#9CDCFE;"> id</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">Coalesce</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Utilities</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">GetUrlParameter</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"id"</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">id</span><span style="color:#D4D4D4;"> != </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;"> && </span><span style="color:#9CDCFE;">id</span><span style="color:#D4D4D4;"> != </span><span style="color:#CE9178;">''</span><span style="color:#D4D4D4;">) {</span></span> +<span class="line"><span style="color:#569CD6;"> this</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">load</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">id</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div></li></ul><p>With these pieces in place, we now have a functioning page that will display details about a person. We can start up the application and navigate to <code>/Person/Details?id=1</code> (assuming a person with ID 1 exists - if not, navigate to <code>/Person/Table</code> and create one).</p><p>From this point, one can start adding more fields, more features, and more flair to the page. Check out all the other documentation in the sidebar to see what else Coalesce has to offer, including the <a href="/Coalesce/stacks/ko/overview.html">Knockout Overview</a>.</p>`,17),p=[e];function t(c,r,i,D,y,d){return n(),a("div",null,p)}const g=s(o,[["render",t]]);export{u as __pageData,g as default}; diff --git a/assets/stacks_ko_getting-started.md.G_8elEmE.lean.js b/assets/stacks_ko_getting-started.md.G_8elEmE.lean.js new file mode 100644 index 000000000..f17142945 --- /dev/null +++ b/assets/stacks_ko_getting-started.md.G_8elEmE.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as n,a7 as l}from"./chunks/framework.Be4oCqIX.js";const u=JSON.parse('{"title":"Getting Started with Knockout","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/getting-started.md","filePath":"stacks/ko/getting-started.md"}'),o={name:"stacks/ko/getting-started.md"},e=l("",17),p=[e];function t(c,r,i,D,y,d){return n(),a("div",null,p)}const g=s(o,[["render",t]]);export{u as __pageData,g as default}; diff --git a/assets/stacks_ko_overview.md.BMODd3xy.js b/assets/stacks_ko_overview.md.BMODd3xy.js new file mode 100644 index 000000000..04710ad26 --- /dev/null +++ b/assets/stacks_ko_overview.md.BMODd3xy.js @@ -0,0 +1 @@ +import{_ as e,c as o,o as t,a7 as a}from"./chunks/framework.Be4oCqIX.js";const u=JSON.parse('{"title":"Knockout Overview","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/overview.md","filePath":"stacks/ko/overview.md"}'),i={name:"stacks/ko/overview.md"},r=a('<h1 id="knockout-overview" tabindex="-1">Knockout Overview <a class="header-anchor" href="#knockout-overview" aria-label="Permalink to "Knockout Overview"">​</a></h1><p>The <a href="https://knockoutjs.com/" target="_blank" rel="noreferrer">Knockout</a> stack for Coalesce offers the ability to build pages with the time-tested <a href="https://knockoutjs.com/" target="_blank" rel="noreferrer">Knockout</a> JavaScript library using all of the features of the Coalesce generated APIs and <a href="/Coalesce/stacks/disambiguation/view-model.html">ViewModels</a>. It can be used for anything between adding simple interactive augmentations of MVC pages to building a full MPA-SPA hybrid application.</p><h2 id="getting-started" tabindex="-1">Getting Started <a class="header-anchor" href="#getting-started" aria-label="Permalink to "Getting Started"">​</a></h2><p>Check out <a href="/Coalesce/stacks/ko/getting-started.html">Getting Started with Knockout</a> if you haven't already to learn how to get a new Coalesce Knockout project up and running.</p><h2 id="generated-code" tabindex="-1">Generated Code <a class="header-anchor" href="#generated-code" aria-label="Permalink to "Generated Code"">​</a></h2><p>Below you will find a brief overview of each of the different pieces of code that Coalesce will generate for you when you choose the Knockout stack.</p><h3 id="typescript" tabindex="-1">TypeScript <a class="header-anchor" href="#typescript" aria-label="Permalink to "TypeScript"">​</a></h3><p>Coalesce generates a number of different types of TypeScript classes to support your data through the generated API.</p><h4 id="viewmodels" tabindex="-1"><a href="/Coalesce/stacks/ko/client/view-model.html">ViewModels</a> <a class="header-anchor" href="#viewmodels" aria-label="Permalink to "[ViewModels](/stacks/ko/client/view-model.md)"">​</a></h4><p>One view model class is generated for each of your <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>. These models contain fields for your model <a href="/Coalesce/modeling/model-components/properties.html">Properties</a>, and functions and other members for your model <a href="/Coalesce/modeling/model-components/methods.html">Methods</a>. They also contain a number of standard fields & functions inherited from <code>BaseViewModel</code> which offer basic loading & saving functionality, as well as other handy utility members for use with Knockout.</p><p>See <a href="/Coalesce/stacks/ko/client/view-model.html">TypeScript ViewModels</a> for more details.</p><h4 id="list-viewmodels" tabindex="-1"><a href="/Coalesce/stacks/ko/client/list-view-model.html">List ViewModels</a> <a class="header-anchor" href="#list-viewmodels" aria-label="Permalink to "[List ViewModels](/stacks/ko/client/list-view-model.md)"">​</a></h4><p>One ListViewModel is generated for each of your <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>. These classes contain functionality for loading sets of objects from the server. They provide searching, paging, sorting, and filtering functionality.</p><p>See <a href="/Coalesce/stacks/ko/client/list-view-model.html">TypeScript ListViewModels</a> for more details.</p><h4 id="external-type-viewmodels" tabindex="-1"><a href="/Coalesce/stacks/ko/client/external-view-model.html">External Type ViewModels</a> <a class="header-anchor" href="#external-type-viewmodels" aria-label="Permalink to "[External Type ViewModels](/stacks/ko/client/external-view-model.md)"">​</a></h4><p>Any non-primitive types which are not themselves a <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> or <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a> which are accessible through the aforementioned types, either through one of its <a href="/Coalesce/modeling/model-components/properties.html">Properties</a>, or return value from one of its <a href="/Coalesce/modeling/model-components/methods.html">Methods</a>, will have a corresponding TypeScript ViewModel generated for it. These ViewModels only provide a <code>KnockoutObservable</code> field for each property on the C# class.</p><p>See <a href="/Coalesce/stacks/ko/client/external-view-model.html">TypeScript External ViewModels</a> for more details.</p><h3 id="view-controllers" tabindex="-1">View Controllers <a class="header-anchor" href="#view-controllers" aria-label="Permalink to "View Controllers"">​</a></h3><p>For each of your <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>, a controller is created in the <code>/Controllers/Generated</code> directory of your web project. These controllers provide routes for the generated admin views.</p><p>As you add your own pages to your application, you should add additional partial classes in the <code>/Controllers</code> that extend these generated partial classes to expose those pages.</p><h3 id="admin-views" tabindex="-1">Admin Views <a class="header-anchor" href="#admin-views" aria-label="Permalink to "Admin Views"">​</a></h3><p>For each of your <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>, a number of views are generated to provide administrative-level access to your data.</p><h4 id="table" tabindex="-1">Table <a class="header-anchor" href="#table" aria-label="Permalink to "Table"">​</a></h4><p>Provides a basic table view with sorting, searching, and paging of your data. Can be rendered in either read-only mode (routed as <code>/Table</code>), or editable mode (routed as <code>TableEdit</code>).</p><h4 id="cards" tabindex="-1">Cards <a class="header-anchor" href="#cards" aria-label="Permalink to "Cards"">​</a></h4><p>Provides a card-based view of your data with searching and paging.</p><h4 id="createedit" tabindex="-1">CreateEdit <a class="header-anchor" href="#createedit" aria-label="Permalink to "CreateEdit"">​</a></h4><p>Provides an editor view which can be used to create new entities or edit existing ones.</p><h4 id="editorhtml" tabindex="-1">EditorHtml <a class="header-anchor" href="#editorhtml" aria-label="Permalink to "EditorHtml"">​</a></h4><p>Provides a minimal amount of HTML to display an editor for the object type. This is used by the <code>showEditor</code> method on the generated TypeScript ViewModels.</p>',30),s=[r];function l(d,n,c,h,m,p){return t(),o("div",null,s)}const w=e(i,[["render",l]]);export{u as __pageData,w as default}; diff --git a/assets/stacks_ko_overview.md.BMODd3xy.lean.js b/assets/stacks_ko_overview.md.BMODd3xy.lean.js new file mode 100644 index 000000000..a56d6d791 --- /dev/null +++ b/assets/stacks_ko_overview.md.BMODd3xy.lean.js @@ -0,0 +1 @@ +import{_ as e,c as o,o as t,a7 as a}from"./chunks/framework.Be4oCqIX.js";const u=JSON.parse('{"title":"Knockout Overview","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/ko/overview.md","filePath":"stacks/ko/overview.md"}'),i={name:"stacks/ko/overview.md"},r=a("",30),s=[r];function l(d,n,c,h,m,p){return t(),o("div",null,s)}const w=e(i,[["render",l]]);export{u as __pageData,w as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-audit-log-page.md.CLAof-8y.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-audit-log-page.md.CLAof-8y.js new file mode 100644 index 000000000..371d27564 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-audit-log-page.md.CLAof-8y.js @@ -0,0 +1,14 @@ +import{_ as n,c as t,I as o,a7 as l,l as a,a as e,o as p,E as c}from"./chunks/framework.Be4oCqIX.js";const w=JSON.parse('{"title":"c-admin-audit-log-page","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-audit-log-page.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-audit-log-page.md"}'),i={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-audit-log-page.md"},r=l(`<h1 id="c-admin-audit-log-page" tabindex="-1">c-admin-audit-log-page <a class="header-anchor" href="#c-admin-audit-log-page" aria-label="Permalink to "c-admin-audit-log-page"">​</a></h1><p>A full-featured page for interacting with Coalesce's <a href="/Coalesce/topics/audit-logging.html">Audit Logging</a>. Presents a view similar to <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.html">c-admin-table-page</a> with content optimized for viewing audit log records. Designed to be routed to directly with <a href="https://router.vuejs.org/" target="_blank" rel="noreferrer">vue-router</a>.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">CAdminAuditLogPage</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> 'coalesce-vue-vuetify3'</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> router</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> Router</span><span style="color:#D4D4D4;">({</span></span> +<span class="line"><span style="color:#6A9955;"> // ...</span></span> +<span class="line"><span style="color:#9CDCFE;"> routes:</span><span style="color:#D4D4D4;"> [</span></span> +<span class="line"><span style="color:#6A9955;"> // ... other routes</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> path:</span><span style="color:#CE9178;"> '/admin/audit-logs'</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#9CDCFE;"> component:</span><span style="color:#9CDCFE;"> CAdminAuditLogPage</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#9CDCFE;"> props:</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> type:</span><span style="color:#CE9178;"> 'AuditLog'</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;"> },</span></span> +<span class="line"><span style="color:#D4D4D4;"> ]</span></span> +<span class="line"><span style="color:#D4D4D4;">})</span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>`,5),d=a("p",null,[e("The PascalCase name of your "),a("code",null,"IAuditLog"),e(" implementation.")],-1),u=a("p",null,[e("An optional "),a("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),e(" that will be used if provided instead of the one the component will create automatically from the provided "),a("code",null,"type"),e(" prop.")],-1),h=a("p",null,"A Vuetify color name to be applied to the toolbar at the top of the page.",-1),m=a("h2",{id:"slots",tabindex:"-1"},[e("Slots "),a("a",{class:"header-anchor",href:"#slots","aria-label":'Permalink to "Slots"'},"​")],-1),D=a("p",null,"A slot that can be used to replace the entire content of the Detail column on the page.",-1),g=a("p",null,"A slot that can be used to append additional content to the Detail column on the page.",-1);function y(_,f,C,v,A,b){const s=c("Prop");return p(),t("div",null,[r,o(s,{def:"type: string",lang:"ts"}),d,o(s,{def:"list?: ListViewModel",lang:"ts"}),u,o(s,{def:"color: string = 'primary'",lang:"ts"}),h,m,o(s,{def:"row-detail: { item: AuditLogViewModel }",lang:"ts"}),D,o(s,{def:"row-detail-append: { item: AuditLogViewModel }",lang:"ts"}),g])}const E=n(i,[["render",y]]);export{w as __pageData,E as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-audit-log-page.md.CLAof-8y.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-audit-log-page.md.CLAof-8y.lean.js new file mode 100644 index 000000000..e445d160d --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-audit-log-page.md.CLAof-8y.lean.js @@ -0,0 +1 @@ +import{_ as n,c as t,I as o,a7 as l,l as a,a as e,o as p,E as c}from"./chunks/framework.Be4oCqIX.js";const w=JSON.parse('{"title":"c-admin-audit-log-page","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-audit-log-page.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-audit-log-page.md"}'),i={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-audit-log-page.md"},r=l("",5),d=a("p",null,[e("The PascalCase name of your "),a("code",null,"IAuditLog"),e(" implementation.")],-1),u=a("p",null,[e("An optional "),a("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),e(" that will be used if provided instead of the one the component will create automatically from the provided "),a("code",null,"type"),e(" prop.")],-1),h=a("p",null,"A Vuetify color name to be applied to the toolbar at the top of the page.",-1),m=a("h2",{id:"slots",tabindex:"-1"},[e("Slots "),a("a",{class:"header-anchor",href:"#slots","aria-label":'Permalink to "Slots"'},"​")],-1),D=a("p",null,"A slot that can be used to replace the entire content of the Detail column on the page.",-1),g=a("p",null,"A slot that can be used to append additional content to the Detail column on the page.",-1);function y(_,f,C,v,A,b){const s=c("Prop");return p(),t("div",null,[r,o(s,{def:"type: string",lang:"ts"}),d,o(s,{def:"list?: ListViewModel",lang:"ts"}),u,o(s,{def:"color: string = 'primary'",lang:"ts"}),h,m,o(s,{def:"row-detail: { item: AuditLogViewModel }",lang:"ts"}),D,o(s,{def:"row-detail-append: { item: AuditLogViewModel }",lang:"ts"}),g])}const E=n(i,[["render",y]]);export{w as __pageData,E as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-display.md.C7xZ7lO2.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-display.md.C7xZ7lO2.js new file mode 100644 index 000000000..a9dd70fdf --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-display.md.C7xZ7lO2.js @@ -0,0 +1,8 @@ +import{_ as e,c as a,o as s,a7 as o}from"./chunks/framework.Be4oCqIX.js";const D=JSON.parse('{"title":"c-admin-display","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-display.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-display.md"}'),t={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-display.md"},n=o(`<h1 id="c-admin-display" tabindex="-1">c-admin-display <a class="header-anchor" href="#c-admin-display" aria-label="Permalink to "c-admin-display"">​</a></h1><p>Behaves the same as <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-display.html">c-display</a>, except any collection navigation properties will be rendered as links to an admin list page, and any models will be rendered as a link to an admin item page.</p><p>Links for collections are resolved from <a href="https://router.vuejs.org/" target="_blank" rel="noreferrer">vue-router</a> with a route name of <code>coalesce-admin-list</code>, a <code>type</code> route param containing the name of the collection's type, and a query parameter <code>filter.<foreign key name></code> with a value of the primary key of the owner of the collection. This route is expected to resolve to a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.html">c-admin-table-page</a>, which is setup by default by the template outlined in <a href="/Coalesce/stacks/vue/getting-started.html">Getting Started with Vue</a>.</p><p>Links for single models are resolved from <a href="https://router.vuejs.org/" target="_blank" rel="noreferrer">vue-router</a> with a route name of <code>coalesce-admin-item</code>, a <code>type</code> route param containing the name of the model's type, and a <code>id</code> route param containing the object's primary key. This route is expected to resolve to a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-editor-page.html">c-admin-editor-page</a>, which is setup by default by the template outlined in <a href="/Coalesce/stacks/vue/getting-started.html">Getting Started with Vue</a>.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#6A9955;"><!-- Renders regularly as text: --></span></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-admin-display</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"firstName"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"><!-- Renders as a link to an item: --></span></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-admin-display</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"company"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"><!-- Renders as a link to a list: --></span></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-admin-display</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"casesAssigned"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2><p>Same as <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-display.html">c-display</a>.</p><h2 id="slots" tabindex="-1">Slots <a class="header-anchor" href="#slots" aria-label="Permalink to "Slots"">​</a></h2><p>Same as <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-display.html">c-display</a>.</p>`,10),l=[n];function p(c,r,i,d,y,m){return s(),a("div",null,l)}const h=e(t,[["render",p]]);export{D as __pageData,h as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-display.md.C7xZ7lO2.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-display.md.C7xZ7lO2.lean.js new file mode 100644 index 000000000..ac7a9864e --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-display.md.C7xZ7lO2.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as s,a7 as o}from"./chunks/framework.Be4oCqIX.js";const D=JSON.parse('{"title":"c-admin-display","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-display.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-display.md"}'),t={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-display.md"},n=o("",10),l=[n];function p(c,r,i,d,y,m){return s(),a("div",null,l)}const h=e(t,[["render",p]]);export{D as __pageData,h as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-editor-page.md.Dyg34jax.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-editor-page.md.Dyg34jax.js new file mode 100644 index 000000000..1553ac8b4 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-editor-page.md.Dyg34jax.js @@ -0,0 +1,19 @@ +import{_ as o,c as t,I as e,a7 as l,l as s,a as n,o as p,E as c}from"./chunks/framework.Be4oCqIX.js";const g=JSON.parse('{"title":"c-admin-editor-page","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-editor-page.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-editor-page.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-editor-page.md"},i=l(`<h1 id="c-admin-editor-page" tabindex="-1">c-admin-editor-page <a class="header-anchor" href="#c-admin-editor-page" aria-label="Permalink to "c-admin-editor-page"">​</a></h1><p>A page for a creating/editing single <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ViewModel</a> instance. Provides a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-editor.html">c-admin-editor</a> and a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-methods.html">c-admin-methods</a> for the instance. Designed to be routed to directly with <a href="https://router.vuejs.org/" target="_blank" rel="noreferrer">vue-router</a>.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#6A9955;">// router.ts or main.ts</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;">// WITHOUT Vuetify A la carte:</span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">CAdminEditorPage</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> 'coalesce-vue-vuetify'</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#6A9955;">// WITH Vuetify A-la-carte:</span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">CAdminEditorPage</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> 'coalesce-vue-vuetify/lib'</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> router</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> Router</span><span style="color:#D4D4D4;">({</span></span> +<span class="line"><span style="color:#6A9955;"> // ...</span></span> +<span class="line"><span style="color:#9CDCFE;"> routes:</span><span style="color:#D4D4D4;"> [</span></span> +<span class="line"><span style="color:#6A9955;"> // ... other routes</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> path:</span><span style="color:#CE9178;"> '/admin/:type/edit/:id?'</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#9CDCFE;"> name:</span><span style="color:#CE9178;"> 'coalesce-admin-item'</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#9CDCFE;"> component:</span><span style="color:#9CDCFE;"> CAdminEditorPage</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#9CDCFE;"> props:</span><span style="color:#569CD6;"> true</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#D4D4D4;"> },</span></span> +<span class="line"><span style="color:#D4D4D4;"> ]</span></span> +<span class="line"><span style="color:#D4D4D4;">})</span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>`,5),d=s("p",null,"The PascalCase name of the type to be created/edited.",-1),D=s("p",null,[n("The primary key of the item being edited. If null or not provided, the page will be creating a new instance of the provided "),s("code",null,"type"),n(" instead.")],-1);function y(m,u,C,h,f,v){const a=c("Prop");return p(),t("div",null,[i,e(a,{def:"type: string",lang:"ts"}),d,e(a,{def:"id?: number | string",lang:"ts"}),D])}const E=o(r,[["render",y]]);export{g as __pageData,E as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-editor-page.md.Dyg34jax.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-editor-page.md.Dyg34jax.lean.js new file mode 100644 index 000000000..4edd402e1 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-editor-page.md.Dyg34jax.lean.js @@ -0,0 +1 @@ +import{_ as o,c as t,I as e,a7 as l,l as s,a as n,o as p,E as c}from"./chunks/framework.Be4oCqIX.js";const g=JSON.parse('{"title":"c-admin-editor-page","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-editor-page.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-editor-page.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-editor-page.md"},i=l("",5),d=s("p",null,"The PascalCase name of the type to be created/edited.",-1),D=s("p",null,[n("The primary key of the item being edited. If null or not provided, the page will be creating a new instance of the provided "),s("code",null,"type"),n(" instead.")],-1);function y(m,u,C,h,f,v){const a=c("Prop");return p(),t("div",null,[i,e(a,{def:"type: string",lang:"ts"}),d,e(a,{def:"id?: number | string",lang:"ts"}),D])}const E=o(r,[["render",y]]);export{g as __pageData,E as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-editor.md.DWk33QEa.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-editor.md.DWk33QEa.js new file mode 100644 index 000000000..624558fe1 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-editor.md.DWk33QEa.js @@ -0,0 +1 @@ +import{_ as s,c as t,I as n,a7 as l,l as e,a,o as c,E as r}from"./chunks/framework.Be4oCqIX.js";const k=JSON.parse('{"title":"c-admin-editor","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-editor.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-editor.md"}'),i={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-editor.md"},p=l('<h1 id="c-admin-editor" tabindex="-1">c-admin-editor <a class="header-anchor" href="#c-admin-editor" aria-label="Permalink to "c-admin-editor"">​</a></h1><p>An editor for a single <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ViewModel</a> instance. Provides a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-input.html">c-input</a> for each property of the model.</p><p>Does not automatically enable <a href="/Coalesce/stacks/vue/layers/viewmodels.html">auto-save</a> - if desired, this must be enabled by the implementor of this component.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-admin-editor</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>',6),d=e("p",null,[a("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ViewModel"),a(" to render an editor for.")],-1);function m(u,h,_,f,v,y){const o=r("Prop");return c(),t("div",null,[p,n(o,{def:"model: ViewModel | ListViewModel",lang:"ts"}),d])}const C=s(i,[["render",m]]);export{k as __pageData,C as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-editor.md.DWk33QEa.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-editor.md.DWk33QEa.lean.js new file mode 100644 index 000000000..1f62a5552 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-editor.md.DWk33QEa.lean.js @@ -0,0 +1 @@ +import{_ as s,c as t,I as n,a7 as l,l as e,a,o as c,E as r}from"./chunks/framework.Be4oCqIX.js";const k=JSON.parse('{"title":"c-admin-editor","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-editor.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-editor.md"}'),i={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-editor.md"},p=l("",6),d=e("p",null,[a("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ViewModel"),a(" to render an editor for.")],-1);function m(u,h,_,f,v,y){const o=r("Prop");return c(),t("div",null,[p,n(o,{def:"model: ViewModel | ListViewModel",lang:"ts"}),d])}const C=s(i,[["render",m]]);export{k as __pageData,C as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-method.md.Dk5B7o9j.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-method.md.Dk5B7o9j.js new file mode 100644 index 000000000..13c0a9a40 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-method.md.Dk5B7o9j.js @@ -0,0 +1 @@ +import{_ as s,c as l,I as t,a7 as n,l as e,a,o as c,E as r}from"./chunks/framework.Be4oCqIX.js";const w=JSON.parse('{"title":"c-admin-method","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-method.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-method.md"}'),d={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-method.md"},i=n('<h1 id="c-admin-method" tabindex="-1">c-admin-method <a class="header-anchor" href="#c-admin-method" aria-label="Permalink to "c-admin-method"">​</a></h1><p>Provides an interface for invoking a <a href="/Coalesce/modeling/model-components/methods.html">method</a> and rendering its result, designed to be use in an admin page.</p><p>For each parameter of a method, a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-input.html">c-input</a> will be rendered to accept the input of that parameter. A button is provided to trigger an invocation of the method, progress and errors are rendered with a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-loader-status.html">c-loader-status</a>, and results are rendered with <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-display.html">c-display</a>.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-admin-method</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"setTitle"</span><span style="color:#9CDCFE;"> auto-reload-model</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>',6),p=e("p",null,"A metadata specifier for the method. One of:",-1),m=e("ul",null,[e("li",null,[a("A string with the name of the method belonging to "),e("code",null,"model"),a(".")]),e("li",null,"A direct reference to a method's metadata object."),e("li",null,"A string in dot-notation that starts with a type name and ending with a method name.")],-1),h=e("p",null,[a("An "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ViewModel"),a(" or "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(" or "),e("a",{href:"/Coalesce/modeling/model-types/services.html#generated-code"},"ServiceViewModel"),a(" owning the method and "),e("a",{href:"/Coalesce/stacks/vue/layers/api-clients.html#api-callers"},"API Caller"),a(" that was specified by the "),e("code",null,"for"),a(" prop.")],-1),u=e("p",null,[a("True if the "),e("code",null,"model"),a(" should have its "),e("code",null,"$load"),a(" invoked after a successful invocation of the method.")],-1);function f(v,_,y,g,D,C){const o=r("Prop");return c(),l("div",null,[i,t(o,{def:"for: string | Method",lang:"ts"}),p,m,t(o,{def:"model: ViewModel | ListViewModel | ServiceViewModel",lang:"ts"}),h,t(o,{def:"autoReloadModel?: boolean = false",lang:"ts"}),u])}const b=s(d,[["render",f]]);export{w as __pageData,b as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-method.md.Dk5B7o9j.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-method.md.Dk5B7o9j.lean.js new file mode 100644 index 000000000..46bf6c4d1 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-method.md.Dk5B7o9j.lean.js @@ -0,0 +1 @@ +import{_ as s,c as l,I as t,a7 as n,l as e,a,o as c,E as r}from"./chunks/framework.Be4oCqIX.js";const w=JSON.parse('{"title":"c-admin-method","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-method.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-method.md"}'),d={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-method.md"},i=n("",6),p=e("p",null,"A metadata specifier for the method. One of:",-1),m=e("ul",null,[e("li",null,[a("A string with the name of the method belonging to "),e("code",null,"model"),a(".")]),e("li",null,"A direct reference to a method's metadata object."),e("li",null,"A string in dot-notation that starts with a type name and ending with a method name.")],-1),h=e("p",null,[a("An "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ViewModel"),a(" or "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(" or "),e("a",{href:"/Coalesce/modeling/model-types/services.html#generated-code"},"ServiceViewModel"),a(" owning the method and "),e("a",{href:"/Coalesce/stacks/vue/layers/api-clients.html#api-callers"},"API Caller"),a(" that was specified by the "),e("code",null,"for"),a(" prop.")],-1),u=e("p",null,[a("True if the "),e("code",null,"model"),a(" should have its "),e("code",null,"$load"),a(" invoked after a successful invocation of the method.")],-1);function f(v,_,y,g,D,C){const o=r("Prop");return c(),l("div",null,[i,t(o,{def:"for: string | Method",lang:"ts"}),p,m,t(o,{def:"model: ViewModel | ListViewModel | ServiceViewModel",lang:"ts"}),h,t(o,{def:"autoReloadModel?: boolean = false",lang:"ts"}),u])}const b=s(d,[["render",f]]);export{w as __pageData,b as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-methods.md.IVuyGF-G.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-methods.md.IVuyGF-G.js new file mode 100644 index 000000000..dacebd6f6 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-methods.md.IVuyGF-G.js @@ -0,0 +1 @@ +import{_ as l,c as t,I as o,a7 as n,l as e,a as s,o as c,E as p}from"./chunks/framework.Be4oCqIX.js";const k=JSON.parse('{"title":"c-admin-methods","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-methods.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-methods.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-methods.md"},d=n('<h1 id="c-admin-methods" tabindex="-1">c-admin-methods <a class="header-anchor" href="#c-admin-methods" aria-label="Permalink to "c-admin-methods"">​</a></h1><p>Renders in a <a href="https://vuetifyjs.com/" target="_blank" rel="noreferrer">Vuetify</a> <a href="https://vuetifyjs.com/en/components/expansion-panels/" target="_blank" rel="noreferrer">v-expansion-panels</a> a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-method.html">c-admin-method</a> for each method on a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ViewModel</a> or <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-admin-methods</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> class</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"x"</span><span style="color:#9CDCFE;"> auto-reload-model</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-admin-methods</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> auto-reload-model</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-admin-methods</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">personList</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> auto-reload-model</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>',7),i=e("p",null,[s("An "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ViewModel"),s(" or "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),s(" or "),e("a",{href:"/Coalesce/modeling/model-types/services.html#generated-code"},"ServiceViewModel"),s(" whose methods should each render as a "),e("a",{href:"/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-method.html"},"c-admin-method"),s(".")],-1),m=e("p",null,[s("True if the "),e("code",null,"model"),s(" should have its "),e("code",null,"$load"),s(" invoked after a successful invocation of any method.")],-1);function h(u,D,y,v,C,f){const a=p("Prop");return c(),t("div",null,[d,o(a,{def:"model: ViewModel | ListViewModel",lang:"ts"}),i,o(a,{def:"autoReloadModel?: boolean = false",lang:"ts"}),m])}const g=l(r,[["render",h]]);export{k as __pageData,g as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-methods.md.IVuyGF-G.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-methods.md.IVuyGF-G.lean.js new file mode 100644 index 000000000..a3c5bbd19 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-methods.md.IVuyGF-G.lean.js @@ -0,0 +1 @@ +import{_ as l,c as t,I as o,a7 as n,l as e,a as s,o as c,E as p}from"./chunks/framework.Be4oCqIX.js";const k=JSON.parse('{"title":"c-admin-methods","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-methods.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-methods.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-methods.md"},d=n("",7),i=e("p",null,[s("An "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ViewModel"),s(" or "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),s(" or "),e("a",{href:"/Coalesce/modeling/model-types/services.html#generated-code"},"ServiceViewModel"),s(" whose methods should each render as a "),e("a",{href:"/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-method.html"},"c-admin-method"),s(".")],-1),m=e("p",null,[s("True if the "),e("code",null,"model"),s(" should have its "),e("code",null,"$load"),s(" invoked after a successful invocation of any method.")],-1);function h(u,D,y,v,C,f){const a=p("Prop");return c(),t("div",null,[d,o(a,{def:"model: ViewModel | ListViewModel",lang:"ts"}),i,o(a,{def:"autoReloadModel?: boolean = false",lang:"ts"}),m])}const g=l(r,[["render",h]]);export{k as __pageData,g as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table-page.md.D9I1rd0Z.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table-page.md.D9I1rd0Z.js new file mode 100644 index 000000000..4a5a8c9fc --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table-page.md.D9I1rd0Z.js @@ -0,0 +1,19 @@ +import{_ as l,c as o,I as e,a7 as t,l as s,a as n,o as p,E as c}from"./chunks/framework.Be4oCqIX.js";const b=JSON.parse('{"title":"c-admin-table-page","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.md"},i=t(`<h1 id="c-admin-table-page" tabindex="-1">c-admin-table-page <a class="header-anchor" href="#c-admin-table-page" aria-label="Permalink to "c-admin-table-page"">​</a></h1><p>A full-featured page for interacting with a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>. Provides a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-table.html">c-admin-table</a> and a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-methods.html">c-admin-methods</a> for the list. Designed to be routed to directly with <a href="https://router.vuejs.org/" target="_blank" rel="noreferrer">vue-router</a>.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#6A9955;">// router.ts or main.ts</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;">// WITHOUT Vuetify A la carte:</span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">CAdminTablePage</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> 'coalesce-vue-vuetify'</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#6A9955;">// WITH Vuetify A-la-carte:</span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">CAdminTablePage</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> 'coalesce-vue-vuetify/lib'</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> router</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> Router</span><span style="color:#D4D4D4;">({</span></span> +<span class="line"><span style="color:#6A9955;"> // ...</span></span> +<span class="line"><span style="color:#9CDCFE;"> routes:</span><span style="color:#D4D4D4;"> [</span></span> +<span class="line"><span style="color:#6A9955;"> // ... other routes</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> path:</span><span style="color:#CE9178;"> '/admin/:type'</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#9CDCFE;"> name:</span><span style="color:#CE9178;"> 'coalesce-admin-list'</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#9CDCFE;"> component:</span><span style="color:#9CDCFE;"> CAdminTablePage</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#9CDCFE;"> props:</span><span style="color:#569CD6;"> true</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#D4D4D4;"> },</span></span> +<span class="line"><span style="color:#D4D4D4;"> ]</span></span> +<span class="line"><span style="color:#D4D4D4;">})</span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>`,5),d=s("p",null,"The PascalCase name of the type to be listed.",-1),D=s("p",null,[n("An optional "),s("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),n(" that will be used if provided instead of the one the component will otherwise create automatically.")],-1);function y(m,u,C,h,f,v){const a=c("Prop");return p(),o("div",null,[i,e(a,{def:"type: string",lang:"ts"}),d,e(a,{def:"list?: ListViewModel",lang:"ts"}),D])}const g=l(r,[["render",y]]);export{b as __pageData,g as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table-page.md.D9I1rd0Z.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table-page.md.D9I1rd0Z.lean.js new file mode 100644 index 000000000..21eb25eba --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table-page.md.D9I1rd0Z.lean.js @@ -0,0 +1 @@ +import{_ as l,c as o,I as e,a7 as t,l as s,a as n,o as p,E as c}from"./chunks/framework.Be4oCqIX.js";const b=JSON.parse('{"title":"c-admin-table-page","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.md"},i=t("",5),d=s("p",null,"The PascalCase name of the type to be listed.",-1),D=s("p",null,[n("An optional "),s("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),n(" that will be used if provided instead of the one the component will otherwise create automatically.")],-1);function y(m,u,C,h,f,v){const a=c("Prop");return p(),o("div",null,[i,e(a,{def:"type: string",lang:"ts"}),d,e(a,{def:"list?: ListViewModel",lang:"ts"}),D])}const g=l(r,[["render",y]]);export{b as __pageData,g as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table-toolbar.md.Bp-fgShc.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table-toolbar.md.Bp-fgShc.js new file mode 100644 index 000000000..2745caab5 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table-toolbar.md.Bp-fgShc.js @@ -0,0 +1 @@ +import{_ as t,c as l,I as o,a7 as n,l as e,a,o as c,E as p}from"./chunks/framework.Be4oCqIX.js";const g=JSON.parse('{"title":"c-admin-table-toolbar","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-table-toolbar.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-table-toolbar.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-table-toolbar.md"},i=n('<h1 id="c-admin-table-toolbar" tabindex="-1">c-admin-table-toolbar <a class="header-anchor" href="#c-admin-table-toolbar" aria-label="Permalink to "c-admin-table-toolbar"">​</a></h1><p>A full-featured toolbar for a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a> designed to be used on an admin page, including "Create" and "Reload" buttons, a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-range-display.html">c-list-range-display</a>, a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-page.html">c-list-page</a>, a search field, <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-filters.html">c-list-filters</a>, and a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.html">c-list-page-size</a>.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-admin-table-toolbar</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">personList</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-admin-table-toolbar</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">personList</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> color</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"pink"</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">editable</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">sync</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">isEditable</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>',6),d=e("p",null,[a("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(" to render the toolbar for.")],-1),u=e("p",null,[a("The "),e("a",{href:"https://vuetifyjs.com/en/styles/colors/",target:"_blank",rel:"noreferrer"},"color"),a(" of the toolbar.")],-1),D=e("p",null,[a("If provided, adds a button to toggle the value of this prop. Should be bound with the "),e("code",null,".sync"),a(" modifier.")],-1);function m(y,h,b,f,v,_){const s=p("Prop");return c(),l("div",null,[i,o(s,{def:"list: ListViewModel",lang:"ts"}),d,o(s,{def:"color: string = 'primary'",lang:"ts"}),u,o(s,{def:"editable?: boolean",lang:"ts"}),D])}const k=t(r,[["render",m]]);export{g as __pageData,k as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table-toolbar.md.Bp-fgShc.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table-toolbar.md.Bp-fgShc.lean.js new file mode 100644 index 000000000..a4fd73141 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table-toolbar.md.Bp-fgShc.lean.js @@ -0,0 +1 @@ +import{_ as t,c as l,I as o,a7 as n,l as e,a,o as c,E as p}from"./chunks/framework.Be4oCqIX.js";const g=JSON.parse('{"title":"c-admin-table-toolbar","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-table-toolbar.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-table-toolbar.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-table-toolbar.md"},i=n("",6),d=e("p",null,[a("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(" to render the toolbar for.")],-1),u=e("p",null,[a("The "),e("a",{href:"https://vuetifyjs.com/en/styles/colors/",target:"_blank",rel:"noreferrer"},"color"),a(" of the toolbar.")],-1),D=e("p",null,[a("If provided, adds a button to toggle the value of this prop. Should be bound with the "),e("code",null,".sync"),a(" modifier.")],-1);function m(y,h,b,f,v,_){const s=p("Prop");return c(),l("div",null,[i,o(s,{def:"list: ListViewModel",lang:"ts"}),d,o(s,{def:"color: string = 'primary'",lang:"ts"}),u,o(s,{def:"editable?: boolean",lang:"ts"}),D])}const k=t(r,[["render",m]]);export{g as __pageData,k as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table.md.D2X20ug6.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table.md.D2X20ug6.js new file mode 100644 index 000000000..cd1ec8fc5 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table.md.D2X20ug6.js @@ -0,0 +1 @@ +import{_ as o,c as l,I as s,a7 as n,l as e,a,o as c,E as i}from"./chunks/framework.Be4oCqIX.js";const C=JSON.parse('{"title":"c-admin-table","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-table.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-table.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-table.md"},d=n('<h1 id="c-admin-table" tabindex="-1">c-admin-table <a class="header-anchor" href="#c-admin-table" aria-label="Permalink to "c-admin-table"">​</a></h1><p>An full-featured table for a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>, including a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-toolbar.html">c-admin-table-toolbar</a>, <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-table.html">c-table</a>, and <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.html">c-list-pagination</a>.</p><p>The table can be in read mode (default), or toggled into edit mode with the button provided by the <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-toolbar.html">c-admin-table-toolbar</a>. When placed into edit mode, <a href="/Coalesce/stacks/vue/layers/viewmodels.html">auto-save</a> is enabled.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-admin-table</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">personList</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>',6),p=e("p",null,[a("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(" to render a table for.")],-1),m=e("p",null,[a("An optional list of available page sizes to offer through the "),e("a",{href:"/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.html"},"c-list-pagination"),a("'s "),e("a",{href:"/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.html"},"c-list-page-size"),a(" component. Defaults to "),e("code",null,"[10, 25, 100]"),a(".")],-1),u=e("p",null,[a("If true, the "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-parameters"},"Data Source Standard Parameters"),a(" of the provided "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(` will be read from and written to the window's query string. The "Editable" state of the table will also be bound to the query string.`)],-1);function h(f,v,b,_,y,g){const t=i("Prop");return c(),l("div",null,[d,s(t,{def:"list: ListViewModel",lang:"ts"}),p,s(t,{def:"pageSizes?: number[]",lang:"ts"}),m,s(t,{def:"queryBind?: boolean",lang:"ts"}),u])}const k=o(r,[["render",h]]);export{C as __pageData,k as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table.md.D2X20ug6.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table.md.D2X20ug6.lean.js new file mode 100644 index 000000000..906246a1b --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-admin-table.md.D2X20ug6.lean.js @@ -0,0 +1 @@ +import{_ as o,c as l,I as s,a7 as n,l as e,a,o as c,E as i}from"./chunks/framework.Be4oCqIX.js";const C=JSON.parse('{"title":"c-admin-table","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-table.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-admin-table.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-admin-table.md"},d=n("",6),p=e("p",null,[a("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(" to render a table for.")],-1),m=e("p",null,[a("An optional list of available page sizes to offer through the "),e("a",{href:"/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.html"},"c-list-pagination"),a("'s "),e("a",{href:"/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.html"},"c-list-page-size"),a(" component. Defaults to "),e("code",null,"[10, 25, 100]"),a(".")],-1),u=e("p",null,[a("If true, the "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-parameters"},"Data Source Standard Parameters"),a(" of the provided "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(` will be read from and written to the window's query string. The "Editable" state of the table will also be bound to the query string.`)],-1);function h(f,v,b,_,y,g){const t=i("Prop");return c(),l("div",null,[d,s(t,{def:"list: ListViewModel",lang:"ts"}),p,s(t,{def:"pageSizes?: number[]",lang:"ts"}),m,s(t,{def:"queryBind?: boolean",lang:"ts"}),u])}const k=o(r,[["render",h]]);export{C as __pageData,k as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-datetime-picker.md.CEz5y16z.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-datetime-picker.md.CEz5y16z.js new file mode 100644 index 000000000..56f52b723 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-datetime-picker.md.CEz5y16z.js @@ -0,0 +1,10 @@ +import{_ as n,c as l,I as s,a7 as o,l as e,a as t,o as i,E as c}from"./chunks/framework.Be4oCqIX.js";const A=JSON.parse('{"title":"c-datetime-picker","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-datetime-picker.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-datetime-picker.md"}'),p={name:"stacks/vue/coalesce-vue-vuetify/components/c-datetime-picker.md"},d=o(`<h1 id="c-datetime-picker" tabindex="-1">c-datetime-picker <a class="header-anchor" href="#c-datetime-picker" aria-label="Permalink to "c-datetime-picker"">​</a></h1><p>A general, all-purpose date/time input component that can be used either with <a href="/Coalesce/stacks/vue/layers/models.html">models</a> and <a href="/Coalesce/stacks/vue/layers/metadata.html">metadata</a> or as a standalone component using only <code>v-model</code>.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-datetime-picker</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"birthDate"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-datetime-picker</span><span style="color:#9CDCFE;"> v-model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">standaloneDate</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-datetime-picker</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> v-model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">standaloneTime</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> date-kind</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"time"</span></span> +<span class="line"><span style="color:#9CDCFE;"> date-format</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"h:mm a"</span></span> +<span class="line"><span style="color:#D4D4D4;">/</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>`,5),r=e("p",null,"A metadata specifier for the value being bound. One of:",-1),u=e("ul",null,[e("li",null,[t("A string with the name of the value belonging to "),e("code",null,"model"),t(".")]),e("li",null,"A direct reference to a metadata object."),e("li",null,"A string in dot-notation that starts with a type name.")],-1),h=e("p",null,[t("An object owning the value that was specified by the "),e("code",null,"for"),t(" prop. If provided, the input will be bound to the corresponding property on the "),e("code",null,"model"),t(" object.")],-1),m=e("p",null,[t("If binding the component with "),e("code",null,"v-model"),t(", accepts the "),e("code",null,"value"),t(" part of "),e("code",null,"v-model"),t(".")],-1),D=e("p",null,[t("Whether the date is only a date, only a time, or contains significant date "),e("code",null,"and"),t(" time information.")],-1),f=e("p",null,[t("If the component was bound with metadata using the "),e("code",null,"for"),t(" prop, this will default to the kind specified by "),e("a",{href:"/Coalesce/modeling/model-components/attributes/date-type.html"},"[DateType]"),t(".")],-1),y=o('<p>The format of the date that will be rendered in the component's text field, and the format that will be attempted first when parsing user input in the text field.</p><p>Defaults to:</p><ul><li><code>M/d/yyyy h:mm a</code> if <code>dateKind == 'datetime'</code>,</li><li><code>M/d/yyyy</code> if <code>dateKind == 'date'</code>, or</li><li><code>h:mm a</code> if <code>dateKind == 'time'</code>.</li></ul><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>When parsing a user's text input into the text field, c-datetime-picker will first attempt to parse it with the format specified by <code>dateFormat</code>, or the default as described above if not explicitly specified.</p><p>If this fails, the date will be parsed with the <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date" target="_blank" rel="noreferrer">Date constructor</a>, but only if the <code>dateKind</code> is <code>datetime</code> or <code>date</code>. This works fairly well on all modern browsers, but can still occasionally have issues. c-datetime-picker tries its best to filter out bad parses from the Date constructor, like dates with a year earlier than 1000.</p></div>',4),_=e("p",null,"True if a native HTML5 input should be used instead of a popup menu with Vuetify date/time pickers inside of it.",-1),b=e("p",null,"True if the calendar and clock should be shown side by side in the picker menu, rather than in separate tabs.",-1),g=e("p",null,"True if the component should be read-only.",-1),k=e("p",null,"True if the component should be disabled.",-1);function v(C,w,T,q,E,x){const a=c("Prop");return i(),l("div",null,[d,s(a,{def:"for?: string | DateProperty | DateValue",lang:"ts"}),r,u,s(a,{def:"model?: Model | DataSource",lang:"ts"}),h,s(a,{def:`value?: Date // Vue 2 +modelValue?: Date // Vue 3`,lang:"ts"}),m,s(a,{def:"dateKind?: 'date' | 'time' | 'datetime' = 'datetime'",lang:"ts"}),D,f,s(a,{def:"dateFormat?: string",lang:"ts"}),y,s(a,{def:"native?: boolean",lang:"ts"}),_,s(a,{def:"sideBySide?: boolean",lang:"ts"}),b,s(a,{def:"readonly?: boolean",lang:"ts"}),g,s(a,{def:"disabled?: boolean",lang:"ts"}),k])}const V=n(p,[["render",v]]);export{A as __pageData,V as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-datetime-picker.md.CEz5y16z.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-datetime-picker.md.CEz5y16z.lean.js new file mode 100644 index 000000000..9c40cf400 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-datetime-picker.md.CEz5y16z.lean.js @@ -0,0 +1,2 @@ +import{_ as n,c as l,I as s,a7 as o,l as e,a as t,o as i,E as c}from"./chunks/framework.Be4oCqIX.js";const A=JSON.parse('{"title":"c-datetime-picker","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-datetime-picker.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-datetime-picker.md"}'),p={name:"stacks/vue/coalesce-vue-vuetify/components/c-datetime-picker.md"},d=o("",5),r=e("p",null,"A metadata specifier for the value being bound. One of:",-1),u=e("ul",null,[e("li",null,[t("A string with the name of the value belonging to "),e("code",null,"model"),t(".")]),e("li",null,"A direct reference to a metadata object."),e("li",null,"A string in dot-notation that starts with a type name.")],-1),h=e("p",null,[t("An object owning the value that was specified by the "),e("code",null,"for"),t(" prop. If provided, the input will be bound to the corresponding property on the "),e("code",null,"model"),t(" object.")],-1),m=e("p",null,[t("If binding the component with "),e("code",null,"v-model"),t(", accepts the "),e("code",null,"value"),t(" part of "),e("code",null,"v-model"),t(".")],-1),D=e("p",null,[t("Whether the date is only a date, only a time, or contains significant date "),e("code",null,"and"),t(" time information.")],-1),f=e("p",null,[t("If the component was bound with metadata using the "),e("code",null,"for"),t(" prop, this will default to the kind specified by "),e("a",{href:"/Coalesce/modeling/model-components/attributes/date-type.html"},"[DateType]"),t(".")],-1),y=o("",4),_=e("p",null,"True if a native HTML5 input should be used instead of a popup menu with Vuetify date/time pickers inside of it.",-1),b=e("p",null,"True if the calendar and clock should be shown side by side in the picker menu, rather than in separate tabs.",-1),g=e("p",null,"True if the component should be read-only.",-1),k=e("p",null,"True if the component should be disabled.",-1);function v(C,w,T,q,E,x){const a=c("Prop");return i(),l("div",null,[d,s(a,{def:"for?: string | DateProperty | DateValue",lang:"ts"}),r,u,s(a,{def:"model?: Model | DataSource",lang:"ts"}),h,s(a,{def:`value?: Date // Vue 2 +modelValue?: Date // Vue 3`,lang:"ts"}),m,s(a,{def:"dateKind?: 'date' | 'time' | 'datetime' = 'datetime'",lang:"ts"}),D,f,s(a,{def:"dateFormat?: string",lang:"ts"}),y,s(a,{def:"native?: boolean",lang:"ts"}),_,s(a,{def:"sideBySide?: boolean",lang:"ts"}),b,s(a,{def:"readonly?: boolean",lang:"ts"}),g,s(a,{def:"disabled?: boolean",lang:"ts"}),k])}const V=n(p,[["render",v]]);export{A as __pageData,V as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-display.md.40__qAFd.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-display.md.40__qAFd.js new file mode 100644 index 000000000..37a6b5154 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-display.md.40__qAFd.js @@ -0,0 +1,6 @@ +import{_ as l,c as n,I as o,a7 as t,l as e,a,o as p,E as r}from"./chunks/framework.Be4oCqIX.js";const k=JSON.parse('{"title":"c-display","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-display.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-display.md"}'),c={name:"stacks/vue/coalesce-vue-vuetify/components/c-display.md"},i=t(`<h1 id="c-display" tabindex="-1">c-display <a class="header-anchor" href="#c-display" aria-label="Permalink to "c-display"">​</a></h1><p>A general-purpose component for displaying any <a href="/Coalesce/stacks/vue/layers/metadata.html#value">Value</a> by rendering the value to a string with the <a href="/Coalesce/stacks/vue/layers/models.html#VueModelDisplayFunctions">display functions from the Models Layer</a>. For plain string and number <a href="/Coalesce/stacks/vue/layers/metadata.html">values</a>, usage of this component is largely superfluous. For all other value types including dates, booleans, enums, objects, and collections, it is very handy.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><p>Typical usage, providing an object and a property on that object:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-display</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"gender"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><p>Customizing date formatting (<a href="https://date-fns.org/v2.29.3/docs/format" target="_blank" rel="noreferrer">view format patterns</a>):</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-display</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"birthDate"</span><span style="color:#9CDCFE;"> format</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"M/d/yyyy"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><p>A contrived example of using c-display to render the result of an <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Caller</a>:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-display</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">value</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">setFirstName</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">result</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">for</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$metadata</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">methods</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">setFirstName</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">return</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> element</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"div"</span></span> +<span class="line"><span style="color:#D4D4D4;">/</span><span style="color:#808080;">></span></span></code></pre></div><p>Displaying a standalone date value without a model or other source of metadata:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-display</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">value</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">dateProp</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> format</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"M/d/yyyy"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>`,12),d=e("p",null,[a("A metadata specifier for the value being bound. Either a direct reference to the metadata object, or a string with the name of the value belonging to "),e("code",null,"model"),a(", or a string in dot-notation that starts with a type name.")],-1),D=e("p",null,[a("An object owning the value that was specified by the "),e("code",null,"for"),a(" prop.")],-1),y=e("p",null,[a("Shorthand for "),e("code",null,':options="{ format: format }"'),a(", allowing for specification of the format to be used when displaying dates.")],-1),u=e("p",null,[a("See "),e("a",{href:"/Coalesce/stacks/vue/layers/models.html#displayoptions"},"DisplayOptions"),a(" for details on the options available for "),e("code",null,"format"),a(".")],-1),h=e("p",null,[a("Specify options for formatting some kinds of values, including dates. See "),e("a",{href:"/Coalesce/stacks/vue/layers/models.html#displayoptions"},"DisplayOptions"),a(" for details.")],-1),m=t('<p>Can be provided the value to be displayed in conjunction with the <code>for</code> prop, as an alternative to the <code>model</code> prop.</p><p>This is an uncommon scenario - it is generally easier to use the <code>for</code>/<code>model</code> props together.</p><h2 id="slots" tabindex="-1">Slots <a class="header-anchor" href="#slots" aria-label="Permalink to "Slots"">​</a></h2><p><code>default</code> - Used to display fallback content if the value being displayed is either <code>null</code> or <code>""</code> (empty string).</p><h2 id="datatypeattribute" tabindex="-1">[DataTypeAttribute] <a class="header-anchor" href="#datatypeattribute" aria-label="Permalink to "[DataTypeAttribute]"">​</a></h2><p>For properties and other values annotated with [DataTypeAttribute], the following special handling occurs based on the data type:</p><ul><li><code>DataType.MultilineText</code>: Renders with <code>white-space: pre-wrap</code>.</li><li><code>DataType.Password</code>: Renders with a show/hide toggle (hidden by default), showing a fixed number of dot characters when hidden.</li><li><code>DataType.Url</code>: Renders as a clickable link.</li><li><code>DataType.EmailAddress</code>: Renders as a clickable <code>mailto</code> link.</li><li><code>DataType.PhoneNumber</code>: Renders as a clickable <code>tel</code> link.</li><li><code>DataType.ImageUrl</code>: Renders as an <code>img</code> element.</li><li><code>"Color"</code>: Renders a colored dot next to the value, interpreting the field value as a 7-character HTML hex color code.</li></ul>',7);function f(C,g,v,_,b,q){const s=r("Prop");return p(),n("div",null,[i,o(s,{def:"for: string | Property | Value",lang:"ts"}),d,o(s,{def:"model?: Model | DataSource",lang:"ts"}),D,o(s,{def:'format: DisplayOptions["format"]',lang:"ts"}),y,u,o(s,{def:"options: DisplayOptions",lang:"ts"}),h,o(s,{def:`value: any // Vue 2 +modelValue: any // Vue 3`,lang:"ts"}),m])}const F=l(c,[["render",f]]);export{k as __pageData,F as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-display.md.40__qAFd.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-display.md.40__qAFd.lean.js new file mode 100644 index 000000000..8379aa2ed --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-display.md.40__qAFd.lean.js @@ -0,0 +1,2 @@ +import{_ as l,c as n,I as o,a7 as t,l as e,a,o as p,E as r}from"./chunks/framework.Be4oCqIX.js";const k=JSON.parse('{"title":"c-display","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-display.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-display.md"}'),c={name:"stacks/vue/coalesce-vue-vuetify/components/c-display.md"},i=t("",12),d=e("p",null,[a("A metadata specifier for the value being bound. Either a direct reference to the metadata object, or a string with the name of the value belonging to "),e("code",null,"model"),a(", or a string in dot-notation that starts with a type name.")],-1),D=e("p",null,[a("An object owning the value that was specified by the "),e("code",null,"for"),a(" prop.")],-1),y=e("p",null,[a("Shorthand for "),e("code",null,':options="{ format: format }"'),a(", allowing for specification of the format to be used when displaying dates.")],-1),u=e("p",null,[a("See "),e("a",{href:"/Coalesce/stacks/vue/layers/models.html#displayoptions"},"DisplayOptions"),a(" for details on the options available for "),e("code",null,"format"),a(".")],-1),h=e("p",null,[a("Specify options for formatting some kinds of values, including dates. See "),e("a",{href:"/Coalesce/stacks/vue/layers/models.html#displayoptions"},"DisplayOptions"),a(" for details.")],-1),m=t("",7);function f(C,g,v,_,b,q){const s=r("Prop");return p(),n("div",null,[i,o(s,{def:"for: string | Property | Value",lang:"ts"}),d,o(s,{def:"model?: Model | DataSource",lang:"ts"}),D,o(s,{def:'format: DisplayOptions["format"]',lang:"ts"}),y,u,o(s,{def:"options: DisplayOptions",lang:"ts"}),h,o(s,{def:`value: any // Vue 2 +modelValue: any // Vue 3`,lang:"ts"}),m])}const F=l(c,[["render",f]]);export{k as __pageData,F as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-input.md.Qgah7Otc.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-input.md.Qgah7Otc.js new file mode 100644 index 000000000..20ded7c47 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-input.md.Qgah7Otc.js @@ -0,0 +1,6 @@ +import{_ as t,c as l,I as o,a7 as n,l as e,a as s,o as p,E as c}from"./chunks/framework.Be4oCqIX.js";const q=JSON.parse('{"title":"c-input","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-input.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-input.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-input.md"},i=n(`<h1 id="c-input" tabindex="-1">c-input <a class="header-anchor" href="#c-input" aria-label="Permalink to "c-input"">​</a></h1><p>A general-purpose input component for most <a href="/Coalesce/stacks/vue/layers/metadata.html">Values</a>. c-input delegates to other components based on the type of value it is bound to. This includes both other <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/overview.html">Coalesce Vuetify Components</a> as well as direct usages of some <a href="https://vuetifyjs.com/" target="_blank" rel="noreferrer">Vuetify</a> components.</p><p>All attributes are passed through to the delegated-to component, allowing for full customization of the underlying <a href="https://vuetifyjs.com/" target="_blank" rel="noreferrer">Vuetify</a> component.</p><p>A summary of the components delegated to, by type:</p><ul><li>string: <ul><li><a href="https://vuetifyjs.com/en/components/textarea/" target="_blank" rel="noreferrer">v-textarea</a> if flag attribute <code>textarea</code> is provided to <code>c-input</code> or if <code>[DataType(DataType.MultilineText)]</code> is present in C#.</li><li>Otherwise, <a href="https://vuetifyjs.com/en/components/text-fields/" target="_blank" rel="noreferrer">v-text-field</a>. Additionally, <code>[DataTypeAttribute]</code> values of <code>DataType.EmailAddress</code>, <code>DataType.PhoneNumber</code>, <code>DataType.Password</code>, or <code>"Color"</code> on the field will apply appropriate adjustments to the field.</li></ul></li><li>number: <a href="https://vuetifyjs.com/en/components/text-fields/" target="_blank" rel="noreferrer">v-text-field</a>.</li><li>boolean: <a href="https://vuetifyjs.com/en/components/selection-controls/" target="_blank" rel="noreferrer">v-switch</a>, or <a href="https://vuetifyjs.com/en/components/selection-controls/" target="_blank" rel="noreferrer">v-checkbox</a> if flag attribute <code>checkbox</code> is provided to <code>c-input</code>.</li><li>enum: <a href="https://vuetifyjs.com/en/components/selects/" target="_blank" rel="noreferrer">v-select</a></li><li>file: <a href="https://vuetifyjs.com/en/components/file-inputs/" target="_blank" rel="noreferrer">v-file-input</a></li><li>date: <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-datetime-picker.html">c-datetime-picker</a></li><li>model: <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-select.html">c-select</a></li><li><a href="/Coalesce/modeling/model-components/attributes/many-to-many.html">[ManyToMany]</a> collection: <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-select-many-to-many.html">c-select-many-to-many</a></li><li>Non-object collection: <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-select-values.html">c-select-values</a></li></ul><p>Any other unsupported type will simply be displayed with <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-display.html">c-display</a>, unless a <a href="https://vuejs.org/guide/components/slots.html" target="_blank" rel="noreferrer">default slot</a> is provided - in that case, the default slot will be rendered instead.</p><p>When bound to a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ViewModel</a>, the <a href="/Coalesce/stacks/vue/layers/viewmodels.html#rules-validation">validation rules</a> for the bound property will be obtained from the <a href="/Coalesce/stacks/vue/layers/viewmodels.html#rules-validation">ViewModel</a> and passed to <a href="https://vuetifyjs.com/" target="_blank" rel="noreferrer">Vuetify</a>'s <code>rules</code> prop.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><p>Typical usage, providing an object and a property on that object:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-input</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"firstName"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><p>Customizing the <a href="https://vuetifyjs.com/" target="_blank" rel="noreferrer">Vuetify</a> component used:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-input</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">comment</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"content"</span><span style="color:#9CDCFE;"> textarea</span><span style="color:#9CDCFE;"> solo</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><p>Binding to <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Caller</a> args objects:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-input</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">setFirstName</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"newName"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><p>Or, using a more verbose syntax:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-input</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">setFirstName</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">args</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"Person.methods.setFirstName.newName"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><p>Binding to <a href="/Coalesce/modeling/model-components/data-sources.html#custom-parameters">Data Source Parameters</a>:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-input</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">personList</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$dataSource</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"startsWith"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><p>Usage with <code>v-model</code> (this scenario is atypical - the model/for pair of props are used in almost all scenarios):</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-input</span><span style="color:#9CDCFE;"> v-model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">firstName</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"Person.firstName"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>`,21),u=e("p",null,"A metadata specifier for the value being bound. One of:",-1),d=e("ul",null,[e("li",null,[s("A string with the name of the value belonging to "),e("code",null,"model"),s(".")]),e("li",null,"A direct reference to a metadata object."),e("li",null,"A string in dot-notation that starts with a type name.")],-1),y=e("p",null,[s("An object owning the value that was specified by the "),e("code",null,"for"),s(" prop. If provided, the input will be bound to the corresponding property on the "),e("code",null,"model"),s(" object.")],-1),D=e("p",null,[s("If binding the component with "),e("code",null,"v-model"),s(", accepts the "),e("code",null,"value"),s(" part of "),e("code",null,"v-model"),s(".")],-1),m=e("h2",{id:"slots",tabindex:"-1"},[s("Slots "),e("a",{class:"header-anchor",href:"#slots","aria-label":'Permalink to "Slots"'},"​")],-1),h=e("p",null,[e("code",null,"default"),s(" - Used to display fallback content if c-input does not support the type of the value being bound. Generally this does not need to be used, as you should avoid creating c-input components for unsupported types in the first place.")],-1);function f(v,C,g,b,_,k){const a=c("Prop");return p(),l("div",null,[i,o(a,{def:"for?: string | Property | Value",lang:"ts"}),u,d,o(a,{def:"model?: Model | DataSource",lang:"ts"}),y,o(a,{def:`value?: any // Vue 2 +modelValue?: any // Vue 3`,lang:"ts"}),D,m,h])}const F=t(r,[["render",f]]);export{q as __pageData,F as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-input.md.Qgah7Otc.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-input.md.Qgah7Otc.lean.js new file mode 100644 index 000000000..144aff84f --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-input.md.Qgah7Otc.lean.js @@ -0,0 +1,2 @@ +import{_ as t,c as l,I as o,a7 as n,l as e,a as s,o as p,E as c}from"./chunks/framework.Be4oCqIX.js";const q=JSON.parse('{"title":"c-input","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-input.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-input.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-input.md"},i=n("",21),u=e("p",null,"A metadata specifier for the value being bound. One of:",-1),d=e("ul",null,[e("li",null,[s("A string with the name of the value belonging to "),e("code",null,"model"),s(".")]),e("li",null,"A direct reference to a metadata object."),e("li",null,"A string in dot-notation that starts with a type name.")],-1),y=e("p",null,[s("An object owning the value that was specified by the "),e("code",null,"for"),s(" prop. If provided, the input will be bound to the corresponding property on the "),e("code",null,"model"),s(" object.")],-1),D=e("p",null,[s("If binding the component with "),e("code",null,"v-model"),s(", accepts the "),e("code",null,"value"),s(" part of "),e("code",null,"v-model"),s(".")],-1),m=e("h2",{id:"slots",tabindex:"-1"},[s("Slots "),e("a",{class:"header-anchor",href:"#slots","aria-label":'Permalink to "Slots"'},"​")],-1),h=e("p",null,[e("code",null,"default"),s(" - Used to display fallback content if c-input does not support the type of the value being bound. Generally this does not need to be used, as you should avoid creating c-input components for unsupported types in the first place.")],-1);function f(v,C,g,b,_,k){const a=c("Prop");return p(),l("div",null,[i,o(a,{def:"for?: string | Property | Value",lang:"ts"}),u,d,o(a,{def:"model?: Model | DataSource",lang:"ts"}),y,o(a,{def:`value?: any // Vue 2 +modelValue?: any // Vue 3`,lang:"ts"}),D,m,h])}const F=t(r,[["render",f]]);export{q as __pageData,F as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-filters.md.CfJw1bmc.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-filters.md.CfJw1bmc.js new file mode 100644 index 000000000..5f7847b59 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-filters.md.CfJw1bmc.js @@ -0,0 +1 @@ +import{_ as t,c as o,I as l,a7 as r,l as e,a as s,o as c,E as n}from"./chunks/framework.Be4oCqIX.js";const C=JSON.parse('{"title":"c-list-filters","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-filters.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-filters.md"}'),i={name:"stacks/vue/coalesce-vue-vuetify/components/c-list-filters.md"},p=r('<h1 id="c-list-filters" tabindex="-1">c-list-filters <a class="header-anchor" href="#c-list-filters" aria-label="Permalink to "c-list-filters"">​</a></h1><p>A component that provides an interface for modifying the <code>filters</code> prop of a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>'s <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">parameters</a>.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-list-filters</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>',5),d=e("p",null,[s("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),s(" whose filters will be editable.")],-1);function m(f,h,u,_,v,D){const a=n("Prop");return c(),o("div",null,[p,l(a,{def:"list: ListViewModel",lang:"ts"}),d])}const g=t(i,[["render",m]]);export{C as __pageData,g as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-filters.md.CfJw1bmc.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-filters.md.CfJw1bmc.lean.js new file mode 100644 index 000000000..f461ef286 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-filters.md.CfJw1bmc.lean.js @@ -0,0 +1 @@ +import{_ as t,c as o,I as l,a7 as r,l as e,a as s,o as c,E as n}from"./chunks/framework.Be4oCqIX.js";const C=JSON.parse('{"title":"c-list-filters","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-filters.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-filters.md"}'),i={name:"stacks/vue/coalesce-vue-vuetify/components/c-list-filters.md"},p=r("",5),d=e("p",null,[s("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),s(" whose filters will be editable.")],-1);function m(f,h,u,_,v,D){const a=n("Prop");return c(),o("div",null,[p,l(a,{def:"list: ListViewModel",lang:"ts"}),d])}const g=t(i,[["render",m]]);export{C as __pageData,g as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-page-size.md.wJ5LwbBH.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-page-size.md.wJ5LwbBH.js new file mode 100644 index 000000000..5489e8b47 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-page-size.md.wJ5LwbBH.js @@ -0,0 +1 @@ +import{_ as o,c as l,I as t,a7 as c,l as e,a,o as n,E as p}from"./chunks/framework.Be4oCqIX.js";const z=JSON.parse('{"title":"c-list-page-size","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.md"}'),i={name:"stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.md"},r=c('<h1 id="c-list-page-size" tabindex="-1">c-list-page-size <a class="header-anchor" href="#c-list-page-size" aria-label="Permalink to "c-list-page-size"">​</a></h1><p>A component that provides an dropdown for modifying the <code>pageSize</code> <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">parameter</a> prop of a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-list-page-size</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>',5),d=e("p",null,[a("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(" whose pagination will be editable.")],-1),u=e("p",null,[a("An optional list of available page sizes to offer through "),e("a",{href:"/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.html"},"c-list-page-size"),a(". Defaults to "),e("code",null,"[10, 25, 100]"),a(".")],-1);function m(h,_,g,f,v,D){const s=p("Prop");return n(),l("div",null,[r,t(s,{def:"list: ListViewModel",lang:"ts"}),d,t(s,{def:"pageSizes?: number[]",lang:"ts"}),u])}const C=o(i,[["render",m]]);export{z as __pageData,C as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-page-size.md.wJ5LwbBH.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-page-size.md.wJ5LwbBH.lean.js new file mode 100644 index 000000000..746ccc229 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-page-size.md.wJ5LwbBH.lean.js @@ -0,0 +1 @@ +import{_ as o,c as l,I as t,a7 as c,l as e,a,o as n,E as p}from"./chunks/framework.Be4oCqIX.js";const z=JSON.parse('{"title":"c-list-page-size","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.md"}'),i={name:"stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.md"},r=c("",5),d=e("p",null,[a("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(" whose pagination will be editable.")],-1),u=e("p",null,[a("An optional list of available page sizes to offer through "),e("a",{href:"/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.html"},"c-list-page-size"),a(". Defaults to "),e("code",null,"[10, 25, 100]"),a(".")],-1);function m(h,_,g,f,v,D){const s=p("Prop");return n(),l("div",null,[r,t(s,{def:"list: ListViewModel",lang:"ts"}),d,t(s,{def:"pageSizes?: number[]",lang:"ts"}),u])}const C=o(i,[["render",m]]);export{z as __pageData,C as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-page.md.BzwX42JE.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-page.md.BzwX42JE.js new file mode 100644 index 000000000..eb2fead77 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-page.md.BzwX42JE.js @@ -0,0 +1 @@ +import{_ as t,c as o,I as l,a7 as c,l as e,a,o as n,E as p}from"./chunks/framework.Be4oCqIX.js";const y=JSON.parse('{"title":"c-list-page","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-page.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-page.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-list-page.md"},i=c('<h1 id="c-list-page" tabindex="-1">c-list-page <a class="header-anchor" href="#c-list-page" aria-label="Permalink to "c-list-page"">​</a></h1><p>A component that provides previous/next buttons and a text field for modifying the <code>page</code> <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">parameter</a> prop of a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-list-page</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>',5),d=e("p",null,[a("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(" whose current page will be changeable with the component.")],-1);function m(h,u,_,g,f,v){const s=p("Prop");return n(),o("div",null,[i,l(s,{def:"list: ListViewModel",lang:"ts"}),d])}const x=t(r,[["render",m]]);export{y as __pageData,x as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-page.md.BzwX42JE.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-page.md.BzwX42JE.lean.js new file mode 100644 index 000000000..db202f3ff --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-page.md.BzwX42JE.lean.js @@ -0,0 +1 @@ +import{_ as t,c as o,I as l,a7 as c,l as e,a,o as n,E as p}from"./chunks/framework.Be4oCqIX.js";const y=JSON.parse('{"title":"c-list-page","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-page.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-page.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-list-page.md"},i=c("",5),d=e("p",null,[a("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(" whose current page will be changeable with the component.")],-1);function m(h,u,_,g,f,v){const s=p("Prop");return n(),o("div",null,[i,l(s,{def:"list: ListViewModel",lang:"ts"}),d])}const x=t(r,[["render",m]]);export{y as __pageData,x as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-pagination.md.DDqx2UyA.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-pagination.md.DDqx2UyA.js new file mode 100644 index 000000000..f75ada21d --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-pagination.md.DDqx2UyA.js @@ -0,0 +1 @@ +import{_ as o,c as l,I as t,a7 as n,l as e,a,o as c,E as i}from"./chunks/framework.Be4oCqIX.js";const b=JSON.parse('{"title":"c-list-pagination","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.md"}'),p={name:"stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.md"},r=n('<h1 id="c-list-pagination" tabindex="-1">c-list-pagination <a class="header-anchor" href="#c-list-pagination" aria-label="Permalink to "c-list-pagination"">​</a></h1><p>A component that provides an interface for modifying the pagination <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">parameters</a> of a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>.</p><p>This is a composite of <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.html">c-list-page-size</a>, <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-range-display.html">c-list-range-display</a>, and <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-page.html">c-list-page</a>, arranged horizontally. It is designed to be used above or below a table (e.g. <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-table.html">c-table</a>).</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-list-pagination</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>',6),d=e("p",null,[a("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(" whose pagination will be editable.")],-1),u=e("p",null,[a("An optional list of available page sizes to offer through "),e("a",{href:"/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.html"},"c-list-page-size"),a(". Defaults to "),e("code",null,"[10, 25, 100]"),a(".")],-1);function h(m,g,f,v,_,y){const s=i("Prop");return c(),l("div",null,[r,t(s,{def:"list: ListViewModel",lang:"ts"}),d,t(s,{def:"pageSizes?: number[]",lang:"ts"}),u])}const C=o(p,[["render",h]]);export{b as __pageData,C as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-pagination.md.DDqx2UyA.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-pagination.md.DDqx2UyA.lean.js new file mode 100644 index 000000000..c98e550f4 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-pagination.md.DDqx2UyA.lean.js @@ -0,0 +1 @@ +import{_ as o,c as l,I as t,a7 as n,l as e,a,o as c,E as i}from"./chunks/framework.Be4oCqIX.js";const b=JSON.parse('{"title":"c-list-pagination","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.md"}'),p={name:"stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.md"},r=n("",6),d=e("p",null,[a("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(" whose pagination will be editable.")],-1),u=e("p",null,[a("An optional list of available page sizes to offer through "),e("a",{href:"/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.html"},"c-list-page-size"),a(". Defaults to "),e("code",null,"[10, 25, 100]"),a(".")],-1);function h(m,g,f,v,_,y){const s=i("Prop");return c(),l("div",null,[r,t(s,{def:"list: ListViewModel",lang:"ts"}),d,t(s,{def:"pageSizes?: number[]",lang:"ts"}),u])}const C=o(p,[["render",h]]);export{b as __pageData,C as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-range-display.md.BC27qosh.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-range-display.md.BC27qosh.js new file mode 100644 index 000000000..d57b421fe --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-range-display.md.BC27qosh.js @@ -0,0 +1 @@ +import{_ as t,c as o,I as l,a7 as n,l as e,a,o as c,E as i}from"./chunks/framework.Be4oCqIX.js";const v=JSON.parse('{"title":"c-list-range-display","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-range-display.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-range-display.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-list-range-display.md"},p=n('<h1 id="c-list-range-display" tabindex="-1">c-list-range-display <a class="header-anchor" href="#c-list-range-display" aria-label="Permalink to "c-list-range-display"">​</a></h1><p>Displays pagination information about the current <code>$items</code> of a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a> in the format <code><start index> - <end index> of <total count></code>.</p><p>Uses the pagination information returned from the last successful <code>$load</code> call, not the current <code>$params</code> of the <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-list-range-display</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>',6),d=e("p",null,[a("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(" to display pagination information for.")],-1);function u(m,h,y,_,f,g){const s=i("Prop");return c(),o("div",null,[p,l(s,{def:"list: ListViewModel",lang:"ts"}),d])}const k=t(r,[["render",u]]);export{v as __pageData,k as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-range-display.md.BC27qosh.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-range-display.md.BC27qosh.lean.js new file mode 100644 index 000000000..b5cbd7d47 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-list-range-display.md.BC27qosh.lean.js @@ -0,0 +1 @@ +import{_ as t,c as o,I as l,a7 as n,l as e,a,o as c,E as i}from"./chunks/framework.Be4oCqIX.js";const v=JSON.parse('{"title":"c-list-range-display","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-range-display.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-list-range-display.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-list-range-display.md"},p=n("",6),d=e("p",null,[a("The "),e("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),a(" to display pagination information for.")],-1);function u(m,h,y,_,f,g){const s=i("Prop");return c(),o("div",null,[p,l(s,{def:"list: ListViewModel",lang:"ts"}),d])}const k=t(r,[["render",u]]);export{v as __pageData,k as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-loader-status.md.CTe0iEId.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-loader-status.md.CTe0iEId.js new file mode 100644 index 000000000..ada0c3b35 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-loader-status.md.CTe0iEId.js @@ -0,0 +1,44 @@ +import{_ as l,c as t,I as a,a7 as o,l as e,a as n,o as p,E as r}from"./chunks/framework.Be4oCqIX.js";const F=JSON.parse('{"title":"c-loader-status","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-loader-status.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-loader-status.md"}'),c={name:"stacks/vue/coalesce-vue-vuetify/components/c-loader-status.md"},i=o(`<h1 id="c-loader-status" tabindex="-1">c-loader-status <a class="header-anchor" href="#c-loader-status" aria-label="Permalink to "c-loader-status"">​</a></h1><p>A component for displaying progress and error information for one or more <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Callers</a>.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>It is highly recommended that all <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Callers</a> utilized by your application that don't have any other kind of error handling should be represented by a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-loader-status.html">c-loader-status</a> so that users can be aware of any errors that occur.</p></div><p>Progress is indicated with a <a href="https://vuetifyjs.com/" target="_blank" rel="noreferrer">Vuetify</a> <a href="https://vuetifyjs.com/en/components/progress-linear" target="_blank" rel="noreferrer">v-progress-linear</a> component, and errors are displayed in a <a href="https://vuetifyjs.com/en/components/alerts/" target="_blank" rel="noreferrer">v-alert</a>. <a href="https://vuetifyjs.com/en/styles/transitions/" target="_blank" rel="noreferrer">Transitions</a> are applied to smoothly fade between the different states the the caller can be in.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><p>Wrap contents of a details/edit page:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">h1</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">Person Details</span><span style="color:#808080;"></</span><span style="color:#569CD6;">h1</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-loader-status</span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">loaders</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;">{ </span></span> +<span class="line"><span style="color:#CE9178;"> 'no-initial-content no-error-content'</span><span style="color:#9CDCFE;">:</span><span style="color:#D4D4D4;"> [</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$load</span><span style="color:#D4D4D4;">],</span></span> +<span class="line"><span style="color:#CE9178;"> ''</span><span style="color:#9CDCFE;">:</span><span style="color:#D4D4D4;"> [</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$save</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$delete</span><span style="color:#D4D4D4;">],</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#D4D4D4;"> #</span><span style="color:#9CDCFE;">default</span></span> +<span class="line"><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#D4D4D4;"> First Name: {{ </span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">firstName</span><span style="color:#D4D4D4;"> }}</span></span> +<span class="line"><span style="color:#D4D4D4;"> Last Name: {{ </span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">lastName</span><span style="color:#D4D4D4;"> }}</span></span> +<span class="line"><span style="color:#D4D4D4;"> Employer: {{ </span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">company</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">name</span><span style="color:#D4D4D4;"> }}</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">c-loader-status</span><span style="color:#808080;">></span></span></code></pre></div><p>Use <code>c-loader-status</code> to render a progress bar and any error messages, but don't use it to control content:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-loader-status</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">loaders</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$load</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><p>Wrap a save/submit button:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-loader-status</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">loaders</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;">[</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$save</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$delete</span><span style="color:#D4D4D4;">]</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> no-loading-content</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">button</span><span style="color:#808080;">></span><span style="color:#D4D4D4;"> Save </span><span style="color:#808080;"></</span><span style="color:#569CD6;">button</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">button</span><span style="color:#808080;">></span><span style="color:#D4D4D4;"> Delete </span><span style="color:#808080;"></</span><span style="color:#569CD6;">button</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">c-loader-status</span><span style="color:#808080;">></span></span></code></pre></div><p>Hides the table before the first load has completed, or if loading the list encountered an error. Don't show the progress bar after we've already loaded the list for the first time (useful for loads that occur without user interaction, e.g. <code>setInterval</code>):</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-loader-status</span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">loaders</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$load</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#9CDCFE;"> no-initial-content</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> no-error-content</span></span> +<span class="line"><span style="color:#9CDCFE;"> no-secondary-progress</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">table</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">tr</span><span style="color:#9CDCFE;"> v-for</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">item</span><span style="color:#569CD6;"> in</span><span style="color:#9CDCFE;"> list</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$items</span><span style="color:#D4D4D4;">"</span><span style="color:#808080;">></span><span style="color:#D4D4D4;"> ... </span><span style="color:#808080;"></</span><span style="color:#569CD6;">tr</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> </</span><span style="color:#569CD6;">table</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">c-loader-status</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>`,14),d=o(`<div><p>This prop has multiple options that support simple or complex usage scenarios:</p><h4 id="flags-per-component" tabindex="-1">Flags Per Component <a class="header-anchor" href="#flags-per-component" aria-label="Permalink to "Flags Per Component"">​</a></h4><p>A single instance, or array of <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Callers</a>, whose status will be represented by the component. The <a href="#flags">flags</a> for these objects will be determined from the component-level <a href="#flags-props">flag props</a>.</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-loader-status</span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">loaders</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;">[</span><span style="color:#9CDCFE;">product</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$load</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$load</span><span style="color:#D4D4D4;">]</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#9CDCFE;"> no-initial-content</span></span> +<span class="line"><span style="color:#9CDCFE;"> no-error-content</span></span> +<span class="line"><span style="color:#D4D4D4;">/</span><span style="color:#808080;">></span></span></code></pre></div><h4 id="flags-per-caller" tabindex="-1">Flags Per Caller <a class="header-anchor" href="#flags-per-caller" aria-label="Permalink to "Flags Per Caller"">​</a></h4><p>A more advanced usage allows passing different flags for different callers. Provide a dictionary object with entries mapping zero or more <a href="#flags">flags</a> to one or more <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Callers</a>. Multiple entries of flags/caller pairs may be specified in the dictionary to give different behavior to different API callers. These flags are layered on top of the base <a href="#flags-props">flag props</a>.</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-loader-status</span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">loaders</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;">{ </span></span> +<span class="line"><span style="color:#CE9178;"> 'no-initial-content no-error-content'</span><span style="color:#9CDCFE;">:</span><span style="color:#D4D4D4;"> [</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$load</span><span style="color:#D4D4D4;">],</span></span> +<span class="line"><span style="color:#CE9178;"> 'no-loading-content'</span><span style="color:#9CDCFE;">:</span><span style="color:#D4D4D4;"> [</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$save</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$delete</span><span style="color:#D4D4D4;">],</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#D4D4D4;">/</span><span style="color:#808080;">></span></span></code></pre></div></div><br>`,2),D=e("p",null,"Specify if space should be reserved for the progress indicator. If set to false, the content in the default slot may jump up and down slightly as the progress indicator shows and hides.",-1),y=e("p",null,"Positions the progress bar absolutely. This can be useful in compact interfaces where extra space for the progress bar is undesirable, allowing the progress bar to potentially overlap content while active.",-1),h=e("p",null,[n("Specifies the height in pixels of the "),e("a",{href:"https://vuetifyjs.com/en/components/progress-linear",target:"_blank",rel:"noreferrer"},"v-progress-linear"),n(" used to indicate progress.")],-1),u=o('<p>Component level <a href="#flags">flags</a> options that control behavior when the simple form of <code>loaders</code> (single instance or array) is used, as well as provide baseline defaults that can be overridden by the advanced form of <code>loaders</code> (object map) .</p><h2 id="flags" tabindex="-1">Flags <a class="header-anchor" href="#flags" aria-label="Permalink to "Flags"">​</a></h2><p>The available flags are as follows, all of which default to <code>true</code>. In the object literal syntax for <code>loaders</code>, the <code>no-</code> prefix may be omitted to set the flag to <code>true</code>.</p><table><thead><tr><th><div style="width:160px;">Flag</div></th><th>Description</th></tr></thead><tbody><tr><td><code>no-loading-content</code></td><td>Controls whether the default slot is rendered while any API caller is loading (i.e. when <code>caller.isLoading === true</code>).</td></tr><tr><td><code>no-error-content</code></td><td>Controls whether the default slot is rendered while any API Caller is in an error state (i.e. when <code>caller.wasSuccessful === false</code>).</td></tr><tr><td><code>no-initial-content</code></td><td>Controls whether the default slot is rendered while any API Caller has yet to receive a response for the first time (i.e. when <code>caller.wasSuccessful === null</code>).</td></tr><tr><td><code>no-progress</code></td><td>Master toggle for whether the progress indicator is shown in any scenario.</td></tr><tr><td><code>no-initial-progress</code></td><td>Controls whether the progress indicator is shown when an API Caller is loading for the very first time (i.e. when <code>caller.wasSuccessful === null</code>).</td></tr><tr><td><code>no-secondary-progress</code></td><td>Controls whether the progress indicator is shown when an API Caller is loading any time after its first invocation (i.e. when <code>caller.wasSuccessful !== null</code>).</td></tr></tbody></table><h2 id="slots" tabindex="-1">Slots <a class="header-anchor" href="#slots" aria-label="Permalink to "Slots"">​</a></h2><p><code>default</code> - Accepts the content whose visibility is controlled by the state of the supplied <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Callers</a>. It will be shown or hidden according to the flags defined for each caller.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>(Vue 2 Only): Define the default slot as a <a href="https://v2.vuejs.org/v2/guide/components-slots.html#Scoped-Slots" target="_blank" rel="noreferrer">scoped slot</a> (e.g. with <code>#default</code> or <code>v-slot:default</code> on the <code>c-loader-status</code>) to prevent the VNode tree from being created when the content should be hidden. This improves performance and helps avoid null reference errors that can be caused when trying to render objects that haven't been loaded yet.</p></div>',7);function C(f,g,m,b,v,_){const s=r("Prop");return p(),t("div",null,[i,a(s,{def:`loaders: + // Flags per component: + | ApiCaller + | ApiCaller[] + // Flags per caller: + | { [flags: string]: ApiCaller | ApiCaller[] } `,lang:"ts"}),d,a(s,{def:"progressPlaceholder: boolean = true",lang:"ts"}),D,a(s,{def:"progressAbsolute: boolean = false",lang:"ts"}),y,a(s,{def:"height: number = 10",lang:"ts"}),h,a(s,{def:` +no-loading-content?: boolean; +no-error-content?: boolean; +no-initial-content?: boolean; +no-progress?: boolean; +no-initial-progress?: boolean; +no-secondary-progress?: boolean;`,lang:"ts",id:"flags-props"}),u])}const w=l(c,[["render",C]]);export{F as __pageData,w as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-loader-status.md.CTe0iEId.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-loader-status.md.CTe0iEId.lean.js new file mode 100644 index 000000000..fcf288820 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-loader-status.md.CTe0iEId.lean.js @@ -0,0 +1,12 @@ +import{_ as l,c as t,I as a,a7 as o,l as e,a as n,o as p,E as r}from"./chunks/framework.Be4oCqIX.js";const F=JSON.parse('{"title":"c-loader-status","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-loader-status.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-loader-status.md"}'),c={name:"stacks/vue/coalesce-vue-vuetify/components/c-loader-status.md"},i=o("",14),d=o("",2),D=e("p",null,"Specify if space should be reserved for the progress indicator. If set to false, the content in the default slot may jump up and down slightly as the progress indicator shows and hides.",-1),y=e("p",null,"Positions the progress bar absolutely. This can be useful in compact interfaces where extra space for the progress bar is undesirable, allowing the progress bar to potentially overlap content while active.",-1),h=e("p",null,[n("Specifies the height in pixels of the "),e("a",{href:"https://vuetifyjs.com/en/components/progress-linear",target:"_blank",rel:"noreferrer"},"v-progress-linear"),n(" used to indicate progress.")],-1),u=o("",7);function C(f,g,m,b,v,_){const s=r("Prop");return p(),t("div",null,[i,a(s,{def:`loaders: + // Flags per component: + | ApiCaller + | ApiCaller[] + // Flags per caller: + | { [flags: string]: ApiCaller | ApiCaller[] } `,lang:"ts"}),d,a(s,{def:"progressPlaceholder: boolean = true",lang:"ts"}),D,a(s,{def:"progressAbsolute: boolean = false",lang:"ts"}),y,a(s,{def:"height: number = 10",lang:"ts"}),h,a(s,{def:` +no-loading-content?: boolean; +no-error-content?: boolean; +no-initial-content?: boolean; +no-progress?: boolean; +no-initial-progress?: boolean; +no-secondary-progress?: boolean;`,lang:"ts",id:"flags-props"}),u])}const w=l(c,[["render",C]]);export{F as __pageData,w as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-many-to-many.md.DSdWGTti.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-many-to-many.md.DSdWGTti.js new file mode 100644 index 000000000..3ebcbfd47 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-many-to-many.md.DSdWGTti.js @@ -0,0 +1,10 @@ +import{_ as n,c as l,I as o,a7 as t,l as e,a,o as c,E as p}from"./chunks/framework.Be4oCqIX.js";const k=JSON.parse('{"title":"c-select-many-to-many","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-select-many-to-many.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-select-many-to-many.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-select-many-to-many.md"},d=t(`<h1 id="c-select-many-to-many" tabindex="-1">c-select-many-to-many <a class="header-anchor" href="#c-select-many-to-many" aria-label="Permalink to "c-select-many-to-many"">​</a></h1><p>A multi-select dropdown component that allows for selecting values fetched from the generated <code>/list</code> API endpoints for collection navigation properties that were annotated with <a href="/Coalesce/modeling/model-components/attributes/many-to-many.html">[ManyToMany]</a>.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>It is unlikely that you'll ever need to use this component directly - it is highly recommended that you use <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-input.html">c-input</a> instead and let it delegate to <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-select-many-to-many.html">c-select-many-to-many</a> for you.</p></div><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-select-many-to-many</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">case</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"caseProducts"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-select-many-to-many</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">case</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"caseProducts"</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> dense</span></span> +<span class="line"><span style="color:#9CDCFE;"> outlined</span></span> +<span class="line"><span style="color:#D4D4D4;">/</span><span style="color:#808080;">></span></span></code></pre></div><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-select-many-to-many</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> v-model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">case</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">caseProducts</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"Case.caseProducts"</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;">/</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>`,8),i=t('<p>A metadata specifier for the value being bound. One of:</p><ul><li>A string with the name of the value belonging to <code>model</code>.</li><li>A direct reference to a metadata object.</li><li>A string in dot-notation that starts with a type name.</li></ul><div class="tip custom-block"><p class="custom-block-title">Note</p><p>c-select-many-to-many expects metadata for the "real" collection navigation property on a model. If you provide it the string you passed to <a href="/Coalesce/modeling/model-components/attributes/many-to-many.html">[ManyToMany]</a>, an error wil be thrown.</p></div>',3),m=e("p",null,[a("An object owning the value that was specified by the "),e("code",null,"for"),a(" prop. If provided, the input will be bound to the corresponding property on the "),e("code",null,"model"),a(" object.")],-1),y=e("p",null,[a("If binding the component with "),e("code",null,"v-model"),a(", accepts the "),e("code",null,"value"),a(" part of "),e("code",null,"v-model"),a(".")],-1),u=e("p",null,[a("An optional set of "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-parameters"},"Data Source Standard Parameters"),a(" to pass to API calls made to the server.")],-1),h=t('<p>If provided and non-false, enables <a href="/Coalesce/stacks/vue/layers/api-clients.html#response-caching">response caching</a> on the component's internal API caller.</p><h2 id="events" tabindex="-1">Events <a class="header-anchor" href="#events" aria-label="Permalink to "Events"">​</a></h2><p>The following events and automatic API calls are only used when bound to a <code>model</code> that has <a href="/Coalesce/stacks/vue/layers/viewmodels.html#auto-save">auto-saves</a> enabled.</p><ul><li><code>adding</code> - Fired when a new item has been selected, but before the call to <code>/save</code> has completed.</li><li><code>added</code> - Fired when the call to <code>/save</code> has completed after adding a new item.</li><li><code>deleting</code> - Fired when an item has been removed, but before the call to <code>/delete</code> has completed.</li><li><code>deleted</code> - Fired when the call to <code>/delete</code> has completed after removing an item.</li></ul>',4);function D(v,_,f,C,g,b){const s=p("Prop");return c(),l("div",null,[d,o(s,{def:"for: string | Property | Value",lang:"ts"}),i,o(s,{def:"model?: Model",lang:"ts"}),m,o(s,{def:`value?: any // Vue 2 +modelValue?: any // Vue 3`,lang:"ts"}),y,o(s,{def:"params?: ListParameters",lang:"ts"}),u,o(s,{def:"cache?: ResponseCachingConfiguration | boolean",lang:"ts"}),h])}const E=n(r,[["render",D]]);export{k as __pageData,E as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-many-to-many.md.DSdWGTti.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-many-to-many.md.DSdWGTti.lean.js new file mode 100644 index 000000000..9c3ad676a --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-many-to-many.md.DSdWGTti.lean.js @@ -0,0 +1,2 @@ +import{_ as n,c as l,I as o,a7 as t,l as e,a,o as c,E as p}from"./chunks/framework.Be4oCqIX.js";const k=JSON.parse('{"title":"c-select-many-to-many","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-select-many-to-many.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-select-many-to-many.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-select-many-to-many.md"},d=t("",8),i=t("",3),m=e("p",null,[a("An object owning the value that was specified by the "),e("code",null,"for"),a(" prop. If provided, the input will be bound to the corresponding property on the "),e("code",null,"model"),a(" object.")],-1),y=e("p",null,[a("If binding the component with "),e("code",null,"v-model"),a(", accepts the "),e("code",null,"value"),a(" part of "),e("code",null,"v-model"),a(".")],-1),u=e("p",null,[a("An optional set of "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-parameters"},"Data Source Standard Parameters"),a(" to pass to API calls made to the server.")],-1),h=t("",4);function D(v,_,f,C,g,b){const s=p("Prop");return c(),l("div",null,[d,o(s,{def:"for: string | Property | Value",lang:"ts"}),i,o(s,{def:"model?: Model",lang:"ts"}),m,o(s,{def:`value?: any // Vue 2 +modelValue?: any // Vue 3`,lang:"ts"}),y,o(s,{def:"params?: ListParameters",lang:"ts"}),u,o(s,{def:"cache?: ResponseCachingConfiguration | boolean",lang:"ts"}),h])}const E=n(r,[["render",D]]);export{k as __pageData,E as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-string-value.md.siH2saaT.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-string-value.md.siH2saaT.js new file mode 100644 index 000000000..451abbb14 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-string-value.md.siH2saaT.js @@ -0,0 +1,27 @@ +import{_ as l,c as o,I as e,a7 as t,l as s,a,o as p,E as c}from"./chunks/framework.Be4oCqIX.js";const T=JSON.parse('{"title":"c-select-string-value","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-select-string-value.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-select-string-value.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-select-string-value.md"},D=t(`<h1 id="c-select-string-value" tabindex="-1">c-select-string-value <a class="header-anchor" href="#c-select-string-value" aria-label="Permalink to "c-select-string-value"">​</a></h1><p>A dropdown component that will present a list of suggested string values from a custom API endpoint. Allows users to input values that aren't provided by the endpoint.</p><p>Effectively, this is a server-driven autocomplete list.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-select-string-value</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"jobTitle"</span></span> +<span class="line"><span style="color:#9CDCFE;"> method</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"getSuggestedJobTitles"</span></span> +<span class="line"><span style="color:#D4D4D4;">/</span><span style="color:#808080;">></span></span></code></pre></div><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-select-string-value</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> v-model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">title</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#9CDCFE;"> label</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"Job Title"</span></span> +<span class="line"><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"Person"</span></span> +<span class="line"><span style="color:#9CDCFE;"> method</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"getSuggestedJobTitles"</span></span> +<span class="line"><span style="color:#D4D4D4;">/</span><span style="color:#808080;">></span></span></code></pre></div><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">class</span><span style="color:#4EC9B0;"> Person</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; } </span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> JobTitle</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> static</span><span style="color:#569CD6;"> async</span><span style="color:#4EC9B0;"> Task</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">ICollection</span><span style="color:#D4D4D4;"><</span><span style="color:#569CD6;">string</span><span style="color:#D4D4D4;">>> </span><span style="color:#DCDCAA;">GetSuggestedJobTitles</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#9CDCFE;"> db</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> search</span><span style="color:#D4D4D4;">) </span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#569CD6;"> await</span><span style="color:#9CDCFE;"> db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">People</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Select</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">p</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">p</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">JobTitle</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Distinct</span><span style="color:#D4D4D4;">()</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Where</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">t</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">t</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">StartsWith</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">search</span><span style="color:#D4D4D4;">))</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">OrderBy</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">t</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">t</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Take</span><span style="color:#D4D4D4;">(</span><span style="color:#B5CEA8;">100</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">ToListAsync</span><span style="color:#D4D4D4;">()</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>`,8),i=s("p",null,"A metadata specifier for the value being bound. One of:",-1),y=s("ul",null,[s("li",null,[a("A string with the name of the value belonging to "),s("code",null,"model"),a(".")]),s("li",null,"A direct reference to a metadata object."),s("li",null,"A string in dot-notation that starts with a type name.")],-1),d=s("p",null,[a("An object owning the value that was specified by the "),s("code",null,"for"),a(" prop. If provided, the input will be bound to the corresponding property on the "),s("code",null,"model"),a(" object.")],-1),u=s("p",null,[a("The camel-cased name of the "),s("a",{href:"/Coalesce/modeling/model-components/methods.html"},"Custom Method"),a(" to invoke to get the list of valid values. Will be passed a single string parameter "),s("code",null,"search"),a(". Must be a static method on the type of the provided "),s("code",null,"model"),a(" object that returns a collection of strings.")],-1),C=s("p",null,[a("An optional set of "),s("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-parameters"},"Data Source Standard Parameters"),a(" to pass to API calls made to the server.")],-1),h=s("p",null,"True if the method should be invoked and the list displayed when the entered search term is blank.",-1),g=s("p",null,"True if the bound value should be updated as the user types. Otherwise, the bound value is updated when focus is lost or when a suggested value is chosen. This is only applicable for Vuetify 2 - in Vuetify 3, this is the default behavior.",-1);function m(v,f,b,E,_,A){const n=c("Prop");return p(),o("div",null,[D,e(n,{def:"for: string | Property | Value",lang:"ts"}),i,y,e(n,{def:"model: Model",lang:"ts"}),d,e(n,{def:"method: string",lang:"ts"}),u,e(n,{def:"params?: DataSourceParameters",lang:"ts"}),C,e(n,{def:"listWhenEmpty?: boolean = false",lang:"ts"}),h,e(n,{def:"eager?: boolean = false",lang:"ts"}),g])}const q=l(r,[["render",m]]);export{T as __pageData,q as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-string-value.md.siH2saaT.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-string-value.md.siH2saaT.lean.js new file mode 100644 index 000000000..80d39dfe6 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-string-value.md.siH2saaT.lean.js @@ -0,0 +1 @@ +import{_ as l,c as o,I as e,a7 as t,l as s,a,o as p,E as c}from"./chunks/framework.Be4oCqIX.js";const T=JSON.parse('{"title":"c-select-string-value","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-select-string-value.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-select-string-value.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-select-string-value.md"},D=t("",8),i=s("p",null,"A metadata specifier for the value being bound. One of:",-1),y=s("ul",null,[s("li",null,[a("A string with the name of the value belonging to "),s("code",null,"model"),a(".")]),s("li",null,"A direct reference to a metadata object."),s("li",null,"A string in dot-notation that starts with a type name.")],-1),d=s("p",null,[a("An object owning the value that was specified by the "),s("code",null,"for"),a(" prop. If provided, the input will be bound to the corresponding property on the "),s("code",null,"model"),a(" object.")],-1),u=s("p",null,[a("The camel-cased name of the "),s("a",{href:"/Coalesce/modeling/model-components/methods.html"},"Custom Method"),a(" to invoke to get the list of valid values. Will be passed a single string parameter "),s("code",null,"search"),a(". Must be a static method on the type of the provided "),s("code",null,"model"),a(" object that returns a collection of strings.")],-1),C=s("p",null,[a("An optional set of "),s("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-parameters"},"Data Source Standard Parameters"),a(" to pass to API calls made to the server.")],-1),h=s("p",null,"True if the method should be invoked and the list displayed when the entered search term is blank.",-1),g=s("p",null,"True if the bound value should be updated as the user types. Otherwise, the bound value is updated when focus is lost or when a suggested value is chosen. This is only applicable for Vuetify 2 - in Vuetify 3, this is the default behavior.",-1);function m(v,f,b,E,_,A){const n=c("Prop");return p(),o("div",null,[D,e(n,{def:"for: string | Property | Value",lang:"ts"}),i,y,e(n,{def:"model: Model",lang:"ts"}),d,e(n,{def:"method: string",lang:"ts"}),u,e(n,{def:"params?: DataSourceParameters",lang:"ts"}),C,e(n,{def:"listWhenEmpty?: boolean = false",lang:"ts"}),h,e(n,{def:"eager?: boolean = false",lang:"ts"}),g])}const q=l(r,[["render",m]]);export{T as __pageData,q as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-values.md.L-eFs33j.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-values.md.L-eFs33j.js new file mode 100644 index 000000000..0c864836b --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-values.md.L-eFs33j.js @@ -0,0 +1,5 @@ +import{_ as l,c as o,I as t,a7 as n,l as e,a as s,o as c,E as p}from"./chunks/framework.Be4oCqIX.js";const k=JSON.parse('{"title":"c-select-values","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-select-values.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-select-values.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-select-values.md"},i=n(`<h1 id="c-select-values" tabindex="-1">c-select-values <a class="header-anchor" href="#c-select-values" aria-label="Permalink to "c-select-values"">​</a></h1><p>A multi-select input component for collections of non-object values (primarily strings and numbers).</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>It is unlikely that you'll ever need to use this component directly - it is highly recommended that you use <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-input.html">c-input</a> instead and let it delegate to <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-select-values.html">c-select-values</a> for you.</p></div><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-select-values</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">post</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">setTags</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">args</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"Post.methods.setTags.params.tagNames"</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;">/</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>`,6),u=e("p",null,"A metadata specifier for the value being bound. One of:",-1),d=e("ul",null,[e("li",null,[s("A string with the name of the value belonging to "),e("code",null,"model"),s(".")]),e("li",null,"A direct reference to a metadata object."),e("li",null,"A string in dot-notation that starts with a type name.")],-1),m=e("p",null,[s("An object owning the value that was specified by the "),e("code",null,"for"),s(" prop.")],-1),h=e("p",null,[s("If binding the component with "),e("code",null,"v-model"),s(", accepts the "),e("code",null,"value"),s(" part of "),e("code",null,"v-model"),s(".")],-1);function v(D,y,f,_,g,C){const a=p("Prop");return c(),o("div",null,[i,t(a,{def:"for: string | CollectionProperty | CollectionValue",lang:"ts"}),u,d,t(a,{def:"model?: Model",lang:"ts"}),m,t(a,{def:`value?: any // Vue 2 +modelValue?: any // Vue 3`,lang:"ts"}),h])}const P=l(r,[["render",v]]);export{k as __pageData,P as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-values.md.L-eFs33j.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-values.md.L-eFs33j.lean.js new file mode 100644 index 000000000..cb11fbc32 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select-values.md.L-eFs33j.lean.js @@ -0,0 +1,2 @@ +import{_ as l,c as o,I as t,a7 as n,l as e,a as s,o as c,E as p}from"./chunks/framework.Be4oCqIX.js";const k=JSON.parse('{"title":"c-select-values","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-select-values.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-select-values.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-select-values.md"},i=n("",6),u=e("p",null,"A metadata specifier for the value being bound. One of:",-1),d=e("ul",null,[e("li",null,[s("A string with the name of the value belonging to "),e("code",null,"model"),s(".")]),e("li",null,"A direct reference to a metadata object."),e("li",null,"A string in dot-notation that starts with a type name.")],-1),m=e("p",null,[s("An object owning the value that was specified by the "),e("code",null,"for"),s(" prop.")],-1),h=e("p",null,[s("If binding the component with "),e("code",null,"v-model"),s(", accepts the "),e("code",null,"value"),s(" part of "),e("code",null,"v-model"),s(".")],-1);function v(D,y,f,_,g,C){const a=p("Prop");return c(),o("div",null,[i,t(a,{def:"for: string | CollectionProperty | CollectionValue",lang:"ts"}),u,d,t(a,{def:"model?: Model",lang:"ts"}),m,t(a,{def:`value?: any // Vue 2 +modelValue?: any // Vue 3`,lang:"ts"}),h])}const P=l(r,[["render",v]]);export{k as __pageData,P as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-select.md.DQkXRM0W.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select.md.DQkXRM0W.js new file mode 100644 index 000000000..d9b446ee1 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select.md.DQkXRM0W.js @@ -0,0 +1,35 @@ +import{_ as l,c as t,I as a,l as e,a7 as o,a as s,o as p,E as c}from"./chunks/framework.Be4oCqIX.js";const R=JSON.parse('{"title":"c-select","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-select.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-select.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-select.md"},i=o(`<h1 id="c-select" tabindex="-1">c-select <a class="header-anchor" href="#c-select" aria-label="Permalink to "c-select"">​</a></h1><p>A dropdown component that allows for selecting values fetched from the generated <code>/list</code> API endpoints.</p><p>Used for selecting values for foreign key and navigation properties, or for selecting arbitrary objects or primary keys without a parent or owning object.</p><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples"">​</a></h2><p>Binding to a navigation property or foreign key of a model:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">c-select</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"company"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#6A9955;"> <!-- OR: --></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">c-select</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"companyId"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><p>Binding an arbitrary primary key value or an arbitrary object:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#6A9955;"> <!-- Binding a key: --></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">c-select</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"Person"</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">key-value</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">sync</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">selectedPersonId</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> <!-- Binding an object: --></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">c-select</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"Person"</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">object-value</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">sync</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">selectedPerson</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">c-select</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"Person"</span><span style="color:#9CDCFE;"> v-model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">selectedPerson</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><p>Examples of other props:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-select</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"Person"</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#9CDCFE;"> v-model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">selectedPerson</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">clearable</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#9CDCFE;"> preselect-first</span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">params</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;">{ </span><span style="color:#9CDCFE;">pageSize:</span><span style="color:#B5CEA8;"> 42</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">filter:</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">isActive:</span><span style="color:#569CD6;"> true</span><span style="color:#D4D4D4;"> } }</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">create</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">createMethods</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#9CDCFE;"> dense</span></span> +<span class="line"><span style="color:#9CDCFE;"> outlined</span></span> +<span class="line"><span style="color:#9CDCFE;"> color</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"pink"</span></span> +<span class="line"><span style="color:#D4D4D4;">/</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#6A9955;"><!-- \`createMethods\` is defined in the docs of \`create\` below --></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>`,11),D=e("p",null,"A metadata specifier for the value being bound. One of:",-1),d=e("ul",null,[e("li",null,[s("The name of a foreign key or reference navigation property belonging to "),e("code",null,"model"),s(".")]),e("li",null,"The name of a model type."),e("li",null,"A direct reference to a metadata object."),e("li",null,"A string in dot-notation that starts with a type name that resolves to a foreign key or reference navigation property.")],-1),y=e("div",{class:"tip custom-block"},[e("p",{class:"custom-block-title"},"TIP"),e("p",null,"When binding by a key value, if the corresponding object cannot be found (e.g. there is no navigation property, or the navigation property is null), c-select will automatically attempt to load the object from the server so it can be displayed in the UI.")],-1),u=e("p",null,[s("An object owning the value that was specified by the "),e("code",null,"for"),s(" prop. If provided, the input will be bound to the corresponding property on the "),e("code",null,"model"),s(" object.")],-1),h=e("p",null,[s("If "),e("code",null,"for"),s(" specifies a foreign key or reference navigation property, both the foreign key and the navigation property of the "),e("code",null,"model"),s(" will be updated when the selected value is changed.")],-1),C=e("p",null,[s("When binding the component with "),e("code",null,"v-model"),s(", accepts the "),e("code",null,"value"),s(" part of "),e("code",null,"v-model"),s(". If "),e("code",null,"for"),s(" was specified as a foreign key, this will expect a key; likewise, if "),e("code",null,"for"),s(" was specified as a type or as a navigation property, this will expect an object.")],-1),m=e("p",null,[s("When bound with "),e("code",null,':key-value.sync="keyValue"'),s(", allows binding the primary key of the selected object explicitly.")],-1),f=e("p",null,[s("When bound with "),e("code",null,':object-value.sync="objectValue"'),s(", allows binding the selected object explicitly.")],-1),g=e("p",null,[s("Whether the selection can be cleared or not, emitting "),e("code",null,"null"),s(" as the input value.")],-1),b=e("p",null,[s("If not specified and the component is bound to a foreign key or reference navigation property, defaults to whether or not the foreign key has a "),e("code",null,"required"),s(" validation rule defined in its "),e("a",{href:"/Coalesce/stacks/vue/layers/metadata.html"},"Metadata"),s(".")],-1),_=e("p",null,"If true, then when the first list results for the component are received by the client just after the component is created, c-select will emit the first item in the list as the selected value.",-1),v=e("p",null,"If true, then when the first list results for the component are received by the client just after the component is created, if the results contained exactly one item, c-select will emit that only item as the selected value.",-1),E=e("p",null,[s("If true, the list results will be reloaded when the dropdown menu is opened. By default, list results are loaded when the component is mounted and also when any of its parameters change (either search input or the "),e("code",null,"params"),s(" prop).")],-1),w=e("p",null,[s("An optional set of "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-parameters"},"Data Source Standard Parameters"),s(" to pass to API calls made to the server.")],-1),F=e("p",null,[s("If provided and non-false, enables "),e("a",{href:"/Coalesce/stacks/vue/layers/api-clients.html#response-caching"},"response caching"),s(" on the component's internal API callers.")],-1),k=e("p",null,"A object containing a pair of methods that allowing users to create new items from directly within the c-select if a matching object is not found.",-1),q=e("p",null,[s("The object must contain the following two methods. You should define these in your component's "),e("code",null,"script"),s(" section - don't try to define them inline in your component.")],-1),A={style:{"margin-left":"20px"}},P=e("p",null,"A function that will be called with the user's current search term, as well as the collection of currently loaded items being presented to the user as valid selection options.",-1),I=e("p",null,[s("It should return either a "),e("code",null,"string"),s(" that will be presented to the user as an option in the dropdown that can be clicked to invoke the "),e("code",null,"getItem"),s(" function below, or it should return "),e("code",null,"false"),s(" to prevent such an option from being shown to the user.")],-1),x=e("p",null,[s("A function that will be invoked when the user clicks the option in the dropdown list described by "),e("code",null,"getLabel"),s(". It will be given the user's current search term as well as the value of the label returned from "),e("code",null,"getLabel"),s(" as parameters. It must perform the necessary operations to create the new object on the server and then return a reference to that object.")],-1),j=o(`<p>For example:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#9CDCFE;">createMethods</span><span style="color:#D4D4D4;"> = {</span></span> +<span class="line"><span style="color:#DCDCAA;"> getLabel</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">search</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">items</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">Person</span><span style="color:#D4D4D4;">[]) {</span></span> +<span class="line"><span style="color:#569CD6;"> const</span><span style="color:#4FC1FF;"> searchLower</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">search</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">toLowerCase</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">items</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">some</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">a</span><span style="color:#569CD6;"> =></span><span style="color:#9CDCFE;"> a</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">name</span><span style="color:#D4D4D4;">?.</span><span style="color:#DCDCAA;">toLowerCase</span><span style="color:#D4D4D4;">().</span><span style="color:#DCDCAA;">indexOf</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">searchLower</span><span style="color:#D4D4D4;">) == </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">)) {</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#569CD6;"> false</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> search</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> },</span></span> +<span class="line"><span style="color:#569CD6;"> async</span><span style="color:#DCDCAA;"> getItem</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">search</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">label</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">) {</span></span> +<span class="line"><span style="color:#569CD6;"> const</span><span style="color:#4FC1FF;"> client</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> PersonApiClient</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#D4D4D4;"> (</span><span style="color:#C586C0;">await</span><span style="color:#9CDCFE;"> client</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">addPersonByName</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">label</span><span style="color:#D4D4D4;">)).</span><span style="color:#9CDCFE;">data</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">object</span><span style="color:#D4D4D4;">!;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="slots" tabindex="-1">Slots <a class="header-anchor" href="#slots" aria-label="Permalink to "Slots"">​</a></h2><p><code>#item="{ item, search }"</code> - Slot used to customize the text of both items inside the list, as well as the text of selected items. By default, items are rendered with <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-display.html">c-display</a>. Slot is passed a parameter <code>item</code> containing a <a href="/Coalesce/stacks/vue/layers/models.html">model instance</a>, and <code>search</code> containing the current search query.</p><p><code>#list-item="{ item, search }"</code> - Slot used to customize the text of items inside the list. If not provided, falls back to the <code>item</code> slot.</p><p><code>#selected-item="{ item, search }"</code> - Slot used to customize the text of selected items. If not provided, falls back to the <code>item</code> slot.</p>`,6);function T(S,B,V,L,M,N){const n=c("Prop");return p(),t("div",null,[i,a(n,{def:"for: string | ForeignKeyProperty | ModelReferenceNavigationProperty | ModelType",lang:"ts"}),D,d,y,a(n,{def:"model?: Model",lang:"ts"}),u,h,a(n,{def:`value?: any // Vue 2 +modelValue?: any // Vue 3`,lang:"ts"}),C,a(n,{def:"keyValue?: any",lang:"ts"}),m,a(n,{def:"objectValue?: any",lang:"ts"}),f,a(n,{def:"clearable?: boolean",lang:"ts"}),g,b,a(n,{def:"preselectFirst?: boolean = false",lang:"ts"}),_,a(n,{def:"preselectSingle?: boolean = false",lang:"ts"}),v,a(n,{def:"reloadOnOpen?: boolean = false",lang:"ts"}),E,a(n,{def:"params?: ListParameters",lang:"ts"}),w,a(n,{def:"cache?: ResponseCachingConfiguration | boolean",lang:"ts"}),F,a(n,{def:`create?: { + getLabel: (search: string, items: TModel[]) => string | false, + getItem: (search: string, label: string) => Promise<TModel> +}`,lang:"ts"}),k,q,e("div",A,[a(n,{def:"create.getLabel: (search: string, items: TModel[]) => string | false",lang:"ts",id:"member-create-getLabel"}),P,I,a(n,{def:"create.getItem: (search: string, label: string) => Promise<TModel>",lang:"ts",id:"member-create-getItem"}),x]),j])}const W=l(r,[["render",T]]);export{R as __pageData,W as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-select.md.DQkXRM0W.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select.md.DQkXRM0W.lean.js new file mode 100644 index 000000000..22030376a --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-select.md.DQkXRM0W.lean.js @@ -0,0 +1,5 @@ +import{_ as l,c as t,I as a,l as e,a7 as o,a as s,o as p,E as c}from"./chunks/framework.Be4oCqIX.js";const R=JSON.parse('{"title":"c-select","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-select.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-select.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-select.md"},i=o("",11),D=e("p",null,"A metadata specifier for the value being bound. One of:",-1),d=e("ul",null,[e("li",null,[s("The name of a foreign key or reference navigation property belonging to "),e("code",null,"model"),s(".")]),e("li",null,"The name of a model type."),e("li",null,"A direct reference to a metadata object."),e("li",null,"A string in dot-notation that starts with a type name that resolves to a foreign key or reference navigation property.")],-1),y=e("div",{class:"tip custom-block"},[e("p",{class:"custom-block-title"},"TIP"),e("p",null,"When binding by a key value, if the corresponding object cannot be found (e.g. there is no navigation property, or the navigation property is null), c-select will automatically attempt to load the object from the server so it can be displayed in the UI.")],-1),u=e("p",null,[s("An object owning the value that was specified by the "),e("code",null,"for"),s(" prop. If provided, the input will be bound to the corresponding property on the "),e("code",null,"model"),s(" object.")],-1),h=e("p",null,[s("If "),e("code",null,"for"),s(" specifies a foreign key or reference navigation property, both the foreign key and the navigation property of the "),e("code",null,"model"),s(" will be updated when the selected value is changed.")],-1),C=e("p",null,[s("When binding the component with "),e("code",null,"v-model"),s(", accepts the "),e("code",null,"value"),s(" part of "),e("code",null,"v-model"),s(". If "),e("code",null,"for"),s(" was specified as a foreign key, this will expect a key; likewise, if "),e("code",null,"for"),s(" was specified as a type or as a navigation property, this will expect an object.")],-1),m=e("p",null,[s("When bound with "),e("code",null,':key-value.sync="keyValue"'),s(", allows binding the primary key of the selected object explicitly.")],-1),f=e("p",null,[s("When bound with "),e("code",null,':object-value.sync="objectValue"'),s(", allows binding the selected object explicitly.")],-1),g=e("p",null,[s("Whether the selection can be cleared or not, emitting "),e("code",null,"null"),s(" as the input value.")],-1),b=e("p",null,[s("If not specified and the component is bound to a foreign key or reference navigation property, defaults to whether or not the foreign key has a "),e("code",null,"required"),s(" validation rule defined in its "),e("a",{href:"/Coalesce/stacks/vue/layers/metadata.html"},"Metadata"),s(".")],-1),_=e("p",null,"If true, then when the first list results for the component are received by the client just after the component is created, c-select will emit the first item in the list as the selected value.",-1),v=e("p",null,"If true, then when the first list results for the component are received by the client just after the component is created, if the results contained exactly one item, c-select will emit that only item as the selected value.",-1),E=e("p",null,[s("If true, the list results will be reloaded when the dropdown menu is opened. By default, list results are loaded when the component is mounted and also when any of its parameters change (either search input or the "),e("code",null,"params"),s(" prop).")],-1),w=e("p",null,[s("An optional set of "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-parameters"},"Data Source Standard Parameters"),s(" to pass to API calls made to the server.")],-1),F=e("p",null,[s("If provided and non-false, enables "),e("a",{href:"/Coalesce/stacks/vue/layers/api-clients.html#response-caching"},"response caching"),s(" on the component's internal API callers.")],-1),k=e("p",null,"A object containing a pair of methods that allowing users to create new items from directly within the c-select if a matching object is not found.",-1),q=e("p",null,[s("The object must contain the following two methods. You should define these in your component's "),e("code",null,"script"),s(" section - don't try to define them inline in your component.")],-1),A={style:{"margin-left":"20px"}},P=e("p",null,"A function that will be called with the user's current search term, as well as the collection of currently loaded items being presented to the user as valid selection options.",-1),I=e("p",null,[s("It should return either a "),e("code",null,"string"),s(" that will be presented to the user as an option in the dropdown that can be clicked to invoke the "),e("code",null,"getItem"),s(" function below, or it should return "),e("code",null,"false"),s(" to prevent such an option from being shown to the user.")],-1),x=e("p",null,[s("A function that will be invoked when the user clicks the option in the dropdown list described by "),e("code",null,"getLabel"),s(". It will be given the user's current search term as well as the value of the label returned from "),e("code",null,"getLabel"),s(" as parameters. It must perform the necessary operations to create the new object on the server and then return a reference to that object.")],-1),j=o("",6);function T(S,B,V,L,M,N){const n=c("Prop");return p(),t("div",null,[i,a(n,{def:"for: string | ForeignKeyProperty | ModelReferenceNavigationProperty | ModelType",lang:"ts"}),D,d,y,a(n,{def:"model?: Model",lang:"ts"}),u,h,a(n,{def:`value?: any // Vue 2 +modelValue?: any // Vue 3`,lang:"ts"}),C,a(n,{def:"keyValue?: any",lang:"ts"}),m,a(n,{def:"objectValue?: any",lang:"ts"}),f,a(n,{def:"clearable?: boolean",lang:"ts"}),g,b,a(n,{def:"preselectFirst?: boolean = false",lang:"ts"}),_,a(n,{def:"preselectSingle?: boolean = false",lang:"ts"}),v,a(n,{def:"reloadOnOpen?: boolean = false",lang:"ts"}),E,a(n,{def:"params?: ListParameters",lang:"ts"}),w,a(n,{def:"cache?: ResponseCachingConfiguration | boolean",lang:"ts"}),F,a(n,{def:`create?: { + getLabel: (search: string, items: TModel[]) => string | false, + getItem: (search: string, label: string) => Promise<TModel> +}`,lang:"ts"}),k,q,e("div",A,[a(n,{def:"create.getLabel: (search: string, items: TModel[]) => string | false",lang:"ts",id:"member-create-getLabel"}),P,I,a(n,{def:"create.getItem: (search: string, label: string) => Promise<TModel>",lang:"ts",id:"member-create-getItem"}),x]),j])}const W=l(r,[["render",T]]);export{R as __pageData,W as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-table.md.B6phKUDK.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-table.md.B6phKUDK.js new file mode 100644 index 000000000..24f42ee4d --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-table.md.B6phKUDK.js @@ -0,0 +1,17 @@ +import{_ as o,c as t,I as l,a7 as n,l as s,a as e,o as p,E as c}from"./chunks/framework.Be4oCqIX.js";const k=JSON.parse('{"title":"c-table","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-table.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-table.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-table.md"},i=n(`<h1 id="c-table" tabindex="-1">c-table <a class="header-anchor" href="#c-table" aria-label="Permalink to "c-table"">​</a></h1><p>A table component for displaying the contents of a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>. Also supports modifying the list's <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">sort parameters</a> by clicking on column headers. Pairs well with a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.html">c-list-pagination</a>.</p><h2 id="example-usage" tabindex="-1">Example Usage <a class="header-anchor" href="#example-usage" aria-label="Permalink to "Example Usage"">​</a></h2><p>A simple table, rendering the items of a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-table</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;"> /</span><span style="color:#808080;">></span></span></code></pre></div><p>A more complex example using more of the available options:</p><div class="language-template"><button title="Copy Code" class="copy"></button><span class="lang">template</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">c-table</span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">props</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;">[</span><span style="color:#CE9178;">'firstName'</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">'lastName'</span><span style="color:#D4D4D4;">]</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">extra-headers</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;">[</span><span style="color:#CE9178;">'Actions'</span><span style="color:#D4D4D4;">]</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">template</span><span style="color:#D4D4D4;"> #</span><span style="color:#9CDCFE;">item</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">append</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;">{</span><span style="color:#9CDCFE;">item</span><span style="color:#D4D4D4;">}</span><span style="color:#D4D4D4;">"</span><span style="color:#808080;">></span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">td</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">v-btn</span></span> +<span class="line"><span style="color:#9CDCFE;"> title</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"Edit"</span></span> +<span class="line"><span style="color:#9CDCFE;"> text</span><span style="color:#9CDCFE;"> icon</span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">to</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#D4D4D4;">{</span><span style="color:#9CDCFE;">name:</span><span style="color:#CE9178;"> 'edit-person'</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">params:</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">id:</span><span style="color:#9CDCFE;"> item</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">$primaryKey</span><span style="color:#D4D4D4;"> }}</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#808080;"> ></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">i</span><span style="color:#9CDCFE;"> class</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"fa fa-edit"</span><span style="color:#808080;">></</span><span style="color:#569CD6;">i</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> </</span><span style="color:#569CD6;">v-btn</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> </</span><span style="color:#569CD6;">td</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> </</span><span style="color:#569CD6;">template</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">c-table</span><span style="color:#808080;">></span></span></code></pre></div><h2 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to "Props"">​</a></h2>`,8),D=s("p",null,[e("The "),s("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),e(" to display pagination information for.")],-1),d=s("p",null,"If provided, specifies which properties, and their ordering, should be given a column in the table.",-1),y=s("p",null,[e("If not provided, all non-key columns that aren't annotated with "),s("a",{href:"/Coalesce/modeling/model-components/attributes/hidden.html"},"[Hidden(HiddenAttribute.Areas.List)]"),e(" are given a column.")],-1),h=s("p",null,[e("The text contents of one or more extra "),s("code",null,"th"),e(" elements to render in the table. Should be used in conjunction with the "),s("code",null,"item.append"),e(" slot.")],-1),u=s("p",null,[e("If true, properties in each table cell will be rendered with "),s("a",{href:"/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-input.html"},"c-input"),e(". Non-editable properties will be rendered in accordance with the value of the "),s("code",null,"admin"),e(" prop.")],-1),m=n('<p>If true, properties in each table cell will be rendered with <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-display.html">c-admin-display</a> instead of <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-display.html">c-display</a>.</p><h2 id="slots" tabindex="-1">Slots <a class="header-anchor" href="#slots" aria-label="Permalink to "Slots"">​</a></h2><p><code>item.append</code> - A slot rendered after the <code>td</code> elements on each row that render the properties of each item in the table. Should be provided zero or more additional <code>td</code> elements. The number should match the number of additional headers provided to the <code>extraHeaders</code> prop.</p>',3);function C(f,_,b,v,g,E){const a=c("Prop");return p(),t("div",null,[i,l(a,{def:"list: ListViewModel",lang:"ts"}),D,l(a,{def:"props?: string[]",lang:"ts"}),d,y,l(a,{def:"extraHeaders?: string[]",lang:"ts"}),h,l(a,{def:"editable: boolean = false",lang:"ts"}),u,l(a,{def:"admin: boolean = false",lang:"ts"}),m])}const x=o(r,[["render",C]]);export{k as __pageData,x as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_components_c-table.md.B6phKUDK.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_components_c-table.md.B6phKUDK.lean.js new file mode 100644 index 000000000..9301d8975 --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_components_c-table.md.B6phKUDK.lean.js @@ -0,0 +1 @@ +import{_ as o,c as t,I as l,a7 as n,l as s,a as e,o as p,E as c}from"./chunks/framework.Be4oCqIX.js";const k=JSON.parse('{"title":"c-table","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/components/c-table.md","filePath":"stacks/vue/coalesce-vue-vuetify/components/c-table.md"}'),r={name:"stacks/vue/coalesce-vue-vuetify/components/c-table.md"},i=n("",8),D=s("p",null,[e("The "),s("a",{href:"/Coalesce/stacks/vue/layers/viewmodels.html"},"ListViewModel"),e(" to display pagination information for.")],-1),d=s("p",null,"If provided, specifies which properties, and their ordering, should be given a column in the table.",-1),y=s("p",null,[e("If not provided, all non-key columns that aren't annotated with "),s("a",{href:"/Coalesce/modeling/model-components/attributes/hidden.html"},"[Hidden(HiddenAttribute.Areas.List)]"),e(" are given a column.")],-1),h=s("p",null,[e("The text contents of one or more extra "),s("code",null,"th"),e(" elements to render in the table. Should be used in conjunction with the "),s("code",null,"item.append"),e(" slot.")],-1),u=s("p",null,[e("If true, properties in each table cell will be rendered with "),s("a",{href:"/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-input.html"},"c-input"),e(". Non-editable properties will be rendered in accordance with the value of the "),s("code",null,"admin"),e(" prop.")],-1),m=n("",3);function C(f,_,b,v,g,E){const a=c("Prop");return p(),t("div",null,[i,l(a,{def:"list: ListViewModel",lang:"ts"}),D,l(a,{def:"props?: string[]",lang:"ts"}),d,y,l(a,{def:"extraHeaders?: string[]",lang:"ts"}),h,l(a,{def:"editable: boolean = false",lang:"ts"}),u,l(a,{def:"admin: boolean = false",lang:"ts"}),m])}const x=o(r,[["render",C]]);export{k as __pageData,x as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_overview.md.DVTM1ZpW.js b/assets/stacks_vue_coalesce-vue-vuetify_overview.md.DVTM1ZpW.js new file mode 100644 index 000000000..c4d035c6a --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_overview.md.DVTM1ZpW.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as a,a7 as o}from"./chunks/framework.Be4oCqIX.js";const f=JSON.parse('{"title":"Vuetify Components","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/overview.md","filePath":"stacks/vue/coalesce-vue-vuetify/overview.md"}'),s={name:"stacks/vue/coalesce-vue-vuetify/overview.md"},l=o('<h1 id="vuetify-components" tabindex="-1">Vuetify Components <a class="header-anchor" href="#vuetify-components" aria-label="Permalink to "Vuetify Components"">​</a></h1><p><a href="https://www.npmjs.com/package/coalesce-vue-vuetify2" target="_blank" rel="noreferrer"><img src="https://img.shields.io/npm/v/coalesce-vue-vuetify2/latest?color=0176b5&label=coalesce-vue-vuetify2%40latest&logo=npm" alt=""></a><a href="https://www.npmjs.com/package/coalesce-vue-vuetify3" target="_blank" rel="noreferrer"><img src="https://img.shields.io/npm/v/coalesce-vue-vuetify3/latest?color=0176b5&label=coalesce-vue-vuetify3%40latest&logo=npm" alt=""></a></p><p>The <a href="https://vuejs.org/" target="_blank" rel="noreferrer">Vue</a> stack for Coalesce provides <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/overview.html">a set of components</a> based on <a href="https://vuetifyjs.com/" target="_blank" rel="noreferrer">Vuetify</a>, packaged up in an NPM package <a href="https://www.npmjs.com/package/coalesce-vue-vuetify2" target="_blank" rel="noreferrer">coalesce-vue-vuetify2</a> or <a href="https://www.npmjs.com/package/coalesce-vue-vuetify3" target="_blank" rel="noreferrer">coalesce-vue-vuetify3</a>. These components are driven primarily by the <a href="/Coalesce/stacks/vue/layers/metadata.html">Metadata Layer</a>, and include both low level input and display components like <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-input.html">c-input</a> and <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-display.html">c-display</a> that are highly reusable in the custom pages you'll build in your application, as well as high-level components like <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.html">c-admin-table-page</a> and <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-editor-page.html">c-admin-editor-page</a> that constitute entire pages.</p><h2 id="setup" tabindex="-1">Setup <a class="header-anchor" href="#setup" aria-label="Permalink to "Setup"">​</a></h2><p>All Coalesce projects should be started from the template described in <a href="/Coalesce/stacks/vue/getting-started.html">Getting Started with Vue</a>, and will therefore have all the setup completed for you.</p><p>If for whatever reason you find yourself adding Coalesce to an existing project, use the template as a reference for what configuration needs to be added to your project.</p><h2 id="display-components" tabindex="-1">Display Components <a class="header-anchor" href="#display-components" aria-label="Permalink to "Display Components"">​</a></h2><table><thead><tr><th width="170px">Component</th><th>Description</th></tr></thead><tr><td><p><a href="./components/c-display.html">c-display</a></p></td><td><p>A general-purpose component for displaying any <a href="/Coalesce/stacks/vue/layers/metadata.html#value">Value</a> by rendering the value to a string with the <a href="/Coalesce/stacks/vue/layers/models.html#VueModelDisplayFunctions">display functions from the Models Layer</a>. For plain string and number <a href="/Coalesce/stacks/vue/layers/metadata.html">values</a>, usage of this component is largely superfluous. For all other value types including dates, booleans, enums, objects, and collections, it is very handy.</p></td></tr><tr><td><p><a href="./components/c-loader-status.html">c-loader-status</a></p></td><td><p>A component for displaying progress and error information for one or more <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Callers</a>.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>It is highly recommended that all <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Callers</a> utilized by your application that don't have any other kind of error handling should be represented by a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-loader-status.html">c-loader-status</a> so that users can be aware of any errors that occur.</p></div></td></tr><tr><td><p><a href="./components/c-list-range-display.html">c-list-range-display</a></p></td><td><p>Displays pagination information about the current <code>$items</code> of a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a> in the format <code><start index> - <end index> of <total count></code>.</p></td></tr><tr><td><p><a href="./components/c-table.html">c-table</a></p></td><td><p>A table component for displaying the contents of a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>. Also supports modifying the list's <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">sort parameters</a> by clicking on column headers. Pairs well with a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.html">c-list-pagination</a>.</p></td></tr></table><h2 id="input-components" tabindex="-1">Input Components <a class="header-anchor" href="#input-components" aria-label="Permalink to "Input Components"">​</a></h2><table><thead><tr><th width="170px">Component</th><th>Description</th></tr></thead><tr><td><p><a href="./components/c-input.html">c-input</a></p></td><td><p>A general-purpose input component for most <a href="/Coalesce/stacks/vue/layers/metadata.html">Values</a>. c-input delegates to other components based on the type of value it is bound to. This includes both other <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/overview.html">Coalesce Vuetify Components</a> as well as direct usages of some <a href="https://vuetifyjs.com/" target="_blank" rel="noreferrer">Vuetify</a> components.</p></td></tr><tr><td><p><a href="./components/c-select.html">c-select</a></p></td><td><p>A dropdown component that allows for selecting values fetched from the generated <code>/list</code> API endpoints.</p><p>Used for selecting values for foreign key and navigation properties, or for selecting arbitrary objects or primary keys without a parent or owning object.</p></td></tr><tr><td><p><a href="./components/c-datetime-picker.html">c-datetime-picker</a></p></td><td><p>A general, all-purpose date/time input component that can be used either with <a href="/Coalesce/stacks/vue/layers/models.html">models</a> and <a href="/Coalesce/stacks/vue/layers/metadata.html">metadata</a> or as a standalone component using only <code>v-model</code>.</p></td></tr><tr><td><p><a href="./components/c-select-many-to-many.html">c-select-many-to-many</a></p></td><td><p>A multi-select dropdown component that allows for selecting values fetched from the generated <code>/list</code> API endpoints for collection navigation properties that were annotated with <a href="/Coalesce/modeling/model-components/attributes/many-to-many.html">[ManyToMany]</a>.</p></td></tr><tr><td><p><a href="./components/c-select-string-value.html">c-select-string-value</a></p></td><td><p>A dropdown component that will present a list of suggested string values from a custom API endpoint. Allows users to input values that aren't provided by the endpoint.</p><p>Effectively, this is a server-driven autocomplete list.</p></td></tr><tr><td><p><a href="./components/c-select-values.html">c-select-values</a></p></td><td><p>A multi-select input component for collections of non-object values (primarily strings and numbers).</p></td></tr><tr><td><p><a href="./components/c-list-filters.html">c-list-filters</a></p></td><td><p>A component that provides an interface for modifying the <code>filters</code> prop of a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>'s <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">parameters</a>.</p></td></tr><tr><td><p><a href="./components/c-list-pagination.html">c-list-pagination</a></p></td><td><p>A component that provides an interface for modifying the pagination <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">parameters</a> of a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>.</p><p>This is a composite of <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.html">c-list-page-size</a>, <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-range-display.html">c-list-range-display</a>, and <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-page.html">c-list-page</a>, arranged horizontally. It is designed to be used above or below a table (e.g. <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-table.html">c-table</a>).</p></td></tr><tr><td><p><a href="./components/c-list-page-size.html">c-list-page-size</a></p></td><td><p>A component that provides an dropdown for modifying the <code>pageSize</code> <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">parameter</a> prop of a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>.</p></td></tr><tr><td><p><a href="./components/c-list-page.html">c-list-page</a></p></td><td><p>A component that provides previous/next buttons and a text field for modifying the <code>page</code> <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">parameter</a> prop of a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>.</p></td></tr></table><h2 id="admin-components" tabindex="-1">Admin Components <a class="header-anchor" href="#admin-components" aria-label="Permalink to "Admin Components"">​</a></h2><table><thead><tr><th width="170px">Component</th><th>Description</th></tr></thead><tr><td><p><a href="./components/c-admin-method.html">c-admin-method</a></p></td><td><p>Provides an interface for invoking a <a href="/Coalesce/modeling/model-components/methods.html">method</a> and rendering its result, designed to be use in an admin page.</p></td></tr><tr><td><p><a href="./components/c-admin-methods.html">c-admin-methods</a></p></td><td><p>Renders in a <a href="https://vuetifyjs.com/" target="_blank" rel="noreferrer">Vuetify</a> <a href="https://vuetifyjs.com/en/components/expansion-panels/" target="_blank" rel="noreferrer">v-expansion-panels</a> a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-method.html">c-admin-method</a> for each method on a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ViewModel</a> or <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>.</p></td></tr><tr><td><p><a href="./components/c-admin-display.html">c-admin-display</a></p></td><td><p>Behaves the same as <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-display.html">c-display</a>, except any collection navigation properties will be rendered as links to an admin list page, and any models will be rendered as a link to an admin item page.</p></td></tr><tr><td><p><a href="./components/c-admin-editor.html">c-admin-editor</a></p></td><td><p>An editor for a single <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ViewModel</a> instance. Provides a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-input.html">c-input</a> for each property of the model.</p></td></tr><tr><td><p><a href="./components/c-admin-editor-page.html">c-admin-editor-page</a></p></td><td><p>A page for a creating/editing single <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ViewModel</a> instance. Provides a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-editor.html">c-admin-editor</a> and a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-methods.html">c-admin-methods</a> for the instance. Designed to be routed to directly with <a href="https://router.vuejs.org/" target="_blank" rel="noreferrer">vue-router</a>.</p></td></tr><tr><td><p><a href="./components/c-admin-table.html">c-admin-table</a></p></td><td><p>An full-featured table for a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>, including a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-toolbar.html">c-admin-table-toolbar</a>, <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-table.html">c-table</a>, and <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.html">c-list-pagination</a>.</p></td></tr><tr><td><p><a href="./components/c-admin-table-toolbar.html">c-admin-table-toolbar</a></p></td><td><p>A full-featured toolbar for a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a> designed to be used on an admin page, including "Create" and "Reload" buttons, a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-range-display.html">c-list-range-display</a>, a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-page.html">c-list-page</a>, a search field, <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-filters.html">c-list-filters</a>, and a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.html">c-list-page-size</a>.</p></td></tr><tr><td><p><a href="./components/c-admin-table-page.html">c-admin-table-page</a></p></td><td><p>A full-featured page for interacting with a <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ListViewModel</a>. Provides a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-table.html">c-admin-table</a> and a <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-methods.html">c-admin-methods</a> for the list. Designed to be routed to directly with <a href="https://router.vuejs.org/" target="_blank" rel="noreferrer">vue-router</a>.</p></td></tr><tr><td><p><a href="./components/c-admin-audit-log-page.html">c-admin-audit-log-page</a></p></td><td><p>A full-featured page for interacting with Coalesce's <a href="/Coalesce/topics/audit-logging.html">Audit Logging</a>. Presents a view similar to <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.html">c-admin-table-page</a> with content optimized for viewing audit log records. Designed to be routed to directly with <a href="https://router.vuejs.org/" target="_blank" rel="noreferrer">vue-router</a>.</p></td></tr></table>',12),n=[l];function r(c,i,d,p,m,h){return a(),t("div",null,n)}const v=e(s,[["render",r]]);export{f as __pageData,v as default}; diff --git a/assets/stacks_vue_coalesce-vue-vuetify_overview.md.DVTM1ZpW.lean.js b/assets/stacks_vue_coalesce-vue-vuetify_overview.md.DVTM1ZpW.lean.js new file mode 100644 index 000000000..1037954af --- /dev/null +++ b/assets/stacks_vue_coalesce-vue-vuetify_overview.md.DVTM1ZpW.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as a,a7 as o}from"./chunks/framework.Be4oCqIX.js";const f=JSON.parse('{"title":"Vuetify Components","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/coalesce-vue-vuetify/overview.md","filePath":"stacks/vue/coalesce-vue-vuetify/overview.md"}'),s={name:"stacks/vue/coalesce-vue-vuetify/overview.md"},l=o("",12),n=[l];function r(c,i,d,p,m,h){return a(),t("div",null,n)}const v=e(s,[["render",r]]);export{f as __pageData,v as default}; diff --git a/assets/stacks_vue_getting-started.md.CsGY0Ojn.js b/assets/stacks_vue_getting-started.md.CsGY0Ojn.js new file mode 100644 index 000000000..4510ef117 --- /dev/null +++ b/assets/stacks_vue_getting-started.md.CsGY0Ojn.js @@ -0,0 +1,39 @@ +import{_ as s,c as e,o as a,a7 as n}from"./chunks/framework.Be4oCqIX.js";const C=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/getting-started.md","filePath":"stacks/vue/getting-started.md"}'),o={name:"stacks/vue/getting-started.md"},l=n(`<h1 id="getting-started" tabindex="-1">Getting Started <a class="header-anchor" href="#getting-started" aria-label="Permalink to "Getting Started"">​</a></h1><h2 id="environment-setup" tabindex="-1">Environment Setup <a class="header-anchor" href="#environment-setup" aria-label="Permalink to "Environment Setup"">​</a></h2><p>Before you begin, ensure that you have all the requisite tools installed</p><ul><li>Recent version of the <a href="https://dotnet.microsoft.com/en-us/download" target="_blank" rel="noreferrer">.NET SDK</a>. If you have Visual Studio, you already have this.</li><li>A recent version of <a href="https://nodejs.org/" target="_blank" rel="noreferrer">Node.js</a> (an LTS version is recommended).</li><li>A compatible IDE. <ul><li>Recommended: <ul><li>Visual Studio for backend (C#) development</li><li>VS Code for frontend (Vue, TypeScript) development (with <a href="https://marketplace.visualstudio.com/items?itemName=Vue.volar" target="_blank" rel="noreferrer">Vue - Official</a> and <a href="https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin" target="_blank" rel="noreferrer">TypeScript Vue Plugin</a>)</li></ul></li><li>Also consider: <ul><li>VS Code for full stack development.</li><li>JetBrains Rider</li></ul></li></ul></li></ul><h2 id="creating-a-project" tabindex="-1">Creating a Project <a class="header-anchor" href="#creating-a-project" aria-label="Permalink to "Creating a Project"">​</a></h2><p>The quickest and easiest way to create a new Coalesce Vue application is to use the <code>dotnet new</code> template. In your favorite shell:</p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#DCDCAA;">dotnet</span><span style="color:#CE9178;"> new</span><span style="color:#CE9178;"> install</span><span style="color:#CE9178;"> IntelliTect.Coalesce.Vue.Template</span></span> +<span class="line"><span style="color:#DCDCAA;">dotnet</span><span style="color:#CE9178;"> new</span><span style="color:#CE9178;"> coalescevue</span><span style="color:#569CD6;"> -o</span><span style="color:#CE9178;"> MyCompany.MyProject</span></span> +<span class="line"><span style="color:#DCDCAA;">cd</span><span style="color:#CE9178;"> MyCompany.MyProject/</span><span style="color:#569CD6;">*</span><span style="color:#CE9178;">.Web</span></span> +<span class="line"><span style="color:#DCDCAA;">npm</span><span style="color:#CE9178;"> ci</span></span></code></pre></div><div style="display:flex;"><a href="https://www.nuget.org/packages/IntelliTect.Coalesce.Vue.Template/" target="_blank" rel="noreferrer"><img src="https://img.shields.io/nuget/v/IntelliTect.Coalesce.Vue.Template?logo=nuget&color=0176b5" alt=""></a>   <a href="https://github.com/IntelliTect/Coalesce.Vue.Template" target="_blank" rel="noreferrer"><img src="https://img.shields.io/badge/Github-Coalesce.Vue.Template-0176b5?logo=github" alt="Static Badge"></a></div><h2 id="project-structure" tabindex="-1">Project Structure <a class="header-anchor" href="#project-structure" aria-label="Permalink to "Project Structure"">​</a></h2><div class="tip custom-block"><p class="custom-block-title">Important</p><p>The Vue template is based on <a href="https://vitejs.dev/" target="_blank" rel="noreferrer">Vite</a>. You are strongly encouraged to read through at least the first few pages of the <a href="https://vitejs.dev/guide/" target="_blank" rel="noreferrer">Vite Documentation</a> before getting started on any development.</p></div><p>The structure of the Web project follows the conventions of both ASP.NET Core and Vite. The Vue-specific folders are as follows:</p><ul><li><code>/src</code> - Files that should be compiled into your frontend application. CSS/SCSS, TypeScript, Vue SFCs, and so on.</li><li><code>/public</code> - Static assets that should be served as files. Includes index.html, the root document of the application.</li><li><code>/wwwroot</code> - Target for compiled output. This directory is excluded from git.</li></ul><p>During development, no special tooling is required to build your frontend code. Coalesce's <code>UseViteDevelopmentServer</code> in ASP.NET Core will take care of that automatically when the application starts. Just make sure NPM packages have been installed (<code>npm ci</code>).</p><h2 id="data-modeling" tabindex="-1">Data Modeling <a class="header-anchor" href="#data-modeling" aria-label="Permalink to "Data Modeling"">​</a></h2><p>At this point, you can open up the newly-created solution in Visual Studio and run your application. However, your application won't do much without a data model, so you will probably want to do the following before running:</p><ul><li><p>Create an initial <a href="/Coalesce/modeling/model-types/entities.html">Data Model</a> by adding EF entity classes to the data project and the corresponding <code>DbSet<></code> properties to <code>AppDbContext</code>. You will notice that the starter project includes a single model, <code>Widget</code>, to start with. Feel free to change this model or remove it entirely. Read <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> for more information about creating a data model.</p></li><li><p>Run <code>dotnet ef migrations add Init</code> (Init can be any name) in the data project to create an initial database migration.</p></li><li><p>Run Coalesce's code generation by either:</p><ul><li>Running <code>dotnet coalesce</code> in the web project's root directory</li><li>Running the <code>coalesce</code> npm script (Vue) or gulp task (Knockout) in the Task Runner Explorer</li></ul></li></ul><p>You're now at a point where you can start creating your own pages!</p><h2 id="building-pages-features" tabindex="-1">Building Pages & Features <a class="header-anchor" href="#building-pages-features" aria-label="Permalink to "Building Pages & Features"">​</a></h2><p>Lets say we've created a <a href="/Coalesce/modeling/model-types/entities.html">model</a> called <code>Person</code> as follows, and we've ran code generation with <code>dotnet coalesce</code>:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">namespace</span><span style="color:#4EC9B0;"> MyApplication</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Data</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Models</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Person</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> PersonId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Name</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DateTimeOffset</span><span style="color:#D4D4D4;">? </span><span style="color:#9CDCFE;">BirthDate</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>We can create a details page for a Person by creating a <a href="https://vuejs.org/guide/scaling-up/sfc.html" target="_blank" rel="noreferrer">Single File Component</a> in <code>MyApplication.Web/src/views/person-details.vue</code>:</p><div class="language-vue"><button title="Copy Code" class="copy"></button><span class="lang">vue</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">template</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">dl</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">dt</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">Name</span><span style="color:#808080;"></</span><span style="color:#569CD6;">dt</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">dd</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">c-display</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"name"</span><span style="color:#808080;"> /></span></span> +<span class="line"><span style="color:#808080;"> </</span><span style="color:#569CD6;">dd</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">dt</span><span style="color:#808080;">></span><span style="color:#D4D4D4;">Date of Birth</span><span style="color:#808080;"></</span><span style="color:#569CD6;">dt</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">dd</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">c-display</span><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;"> for</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"birthDate"</span><span style="color:#9CDCFE;"> format</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"M/d/yyyy"</span><span style="color:#808080;"> /></span></span> +<span class="line"><span style="color:#808080;"> </</span><span style="color:#569CD6;">dd</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> </</span><span style="color:#569CD6;">dl</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">template</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> setup</span><span style="color:#9CDCFE;"> lang</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"ts"</span><span style="color:#808080;">></span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">PersonViewModel</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "@/viewmodels.g"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> props</span><span style="color:#D4D4D4;"> = </span><span style="color:#DCDCAA;">defineProps</span><span style="color:#D4D4D4;"><{ </span><span style="color:#9CDCFE;">id</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">number</span><span style="color:#D4D4D4;"> }>();</span></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> person</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> PersonViewModel</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">$load</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">props</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">id</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span></code></pre></div><div class="tip custom-block"><p class="custom-block-title">Note</p><p>In the code above, <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-display.html">c-display</a> is a component that comes from the <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/overview.html">Vuetify Components</a> for Coalesce.</p><p>For simple property types like <code>string</code> and <code>number</code> you can always use simple template interpolation syntax, but for more complex properties like dates, <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-display.html">c-display</a> is handy to use because it includes features like built-in date formatting.</p></div><p>We then need to add route to this new view. In <code>MyApplication.Web/src/router.ts</code>, add a new item to the <code>routes</code> array:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#6A9955;">// In the \`routes\` array, add the following item:</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#C8C8C8;"> path</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">'/person/:id'</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#C8C8C8;"> name</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">'person-details'</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#C8C8C8;"> component</span><span style="color:#D4D4D4;">: () </span><span style="color:#569CD6;">=></span><span style="color:#569CD6;"> import</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">'@/views/person-details.vue'</span><span style="color:#D4D4D4;">),</span></span> +<span class="line"><span style="color:#C8C8C8;"> props</span><span style="color:#D4D4D4;">: </span><span style="color:#9CDCFE;">route</span><span style="color:#569CD6;"> =></span><span style="color:#D4D4D4;"> ({ </span><span style="color:#9CDCFE;">id:</span><span style="color:#D4D4D4;"> +</span><span style="color:#9CDCFE;">route</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">params</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">id</span><span style="color:#D4D4D4;"> }),</span></span> +<span class="line"><span style="color:#D4D4D4;">},</span></span></code></pre></div><p>With these pieces in place, we now have a functioning page that will display details about a person. We can start up the application (or, if it was already running, refresh the page) and navigate to <code>/person/1</code> (assuming a person with ID 1 exists - if not, navigate to <code>/admin/Person</code> and create one).</p><p>From this point, you can start adding more fields, more features, and more flair to the page. Check out all the other documentation in the sidebar to see what else Coalesce has to offer, including the <a href="/Coalesce/stacks/vue/overview.html">Vue Overview</a>.</p>`,27),t=[l];function p(r,c,i,d,y,D){return a(),e("div",null,t)}const h=s(o,[["render",p]]);export{C as __pageData,h as default}; diff --git a/assets/stacks_vue_getting-started.md.CsGY0Ojn.lean.js b/assets/stacks_vue_getting-started.md.CsGY0Ojn.lean.js new file mode 100644 index 000000000..ed6e74382 --- /dev/null +++ b/assets/stacks_vue_getting-started.md.CsGY0Ojn.lean.js @@ -0,0 +1 @@ +import{_ as s,c as e,o as a,a7 as n}from"./chunks/framework.Be4oCqIX.js";const C=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/getting-started.md","filePath":"stacks/vue/getting-started.md"}'),o={name:"stacks/vue/getting-started.md"},l=n("",27),t=[l];function p(r,c,i,d,y,D){return a(),e("div",null,t)}const h=s(o,[["render",p]]);export{C as __pageData,h as default}; diff --git a/assets/stacks_vue_layers_api-clients.md.CClYP9-n.js b/assets/stacks_vue_layers_api-clients.md.CClYP9-n.js new file mode 100644 index 000000000..054d20aba --- /dev/null +++ b/assets/stacks_vue_layers_api-clients.md.CClYP9-n.js @@ -0,0 +1,52 @@ +import{_ as t,c as l,I as n,a7 as o,l as e,a as s,o as r,E as c}from"./chunks/framework.Be4oCqIX.js";const G=JSON.parse('{"title":"Vue API Client Layer","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/layers/api-clients.md","filePath":"stacks/vue/layers/api-clients.md"}'),p={name:"stacks/vue/layers/api-clients.md"},i=o(`<h1 id="vue-api-client-layer" tabindex="-1">Vue API Client Layer <a class="header-anchor" href="#vue-api-client-layer" aria-label="Permalink to "Vue API Client Layer"">​</a></h1><p>The API client layer, generated as <code>api-clients.g.ts</code>, exports a class for each API controller that was generated for your data model. These classes are stateless and provide one method for each API endpoint. This includes both the standard set of endpoints created for <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>, as well as any custom <a href="/Coalesce/modeling/model-components/methods.html">Methods</a> on the aforementioned types, as well as any methods on your <a href="/Coalesce/modeling/model-types/services.html">Services</a>.</p><p>The API clients provided by Coalesce are based on <a href="https://github.com/axios/axios" target="_blank" rel="noreferrer">axios</a>. All API clients used a shared axios instance, exported from <code>coalesce-vue</code> as <code>AxiosClient</code>. This instance can be used to configure all HTTP requests made by Coalesce, including things like attaching <a href="https://axios-http.com/docs/interceptors" target="_blank" rel="noreferrer">interceptors</a> to modify the requests being made, or configuring <a href="https://axios-http.com/docs/config_defaults" target="_blank" rel="noreferrer">defaults</a>.</p><p>As with all the layers, the <a href="https://github.com/IntelliTect/Coalesce/blob/dev/src/coalesce-vue/src/api-client.ts" target="_blank" rel="noreferrer">source code of coalesce-vue</a> is also a great supplement to this documentation.</p><h2 id="concepts" tabindex="-1">Concepts <a class="header-anchor" href="#concepts" aria-label="Permalink to "Concepts"">​</a></h2><h3 id="api-client" tabindex="-1">API Client <a class="header-anchor" href="#api-client" aria-label="Permalink to "API Client"">​</a></h3><p>A class, generated for each controller-backed type in your data model as <code><ModelName>ApiClient</code> and exported from <code>api-clients.g.ts</code> containing one method for each API endpoint.</p><p>Each method on the API client takes in the regular parameters of the method as you would expect, as well as an optional <code>AxiosRequestConfig</code> parameter at the end that can be used to provide additional configuration for the single request, if needed.</p><p>For the methods that correspond to the standard set of CRUD endpoints that Coalesce provides (<code>get</code>, <code>list</code>, <code>count</code>, <code>save</code>, <code>delete</code>), an additional parameter <code>parameters</code> is available that accepts the set of <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">Standard Parameters</a> appropriate for the endpoint.</p><p>Each method returns a <code>Promise<AxiosResponse<TApiResult>></code> where <code>TApiResult</code> is either <code>ItemResult</code>, <code>ItemResult<T></code>, or <code>ListResult<T></code>, depending on the return type of the API endpoint. <code>AxiosResponse</code> is the <a href="https://axios-http.com/docs/res_schema" target="_blank" rel="noreferrer">response object from axios</a>, containing the <code>TApiResult</code> in its <code>data</code> property, as well as other properties like <code>headers</code>. The returned type <code>T</code> is automatically converted into valid <a href="/Coalesce/stacks/vue/layers/models.html">Model implementations</a> for you.</p><h3 id="api-callers-api-states" tabindex="-1">API Callers/API States <a class="header-anchor" href="#api-callers-api-states" aria-label="Permalink to "API Callers/API States"">​</a></h3><p>A stateful function for invoking an API endpoint, created with the <code>$makeCaller</code> function on an API Client. API Callers provide a wide array of functionality that is useful for working with API endpoints that are utilized by a user interface.</p><p>Because they are such an integral part of the overall picture of <code>coalesce-vue</code>, they have <a href="/Coalesce/stacks/vue/layers/api-clients.html">their own section below</a> where they are explained in much greater detail.</p><h2 id="api-callers" tabindex="-1">API Callers <a class="header-anchor" href="#api-callers" aria-label="Permalink to "API Callers"">​</a></h2><p>API Callers (typed with the name <code>ApiState</code> in <code>coalesce-vue</code>, sometimes also referred to as "loaders" or "invokers") are stateful functions for invoking an API endpoint, created with the <code>$makeCaller</code> function on an API Client. A summary of features:</p><h4 id="endpoint-invocation" tabindex="-1">Endpoint Invocation <a class="header-anchor" href="#endpoint-invocation" aria-label="Permalink to "Endpoint Invocation"">​</a></h4><p>Each API Caller is itself a function, so it can be invoked to trigger an API request to the server.</p><h4 id="state-management" tabindex="-1">State management <a class="header-anchor" href="#state-management" aria-label="Permalink to "State management"">​</a></h4><p>API Callers contain properties about the last request made, including things like <code>wasSuccessful</code>, <code>isLoading</code>, <code>result</code>, and more.</p><h4 id="concurrency-management" tabindex="-1">Concurrency Management <a class="header-anchor" href="#concurrency-management" aria-label="Permalink to "Concurrency Management"">​</a></h4><p>Using <code>setConcurrency(mode)</code>, you can configure how each individual caller handles what happens when multiple requests are made simultaneously</p><h4 id="argument-binding" tabindex="-1">Argument Binding <a class="header-anchor" href="#argument-binding" aria-label="Permalink to "Argument Binding"">​</a></h4><p>API Callers can be created so that they have an <code>args</code> object that can be bound to, using <code>.invokeWithArgs()</code> to make a request using those arguments as the API endpoint's parameters. The API Callers created for the <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ViewModel Layer</a> are all created this way.</p><h3 id="creating-and-invoking-an-api-caller" tabindex="-1">Creating and Invoking an API Caller <a class="header-anchor" href="#creating-and-invoking-an-api-caller" aria-label="Permalink to "Creating and Invoking an API Caller"">​</a></h3><p>API Callers can be created with the <code>$makeCaller</code> method of an API Client. The way in which it was created affects how it is invoked, as the parameters that the caller accepts are defined when it is created.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>During typical development, it is unlikely that you'll need to make a custom API Caller - the ones created for you on the generated <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ViewModel Layer</a> will usually suffice. However, creating your own can allow for some more advanced functionality.</p></div><p>Some examples:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#6A9955;">// Preamble for all the examples below:</span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">PersonApiClient</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> '@/api-clients.g'</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> client</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#9CDCFE;"> PersonApiClient</span><span style="color:#D4D4D4;">;</span></span></code></pre></div><p>A caller that takes no additional parameters:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> caller</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">client</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">$makeCaller</span><span style="color:#D4D4D4;">(</span></span> +<span class="line"><span style="color:#CE9178;"> "item"</span><span style="color:#D4D4D4;">, </span></span> +<span class="line"><span style="color:#9CDCFE;"> c</span><span style="color:#569CD6;"> =></span><span style="color:#9CDCFE;"> c</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">namesStartingWith</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"A"</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#C586C0;">await</span><span style="color:#DCDCAA;"> caller</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#9CDCFE;">console</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">log</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">caller</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">result</span><span style="color:#D4D4D4;">)</span></span></code></pre></div><p>A caller that takes custom parameters:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> caller</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">client</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">$makeCaller</span><span style="color:#D4D4D4;">(</span></span> +<span class="line"><span style="color:#9CDCFE;"> methods</span><span style="color:#569CD6;"> =></span><span style="color:#9CDCFE;"> methods</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">namesStartingWith</span><span style="color:#D4D4D4;">, </span></span> +<span class="line"><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">str</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">) </span><span style="color:#569CD6;">=></span><span style="color:#9CDCFE;"> c</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">namesStartingWith</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">str</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#C586C0;">await</span><span style="color:#DCDCAA;"> caller</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Rob"</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#9CDCFE;">console</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">log</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">caller</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">result</span><span style="color:#D4D4D4;">)</span></span></code></pre></div><p>A caller that has an args object that can be bound to. This is how the generated API Callers in the <a href="/Coalesce/stacks/vue/layers/viewmodels.html">ViewModel Layer</a> are created:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> caller</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">client</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">$makeCaller</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"item"</span><span style="color:#D4D4D4;">, </span></span> +<span class="line"><span style="color:#6A9955;"> // The parameter-based version is always required, even if it won't be used.</span></span> +<span class="line"><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">str</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">) </span><span style="color:#569CD6;">=></span><span style="color:#9CDCFE;"> c</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">namesStartingWith</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">str</span><span style="color:#D4D4D4;">),</span></span> +<span class="line"><span style="color:#6A9955;"> // A function which creates a blank instance of the args object.</span></span> +<span class="line"><span style="color:#6A9955;"> // All props should be initialized (i.e. not undefined) to work with Vue's reactivity.</span></span> +<span class="line"><span style="color:#D4D4D4;"> () </span><span style="color:#569CD6;">=></span><span style="color:#D4D4D4;"> ({</span><span style="color:#9CDCFE;">str:</span><span style="color:#569CD6;"> null</span><span style="color:#C586C0;"> as</span><span style="color:#4EC9B0;"> string</span><span style="color:#D4D4D4;"> | </span><span style="color:#4EC9B0;">null</span><span style="color:#D4D4D4;">, }),</span></span> +<span class="line"><span style="color:#6A9955;"> // The function that accepts the args object and uses it:</span></span> +<span class="line"><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">args</span><span style="color:#D4D4D4;">) </span><span style="color:#569CD6;">=></span><span style="color:#9CDCFE;"> c</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">namesStartingWith</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">args</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">str</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#9CDCFE;">caller</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">args</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">str</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">"Su"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;">await</span><span style="color:#9CDCFE;"> caller</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">invokeWithArgs</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#9CDCFE;">console</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">log</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">caller</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">result</span><span style="color:#D4D4D4;">)</span></span></code></pre></div><p>A caller that performs multiple async operations:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> deleteFirstNameStartingWith</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">client</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">$makeCaller</span><span style="color:#D4D4D4;">(</span></span> +<span class="line"><span style="color:#CE9178;"> "item"</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#569CD6;"> async</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">str</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">) </span><span style="color:#569CD6;">=></span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> const</span><span style="color:#4FC1FF;"> namesResult</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">await</span><span style="color:#9CDCFE;"> c</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">namesStartingWith</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">str</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#C586C0;"> await</span><span style="color:#9CDCFE;"> c</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">deletePersonByName</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">namesResult</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">data</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">object</span><span style="color:#D4D4D4;">[</span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">])</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#C586C0;">await</span><span style="color:#DCDCAA;"> caller</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Rob"</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#9CDCFE;">console</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">log</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">caller</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">result</span><span style="color:#D4D4D4;">)</span></span></code></pre></div><p>The first parameter, <code>resultType</code>, can either be one of <code>"item"</code> or <code>"list"</code>, indicating whether the method returns a <code>ItemResult</code> or <code>ListResult</code> (examples #1 and #3 above). It can also be a function which accepts the set of method metadata for the API Client and which returns the specific method metadata (example #2 above), or it can be a direct reference to a specific method metadata object.</p><h3 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties"">​</a></h3><p>The following state properties can be found on API Caller instances. These properties are useful for binding to in a user interface to display errors, results, or indicators of progress.</p><h4 id="all-callers" tabindex="-1">All Callers <a class="header-anchor" href="#all-callers" aria-label="Permalink to "All Callers"">​</a></h4>`,40),d=e("p",null,"True if there is currently a request pending for the API Caller.",-1),h=e("p",null,"A boolean indicating if the last request made was successful, or null if either no request has been made yet, or if a request has been made but has not yet completed.",-1),u=e("p",null,"An error message from the last request, if any. Will be set to null upon successful completion of a request.",-1),D=e("p",null,[s("True if "),e("code",null,"result"),s(" is non-null. This prop is useful in performance-critical scenarios where checking "),e("code",null,"result"),s(" directly will cause an overabundance of re-renders in high-churn scenarios.")],-1),y=e("p",null,[s("Holds an object for the arguments of the function, and will be used if the caller is invoked with its "),e("code",null,"invokeWithArgs()"),s(" method. Useful for binding the arguments of a caller to inputs in a user interface.")],-1),m=e("p",null,"Only exists if the caller was created with the option of being invoked with an args object as described in the sections above.",-1),C=e("p",null,[s("Returns the URL for the method's HTTP endpoint. Any parameters are sourced from the "),e("code",null,"args"),s(" object. Useful for binding file-returning HTTP GET methods directly to "),e("code",null,"image"),s(" or "),e("code",null,"video"),s(" HTML elements.")],-1),f=e("p",null,"Only exists if the caller was created with the option of being invoked with an args object as described in the sections above.",-1),g=e("br",null,null,-1),b=e("h4",{id:"itemresult-based-callers",tabindex:"-1"},[s("ItemResult-based Callers "),e("a",{class:"header-anchor",href:"#itemresult-based-callers","aria-label":'Permalink to "ItemResult-based Callers"'},"​")],-1),v=e("p",null,"The principal data returned by the previous request. Will be set to null if the last response received returned no data (e.g. if the response was an error response)",-1),w=e("p",null,[s("Any validation issues returned by the previous request. This is never populated automatically by Coalesce, and is therefore is only used if you have written custom code to populate it in your "),e("a",{href:"/Coalesce/modeling/model-components/behaviors.html"},"Behaviors"),s(" or "),e("a",{href:"/Coalesce/modeling/model-components/methods.html"},"Methods"),s(".")],-1),A=e("br",null,null,-1),q=e("h4",{id:"listresult-based-callers",tabindex:"-1"},[s("ListResult-based Callers "),e("a",{class:"header-anchor",href:"#listresult-based-callers","aria-label":'Permalink to "ListResult-based Callers"'},"​")],-1),k=e("p",null,"The principal data returned by the previous request. Will be set to null if the last response received returned no data (e.g. if the response was an error response).",-1),_=e("p",null,"Properties which contain the pagination information returned by the previous request.",-1),P=e("h3",{id:"concurrency-mode",tabindex:"-1"},[s("Concurrency Mode "),e("a",{class:"header-anchor",href:"#concurrency-mode","aria-label":'Permalink to "Concurrency Mode"'},"​")],-1),E=o('<p>API callers have a <code>setConcurrency</code> method that allows you to customize how they behave when additional invocations are performed when there is already a request pending. There are four options available, with <code>"disallow"</code> being the default:</p><h5 id="disallow" tabindex="-1"><code>"disallow"</code> <a class="header-anchor" href="#disallow" aria-label="Permalink to "`"disallow"`"">​</a></h5><p>The default behavior - simply throws an error for any secondary invocations.</p><div class="tip custom-block"><p class="custom-block-title">Note</p><p>Having <code>"disallow"</code> as the default prevents the unexpected behavior that can happen in a number of ways with the other modes:</p><ul><li>For requests that are performing data-mutating actions on the server, all other concurrency modes could lead to an unexpected end state of the data due to requests either being abandoned, cancelled, or potentially happening out-of-order.</li><li>Throwing errors for multiple concurrent requests quickly surfaces issues during development where concurrent requests are not being correctly guarded against in a user interface - e.g. not disabling a "Save" or "Submit" button while the request is pending, which would otherwise lead to double-posts.</li></ul></div><h5 id="debounce" tabindex="-1"><code>"debounce"</code> <a class="header-anchor" href="#debounce" aria-label="Permalink to "`"debounce"`"">​</a></h5><p>When a secondary invocation is performed, enqueue it after the current pending invocation completes.</p><p>If additional invocations are performed while there is already an invocation enqueued and waiting, the already-enqueued invocation is abandoned and replaced by the most recent invocation attempt. The promise of the abandoned invocation will be resolved with <code>undefined</code> (it is NOT rejected).</p><h5 id="cancel" tabindex="-1"><code>"cancel"</code> <a class="header-anchor" href="#cancel" aria-label="Permalink to "`"cancel"`"">​</a></h5><p>When a secondary invocation is performed, cancel the current pending invocation.</p><p>This completely aborts the request, propagating all the way back to the server where cancellation can be observed with <a href="https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.httpcontext.requestaborted?view=aspnetcore-3.1" target="_blank" rel="noreferrer">HttpContext.RequestAborted</a>. The promise of the cancelled invocation will be resolved with <code>undefined</code> (it is NOT rejected).</p><h5 id="allow" tabindex="-1"><code>"allow"</code> <a class="header-anchor" href="#allow" aria-label="Permalink to "`"allow"`"">​</a></h5><p>When a secondary invocation is performed, always continue normally, sending the request to the server.</p><p>The state of the properties on the caller at any time will reflect the most recent response received from the server, which is never guaranteed to correlate with the most recent request made to the server - that is, requests are not guaranteed to complete in the order they were made. In particular, the <code>isLoading</code> property will be <code>false</code> after the first response comes back, even if the second response has not yet been received.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>For the reasons outlined above, it is generally not recommended to use <code>"allow"</code> unless you fully understand the drawbacks. This mode mirrors the legacy behavior of the Knockout stack for Coalesce.</p></div><h3 id="response-caching" tabindex="-1">Response Caching <a class="header-anchor" href="#response-caching" aria-label="Permalink to "Response Caching"">​</a></h3><p>Response caching on API Callers is a feature that will save API responses to persistent storage (<code>sessionStorage</code> or <code>localStorage</code>). The next time a matching request is made, the <code>result</code> property of the API Caller will be populated with that saved response, allowing for a faster time to interactivity and reduced repaints and shifting of elements as initial data loads after a page navigation. It does not <em>prevent</em> any HTTP requests from being made, and does not affect the <code>Promise</code> returned from <code>invoke</code> or <code>invokeWithArgs</code>.</p><p>Common use cases include:</p><ul><li>Site-wide status or alert messages</li><li>Server-provided configuration</li><li>Dashboard data, like statistics or graphs</li></ul><p>When a cached response is loaded, <code>result</code> is populated with that response's data, <code>wasSuccessful</code> and <code>hasResult</code> are set to <code>true</code>, and <code>onFulfilled</code> callbacks are invoked.</p>',19),T=o(`<p>Enables response caching on the API Caller. Only <a href="/Coalesce/modeling/model-components/attributes/controller-action.html">HTTP GET methods</a> are supported, and <a href="/Coalesce/modeling/model-components/methods.html#file-downloads">file-returning methods</a> are not supported. Call with <code>false</code> to disable caching after it was previously enabled. The available options are as follows:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">export</span><span style="color:#569CD6;"> type</span><span style="color:#4EC9B0;"> ResponseCachingConfiguration</span><span style="color:#D4D4D4;"> = {</span></span> +<span class="line"><span style="color:#6A9955;"> /** Function that will determine the cache key used for a particular request.</span></span> +<span class="line"><span style="color:#6A9955;"> * Return a falsy value to prevent caching. The default key is the request URL.</span></span> +<span class="line"><span style="color:#6A9955;"> */</span></span> +<span class="line"><span style="color:#DCDCAA;"> key</span><span style="color:#D4D4D4;">?: (</span></span> +<span class="line"><span style="color:#9CDCFE;"> req</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">AxiosRequestConfig</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#9CDCFE;"> defaultKey</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span></span> +<span class="line"><span style="color:#D4D4D4;"> ) </span><span style="color:#569CD6;">=></span><span style="color:#4EC9B0;"> string</span><span style="color:#D4D4D4;"> | </span><span style="color:#4EC9B0;">null</span><span style="color:#D4D4D4;"> | </span><span style="color:#4EC9B0;">undefined</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> /** The maximum age of a cached response. If null, the entry will not expire. Default 1 hour.</span></span> +<span class="line"><span style="color:#6A9955;"> *</span></span> +<span class="line"><span style="color:#6A9955;"> * The smallest of the current configured max age and the max age that was set at the time of the cached response is used. */</span></span> +<span class="line"><span style="color:#9CDCFE;"> maxAgeSeconds</span><span style="color:#D4D4D4;">?: </span><span style="color:#4EC9B0;">number</span><span style="color:#D4D4D4;"> | </span><span style="color:#4EC9B0;">null</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> /** The Storage (default \`sessionStorage\`) that will hold cached responses. */</span></span> +<span class="line"><span style="color:#9CDCFE;"> storage</span><span style="color:#D4D4D4;">?: </span><span style="color:#4EC9B0;">Storage</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;">};</span></span></code></pre></div><h3 id="other-methods" tabindex="-1">Other Methods <a class="header-anchor" href="#other-methods" aria-label="Permalink to "Other Methods"">​</a></h3><p>API Callers have a few other methods available as well:</p>`,4),I=e("p",null,[s("Manually cancel the current request. The promise of the cancelled invocation will be resolved with "),e("code",null,"undefined"),s(" (it is NOT rejected). If using concurrency mode "),e("code",null,'"allow"'),s(", only the most recent invocation is cancelled.")],-1),F=e("p",null,[s("Add a callback to the caller to be invoked when a success response is received from the server. If a promise is returned, this promise will be awaited and will delay the setting of the "),e("code",null,"isLoading"),s(" prop to "),e("code",null,"false"),s(" until it completes.")],-1),x=e("p",null,[s("Add a callback to the caller to be invoked when a failure response is received from the server. If a promise is returned, this promise will be awaited and will delay the setting of the "),e("code",null,"isLoading"),s(" prop to "),e("code",null,"false"),s(" until it completes.")],-1),R=e("p",null,[s("The invoke function is a reference from the caller to itself. In other words, "),e("code",null,"caller.invoke === caller"),s(". This exists to mirror the syntax of the Knockout generated method classes.")],-1),S=e("p",null,[s("If called a parameter, that parameter will be used as the args object. Otherwise, "),e("code",null,"caller.args"),s(" will be used.")],-1),L=e("p",null,"Only exists if the caller was created with the option of being invoked with an args object as described in the sections above.",-1),j=e("p",null,[s("If the method returns a file, this method will return an "),e("a",{href:"https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL",target:"_blank",rel:"noreferrer"},"Object URL"),s(" representing the value of the "),e("code",null,"result"),s(" prop.")],-1),B=e("p",null,[s("Accepts a "),e("code",null,"Vue"),s(" instance in order to manage the lifecycle of the URL, since object URLs must be manually released to avoid memory leaks. When the provided Vue component is destroyed, the object URL will be destroyed. If called inside the component template, the Vue instance can be acquired automatically.")],-1),V=e("p",null,"Only exists if the caller was created with the option of being invoked with an args object as described in the sections above.",-1);function W(N,M,O,U,$,H){const a=c("Prop");return r(),l("div",null,[i,n(a,{def:"isLoading: boolean",lang:"ts"}),d,n(a,{def:"wasSuccessful: boolean | null",lang:"ts"}),h,n(a,{def:"message: string | null",lang:"ts"}),u,n(a,{def:"hasResult: boolean",lang:"ts"}),D,n(a,{def:"args: {}",lang:"ts"}),y,m,n(a,{def:"get url(): string",lang:"ts"}),C,f,g,b,n(a,{def:"result: T | null",lang:"ts",id:"member-result-item"}),v,n(a,{def:"validationIssues: ValidationIssue[] | null",lang:"ts"}),w,A,q,n(a,{def:"result: Array<T> | null",lang:"ts",id:"member-result-list"}),k,n(a,{def:"page, pageSize, pageCount, totalCount: number | null",lang:"ts",id:"members-pagination"}),_,P,n(a,{def:"setConcurrency(mode: 'disallow' | 'debounce' | 'cancel' | 'allow')",lang:"ts"}),E,n(a,{def:"useResponseCaching(configuration?: ResponseCachingConfiguration | false)",lang:"ts"}),T,n(a,{def:"cancel(): void",lang:"ts"}),I,n(a,{def:"onFulfilled((state: TInvoker) => void | Promise<any>): void",lang:"ts"}),F,n(a,{def:"onRejected((state: TInvoker) => void | Promise<any>): void",lang:"ts"}),x,n(a,{def:"invoke(...args: TArgs)",lang:"ts"}),R,n(a,{def:"invokeWithArgs(args?: {})",lang:"ts"}),S,L,n(a,{def:"getResultObjectUrl(vue?: Vue): string | undefined",lang:"ts"}),j,B,V])}const K=t(p,[["render",W]]);export{G as __pageData,K as default}; diff --git a/assets/stacks_vue_layers_api-clients.md.CClYP9-n.lean.js b/assets/stacks_vue_layers_api-clients.md.CClYP9-n.lean.js new file mode 100644 index 000000000..594408e81 --- /dev/null +++ b/assets/stacks_vue_layers_api-clients.md.CClYP9-n.lean.js @@ -0,0 +1 @@ +import{_ as t,c as l,I as n,a7 as o,l as e,a as s,o as r,E as c}from"./chunks/framework.Be4oCqIX.js";const G=JSON.parse('{"title":"Vue API Client Layer","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/layers/api-clients.md","filePath":"stacks/vue/layers/api-clients.md"}'),p={name:"stacks/vue/layers/api-clients.md"},i=o("",40),d=e("p",null,"True if there is currently a request pending for the API Caller.",-1),h=e("p",null,"A boolean indicating if the last request made was successful, or null if either no request has been made yet, or if a request has been made but has not yet completed.",-1),u=e("p",null,"An error message from the last request, if any. Will be set to null upon successful completion of a request.",-1),D=e("p",null,[s("True if "),e("code",null,"result"),s(" is non-null. This prop is useful in performance-critical scenarios where checking "),e("code",null,"result"),s(" directly will cause an overabundance of re-renders in high-churn scenarios.")],-1),y=e("p",null,[s("Holds an object for the arguments of the function, and will be used if the caller is invoked with its "),e("code",null,"invokeWithArgs()"),s(" method. Useful for binding the arguments of a caller to inputs in a user interface.")],-1),m=e("p",null,"Only exists if the caller was created with the option of being invoked with an args object as described in the sections above.",-1),C=e("p",null,[s("Returns the URL for the method's HTTP endpoint. Any parameters are sourced from the "),e("code",null,"args"),s(" object. Useful for binding file-returning HTTP GET methods directly to "),e("code",null,"image"),s(" or "),e("code",null,"video"),s(" HTML elements.")],-1),f=e("p",null,"Only exists if the caller was created with the option of being invoked with an args object as described in the sections above.",-1),g=e("br",null,null,-1),b=e("h4",{id:"itemresult-based-callers",tabindex:"-1"},[s("ItemResult-based Callers "),e("a",{class:"header-anchor",href:"#itemresult-based-callers","aria-label":'Permalink to "ItemResult-based Callers"'},"​")],-1),v=e("p",null,"The principal data returned by the previous request. Will be set to null if the last response received returned no data (e.g. if the response was an error response)",-1),w=e("p",null,[s("Any validation issues returned by the previous request. This is never populated automatically by Coalesce, and is therefore is only used if you have written custom code to populate it in your "),e("a",{href:"/Coalesce/modeling/model-components/behaviors.html"},"Behaviors"),s(" or "),e("a",{href:"/Coalesce/modeling/model-components/methods.html"},"Methods"),s(".")],-1),A=e("br",null,null,-1),q=e("h4",{id:"listresult-based-callers",tabindex:"-1"},[s("ListResult-based Callers "),e("a",{class:"header-anchor",href:"#listresult-based-callers","aria-label":'Permalink to "ListResult-based Callers"'},"​")],-1),k=e("p",null,"The principal data returned by the previous request. Will be set to null if the last response received returned no data (e.g. if the response was an error response).",-1),_=e("p",null,"Properties which contain the pagination information returned by the previous request.",-1),P=e("h3",{id:"concurrency-mode",tabindex:"-1"},[s("Concurrency Mode "),e("a",{class:"header-anchor",href:"#concurrency-mode","aria-label":'Permalink to "Concurrency Mode"'},"​")],-1),E=o("",19),T=o("",4),I=e("p",null,[s("Manually cancel the current request. The promise of the cancelled invocation will be resolved with "),e("code",null,"undefined"),s(" (it is NOT rejected). If using concurrency mode "),e("code",null,'"allow"'),s(", only the most recent invocation is cancelled.")],-1),F=e("p",null,[s("Add a callback to the caller to be invoked when a success response is received from the server. If a promise is returned, this promise will be awaited and will delay the setting of the "),e("code",null,"isLoading"),s(" prop to "),e("code",null,"false"),s(" until it completes.")],-1),x=e("p",null,[s("Add a callback to the caller to be invoked when a failure response is received from the server. If a promise is returned, this promise will be awaited and will delay the setting of the "),e("code",null,"isLoading"),s(" prop to "),e("code",null,"false"),s(" until it completes.")],-1),R=e("p",null,[s("The invoke function is a reference from the caller to itself. In other words, "),e("code",null,"caller.invoke === caller"),s(". This exists to mirror the syntax of the Knockout generated method classes.")],-1),S=e("p",null,[s("If called a parameter, that parameter will be used as the args object. Otherwise, "),e("code",null,"caller.args"),s(" will be used.")],-1),L=e("p",null,"Only exists if the caller was created with the option of being invoked with an args object as described in the sections above.",-1),j=e("p",null,[s("If the method returns a file, this method will return an "),e("a",{href:"https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL",target:"_blank",rel:"noreferrer"},"Object URL"),s(" representing the value of the "),e("code",null,"result"),s(" prop.")],-1),B=e("p",null,[s("Accepts a "),e("code",null,"Vue"),s(" instance in order to manage the lifecycle of the URL, since object URLs must be manually released to avoid memory leaks. When the provided Vue component is destroyed, the object URL will be destroyed. If called inside the component template, the Vue instance can be acquired automatically.")],-1),V=e("p",null,"Only exists if the caller was created with the option of being invoked with an args object as described in the sections above.",-1);function W(N,M,O,U,$,H){const a=c("Prop");return r(),l("div",null,[i,n(a,{def:"isLoading: boolean",lang:"ts"}),d,n(a,{def:"wasSuccessful: boolean | null",lang:"ts"}),h,n(a,{def:"message: string | null",lang:"ts"}),u,n(a,{def:"hasResult: boolean",lang:"ts"}),D,n(a,{def:"args: {}",lang:"ts"}),y,m,n(a,{def:"get url(): string",lang:"ts"}),C,f,g,b,n(a,{def:"result: T | null",lang:"ts",id:"member-result-item"}),v,n(a,{def:"validationIssues: ValidationIssue[] | null",lang:"ts"}),w,A,q,n(a,{def:"result: Array<T> | null",lang:"ts",id:"member-result-list"}),k,n(a,{def:"page, pageSize, pageCount, totalCount: number | null",lang:"ts",id:"members-pagination"}),_,P,n(a,{def:"setConcurrency(mode: 'disallow' | 'debounce' | 'cancel' | 'allow')",lang:"ts"}),E,n(a,{def:"useResponseCaching(configuration?: ResponseCachingConfiguration | false)",lang:"ts"}),T,n(a,{def:"cancel(): void",lang:"ts"}),I,n(a,{def:"onFulfilled((state: TInvoker) => void | Promise<any>): void",lang:"ts"}),F,n(a,{def:"onRejected((state: TInvoker) => void | Promise<any>): void",lang:"ts"}),x,n(a,{def:"invoke(...args: TArgs)",lang:"ts"}),R,n(a,{def:"invokeWithArgs(args?: {})",lang:"ts"}),S,L,n(a,{def:"getResultObjectUrl(vue?: Vue): string | undefined",lang:"ts"}),j,B,V])}const K=t(p,[["render",W]]);export{G as __pageData,K as default}; diff --git a/assets/stacks_vue_layers_metadata.md.DW2muex8.js b/assets/stacks_vue_layers_metadata.md.DW2muex8.js new file mode 100644 index 000000000..a81a61d1a --- /dev/null +++ b/assets/stacks_vue_layers_metadata.md.DW2muex8.js @@ -0,0 +1 @@ +import{_ as o,c as r,I as t,a7 as e,o as s,E as d}from"./chunks/framework.Be4oCqIX.js";const v=JSON.parse('{"title":"Vue Metadata Layer","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/layers/metadata.md","filePath":"stacks/vue/layers/metadata.md"}'),n={name:"stacks/vue/layers/metadata.md"},l=e('<h1 id="vue-metadata-layer" tabindex="-1">Vue Metadata Layer <a class="header-anchor" href="#vue-metadata-layer" aria-label="Permalink to "Vue Metadata Layer"">​</a></h1><p>The metadata layer, generated as <code>metadata.g.ts</code>, contains information about the types, properties, methods, and other components of your data model. Because Vue applications are typically compiled into a set of static assets, it is necessary for the frontend code to have a representation of your data model as an analog to the <code>ReflectionRepository</code> that is available at runtime in your .NET app.</p><h2 id="concepts" tabindex="-1">Concepts <a class="header-anchor" href="#concepts" aria-label="Permalink to "Concepts"">​</a></h2><p>The following is a non-exhaustive list of the general concepts used by the metadata layer. The <a href="https://github.com/IntelliTect/Coalesce/blob/dev/src/coalesce-vue/src/metadata.ts" target="_blank" rel="noreferrer">source code of coalesce-vue</a> provides the most exhaustive set of documentation about the metadata layer:</p><h3 id="metadata" tabindex="-1">Metadata <a class="header-anchor" href="#metadata" aria-label="Permalink to "Metadata"">​</a></h3><p>All objects in the metadata layer that represent any kind of metadata have, at the very least, a <code>name</code>, the name of the metadata element in code (type names, property names, parameter names, etc). and a <code>displayName</code>, the human-readable form of the name that is suitable for presentation when needed. Names follow the casing convention of their corresponding language elements - types are PascalCased, while other things like properties, methods, and parameters are camelCased.</p><h3 id="type" tabindex="-1">Type <a class="header-anchor" href="#type" aria-label="Permalink to "Type"">​</a></h3><p>All custom types exposed by your application's data model will have a Type metadata object generated. This includes both C# classes, and C# enums. Class types include <code>model</code> (for <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>) and <code>object</code> (for <a href="/Coalesce/modeling/model-types/external-types.html">External Types</a>).</p><h3 id="value" tabindex="-1">Value <a class="header-anchor" href="#value" aria-label="Permalink to "Value"">​</a></h3><p>In the metadata layer, a Value is the usage of a type. This could be any type - strings, numbers, enums, classes, or even void. Values can be found in the collection of an object's properties, a method's parameters or return value, or as a data source's parameters.</p><p>All values have the following properties:</p>',11),c=e("<p>Type could be a language primitive like <code>string</code> or <code>number</code>, a non-primitive JavaScript type (<code>date</code>, <code>file</code>), or in the case of a custom Type, the type kind of that type (<code>model</code>, <code>enum</code>, <code>object</code>). For custom types, an additional property <code>typeDef</code> will refer to the Type metadata for that type.</p>",1),i=e('<p>Role represents what purpose the value serves in a relational model. Either <code>value</code> (the default - no relational role), <code>primaryKey</code>, <code>foreignKey</code>, <code>referenceNavigation</code>, or <code>collectionNavigation</code>.</p><h3 id="property" tabindex="-1">Property <a class="header-anchor" href="#property" aria-label="Permalink to "Property"">​</a></h3><p>A Property is a more refined Value that contains a number of additional fields based on the <code>role</code> of the property.</p><h3 id="domain" tabindex="-1">Domain <a class="header-anchor" href="#domain" aria-label="Permalink to "Domain"">​</a></h3><p>The type of the default export of the generated metadata. Serves as a single root from which all other metadata can be accessed. Contains fields <code>types</code>, <code>enums</code>, and <code>services</code> as organizing structures for the different kinds of custom types.</p>',5);function p(h,m,u,y,f,_){const a=d("Prop");return s(),r("div",null,[l,t(a,{def:"type: TypeDiscriminator",lang:"ts"}),c,t(a,{def:"role: ValueRole",lang:"ts"}),i])}const T=o(n,[["render",p]]);export{v as __pageData,T as default}; diff --git a/assets/stacks_vue_layers_metadata.md.DW2muex8.lean.js b/assets/stacks_vue_layers_metadata.md.DW2muex8.lean.js new file mode 100644 index 000000000..15aac5442 --- /dev/null +++ b/assets/stacks_vue_layers_metadata.md.DW2muex8.lean.js @@ -0,0 +1 @@ +import{_ as o,c as r,I as t,a7 as e,o as s,E as d}from"./chunks/framework.Be4oCqIX.js";const v=JSON.parse('{"title":"Vue Metadata Layer","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/layers/metadata.md","filePath":"stacks/vue/layers/metadata.md"}'),n={name:"stacks/vue/layers/metadata.md"},l=e("",11),c=e("",1),i=e("",5);function p(h,m,u,y,f,_){const a=d("Prop");return s(),r("div",null,[l,t(a,{def:"type: TypeDiscriminator",lang:"ts"}),c,t(a,{def:"role: ValueRole",lang:"ts"}),i])}const T=o(n,[["render",p]]);export{v as __pageData,T as default}; diff --git a/assets/stacks_vue_layers_models.md.DB6_7cJd.js b/assets/stacks_vue_layers_models.md.DB6_7cJd.js new file mode 100644 index 000000000..00a252c2e --- /dev/null +++ b/assets/stacks_vue_layers_models.md.DB6_7cJd.js @@ -0,0 +1,77 @@ +import{_ as p,c,I as a,w as n,a7 as t,l as e,a as s,E as r,o as i}from"./chunks/framework.Be4oCqIX.js";const R=JSON.parse('{"title":"Vue Model Layer","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/layers/models.md","filePath":"stacks/vue/layers/models.md"}'),d={name:"stacks/vue/layers/models.md"},D=t(`<h1 id="vue-model-layer" tabindex="-1">Vue Model Layer <a class="header-anchor" href="#vue-model-layer" aria-label="Permalink to "Vue Model Layer"">​</a></h1><p>The model layer, generated as <code>models.g.ts</code>, contains a set of TypeScript interfaces that represent each client-exposed type in your data model. Each interface contains all the <a href="/Coalesce/modeling/model-components/properties.html">Properties</a> of that type, as well as a <code>$metadata</code> property that references the <a href="/Coalesce/stacks/vue/layers/metadata.html">metadata</a> object for that type. Enums and <a href="/Coalesce/modeling/model-components/data-sources.html">Data Sources</a> are also represented in the model layer.</p><p>The model layer also includes a TypeScript class for each type that can be used to easily instantiate a valid implementation of its corresponding interface. However, it is not necessary for the classes to be used, and all parts of Coalesce that interact with the model layer don't perform any <code>instanceof</code> checks against models - the <code>$metadata</code> property is used to determine type identity.</p><h2 id="concepts" tabindex="-1">Concepts <a class="header-anchor" href="#concepts" aria-label="Permalink to "Concepts"">​</a></h2><p>The model layer is fairly simple - the only main concept it introduces on top of the <a href="/Coalesce/stacks/vue/layers/metadata.html">Metadata Layer</a> is the notion of interfaces and enums that mirror the C# types in your data model. As with the <a href="/Coalesce/stacks/vue/layers/metadata.html">Metadata Layer</a>, the <a href="https://github.com/IntelliTect/Coalesce/blob/dev/src/coalesce-vue/src/model.ts" target="_blank" rel="noreferrer">source code of coalesce-vue</a> is a great documentation supplement to this page.</p><h3 id="model" tabindex="-1">Model <a class="header-anchor" href="#model" aria-label="Permalink to "Model"">​</a></h3><p>An interface describing an instance of a class type from your application's data model. All Model interfaces contain members for all the <a href="/Coalesce/modeling/model-components/properties.html">Properties</a> of that type, as well as a <code>$metadata</code> property that references the metadata object for that type.</p><h3 id="datasource" tabindex="-1">DataSource <a class="header-anchor" href="#datasource" aria-label="Permalink to "DataSource"">​</a></h3><p>A class-based representation of a <a href="/Coalesce/modeling/model-components/data-sources.html">Data Source</a> containing properties for any of the <a href="/Coalesce/modeling/model-components/data-sources.html#custom-parameters">Custom Parameters</a> of the data source, as well as a <code>$metadata</code> property that references the metadata object for the data source.</p><p>Data sources are generated as concrete classes in a namespace named <code>DataSources</code> that is nested inside a namespace named after their parent model type. For example:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">Person</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> '@/models.g'</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> dataSource</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#9CDCFE;"> Person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">DataSources</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">NamesStartingWith</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#9CDCFE;">dataSource</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">startsWith</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">"A"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#6A9955;">// Provide the dataSource to an API Client or a ViewModel...</span></span></code></pre></div><h2 id="model-functions" tabindex="-1">Model Functions <a class="header-anchor" href="#model-functions" aria-label="Permalink to "Model Functions"">​</a></h2><p>The following functions exported from <code>coalesce-vue</code> can be used with your models:</p>`,13),y=t('<p>Binds property <code>key</code> of <code>obj</code> to query string parameter <code>queryKey</code>. When the object's value changes, the query string will be updated using <a href="https://router.vuejs.org/" target="_blank" rel="noreferrer">vue-router</a>. When the query string changes, the object's value will be updated.</p><p>The query string will be updated using either <code>router.push</code> or <code>router.replace</code> depending on the value of parameter <code>mode</code>.</p><p>If the query string contains a value when this is called, the object will be updated with that value immediately.</p><p>If the object being bound to has <code>$metadata</code>, information from that metadata will be used to serialize and parse values to and from the query string. Otherwise, <code>String(value)</code> will be used to serialize the value, and the <code>parse</code> parameter (if provided) will be used to parse the value from the query string.</p>',4),u=e("div",{class:"language-ts"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"ts"),e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#C586C0"}},"import"),e("span",{style:{color:"#D4D4D4"}}," { "),e("span",{style:{color:"#9CDCFE"}},"bindToQueryString"),e("span",{style:{color:"#D4D4D4"}}," } "),e("span",{style:{color:"#C586C0"}},"from"),e("span",{style:{color:"#CE9178"}}," 'coalesce-vue'"),e("span",{style:{color:"#D4D4D4"}},";")]),s(` +`),e("span",{class:"line"}),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"// In the 'created' Vue lifecycle hook on a component:")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"created"),e("span",{style:{color:"#D4D4D4"}},"() {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}}," // Bind pagination information to the query string:")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}}," bindToQueryString"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"listViewModel"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"$params"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#CE9178"}},"'pageSize'"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#CE9178"}},"'pageSize'"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#9CDCFE"}},"v"),e("span",{style:{color:"#569CD6"}}," =>"),e("span",{style:{color:"#D4D4D4"}}," +"),e("span",{style:{color:"#9CDCFE"}},"v"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"}),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}}," // Assuming the component has an 'activeTab' data member:")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}}," bindToQueryString"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#CE9178"}},"'activeTab'"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}},"}")])])])],-1),h=e("div",{class:"language-ts"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"ts"),e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#C586C0"}},"import"),e("span",{style:{color:"#D4D4D4"}}," { "),e("span",{style:{color:"#9CDCFE"}},"useBindToQueryString"),e("span",{style:{color:"#D4D4D4"}}," } "),e("span",{style:{color:"#C586C0"}},"from"),e("span",{style:{color:"#CE9178"}}," 'coalesce-vue'"),e("span",{style:{color:"#D4D4D4"}},";")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"setup"),e("span",{style:{color:"#D4D4D4"}},"() {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}}," // Bind pagination information to the query string:")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#569CD6"}}," const"),e("span",{style:{color:"#4FC1FF"}}," list"),e("span",{style:{color:"#D4D4D4"}}," = "),e("span",{style:{color:"#569CD6"}},"new"),e("span",{style:{color:"#DCDCAA"}}," PersonListViewModel"),e("span",{style:{color:"#D4D4D4"}},"();")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}}," useBindToQueryString"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#9CDCFE"}},"list"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"$params"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#CE9178"}},"'pageSize'"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#CE9178"}},"'pageSize'"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#9CDCFE"}},"v"),e("span",{style:{color:"#569CD6"}}," =>"),e("span",{style:{color:"#D4D4D4"}}," +"),e("span",{style:{color:"#9CDCFE"}},"v"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"}),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#569CD6"}}," const"),e("span",{style:{color:"#4FC1FF"}}," activeTab"),e("span",{style:{color:"#D4D4D4"}}," = "),e("span",{style:{color:"#DCDCAA"}},"ref"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#CE9178"}},'"1"'),e("span",{style:{color:"#D4D4D4"}},")")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}}," useBindToQueryString"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#9CDCFE"}},"activeTab"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#CE9178"}},"'value'"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#CE9178"}},"'activeTab'"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}},"}")])])])],-1),m=e("p",null,[s("When "),e("code",null,"model"),s(" is created (i.e. its primary key becomes non-null), replace the current URL with one that includes uses primary key for the route parameter named by "),e("code",null,"routeParamName"),s(".")],-1),C=e("p",null,[s("The query string will not be kept when the route is changed unless "),e("code",null,"true"),s(" is given to "),e("code",null,"keepQuery"),s(".")],-1),f=e("div",{class:"language-ts"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"ts"),e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#C586C0"}},"import"),e("span",{style:{color:"#D4D4D4"}}," { "),e("span",{style:{color:"#9CDCFE"}},"bindKeyToRouteOnCreate"),e("span",{style:{color:"#D4D4D4"}}," } "),e("span",{style:{color:"#C586C0"}},"from"),e("span",{style:{color:"#CE9178"}}," 'coalesce-vue'"),e("span",{style:{color:"#D4D4D4"}},";")]),s(` +`),e("span",{class:"line"}),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"// In the 'created' Vue lifecycle hook on a component:")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"created"),e("span",{style:{color:"#D4D4D4"}},"() {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#C586C0"}}," if"),e("span",{style:{color:"#D4D4D4"}}," ("),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"id"),e("span",{style:{color:"#D4D4D4"}},") {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#569CD6"}}," this"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"viewModel"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#DCDCAA"}},"$load"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"id"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}}," } "),e("span",{style:{color:"#C586C0"}},"else"),e("span",{style:{color:"#D4D4D4"}}," {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}}," bindKeyToRouteOnCreate"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"viewModel"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}}," }")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}},"}")])])])],-1),b=e("div",{class:"language-ts"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"ts"),e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#C586C0"}},"import"),e("span",{style:{color:"#D4D4D4"}}," { "),e("span",{style:{color:"#9CDCFE"}},"useBindKeyToRouteOnCreate"),e("span",{style:{color:"#D4D4D4"}}," } "),e("span",{style:{color:"#C586C0"}},"from"),e("span",{style:{color:"#CE9178"}}," 'coalesce-vue'"),e("span",{style:{color:"#D4D4D4"}},";")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"setup"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#9CDCFE"}},"props"),e("span",{style:{color:"#D4D4D4"}},") {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#569CD6"}}," const"),e("span",{style:{color:"#4FC1FF"}}," viewModel"),e("span",{style:{color:"#D4D4D4"}}," = "),e("span",{style:{color:"#569CD6"}},"new"),e("span",{style:{color:"#DCDCAA"}}," PersonViewModel"),e("span",{style:{color:"#D4D4D4"}},"();")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#C586C0"}}," if"),e("span",{style:{color:"#D4D4D4"}}," ("),e("span",{style:{color:"#9CDCFE"}},"props"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"id"),e("span",{style:{color:"#D4D4D4"}},") {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#9CDCFE"}}," viewModel"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#DCDCAA"}},"$load"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#9CDCFE"}},"props"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"id"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}}," } "),e("span",{style:{color:"#C586C0"}},"else"),e("span",{style:{color:"#D4D4D4"}}," {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}}," useBindToQueryString"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#9CDCFE"}},"viewModel"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}}," }")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}},"}")])])])],-1),g=t('<div class="tip custom-block"><p class="custom-block-title">Note</p><p>The route will be replaced directly via the <a href="https://developer.mozilla.org/en-US/docs/Web/API/History_API" target="_blank" rel="noreferrer">HTML5 History API</a> such that <a href="https://router.vuejs.org/" target="_blank" rel="noreferrer">vue-router</a> will not observe the change as an actual route change, preventing the current view from being recreated if a path-based key is being used on the application's <code><router-view></code> component.</p></div><h2 id="advanced-model-functions" tabindex="-1">Advanced Model Functions <a class="header-anchor" href="#advanced-model-functions" aria-label="Permalink to "Advanced Model Functions"">​</a></h2><p>The following functions exported from <code>coalesce-vue</code> can be used with your models.</p><div class="tip custom-block"><p class="custom-block-title">Note</p><p>These functions are used to implement the <a href="/Coalesce/stacks/vue/overview.html">higher-order layers</a> in the Vue stack.</p><p>While you're absolutely free to use them in your own code and can rely on their interface and behavior to remain consistent, you will find that you seldom need to use them directly - that's why we've split them into their own section here in the documentation.</p></div>',4),_=t("<p>Given any JavaScript value <code>value</code>, convert it into a valid implementation of the value or type described by <code>metadata</code>.</p><p>For metadata describing a primitive or primitive-like value, the input will be parsed into a valid implementation of the correct JavaScript type. For example, for <code>metadata</code> that describes a boolean, a string <code>"true"</code> will return a boolean <code>true</code>, and ISO 8601 date strings will result in a JavaScript <code>Date</code> object.</p><p>For metadata describing a type, the input object will be mutated into a valid implementation of the appropriate model interface. Missing properties will be set to null, and any descendent properties of the provided object will be recursively processed with <code>convertToModel</code>.</p><p>If any values are encountered that are fundamentally incompatible with the requested type described by the metadata, an error will be thrown.</p>",4),v=e("p",null,[s("Performs the same operations as "),e("code",null,"convertToModel"),s(", except that any objects encountered will not be mutated - instead, a new object or array will always be created.")],-1),T=e("p",null,"Maps the input to a representation suitable for JSON serialization.",-1),A=e("p",null,[s("Will not serialize child objects or collections whose metadata includes "),e("code",null,"dontSerialize"),s(". Will only recurse to a maximum depth of 3.")],-1),w=e("p",null,[e("a",{id:"VueModelDisplayFunctions"})],-1),E=t('<p>Returns a string representing the <code>model</code> suitable for display in a user interface.</p><p>Uses the <code>displayProp</code> defined on the object's metadata. If no <code>displayProp</code> is defined, the object will be displayed as JSON. The display prop on a model can be defined in C# with <a href="/Coalesce/modeling/model-components/attributes/list-text.html">[ListText]</a>.</p><p>See <a href="#displayoptions">DisplayOptions</a> for available options.</p>',3),k=e("p",null,"Returns a string representing the specified property of the given object suitable for display in a user interface.",-1),S=e("p",null,[s("The property can either be a string, representing one of the model's properties, or the actual "),e("code",null,"Property"),s(" metadata object of the property.")],-1),F=e("p",null,[s("See "),e("a",{href:"#displayoptions"},"DisplayOptions"),s(" for available options.")],-1),P=t(`<p>Returns a string representing the given value (described by the given metadata).</p><p>See <a href="#displayoptions">DisplayOptions</a> for available options.</p><h2 id="displayoptions" tabindex="-1">DisplayOptions <a class="header-anchor" href="#displayoptions" aria-label="Permalink to "DisplayOptions"">​</a></h2><p>The following options are available to functions in coalesce-vue that render a value or object for display:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">export</span><span style="color:#569CD6;"> interface</span><span style="color:#4EC9B0;"> DisplayOptions</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#6A9955;"> /** Date format options. One of:</span></span> +<span class="line"><span style="color:#6A9955;"> * - A UTS#35 date format string (https://date-fns.org/docs/format)</span></span> +<span class="line"><span style="color:#6A9955;"> * - An object with options for https://date-fns.org/docs/format or https://github.com/marnusw/date-fns-tz#format, including a string \`format\` for the format itself. If a \`timeZone\` option is provided per https://github.com/marnusw/date-fns-tz#format, the date being formatted will be converted to that timezone.</span></span> +<span class="line"><span style="color:#6A9955;"> * - An object with options for https://date-fns.org/docs/formatDistance */</span></span> +<span class="line"><span style="color:#9CDCFE;"> format</span><span style="color:#D4D4D4;">?:</span></span> +<span class="line"><span style="color:#D4D4D4;"> | </span><span style="color:#4EC9B0;">string</span></span> +<span class="line"><span style="color:#D4D4D4;"> | ({</span></span> +<span class="line"><span style="color:#6A9955;"> /** A UTS#35 date format string (https://date-fns.org/docs/format) */</span></span> +<span class="line"><span style="color:#9CDCFE;"> format</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> } & </span><span style="color:#4EC9B0;">Parameters</span><span style="color:#D4D4D4;"><</span><span style="color:#569CD6;">typeof</span><span style="color:#9CDCFE;"> format</span><span style="color:#D4D4D4;">>[</span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">])</span></span> +<span class="line"><span style="color:#D4D4D4;"> | {</span></span> +<span class="line"><span style="color:#6A9955;"> /** Format date with https://date-fns.org/docs/formatDistanceToNow */</span></span> +<span class="line"><span style="color:#9CDCFE;"> distance</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">true</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#6A9955;"> /** Append/prepend \`'in'\` or \`'ago'\` if date is after/before now. Default \`true\`. */</span></span> +<span class="line"><span style="color:#9CDCFE;"> addSuffix</span><span style="color:#D4D4D4;">?: </span><span style="color:#4EC9B0;">boolean</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#6A9955;"> /** Include detail smaller than one minute. Default \`false\`. */</span></span> +<span class="line"><span style="color:#9CDCFE;"> includeSeconds</span><span style="color:#D4D4D4;">?: </span><span style="color:#4EC9B0;">boolean</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> };</span></span> +<span class="line"></span> +<span class="line"><span style="color:#9CDCFE;"> collection</span><span style="color:#D4D4D4;">?: {</span></span> +<span class="line"><span style="color:#6A9955;"> /** The maximum number of items to display individually.</span></span> +<span class="line"><span style="color:#6A9955;"> * When there are more than this number of items, the count of items will be displayed instead.</span></span> +<span class="line"><span style="color:#6A9955;"> * Default \`5\`.</span></span> +<span class="line"><span style="color:#6A9955;"> * */</span></span> +<span class="line"><span style="color:#9CDCFE;"> enumeratedItemsMax</span><span style="color:#D4D4D4;">?: </span><span style="color:#4EC9B0;">number</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> /** The separator to place between enumerated items. Default \`', '\` */</span></span> +<span class="line"><span style="color:#9CDCFE;"> enumeratedItemsSeparator</span><span style="color:#D4D4D4;">?: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> };</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><div class="tip custom-block"><p class="custom-block-title">Note</p><p>Dates rendered with the <code>formatDistanceToNow</code> function into a Vue component will not automatically be updated in realtime. If this is needed, you should use a strategy like using a <a href="https://vuejs.org/api/built-in-special-attributes.html#key" target="_blank" rel="noreferrer">key</a> that you periodically update to force a re-render.</p></div><h2 id="time-zones" tabindex="-1">Time Zones <a class="header-anchor" href="#time-zones" aria-label="Permalink to "Time Zones"">​</a></h2><p>In Coalesce Vue, all <code>DateTimeOffset</code>-based properties, for both inputs and display-only contexts, are by default formatted into the user's computer's system time zone. This is largely just a consequence of how the JavaScript Date type works. However, this behavior can be overridden by configuring a global default timezone, or by providing a time zone name to individual usages.</p><p>Fields with a type of <code>DateTime</code> are agnostic to time zone and UTC offset and so are not subject to any of the following rules.</p>`,9),I=t('<p>Gets or sets the default time zone used by Coalesce. The time zone should be an <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones" target="_blank" rel="noreferrer">IANA Time Zone Database</a> name, e.g. <code>"America/Los_Angeles"</code>.</p><p>The time zone provided here is used in the following ways:</p><ul><li>It will be used as <code>DisplayOptions.format.timeZone</code> if no other value was provided for this option. This is used by functions <a href="#member-modeldisplay">modelDisplay</a>, <a href="#member-propdisplay">propDisplay</a>, and <a href="#member-valuedisplay">valueDisplay</a>, as well as the <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-display.html">c-display</a> component.</li><li>It will be used by <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-datetime-picker.html">c-datetime-picker</a>, used to both interpret the user input and display the selected date. This can also be set on individual component usages via the <code>timeZone</code> prop.</li><li>It will be used when serializing DateTimeOffset fields into JSON DTOs, representing the ISO 8601 date string in the specified time zone rather than in the user's computer's system time zone.</li></ul>',3),V=e("p",null,[s("Returns the current configured default time zone. Default is "),e("code",null,"null"),s(", falling back on the user's computer's system time zone.")],-1);function q(M,x,z,j,O,N){const o=r("Prop"),l=r("CodeTabs");return i(),c("div",null,[D,a(o,{def:`// Vue Options API +bindToQueryString(vue: Vue, obj: {}, key: string, queryKey: string = key, parse?: (v: any) => any, mode: 'push' | 'replace' = 'replace') +  +// Vue Composition API +useBindToQueryString(obj: {}, key: string, queryKey: string = key, parse?: (v: any) => any, mode: 'push' | 'replace' = 'replace')`,lang:"ts",idPrefix:"member-bindToQuery"}),y,a(l,{name:"vue"},{options:n(()=>[u]),setup:n(()=>[h]),_:1}),a(o,{def:`// Vue Options API +bindKeyToRouteOnCreate(vue: Vue, model: Model<ModelType>, routeParamName: string = 'id', keepQuery: boolean = false) +  +// Vue Composition API +useBindKeyToRouteOnCreate(model: Model<ModelType>, routeParamName: string = 'id', keepQuery: boolean = false)`,lang:"ts",idPrefix:"member-bindKey"}),m,C,a(l,{name:"vue"},{options:n(()=>[f]),setup:n(()=>[b]),_:1}),g,a(o,{def:"convertToModel(value: any, metadata: Value | ClassType): any",lang:"ts"}),_,a(o,{def:"mapToModel(value: any, metadata: Value | ClassType): any",lang:"ts"}),v,a(o,{def:"mapToDto(value: any, metadata: Value | ClassType): any",lang:"ts"}),T,A,w,a(o,{def:"modelDisplay(model: Model, options?: DisplayOptions): string",lang:"ts"}),E,a(o,{def:"propDisplay(model: Model, prop: Property | string, options?: DisplayOptions): string",lang:"ts"}),k,S,F,a(o,{def:"valueDisplay(value: any, metadata: Value, options?: DisplayOptions): string",lang:"ts"}),P,a(o,{def:"setDefaultTimeZone(timeZoneName: string | null): void",lang:"ts"}),I,a(o,{def:"getDefaultTimeZone(): string | null",lang:"ts"}),V])}const Q=p(d,[["render",q]]);export{R as __pageData,Q as default}; diff --git a/assets/stacks_vue_layers_models.md.DB6_7cJd.lean.js b/assets/stacks_vue_layers_models.md.DB6_7cJd.lean.js new file mode 100644 index 000000000..44f8d7804 --- /dev/null +++ b/assets/stacks_vue_layers_models.md.DB6_7cJd.lean.js @@ -0,0 +1,43 @@ +import{_ as p,c,I as a,w as n,a7 as t,l as e,a as s,E as r,o as i}from"./chunks/framework.Be4oCqIX.js";const R=JSON.parse('{"title":"Vue Model Layer","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/layers/models.md","filePath":"stacks/vue/layers/models.md"}'),d={name:"stacks/vue/layers/models.md"},D=t("",13),y=t("",4),u=e("div",{class:"language-ts"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"ts"),e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#C586C0"}},"import"),e("span",{style:{color:"#D4D4D4"}}," { "),e("span",{style:{color:"#9CDCFE"}},"bindToQueryString"),e("span",{style:{color:"#D4D4D4"}}," } "),e("span",{style:{color:"#C586C0"}},"from"),e("span",{style:{color:"#CE9178"}}," 'coalesce-vue'"),e("span",{style:{color:"#D4D4D4"}},";")]),s(` +`),e("span",{class:"line"}),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"// In the 'created' Vue lifecycle hook on a component:")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"created"),e("span",{style:{color:"#D4D4D4"}},"() {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}}," // Bind pagination information to the query string:")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}}," bindToQueryString"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"listViewModel"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"$params"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#CE9178"}},"'pageSize'"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#CE9178"}},"'pageSize'"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#9CDCFE"}},"v"),e("span",{style:{color:"#569CD6"}}," =>"),e("span",{style:{color:"#D4D4D4"}}," +"),e("span",{style:{color:"#9CDCFE"}},"v"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"}),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}}," // Assuming the component has an 'activeTab' data member:")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}}," bindToQueryString"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#CE9178"}},"'activeTab'"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}},"}")])])])],-1),h=e("div",{class:"language-ts"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"ts"),e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#C586C0"}},"import"),e("span",{style:{color:"#D4D4D4"}}," { "),e("span",{style:{color:"#9CDCFE"}},"useBindToQueryString"),e("span",{style:{color:"#D4D4D4"}}," } "),e("span",{style:{color:"#C586C0"}},"from"),e("span",{style:{color:"#CE9178"}}," 'coalesce-vue'"),e("span",{style:{color:"#D4D4D4"}},";")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"setup"),e("span",{style:{color:"#D4D4D4"}},"() {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}}," // Bind pagination information to the query string:")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#569CD6"}}," const"),e("span",{style:{color:"#4FC1FF"}}," list"),e("span",{style:{color:"#D4D4D4"}}," = "),e("span",{style:{color:"#569CD6"}},"new"),e("span",{style:{color:"#DCDCAA"}}," PersonListViewModel"),e("span",{style:{color:"#D4D4D4"}},"();")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}}," useBindToQueryString"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#9CDCFE"}},"list"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"$params"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#CE9178"}},"'pageSize'"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#CE9178"}},"'pageSize'"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#9CDCFE"}},"v"),e("span",{style:{color:"#569CD6"}}," =>"),e("span",{style:{color:"#D4D4D4"}}," +"),e("span",{style:{color:"#9CDCFE"}},"v"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"}),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#569CD6"}}," const"),e("span",{style:{color:"#4FC1FF"}}," activeTab"),e("span",{style:{color:"#D4D4D4"}}," = "),e("span",{style:{color:"#DCDCAA"}},"ref"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#CE9178"}},'"1"'),e("span",{style:{color:"#D4D4D4"}},")")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}}," useBindToQueryString"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#9CDCFE"}},"activeTab"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#CE9178"}},"'value'"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#CE9178"}},"'activeTab'"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}},"}")])])])],-1),m=e("p",null,[s("When "),e("code",null,"model"),s(" is created (i.e. its primary key becomes non-null), replace the current URL with one that includes uses primary key for the route parameter named by "),e("code",null,"routeParamName"),s(".")],-1),C=e("p",null,[s("The query string will not be kept when the route is changed unless "),e("code",null,"true"),s(" is given to "),e("code",null,"keepQuery"),s(".")],-1),f=e("div",{class:"language-ts"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"ts"),e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#C586C0"}},"import"),e("span",{style:{color:"#D4D4D4"}}," { "),e("span",{style:{color:"#9CDCFE"}},"bindKeyToRouteOnCreate"),e("span",{style:{color:"#D4D4D4"}}," } "),e("span",{style:{color:"#C586C0"}},"from"),e("span",{style:{color:"#CE9178"}}," 'coalesce-vue'"),e("span",{style:{color:"#D4D4D4"}},";")]),s(` +`),e("span",{class:"line"}),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"// In the 'created' Vue lifecycle hook on a component:")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"created"),e("span",{style:{color:"#D4D4D4"}},"() {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#C586C0"}}," if"),e("span",{style:{color:"#D4D4D4"}}," ("),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"id"),e("span",{style:{color:"#D4D4D4"}},") {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#569CD6"}}," this"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"viewModel"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#DCDCAA"}},"$load"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"id"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}}," } "),e("span",{style:{color:"#C586C0"}},"else"),e("span",{style:{color:"#D4D4D4"}}," {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}}," bindKeyToRouteOnCreate"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},", "),e("span",{style:{color:"#569CD6"}},"this"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"viewModel"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}}," }")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}},"}")])])])],-1),b=e("div",{class:"language-ts"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"ts"),e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#C586C0"}},"import"),e("span",{style:{color:"#D4D4D4"}}," { "),e("span",{style:{color:"#9CDCFE"}},"useBindKeyToRouteOnCreate"),e("span",{style:{color:"#D4D4D4"}}," } "),e("span",{style:{color:"#C586C0"}},"from"),e("span",{style:{color:"#CE9178"}}," 'coalesce-vue'"),e("span",{style:{color:"#D4D4D4"}},";")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"setup"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#9CDCFE"}},"props"),e("span",{style:{color:"#D4D4D4"}},") {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#569CD6"}}," const"),e("span",{style:{color:"#4FC1FF"}}," viewModel"),e("span",{style:{color:"#D4D4D4"}}," = "),e("span",{style:{color:"#569CD6"}},"new"),e("span",{style:{color:"#DCDCAA"}}," PersonViewModel"),e("span",{style:{color:"#D4D4D4"}},"();")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#C586C0"}}," if"),e("span",{style:{color:"#D4D4D4"}}," ("),e("span",{style:{color:"#9CDCFE"}},"props"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"id"),e("span",{style:{color:"#D4D4D4"}},") {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#9CDCFE"}}," viewModel"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#DCDCAA"}},"$load"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#9CDCFE"}},"props"),e("span",{style:{color:"#D4D4D4"}},"."),e("span",{style:{color:"#9CDCFE"}},"id"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}}," } "),e("span",{style:{color:"#C586C0"}},"else"),e("span",{style:{color:"#D4D4D4"}}," {")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}}," useBindToQueryString"),e("span",{style:{color:"#D4D4D4"}},"("),e("span",{style:{color:"#9CDCFE"}},"viewModel"),e("span",{style:{color:"#D4D4D4"}},");")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}}," }")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#D4D4D4"}},"}")])])])],-1),g=t("",4),_=t("",4),v=e("p",null,[s("Performs the same operations as "),e("code",null,"convertToModel"),s(", except that any objects encountered will not be mutated - instead, a new object or array will always be created.")],-1),T=e("p",null,"Maps the input to a representation suitable for JSON serialization.",-1),A=e("p",null,[s("Will not serialize child objects or collections whose metadata includes "),e("code",null,"dontSerialize"),s(". Will only recurse to a maximum depth of 3.")],-1),w=e("p",null,[e("a",{id:"VueModelDisplayFunctions"})],-1),E=t("",3),k=e("p",null,"Returns a string representing the specified property of the given object suitable for display in a user interface.",-1),S=e("p",null,[s("The property can either be a string, representing one of the model's properties, or the actual "),e("code",null,"Property"),s(" metadata object of the property.")],-1),F=e("p",null,[s("See "),e("a",{href:"#displayoptions"},"DisplayOptions"),s(" for available options.")],-1),P=t("",9),I=t("",3),V=e("p",null,[s("Returns the current configured default time zone. Default is "),e("code",null,"null"),s(", falling back on the user's computer's system time zone.")],-1);function q(M,x,z,j,O,N){const o=r("Prop"),l=r("CodeTabs");return i(),c("div",null,[D,a(o,{def:`// Vue Options API +bindToQueryString(vue: Vue, obj: {}, key: string, queryKey: string = key, parse?: (v: any) => any, mode: 'push' | 'replace' = 'replace') +  +// Vue Composition API +useBindToQueryString(obj: {}, key: string, queryKey: string = key, parse?: (v: any) => any, mode: 'push' | 'replace' = 'replace')`,lang:"ts",idPrefix:"member-bindToQuery"}),y,a(l,{name:"vue"},{options:n(()=>[u]),setup:n(()=>[h]),_:1}),a(o,{def:`// Vue Options API +bindKeyToRouteOnCreate(vue: Vue, model: Model<ModelType>, routeParamName: string = 'id', keepQuery: boolean = false) +  +// Vue Composition API +useBindKeyToRouteOnCreate(model: Model<ModelType>, routeParamName: string = 'id', keepQuery: boolean = false)`,lang:"ts",idPrefix:"member-bindKey"}),m,C,a(l,{name:"vue"},{options:n(()=>[f]),setup:n(()=>[b]),_:1}),g,a(o,{def:"convertToModel(value: any, metadata: Value | ClassType): any",lang:"ts"}),_,a(o,{def:"mapToModel(value: any, metadata: Value | ClassType): any",lang:"ts"}),v,a(o,{def:"mapToDto(value: any, metadata: Value | ClassType): any",lang:"ts"}),T,A,w,a(o,{def:"modelDisplay(model: Model, options?: DisplayOptions): string",lang:"ts"}),E,a(o,{def:"propDisplay(model: Model, prop: Property | string, options?: DisplayOptions): string",lang:"ts"}),k,S,F,a(o,{def:"valueDisplay(value: any, metadata: Value, options?: DisplayOptions): string",lang:"ts"}),P,a(o,{def:"setDefaultTimeZone(timeZoneName: string | null): void",lang:"ts"}),I,a(o,{def:"getDefaultTimeZone(): string | null",lang:"ts"}),V])}const Q=p(d,[["render",q]]);export{R as __pageData,Q as default}; diff --git a/assets/stacks_vue_layers_viewmodels.md.D8D3h0Ky.js b/assets/stacks_vue_layers_viewmodels.md.D8D3h0Ky.js new file mode 100644 index 000000000..bf47cf2f8 --- /dev/null +++ b/assets/stacks_vue_layers_viewmodels.md.D8D3h0Ky.js @@ -0,0 +1,56 @@ +import{_ as n,c as l,I as o,a7 as s,l as e,a,o as r,E as i}from"./chunks/framework.Be4oCqIX.js";const Ie=JSON.parse('{"title":"Vue ViewModel Layer","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/layers/viewmodels.md","filePath":"stacks/vue/layers/viewmodels.md"}'),d={name:"stacks/vue/layers/viewmodels.md"},c=s('<h1 id="vue-viewmodel-layer" tabindex="-1">Vue ViewModel Layer <a class="header-anchor" href="#vue-viewmodel-layer" aria-label="Permalink to "Vue ViewModel Layer"">​</a></h1><p>The ViewModel layer, generated as <code>viewmodels.g.ts</code>, exports a ViewModel class for each API-backed type in your data model (<a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a>, <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>, and <a href="/Coalesce/modeling/model-types/services.html">Services</a>). It also exports a ListViewModel type for <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>.</p><p>These classes provide a wide array of functionality that is useful when interacting with your data model through a user interface. The generated ViewModels are the primary way that Coalesce is used when developing a Vue application.</p><h2 id="viewmodels" tabindex="-1">ViewModels <a class="header-anchor" href="#viewmodels" aria-label="Permalink to "ViewModels"">​</a></h2><p>The following members can be found on the generated <a href="/Coalesce/modeling/model-types/entities.html">Entity</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTO</a> ViewModels, exported from <code>viewmodels.g.ts</code> as <code><TypeName>ViewModel</code>.</p><h3 id="model-data-properties" tabindex="-1">Model Data Properties <a class="header-anchor" href="#model-data-properties" aria-label="Permalink to "Model Data Properties"">​</a></h3><p>Each ViewModel class implements the corresponding interface from the <a href="/Coalesce/stacks/vue/layers/models.html">Model Layer</a>, meaning that the ViewModel has a data property for each <a href="/Coalesce/modeling/model-components/properties.html">Property</a> on the model. Object-typed properties will be typed as the corresponding generated ViewModel.</p><p>Changing the value of a property will automatically flag that property as dirty. See <a href="/Coalesce/stacks/vue/layers/viewmodels.html">Auto-save & Dirty Flags</a> below for information on how property dirty flags are used.</p><p>There are a few special behaviors when assigning to different kinds of data properties on View Models as well:</p><h4 id="model-object-properties" tabindex="-1">Model Object Properties <a class="header-anchor" href="#model-object-properties" aria-label="Permalink to "Model Object Properties"">​</a></h4><ul><li>If the object being assigned to the property is not a ViewModel instance, a new instance will be created automatically and used instead of the incoming object.</li><li>If the model property is a reference navigation, the corresponding foreign key property will automatically be set to the primary key of that object. If the incoming value was null, the foreign key will be set to null.</li><li>If deep auto-saves are enabled on the instance being assigned to, auto-save will be spread to the incoming object, and to all other objects reachable from that object.</li></ul><h4 id="model-collection-properties" tabindex="-1">Model Collection Properties <a class="header-anchor" href="#model-collection-properties" aria-label="Permalink to "Model Collection Properties"">​</a></h4><ul><li>When assigning an entire array, any items in the array that are not a ViewModel instance will have an instance created for them.</li><li>The same rule goes for pushing items into the existing array for a model collection - a new ViewModel instance will be created and be used instead of the object(s) being pushed.</li></ul><h4 id="foreign-key-properties" tabindex="-1">Foreign Key Properties <a class="header-anchor" href="#foreign-key-properties" aria-label="Permalink to "Foreign Key Properties"">​</a></h4><p>If the corresponding navigation property contains an object, and that object's primary key doesn't match the new foreign key value being assigned, the navigation property will be set to null.</p><h3 id="other-data-properties-functions" tabindex="-1">Other Data Properties & Functions <a class="header-anchor" href="#other-data-properties-functions" aria-label="Permalink to "Other Data Properties & Functions"">​</a></h3>',16),p=e("p",null,[a("The metadata object from the "),e("a",{href:"/Coalesce/stacks/vue/layers/metadata.html"},"Metadata Layer"),a(" layer for the type represented by the ViewModel.")],-1),h=e("p",null,"An immutable number that is unique among all ViewModel instances, regardless of type.",-1),u=e("p",null,[a("Useful for uniquely identifying instances with "),e("code",null,':key="vm.$stableId"'),a(" in a Vue component, especially for instances that lack a primary key.")],-1),m=e("p",null,"A getter/setter property that wraps the primary key of the model. Used to interact with the primary key of any ViewModel in a polymorphic way.",-1),f=e("p",null,"Returns a string representation of the object, or one of its properties if specified, suitable for display.",-1),y=e("p",null,[a("Creates a new instance of an item for the specified child model collection, adds it to that collection, and returns the item. If "),e("code",null,"initialDirtyData"),a(" is provided, it will be loaded into the new instance with "),e("code",null,"$loadDirtyData()"),a(".")],-1),g=e("h3",{id:"loading-parameters",tabindex:"-1"},[a("Loading & Parameters "),e("a",{class:"header-anchor",href:"#loading-parameters","aria-label":'Permalink to "Loading & Parameters"'},"​")],-1),v=s('<p>An <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Caller</a> for the <code>/get</code> endpoint. Accepts an optional <code>id</code> argument - if not provided, the ViewModel's <code>$primaryKey</code> is used instead. Uses the instance's <code>$params</code> object for the <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">Standard Parameters</a>.</p>',1),b=e("p",null,[a("An object containing the "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-parameters"},"Standard Parameters"),a(" to be used for the "),e("code",null,"$load"),a(", "),e("code",null,"$save"),a(", "),e("code",null,"$bulkSave"),a(", and "),e("code",null,"$delete"),a(" API callers.")],-1),_=e("p",null,[a("Getter/setter wrapper around "),e("code",null,"$params.dataSource"),a(". Takes an instance of a "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html"},"Data Source"),a(" class "),e("a",{href:"/Coalesce/stacks/vue/layers/models.html"},"generated in the Model Layer"),a(".")],-1),w=e("p",null,[a("Getter/setter wrapper around "),e("code",null,"$params.includes"),a(". See "),e("a",{href:"/Coalesce/concepts/includes.html"},"Includes String"),a(" for more information.")],-1),D=e("p",null,"Loads data from the provided model into the current ViewModel, and then clears all dirty flags.",-1),C=e("p",null,"Data is loaded recursively into all related ViewModel instances, preserving existing instances whose primary keys match the incoming data.",-1),P=e("p",null,[a("If auto-save is enabled, only non-dirty properties are updated. This prevents user input that is pending a save from being overwritten by the response from an auto-save "),e("code",null,"/save"),a(" request.")],-1),A=e("p",null,[a("If "),e("code",null,"purgeUnsaved"),a(" is true, items without a primary key will be dropped from collection navigation properties. This is used by the "),e("code",null,"$load"),a(" caller in order to fully reset the object graph with the state from the server.")],-1),T=e("p",null,[a("Same as "),e("code",null,"$loadCleanData"),a(", but does not clear any existing dirty flags, nor does it clear any dirty flags that will be set while mutating the data properties of any ViewModel instance that gets loaded.")],-1),k=e("p",null,[a("Create a new instance of the ViewModel, loading the given initial data with "),e("code",null,"$loadDirtyData()"),a(" if provided.")],-1),$=e("h3",{id:"saving-and-deleting",tabindex:"-1"},[a("Saving and Deleting "),e("a",{class:"header-anchor",href:"#saving-and-deleting","aria-label":'Permalink to "Saving and Deleting"'},"​")],-1),S=s('<p>An <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Caller</a> for the <code>/save</code> endpoint. Uses the instance's <code>$params</code> object for the <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">Standard Parameters</a>. A save operation saves only properties on the model it is called on - for deep/bulk saves, see <a href="#member-_bulksave">$bulkSave</a>.</p><p>This caller is used for both manually-triggered saves in custom code and for auto-saves. If the <a href="/Coalesce/stacks/vue/layers/viewmodels.html#rules-validation">Rules/Validation</a> report any errors when the caller is invoked, an error will be thrown.</p><p><code>overrideProps</code> can provide properties to save that override the <a href="#model-data-properties">data properties</a> on the ViewModel instance. This allows for manually saving a change to a property without setting the property on the ViewModel instance into a dirty state. This makes it easier to handle some scenarios where changing the value of the property may put the UI into a logically inconsistent state until the save response has been returned from the server - for example, if a change to one property affects the computed value of other properties.</p><p>When a save creates a new record and a new primary key is returned from the server, any entities attached to the current ViewModel via a collection navigation property will have their foreign keys set to the new primary key. This behavior, combined with the usage of deep auto-saves, allows for complex object graphs to be constructed even before any model in the graph has been created.</p><p>When a save is in progress, the names of properties being saved are in contained in <code>$savingProps</code>.</p><p>Saving behavior can be further customized with <code>$loadResponseFromSaves</code> and <code>$saveMode</code>, listed below.</p>',6),M=e("p",null,[a("An "),e("a",{href:"/Coalesce/stacks/vue/layers/api-clients.html#api-callers"},"API Caller"),a(" for the "),e("code",null,"/delete"),a(" endpoint. Uses the instance's "),e("code",null,"$params"),a(" object for the "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-parameters"},"Standard Parameters"),a(".")],-1),V=e("p",null,"If the object was loaded as a child of a collection, it will be removed from that collection upon being deleted. Note that ViewModels currently only support tracking of a single parent collection, so if an object is programmatically added to additional collections, it will only be removed from one of them upon delete.",-1),I=e("p",null,[a("Default "),e("code",null,"true"),a(" - controls if a ViewModel will be loaded with the data from the model returned by the "),e("code",null,"/save"),a(" endpoint when saved with the "),e("code",null,"$save"),a(" API caller. There is seldom any reason to disable this.")],-1),x=e("p",null,[a("When "),e("code",null,"$save.isLoading == true"),a(", contains the properties of the model currently being saved by "),e("code",null,"$save"),a(" (including auto-saves). Does not include non-dirty properties even if "),e("code",null,"$saveMode == 'whole'"),a(".")],-1),E=e("p",null,"This can be used to make per-property UI state changes during saves - for example, displaying progress indicators on/near individual inputs, or disabling input controls.",-1),q=s('<p>Configures which properties of the model are sent to the server during a save or bulk save.</p><div style="margin-left:20px;"><p><code>"surgical"</code> (default)</p><p>By default, only dirty properties (and always the primary key) are sent to the server when performing a save.</p><p>This improves the handling of concurrent changes being made by multiple users against different fields of the same entity at the same time - specifically, it prevents a user with a stale value of some field X from overwriting a more recent value of X in the database when the user is only making changes to some other property Y and has no intention of changing X.</p><p>Save mode <code>"surgical"</code> doesn't help when multiple users are editing field X at the same time - if such a scenario is applicable to your application, you must implement <a href="https://learn.microsoft.com/en-us/ef/core/saving/concurrency" target="_blank" rel="noreferrer">more advanced handling of concurrency conflicts</a>.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Surgical saves require DTOs on the server that are capable of determining which of their properties have been set by the model binder, as surgical saves are sent from the client by entirely omitting properties from the <code>x-www-form-urlencoded</code> body that is sent to the server.</p><p>The <a href="/Coalesce/stacks/agnostic/dtos.html">Generated C# DTOs</a> implement the necessary logic for this; however, any <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a> must have this logic manually written by you, the developer. Either implement the same pattern that can be seen in the <a href="/Coalesce/stacks/agnostic/dtos.html">Generated C# DTOs</a>, or do not use surgical saves with Custom DTOs.</p></div><p><code>"whole"</code></p><p>All serializable properties of the object are sent back to the server with every save.</p></div>',2),R=e("p",null,"Returns true if the given property is flagged as dirty.",-1),j=e("p",null,"Manually set the dirty flag of the given property to the desired state. This seldom needs to be done explicitly, as mutating a property will automatically flag it as dirty.",-1),L=e("p",null,[a("If "),e("code",null,"dirty"),a(" is true and "),e("code",null,"triggerAutoSave"),a(" is false, auto-save (if enabled) will not be immediately triggered for this specific flag change. Note that a future change to any other property's dirty flag will still trigger a save of all dirty properties.")],-1),O=e("p",null,"Getter/setter that summarizes the model's property-level dirty flags. Returns true if any properties are dirty.",-1),N=e("p",null,"When set to false, all property dirty flags are cleared. When set to true, all properties are marked as dirty.",-1),B=e("h3",{id:"auto-save",tabindex:"-1"},[a("Auto-save "),e("a",{class:"header-anchor",href:"#auto-save","aria-label":'Permalink to "Auto-save"'},"​")],-1),F=s(`<p>Starts auto-saving of the instance when its savable data properties become dirty. Saves are performed with the <code>$save</code> <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Caller</a> (documented above) and will not be performed if the ViewModel has any validation errors - see <a href="/Coalesce/stacks/vue/layers/viewmodels.html#rules-validation">Rules/Validation</a> below.</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">type</span><span style="color:#4EC9B0;"> AutoSaveOptions</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">TThis</span><span style="color:#D4D4D4;">> = </span></span> +<span class="line"><span style="color:#D4D4D4;">{ </span></span> +<span class="line"><span style="color:#6A9955;"> /** Time, in milliseconds, to debounce saves for. */</span></span> +<span class="line"><span style="color:#9CDCFE;"> wait</span><span style="color:#D4D4D4;">?: </span><span style="color:#4EC9B0;">number</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#6A9955;"> /** If true, auto-saving will also be enabled for all view models that are</span></span> +<span class="line"><span style="color:#6A9955;"> reachable from the navigation properties & collections of the current view model. */</span></span> +<span class="line"><span style="color:#9CDCFE;"> deep</span><span style="color:#D4D4D4;">?: </span><span style="color:#4EC9B0;">boolean</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> /** Additional options to pass to the third parameter of lodash's \`debounce\` function. */</span></span> +<span class="line"><span style="color:#9CDCFE;"> debounce</span><span style="color:#D4D4D4;">?: </span><span style="color:#4EC9B0;">DebounceSettings</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> /** A function that will be called before autosaving that can return false to prevent a save. </span></span> +<span class="line"><span style="color:#6A9955;"> Only allowed if not using deep auto-saves.</span></span> +<span class="line"><span style="color:#6A9955;"> */</span></span> +<span class="line"><span style="color:#DCDCAA;"> predicate</span><span style="color:#D4D4D4;">?: (</span><span style="color:#9CDCFE;">viewModel</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">TThis</span><span style="color:#D4D4D4;">) </span><span style="color:#569CD6;">=></span><span style="color:#4EC9B0;"> boolean</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div>`,2),G=e("p",null,[a("Turns off auto-saving of the instance. Does not recursively disable auto-saves on related instances if "),e("code",null,"deep"),a(" was used when auto-save was enabled.")],-1),U=e("p",null,"Returns true if auto-save is currently active on the instance.",-1),W=e("h3",{id:"bulk-saves",tabindex:"-1"},[a("Bulk saves "),e("a",{class:"header-anchor",href:"#bulk-saves","aria-label":'Permalink to "Bulk saves"'},"​")],-1),z=s(`<p>Bulk saves save all changes to an object graph in one API call and one database transaction. This includes creation, updates, and deletions of entities.</p><p>To use bulk saves, you can work with your ViewModel instances on the client much in the same way you would on the server with Entity Framework. Assign objects to reference navigation properties and modify scalar values to perform creates and updates. To perform deletions, you must call <code>model.$remove()</code> on the ViewModel you want to remove, similar how you would call <code>DbSet<>.Remove(model)</code> on the server.</p><p>If the client-side <a href="/Coalesce/stacks/vue/layers/viewmodels.html#rules-validation">Rules/Validation</a> report any errors for any of the models being saved in the operation, an error will be thrown.</p><p>On the server, each affected entity is handled through the same standard mechanisms as are used by individual saves or deletes (<a href="/Coalesce/modeling/model-components/behaviors.html">Behaviors</a>, <a href="/Coalesce/modeling/model-components/data-sources.html">Data Sources</a>, and <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">Security Attributes</a>), but with a bit of sugar on top:</p><ul><li>All operations are wrapped in a single database transaction that is rolled back if any individual operation fails.</li><li>Foreign keys will be fixed up as new items are created, allowing a parent and child record to be created at the same time even when the client has no foreign key to link the two together.</li></ul><p>For the response to a bulk save, the server will load and return the root ViewModel that <code>$bulkSave</code> was called upon, using the instance's <code>$params</code> object for the <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">Standard Parameters</a>.</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">export</span><span style="color:#569CD6;"> interface</span><span style="color:#4EC9B0;"> BulkSaveOptions</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#6A9955;"> /** A predicate that will be applied to each modified model</span></span> +<span class="line"><span style="color:#6A9955;"> * to determine if it should be included in the bulk save operation.</span></span> +<span class="line"><span style="color:#6A9955;"> *</span></span> +<span class="line"><span style="color:#6A9955;"> * The predicate is applied before validation (\`$hasError\`), allowing</span></span> +<span class="line"><span style="color:#6A9955;"> * it to be used to skip over entities that have client validation errors</span></span> +<span class="line"><span style="color:#6A9955;"> * that would otherwise cause the entire bulk save operation to fail.</span></span> +<span class="line"><span style="color:#6A9955;"> * */</span></span> +<span class="line"><span style="color:#DCDCAA;"> predicate</span><span style="color:#D4D4D4;">?: (</span><span style="color:#9CDCFE;">viewModel</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">ViewModel</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">action</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"save"</span><span style="color:#D4D4D4;"> | </span><span style="color:#CE9178;">"delete"</span><span style="color:#D4D4D4;">) </span><span style="color:#569CD6;">=></span><span style="color:#4EC9B0;"> boolean</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div>`,7),K=e("p",null,"Removes the item from its parent collection (if it is in a collection), and marks the item for deletion in the next bulk save.",-1),X=e("p",null,[a("Returns true if the instance was previously removed by calling "),e("code",null,"$remove()"),a(".")],-1),J=e("h3",{id:"rules-validation",tabindex:"-1"},[a("Rules/Validation "),e("a",{class:"header-anchor",href:"#rules-validation","aria-label":'Permalink to "Rules/Validation"'},"​")],-1),Y=e("p",null,[a("Add a custom validation rule to the ViewModel for the specified property. "),e("code",null,"identifier"),a(" should be a short, unique slug that describes the rule; it is not displayed in the UI, but is used if you wish to later remove the rule with "),e("code",null,"$removeRule()"),a(".")],-1),H=e("p",null,[a("The function you provide should take a single argument that contains the current value of the property, and should either return "),e("code",null,"true"),a(" to indicate that the validation rule has succeeded, or a string that will be displayed as an error message to the user.")],-1),Q=e("p",null,[a("Any failing validation rules on a ViewModel will prevent that ViewModel's "),e("code",null,"$save"),a(" caller from being invoked.")],-1),Z=e("p",null,"Remove a validation rule from the ViewModel for the specified property and rule identifier.",-1),ee=e("p",null,[a("This can be used to remove either a rule that was provided by the generated "),e("a",{href:"/Coalesce/stacks/vue/layers/metadata.html"},"Metadata Layer"),a(", or a custom rule that was added by "),e("code",null,"$addRule"),a(". Reference your generated metadata file "),e("code",null,"metadata.g.ts"),a(" to see any generated rules and the identifiers they use.")],-1),ae=e("p",null,[a("Returns an array of active rule functions for the specified property, or "),e("code",null,"undefined"),a(" if the property has no active validation rules.")],-1),te=e("p",null,[a("Returns a "),e("a",{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator",target:"_blank",rel:"noreferrer"},"generator"),a(" that provides all error messages for either a specific property (if provided) or the entire model (if no prop argument is provided).")],-1),oe=e("div",{class:"tip custom-block"},[e("p",{class:"custom-block-title"},"TIP"),e("p",null,[a("You can obtain an array from a generator with "),e("code",null,"Array.from(vm.$getErrors())"),a(" or "),e("code",null,"[...vm.$getErrors()]")])],-1),se=s('<p>Indicates if any properties have validation errors.</p><h3 id="generated-members" tabindex="-1">Generated Members <a class="header-anchor" href="#generated-members" aria-label="Permalink to "Generated Members"">​</a></h3><h4 id="api-callers" tabindex="-1">API Callers <a class="header-anchor" href="#api-callers" aria-label="Permalink to "API Callers"">​</a></h4><p>For each of the instance <a href="/Coalesce/modeling/model-components/methods.html">Methods</a> of the type, an <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Caller</a> will be generated.</p><h4 id="addto-functions" tabindex="-1"><code>addTo*()</code> Functions <a class="header-anchor" href="#addto-functions" aria-label="Permalink to "`addTo*()` Functions"">​</a></h4><p>For each <a href="/Coalesce/modeling/model-components/properties.html">collection navigation property</a>, a method is generated that will create a new instance of the ViewModel for the collected type, add it to the collection, and then return the new object.</p><h4 id="many-to-many-helper-collections" tabindex="-1">Many-to-many helper collections <a class="header-anchor" href="#many-to-many-helper-collections" aria-label="Permalink to "Many-to-many helper collections"">​</a></h4><p>For each <a href="/Coalesce/modeling/model-components/properties.html">collection navigation property</a> annotated with <a href="/Coalesce/modeling/model-components/attributes/many-to-many.html">[ManyToMany]</a>, a getter-only property is generated that returns a collection of the object on the far side of the many-to-many relationship. Nulls are filtered from this collection.</p><h2 id="listviewmodels" tabindex="-1">ListViewModels <a class="header-anchor" href="#listviewmodels" aria-label="Permalink to "ListViewModels"">​</a></h2><p>The following members can be found on the generated ListViewModels, exported from <code>viewmodels.g.ts</code> as <code>*TypeName*ListViewModel</code>.</p><h3 id="data-properties" tabindex="-1">Data Properties <a class="header-anchor" href="#data-properties" aria-label="Permalink to "Data Properties"">​</a></h3>',11),ne=e("p",null,[a("Collection holding the results of the last successful invocation of the "),e("code",null,"$load"),a(),e("a",{href:"/Coalesce/stacks/vue/layers/api-clients.html#api-callers"},"API Caller"),a(".")],-1),le=e("h3",{id:"parameters-api-callers",tabindex:"-1"},[a("Parameters & API Callers "),e("a",{class:"header-anchor",href:"#parameters-api-callers","aria-label":'Permalink to "Parameters & API Callers"'},"​")],-1),re=e("p",null,[a("An object containing the "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-parameters"},"Standard Parameters"),a(" to be used for the "),e("code",null,"$load"),a(" and "),e("code",null,"$count"),a(" API callers.")],-1),ie=e("p",null,[a("Getter/setter wrapper around "),e("code",null,"$params.dataSource"),a(". Takes an instance of a "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html"},"Data Source"),a(" class "),e("a",{href:"/Coalesce/stacks/vue/layers/models.html"},"generated in the Model Layer"),a(".")],-1),de=e("p",null,[a("Getter/setter wrapper around "),e("code",null,"$params.includes"),a(". See "),e("a",{href:"/Coalesce/concepts/includes.html"},"Includes String"),a(" for more information.")],-1),ce=s('<p>An <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Caller</a> for the <code>/list</code> endpoint. Uses the instance's <code>$params</code> object for the <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">Standard Parameters</a>.</p><p>Results are available in the <code>$items</code> property. The <code>result</code> property of the <code>$load</code> API Caller contains the raw results and is not recommended for use in general development - <code>$items</code> should always be preferred.</p>',2),pe=s('<p>An <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Caller</a> for the <code>/count</code> endpoint. Uses the instance's <code>$params</code> object for the <a href="/Coalesce/modeling/model-components/data-sources.html#standard-parameters">Standard Parameters</a>.</p><p>The result is available in <code>$count.result</code> - this API Caller does not interact with other properties on the ListViewModel like <code>$pageSize</code> or <code>$pageCount</code>.</p>',2),he=e("p",null,[a("Properties which indicate if "),e("code",null,"$page"),a(" can be decremented or incremented, respectively. "),e("code",null,"$pageCount"),a(" and "),e("code",null,"$page"),a(" are used to make this determination.")],-1),ue=e("p",null,[a("Methods that will decrement or increment "),e("code",null,"$page"),a(", respectively. Each does nothing if there is no previous or next page as returned by "),e("code",null,"$hasPreviousPage"),a(" and "),e("code",null,"$hasNextPage"),a(".")],-1),me=e("p",null,[a("Getter/setter wrapper for "),e("code",null,"$params.page"),a(". Controls the page that will be requested on the next invocation of "),e("code",null,"$load"),a(".")],-1),fe=e("p",null,[a("Getter/setter wrapper for "),e("code",null,"$params.pageSize"),a(". Controls the page that will be requested on the next invocation of "),e("code",null,"$load"),a(".")],-1),ye=e("p",null,[a("Shorthand for "),e("code",null,"$load.pageCount"),a(" - returns the page count reported by the last successful invocation of "),e("code",null,"$load"),a(".")],-1),ge=e("h3",{id:"auto-load",tabindex:"-1"},[a("Auto-Load "),e("a",{class:"header-anchor",href:"#auto-load","aria-label":'Permalink to "Auto-Load"'},"​")],-1),ve=s(`<p>Starts auto-loading of the list as changes to its parameters occur. Loads are performed with the <code>$load</code> <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Caller</a>.</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">type</span><span style="color:#4EC9B0;"> AutoLoadOptions</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">TThis</span><span style="color:#D4D4D4;">> =</span></span> +<span class="line"><span style="color:#D4D4D4;">{ </span></span> +<span class="line"><span style="color:#6A9955;"> /** Time, in milliseconds, to debounce loads for. */</span></span> +<span class="line"><span style="color:#9CDCFE;"> wait</span><span style="color:#D4D4D4;">?: </span><span style="color:#4EC9B0;">number</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> /** Additional options to pass to the third parameter of lodash's \`debounce\` function. */</span></span> +<span class="line"><span style="color:#9CDCFE;"> debounce</span><span style="color:#D4D4D4;">?: </span><span style="color:#4EC9B0;">DebounceSettings</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> /** A function that will be called before loading that can return false to prevent a load. */</span></span> +<span class="line"><span style="color:#DCDCAA;"> predicate</span><span style="color:#D4D4D4;">?: (</span><span style="color:#9CDCFE;">viewModel</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">TThis</span><span style="color:#D4D4D4;">) </span><span style="color:#569CD6;">=></span><span style="color:#4EC9B0;"> boolean</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div>`,2),be=e("p",null,"Manually turns off auto-loading of the instance.",-1),_e=e("h3",{id:"auto-save-1",tabindex:"-1"},[a("Auto-save "),e("a",{class:"header-anchor",href:"#auto-save-1","aria-label":'Permalink to "Auto-save"'},"​")],-1),we=e("p",null,[a("Enables auto-save for the items in the list, propagating to new items as they're added or loaded. See "),e("a",{href:"#member-item-autosave"},"ViewModel auto-save documentation"),a(" for more details.")],-1),De=e("p",null,[a("Turns off auto-saving of the items in the list, and turns of propagation of auto-save to any future items if auto-save was previously turned on for the list. Only affects items that are currently in the list's "),e("code",null,"$items"),a(".")],-1),Ce=s('<p>Returns true if auto-save is currently active on the instance.</p><h3 id="generated-members-1" tabindex="-1">Generated Members <a class="header-anchor" href="#generated-members-1" aria-label="Permalink to "Generated Members"">​</a></h3><h4 id="api-callers-1" tabindex="-1">API Callers <a class="header-anchor" href="#api-callers-1" aria-label="Permalink to "API Callers"">​</a></h4><p>For each of the static <a href="/Coalesce/modeling/model-components/methods.html">Methods</a> on the type, an <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Caller</a> will be created.</p><h2 id="service-viewmodels" tabindex="-1">Service ViewModels <a class="header-anchor" href="#service-viewmodels" aria-label="Permalink to "Service ViewModels"">​</a></h2><p>The following members can be found on the generated Service ViewModels, exported from <code>viewmodels.g.ts</code> as <code><ServiceName>ViewModel</code>.</p><h3 id="generated-members-2" tabindex="-1">Generated Members <a class="header-anchor" href="#generated-members-2" aria-label="Permalink to "Generated Members"">​</a></h3><h4 id="api-callers-2" tabindex="-1">API Callers <a class="header-anchor" href="#api-callers-2" aria-label="Permalink to "API Callers"">​</a></h4><p>For each method of the <a href="/Coalesce/modeling/model-types/services.html">Service</a>, an <a href="/Coalesce/stacks/vue/layers/api-clients.html#api-callers">API Caller</a> will be created.</p>',9);function Pe(Ae,Te,ke,$e,Se,Me){const t=i("Prop");return r(),l("div",null,[c,o(t,{def:"readonly $metadata: ModelType",lang:"ts"}),p,o(t,{def:"readonly $stableId: number",lang:"ts"}),h,u,o(t,{def:"$primaryKey: string | number",lang:"ts"}),m,o(t,{def:"$display(prop?: string | Property): string",lang:"ts"}),f,o(t,{def:"$addChild(prop: string | ModelCollectionNavigationProperty, initialDirtyData?: {})",lang:"ts"}),y,g,o(t,{def:`$load: ItemApiState; +$load(id?: TKey) => ItemResultPromise<TModel>;`,lang:"ts",idPrefix:"member-item"}),v,o(t,{def:"$params: DataSourceParameters",lang:"ts",idPrefix:"member-item"}),b,o(t,{def:"$dataSource: DataSource",lang:"ts",idPrefix:"member-item"}),_,o(t,{def:"$includes: string | null",lang:"ts",idPrefix:"member-item"}),w,o(t,{def:"$loadCleanData(source: {} | TModel, purgeUnsaved = false)",lang:"ts"}),D,C,P,A,o(t,{def:"$loadDirtyData(source: {} | TModel)",lang:"ts"}),T,o(t,{def:"constructor(initialDirtyData?: {} | TModel | null)",lang:"ts"}),k,$,o(t,{def:`$save: ItemApiState; +$save(overrideProps?: Partial<TModel>) => ItemResultPromise<TModel>;`,lang:"ts",idPrefix:"member-item"}),S,o(t,{def:`$delete: ItemApiState; +$delete() => ItemResultPromise<TModel>;`,lang:"ts",idPrefix:"member-item"}),M,V,o(t,{def:"$loadResponseFromSaves: boolean",lang:"ts"}),I,o(t,{def:"$savingProps: ReadonlySet<string>",lang:"ts"}),x,E,o(t,{def:"$saveMode: 'surgical' | 'whole'",lang:"ts"}),q,o(t,{def:"$getPropDirty(propName: string): boolean",lang:"ts"}),R,o(t,{def:"$setPropDirty(propName: string, dirty: boolean = true, triggerAutoSave = true)",lang:"ts"}),j,L,o(t,{def:"$isDirty: boolean",lang:"ts"}),O,N,B,o(t,{def:`// Vue Options API +$startAutoSave(vue: Vue, options: AutoSaveOptions<this> = {}) +  +// Vue Composition API +$useAutoSave(options: AutoSaveOptions<this> = {})`,lang:"ts",id:"member-item-autosave"}),F,o(t,{def:"$stopAutoSave(): void",lang:"ts"}),G,o(t,{def:"readonly $isAutoSaveEnabled: boolean",lang:"ts"}),U,W,o(t,{def:`$bulkSave: ItemApiState; +$bulkSave(options: BulkSaveOptions) => ItemResultPromise<TModel>;`,lang:"ts"}),z,o(t,{def:"$remove(): void",lang:"ts"}),K,o(t,{def:"readonly $isRemoved: boolean",lang:"ts"}),X,J,o(t,{def:"$addRule(prop: string | Property, identifier: string, rule: (val: any) => true | string)",lang:"ts"}),Y,H,Q,o(t,{def:"$removeRule(prop: string | Property, identifier: string)",lang:"ts"}),Z,ee,o(t,{def:"$getRules(prop: string | Property): ((val: any) => string | true)[]",lang:"ts"}),ae,o(t,{def:"$getErrors(prop?: string | Property): Generator<string>",lang:"ts"}),te,oe,o(t,{def:"readonly $hasError: boolean",lang:"ts"}),se,o(t,{def:"readonly $items: T[]",lang:"ts"}),ne,le,o(t,{def:"$params: ListParameters",lang:"ts",idPrefix:"member-list"}),re,o(t,{def:"$dataSource: DataSource",lang:"ts",idPrefix:"member-list"}),ie,o(t,{def:"$includes: string | null",lang:"ts",idPrefix:"member-list"}),de,o(t,{def:`$load: ListApiState; +$load() => ListResultPromise<TModel>`,lang:"ts",idPrefix:"member-list"}),ce,o(t,{def:`$count: ItemApiState; +$count() => ItemResultPromise<number>`,lang:"ts"}),pe,o(t,{def:`readonly $hasPreviousPage: boolean +readonly $hasNextPage: boolean`,lang:"ts"}),he,o(t,{def:`$previousPage(): void +$nextPage(): void`,lang:"ts"}),ue,o(t,{def:"$page: number",lang:"ts"}),me,o(t,{def:"$pageSize: number",lang:"ts"}),fe,o(t,{def:"readonly $pageCount: number",lang:"ts"}),ye,ge,o(t,{def:`// Vue Options API +$startAutoLoad(vue: Vue, options: AutoLoadOptions<this> = {}) +  +// Vue Composition API +$useAutoLoad(options: AutoLoadOptions<this> = {})`,lang:"ts",id:"member-list-autoLoad"}),ve,o(t,{def:"$stopAutoLoad()",lang:"ts"}),be,_e,o(t,{def:`// Vue Options API +$startAutoSave(vue: Vue, options: AutoSaveOptions<this> = {}) +  +// Vue Composition API +$useAutoSave(options: AutoSaveOptions<this> = {})`,lang:"ts",id:"member-list-autosave"}),we,o(t,{def:"$stopAutoSave(): void",lang:"ts"}),De,o(t,{def:"readonly $isAutoSaveEnabled: boolean",lang:"ts"}),Ce])}const xe=n(d,[["render",Pe]]);export{Ie as __pageData,xe as default}; diff --git a/assets/stacks_vue_layers_viewmodels.md.D8D3h0Ky.lean.js b/assets/stacks_vue_layers_viewmodels.md.D8D3h0Ky.lean.js new file mode 100644 index 000000000..554c830ed --- /dev/null +++ b/assets/stacks_vue_layers_viewmodels.md.D8D3h0Ky.lean.js @@ -0,0 +1,21 @@ +import{_ as n,c as l,I as o,a7 as s,l as e,a,o as r,E as i}from"./chunks/framework.Be4oCqIX.js";const Ie=JSON.parse('{"title":"Vue ViewModel Layer","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/layers/viewmodels.md","filePath":"stacks/vue/layers/viewmodels.md"}'),d={name:"stacks/vue/layers/viewmodels.md"},c=s("",16),p=e("p",null,[a("The metadata object from the "),e("a",{href:"/Coalesce/stacks/vue/layers/metadata.html"},"Metadata Layer"),a(" layer for the type represented by the ViewModel.")],-1),h=e("p",null,"An immutable number that is unique among all ViewModel instances, regardless of type.",-1),u=e("p",null,[a("Useful for uniquely identifying instances with "),e("code",null,':key="vm.$stableId"'),a(" in a Vue component, especially for instances that lack a primary key.")],-1),m=e("p",null,"A getter/setter property that wraps the primary key of the model. Used to interact with the primary key of any ViewModel in a polymorphic way.",-1),f=e("p",null,"Returns a string representation of the object, or one of its properties if specified, suitable for display.",-1),y=e("p",null,[a("Creates a new instance of an item for the specified child model collection, adds it to that collection, and returns the item. If "),e("code",null,"initialDirtyData"),a(" is provided, it will be loaded into the new instance with "),e("code",null,"$loadDirtyData()"),a(".")],-1),g=e("h3",{id:"loading-parameters",tabindex:"-1"},[a("Loading & Parameters "),e("a",{class:"header-anchor",href:"#loading-parameters","aria-label":'Permalink to "Loading & Parameters"'},"​")],-1),v=s("",1),b=e("p",null,[a("An object containing the "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-parameters"},"Standard Parameters"),a(" to be used for the "),e("code",null,"$load"),a(", "),e("code",null,"$save"),a(", "),e("code",null,"$bulkSave"),a(", and "),e("code",null,"$delete"),a(" API callers.")],-1),_=e("p",null,[a("Getter/setter wrapper around "),e("code",null,"$params.dataSource"),a(". Takes an instance of a "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html"},"Data Source"),a(" class "),e("a",{href:"/Coalesce/stacks/vue/layers/models.html"},"generated in the Model Layer"),a(".")],-1),w=e("p",null,[a("Getter/setter wrapper around "),e("code",null,"$params.includes"),a(". See "),e("a",{href:"/Coalesce/concepts/includes.html"},"Includes String"),a(" for more information.")],-1),D=e("p",null,"Loads data from the provided model into the current ViewModel, and then clears all dirty flags.",-1),C=e("p",null,"Data is loaded recursively into all related ViewModel instances, preserving existing instances whose primary keys match the incoming data.",-1),P=e("p",null,[a("If auto-save is enabled, only non-dirty properties are updated. This prevents user input that is pending a save from being overwritten by the response from an auto-save "),e("code",null,"/save"),a(" request.")],-1),A=e("p",null,[a("If "),e("code",null,"purgeUnsaved"),a(" is true, items without a primary key will be dropped from collection navigation properties. This is used by the "),e("code",null,"$load"),a(" caller in order to fully reset the object graph with the state from the server.")],-1),T=e("p",null,[a("Same as "),e("code",null,"$loadCleanData"),a(", but does not clear any existing dirty flags, nor does it clear any dirty flags that will be set while mutating the data properties of any ViewModel instance that gets loaded.")],-1),k=e("p",null,[a("Create a new instance of the ViewModel, loading the given initial data with "),e("code",null,"$loadDirtyData()"),a(" if provided.")],-1),$=e("h3",{id:"saving-and-deleting",tabindex:"-1"},[a("Saving and Deleting "),e("a",{class:"header-anchor",href:"#saving-and-deleting","aria-label":'Permalink to "Saving and Deleting"'},"​")],-1),S=s("",6),M=e("p",null,[a("An "),e("a",{href:"/Coalesce/stacks/vue/layers/api-clients.html#api-callers"},"API Caller"),a(" for the "),e("code",null,"/delete"),a(" endpoint. Uses the instance's "),e("code",null,"$params"),a(" object for the "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-parameters"},"Standard Parameters"),a(".")],-1),V=e("p",null,"If the object was loaded as a child of a collection, it will be removed from that collection upon being deleted. Note that ViewModels currently only support tracking of a single parent collection, so if an object is programmatically added to additional collections, it will only be removed from one of them upon delete.",-1),I=e("p",null,[a("Default "),e("code",null,"true"),a(" - controls if a ViewModel will be loaded with the data from the model returned by the "),e("code",null,"/save"),a(" endpoint when saved with the "),e("code",null,"$save"),a(" API caller. There is seldom any reason to disable this.")],-1),x=e("p",null,[a("When "),e("code",null,"$save.isLoading == true"),a(", contains the properties of the model currently being saved by "),e("code",null,"$save"),a(" (including auto-saves). Does not include non-dirty properties even if "),e("code",null,"$saveMode == 'whole'"),a(".")],-1),E=e("p",null,"This can be used to make per-property UI state changes during saves - for example, displaying progress indicators on/near individual inputs, or disabling input controls.",-1),q=s("",2),R=e("p",null,"Returns true if the given property is flagged as dirty.",-1),j=e("p",null,"Manually set the dirty flag of the given property to the desired state. This seldom needs to be done explicitly, as mutating a property will automatically flag it as dirty.",-1),L=e("p",null,[a("If "),e("code",null,"dirty"),a(" is true and "),e("code",null,"triggerAutoSave"),a(" is false, auto-save (if enabled) will not be immediately triggered for this specific flag change. Note that a future change to any other property's dirty flag will still trigger a save of all dirty properties.")],-1),O=e("p",null,"Getter/setter that summarizes the model's property-level dirty flags. Returns true if any properties are dirty.",-1),N=e("p",null,"When set to false, all property dirty flags are cleared. When set to true, all properties are marked as dirty.",-1),B=e("h3",{id:"auto-save",tabindex:"-1"},[a("Auto-save "),e("a",{class:"header-anchor",href:"#auto-save","aria-label":'Permalink to "Auto-save"'},"​")],-1),F=s("",2),G=e("p",null,[a("Turns off auto-saving of the instance. Does not recursively disable auto-saves on related instances if "),e("code",null,"deep"),a(" was used when auto-save was enabled.")],-1),U=e("p",null,"Returns true if auto-save is currently active on the instance.",-1),W=e("h3",{id:"bulk-saves",tabindex:"-1"},[a("Bulk saves "),e("a",{class:"header-anchor",href:"#bulk-saves","aria-label":'Permalink to "Bulk saves"'},"​")],-1),z=s("",7),K=e("p",null,"Removes the item from its parent collection (if it is in a collection), and marks the item for deletion in the next bulk save.",-1),X=e("p",null,[a("Returns true if the instance was previously removed by calling "),e("code",null,"$remove()"),a(".")],-1),J=e("h3",{id:"rules-validation",tabindex:"-1"},[a("Rules/Validation "),e("a",{class:"header-anchor",href:"#rules-validation","aria-label":'Permalink to "Rules/Validation"'},"​")],-1),Y=e("p",null,[a("Add a custom validation rule to the ViewModel for the specified property. "),e("code",null,"identifier"),a(" should be a short, unique slug that describes the rule; it is not displayed in the UI, but is used if you wish to later remove the rule with "),e("code",null,"$removeRule()"),a(".")],-1),H=e("p",null,[a("The function you provide should take a single argument that contains the current value of the property, and should either return "),e("code",null,"true"),a(" to indicate that the validation rule has succeeded, or a string that will be displayed as an error message to the user.")],-1),Q=e("p",null,[a("Any failing validation rules on a ViewModel will prevent that ViewModel's "),e("code",null,"$save"),a(" caller from being invoked.")],-1),Z=e("p",null,"Remove a validation rule from the ViewModel for the specified property and rule identifier.",-1),ee=e("p",null,[a("This can be used to remove either a rule that was provided by the generated "),e("a",{href:"/Coalesce/stacks/vue/layers/metadata.html"},"Metadata Layer"),a(", or a custom rule that was added by "),e("code",null,"$addRule"),a(". Reference your generated metadata file "),e("code",null,"metadata.g.ts"),a(" to see any generated rules and the identifiers they use.")],-1),ae=e("p",null,[a("Returns an array of active rule functions for the specified property, or "),e("code",null,"undefined"),a(" if the property has no active validation rules.")],-1),te=e("p",null,[a("Returns a "),e("a",{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator",target:"_blank",rel:"noreferrer"},"generator"),a(" that provides all error messages for either a specific property (if provided) or the entire model (if no prop argument is provided).")],-1),oe=e("div",{class:"tip custom-block"},[e("p",{class:"custom-block-title"},"TIP"),e("p",null,[a("You can obtain an array from a generator with "),e("code",null,"Array.from(vm.$getErrors())"),a(" or "),e("code",null,"[...vm.$getErrors()]")])],-1),se=s("",11),ne=e("p",null,[a("Collection holding the results of the last successful invocation of the "),e("code",null,"$load"),a(),e("a",{href:"/Coalesce/stacks/vue/layers/api-clients.html#api-callers"},"API Caller"),a(".")],-1),le=e("h3",{id:"parameters-api-callers",tabindex:"-1"},[a("Parameters & API Callers "),e("a",{class:"header-anchor",href:"#parameters-api-callers","aria-label":'Permalink to "Parameters & API Callers"'},"​")],-1),re=e("p",null,[a("An object containing the "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-parameters"},"Standard Parameters"),a(" to be used for the "),e("code",null,"$load"),a(" and "),e("code",null,"$count"),a(" API callers.")],-1),ie=e("p",null,[a("Getter/setter wrapper around "),e("code",null,"$params.dataSource"),a(". Takes an instance of a "),e("a",{href:"/Coalesce/modeling/model-components/data-sources.html"},"Data Source"),a(" class "),e("a",{href:"/Coalesce/stacks/vue/layers/models.html"},"generated in the Model Layer"),a(".")],-1),de=e("p",null,[a("Getter/setter wrapper around "),e("code",null,"$params.includes"),a(". See "),e("a",{href:"/Coalesce/concepts/includes.html"},"Includes String"),a(" for more information.")],-1),ce=s("",2),pe=s("",2),he=e("p",null,[a("Properties which indicate if "),e("code",null,"$page"),a(" can be decremented or incremented, respectively. "),e("code",null,"$pageCount"),a(" and "),e("code",null,"$page"),a(" are used to make this determination.")],-1),ue=e("p",null,[a("Methods that will decrement or increment "),e("code",null,"$page"),a(", respectively. Each does nothing if there is no previous or next page as returned by "),e("code",null,"$hasPreviousPage"),a(" and "),e("code",null,"$hasNextPage"),a(".")],-1),me=e("p",null,[a("Getter/setter wrapper for "),e("code",null,"$params.page"),a(". Controls the page that will be requested on the next invocation of "),e("code",null,"$load"),a(".")],-1),fe=e("p",null,[a("Getter/setter wrapper for "),e("code",null,"$params.pageSize"),a(". Controls the page that will be requested on the next invocation of "),e("code",null,"$load"),a(".")],-1),ye=e("p",null,[a("Shorthand for "),e("code",null,"$load.pageCount"),a(" - returns the page count reported by the last successful invocation of "),e("code",null,"$load"),a(".")],-1),ge=e("h3",{id:"auto-load",tabindex:"-1"},[a("Auto-Load "),e("a",{class:"header-anchor",href:"#auto-load","aria-label":'Permalink to "Auto-Load"'},"​")],-1),ve=s("",2),be=e("p",null,"Manually turns off auto-loading of the instance.",-1),_e=e("h3",{id:"auto-save-1",tabindex:"-1"},[a("Auto-save "),e("a",{class:"header-anchor",href:"#auto-save-1","aria-label":'Permalink to "Auto-save"'},"​")],-1),we=e("p",null,[a("Enables auto-save for the items in the list, propagating to new items as they're added or loaded. See "),e("a",{href:"#member-item-autosave"},"ViewModel auto-save documentation"),a(" for more details.")],-1),De=e("p",null,[a("Turns off auto-saving of the items in the list, and turns of propagation of auto-save to any future items if auto-save was previously turned on for the list. Only affects items that are currently in the list's "),e("code",null,"$items"),a(".")],-1),Ce=s("",9);function Pe(Ae,Te,ke,$e,Se,Me){const t=i("Prop");return r(),l("div",null,[c,o(t,{def:"readonly $metadata: ModelType",lang:"ts"}),p,o(t,{def:"readonly $stableId: number",lang:"ts"}),h,u,o(t,{def:"$primaryKey: string | number",lang:"ts"}),m,o(t,{def:"$display(prop?: string | Property): string",lang:"ts"}),f,o(t,{def:"$addChild(prop: string | ModelCollectionNavigationProperty, initialDirtyData?: {})",lang:"ts"}),y,g,o(t,{def:`$load: ItemApiState; +$load(id?: TKey) => ItemResultPromise<TModel>;`,lang:"ts",idPrefix:"member-item"}),v,o(t,{def:"$params: DataSourceParameters",lang:"ts",idPrefix:"member-item"}),b,o(t,{def:"$dataSource: DataSource",lang:"ts",idPrefix:"member-item"}),_,o(t,{def:"$includes: string | null",lang:"ts",idPrefix:"member-item"}),w,o(t,{def:"$loadCleanData(source: {} | TModel, purgeUnsaved = false)",lang:"ts"}),D,C,P,A,o(t,{def:"$loadDirtyData(source: {} | TModel)",lang:"ts"}),T,o(t,{def:"constructor(initialDirtyData?: {} | TModel | null)",lang:"ts"}),k,$,o(t,{def:`$save: ItemApiState; +$save(overrideProps?: Partial<TModel>) => ItemResultPromise<TModel>;`,lang:"ts",idPrefix:"member-item"}),S,o(t,{def:`$delete: ItemApiState; +$delete() => ItemResultPromise<TModel>;`,lang:"ts",idPrefix:"member-item"}),M,V,o(t,{def:"$loadResponseFromSaves: boolean",lang:"ts"}),I,o(t,{def:"$savingProps: ReadonlySet<string>",lang:"ts"}),x,E,o(t,{def:"$saveMode: 'surgical' | 'whole'",lang:"ts"}),q,o(t,{def:"$getPropDirty(propName: string): boolean",lang:"ts"}),R,o(t,{def:"$setPropDirty(propName: string, dirty: boolean = true, triggerAutoSave = true)",lang:"ts"}),j,L,o(t,{def:"$isDirty: boolean",lang:"ts"}),O,N,B,o(t,{def:`// Vue Options API +$startAutoSave(vue: Vue, options: AutoSaveOptions<this> = {}) +  +// Vue Composition API +$useAutoSave(options: AutoSaveOptions<this> = {})`,lang:"ts",id:"member-item-autosave"}),F,o(t,{def:"$stopAutoSave(): void",lang:"ts"}),G,o(t,{def:"readonly $isAutoSaveEnabled: boolean",lang:"ts"}),U,W,o(t,{def:`$bulkSave: ItemApiState; +$bulkSave(options: BulkSaveOptions) => ItemResultPromise<TModel>;`,lang:"ts"}),z,o(t,{def:"$remove(): void",lang:"ts"}),K,o(t,{def:"readonly $isRemoved: boolean",lang:"ts"}),X,J,o(t,{def:"$addRule(prop: string | Property, identifier: string, rule: (val: any) => true | string)",lang:"ts"}),Y,H,Q,o(t,{def:"$removeRule(prop: string | Property, identifier: string)",lang:"ts"}),Z,ee,o(t,{def:"$getRules(prop: string | Property): ((val: any) => string | true)[]",lang:"ts"}),ae,o(t,{def:"$getErrors(prop?: string | Property): Generator<string>",lang:"ts"}),te,oe,o(t,{def:"readonly $hasError: boolean",lang:"ts"}),se,o(t,{def:"readonly $items: T[]",lang:"ts"}),ne,le,o(t,{def:"$params: ListParameters",lang:"ts",idPrefix:"member-list"}),re,o(t,{def:"$dataSource: DataSource",lang:"ts",idPrefix:"member-list"}),ie,o(t,{def:"$includes: string | null",lang:"ts",idPrefix:"member-list"}),de,o(t,{def:`$load: ListApiState; +$load() => ListResultPromise<TModel>`,lang:"ts",idPrefix:"member-list"}),ce,o(t,{def:`$count: ItemApiState; +$count() => ItemResultPromise<number>`,lang:"ts"}),pe,o(t,{def:`readonly $hasPreviousPage: boolean +readonly $hasNextPage: boolean`,lang:"ts"}),he,o(t,{def:`$previousPage(): void +$nextPage(): void`,lang:"ts"}),ue,o(t,{def:"$page: number",lang:"ts"}),me,o(t,{def:"$pageSize: number",lang:"ts"}),fe,o(t,{def:"readonly $pageCount: number",lang:"ts"}),ye,ge,o(t,{def:`// Vue Options API +$startAutoLoad(vue: Vue, options: AutoLoadOptions<this> = {}) +  +// Vue Composition API +$useAutoLoad(options: AutoLoadOptions<this> = {})`,lang:"ts",id:"member-list-autoLoad"}),ve,o(t,{def:"$stopAutoLoad()",lang:"ts"}),be,_e,o(t,{def:`// Vue Options API +$startAutoSave(vue: Vue, options: AutoSaveOptions<this> = {}) +  +// Vue Composition API +$useAutoSave(options: AutoSaveOptions<this> = {})`,lang:"ts",id:"member-list-autosave"}),we,o(t,{def:"$stopAutoSave(): void",lang:"ts"}),De,o(t,{def:"readonly $isAutoSaveEnabled: boolean",lang:"ts"}),Ce])}const xe=n(d,[["render",Pe]]);export{Ie as __pageData,xe as default}; diff --git a/assets/stacks_vue_overview.md.D1EN1jE9.js b/assets/stacks_vue_overview.md.D1EN1jE9.js new file mode 100644 index 000000000..33a2d9af5 --- /dev/null +++ b/assets/stacks_vue_overview.md.D1EN1jE9.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.Be4oCqIX.js";const f=JSON.parse('{"title":"Vue Overview","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/overview.md","filePath":"stacks/vue/overview.md"}'),s={name:"stacks/vue/overview.md"},r=o('<h1 id="vue-overview" tabindex="-1">Vue Overview <a class="header-anchor" href="#vue-overview" aria-label="Permalink to "Vue Overview"">​</a></h1><p>The <code>Vue</code> stack for Coalesce has been designed from the ground up to be used to build modern web applications using current technologies like Vite, ES Modules, and more. It enables you to use all of the features of Vue.js, including building a SPA, and the ability to use modern component frameworks like <a href="https://vuetifyjs.com/" target="_blank" rel="noreferrer">Vuetify</a>.</p><h2 id="getting-started" tabindex="-1">Getting Started <a class="header-anchor" href="#getting-started" aria-label="Permalink to "Getting Started"">​</a></h2><p>Check out <a href="/Coalesce/stacks/vue/getting-started.html">Getting Started with Vue</a> to learn how to get a new Coalesce Vue project up and running.</p><h2 id="typescript-layers" tabindex="-1">TypeScript Layers <a class="header-anchor" href="#typescript-layers" aria-label="Permalink to "TypeScript Layers"">​</a></h2><p><a href="https://www.npmjs.com/package/coalesce-vue" target="_blank" rel="noreferrer"><img src="https://img.shields.io/npm/v/coalesce-vue/latest?color=0176b5&label=coalesce-vue%40latest&logo=npm" alt=""></a></p><p>The generated code for the Vue stack all builds on the <a href="https://www.npmjs.com/package/coalesce-vue" target="_blank" rel="noreferrer">coalesce-vue</a> NPM package which contains most of the core functionality of the Vue stack. Its version should generally be kept in sync with the <a href="https://www.nuget.org/packages/IntelliTect.Coalesce/" target="_blank" rel="noreferrer">IntelliTect.Coalesce NuGet packages</a> in your project.</p><p>Both the generated code and <a href="https://www.npmjs.com/package/coalesce-vue" target="_blank" rel="noreferrer">coalesce-vue</a> are split into four layers, with each layer building on the layers underneath. From the bottom, these layers are:</p><h3 id="metadata-layer" tabindex="-1"><a href="/Coalesce/stacks/vue/layers/metadata.html">Metadata Layer</a> <a class="header-anchor" href="#metadata-layer" aria-label="Permalink to "[Metadata Layer](/stacks/vue/layers/metadata.md)"">​</a></h3><p>The metadata layer, generated as <code>metadata.g.ts</code>, contains information about the types, properties, methods, and other components of your data model. Because Vue applications are typically compiled into a set of static assets, it is necessary for the frontend code to have a representation of your data model as an analog to the <code>ReflectionRepository</code> that is available at runtime in your .NET app.</p><p><a href="/Coalesce/stacks/vue/layers/metadata.html">Read more about the Metadata layer</a></p><h3 id="model-layer" tabindex="-1"><a href="/Coalesce/stacks/vue/layers/models.html">Model Layer</a> <a class="header-anchor" href="#model-layer" aria-label="Permalink to "[Model Layer](/stacks/vue/layers/models.md)"">​</a></h3><p>The model layer, generated as <code>models.g.ts</code>, contains a set of TypeScript interfaces that represent each client-exposed type in your data model. Each interface contains all the <a href="/Coalesce/modeling/model-components/properties.html">Properties</a> of that type, as well as a <code>$metadata</code> property that references the <a href="/Coalesce/stacks/vue/layers/metadata.html">metadata</a> object for that type. Enums and <a href="/Coalesce/modeling/model-components/data-sources.html">Data Sources</a> are also represented in the model layer.</p><p><a href="/Coalesce/stacks/vue/layers/models.html">Read more about the Model layer</a></p><h3 id="api-client-layer" tabindex="-1"><a href="/Coalesce/stacks/vue/layers/api-clients.html">API Client Layer</a> <a class="header-anchor" href="#api-client-layer" aria-label="Permalink to "[API Client Layer](/stacks/vue/layers/api-clients.md)"">​</a></h3><p>The API client layer, generated as <code>api-clients.g.ts</code>, exports a class for each API controller that was generated for your data model. These classes are stateless and provide one method for each API endpoint. This includes both the standard set of endpoints created for <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>, as well as any custom <a href="/Coalesce/modeling/model-components/methods.html">Methods</a> on the aforementioned types, as well as any methods on your <a href="/Coalesce/modeling/model-types/services.html">Services</a>.</p><p><a href="/Coalesce/stacks/vue/layers/api-clients.html">Read more about the API Client layer</a></p><h3 id="viewmodel-layer" tabindex="-1"><a href="/Coalesce/stacks/vue/layers/viewmodels.html">ViewModel Layer</a> <a class="header-anchor" href="#viewmodel-layer" aria-label="Permalink to "[ViewModel Layer](/stacks/vue/layers/viewmodels.md)"">​</a></h3><p>The ViewModel layer, generated as <code>viewmodels.g.ts</code>, exports a ViewModel class for each API-backed type in your data model (<a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a>, <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>, and <a href="/Coalesce/modeling/model-types/services.html">Services</a>). It also exports a ListViewModel type for <a href="/Coalesce/modeling/model-types/entities.html">Entity Models</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>.</p><p>These classes provide a wide array of functionality that is useful when interacting with your data model through a user interface. The generated ViewModels are the primary way that Coalesce is used when developing a Vue application.</p><p><a href="/Coalesce/stacks/vue/layers/viewmodels.html">Read more about the ViewModel layer</a></p><h2 id="vue-components" tabindex="-1">Vue Components <a class="header-anchor" href="#vue-components" aria-label="Permalink to "Vue Components"">​</a></h2><p><a href="https://www.npmjs.com/package/coalesce-vue-vuetify2" target="_blank" rel="noreferrer"><img src="https://img.shields.io/npm/v/coalesce-vue-vuetify2/latest?color=0176b5&label=coalesce-vue-vuetify2%40latest&logo=npm" alt=""></a><a href="https://www.npmjs.com/package/coalesce-vue-vuetify3" target="_blank" rel="noreferrer"><img src="https://img.shields.io/npm/v/coalesce-vue-vuetify3/latest?color=0176b5&label=coalesce-vue-vuetify3%40latest&logo=npm" alt=""></a></p><p>The <a href="https://vuejs.org/" target="_blank" rel="noreferrer">Vue</a> stack for Coalesce provides <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/overview.html">a set of components</a> based on <a href="https://vuetifyjs.com/" target="_blank" rel="noreferrer">Vuetify</a>, packaged up in an NPM package <a href="https://www.npmjs.com/package/coalesce-vue-vuetify2" target="_blank" rel="noreferrer">coalesce-vue-vuetify2</a> or <a href="https://www.npmjs.com/package/coalesce-vue-vuetify3" target="_blank" rel="noreferrer">coalesce-vue-vuetify3</a>. These components are driven primarily by the <a href="/Coalesce/stacks/vue/layers/metadata.html">Metadata Layer</a>, and include both low level input and display components like <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-input.html">c-input</a> and <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-display.html">c-display</a> that are highly reusable in the custom pages you'll build in your application, as well as high-level components like <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.html">c-admin-table-page</a> and <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-editor-page.html">c-admin-editor-page</a> that constitute entire pages.</p><p><a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/overview.html">Read more about the Vuetify Components here</a>.</p><h2 id="admin-views" tabindex="-1">Admin Views <a class="header-anchor" href="#admin-views" aria-label="Permalink to "Admin Views"">​</a></h2><p>The Vue.js stack for Coalesce provides some high level components that provide functionality of whole pages like <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.html">c-admin-table-page</a> and <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-editor-page.html">c-admin-editor-page</a>.</p><p>The template described in <a href="/Coalesce/stacks/vue/getting-started.html">Getting Started with Vue</a> comes with routes already in place for these page-level components. For example, <code>/admin/Person</code> for a table, <code>/admin/Person/edit</code> to create a new <code>Person</code>, and <code>/admin/Person/edit/:id</code> to edit a <code>Person</code>.</p>',28),l=[r];function c(n,i,d,h,p,m){return t(),a("div",null,l)}const v=e(s,[["render",c]]);export{f as __pageData,v as default}; diff --git a/assets/stacks_vue_overview.md.D1EN1jE9.lean.js b/assets/stacks_vue_overview.md.D1EN1jE9.lean.js new file mode 100644 index 000000000..d957e64ca --- /dev/null +++ b/assets/stacks_vue_overview.md.D1EN1jE9.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.Be4oCqIX.js";const f=JSON.parse('{"title":"Vue Overview","description":"","frontmatter":{},"headers":[],"relativePath":"stacks/vue/overview.md","filePath":"stacks/vue/overview.md"}'),s={name:"stacks/vue/overview.md"},r=o("",28),l=[r];function c(n,i,d,h,p,m){return t(),a("div",null,l)}const v=e(s,[["render",c]]);export{f as __pageData,v as default}; diff --git a/assets/stacks_vue_vue2-to-vue3.md.C28cFAqO.js b/assets/stacks_vue_vue2-to-vue3.md.C28cFAqO.js new file mode 100644 index 000000000..08afc1696 --- /dev/null +++ b/assets/stacks_vue_vue2-to-vue3.md.C28cFAqO.js @@ -0,0 +1,177 @@ +import{_ as s,c as n,o as a,a7 as l}from"./chunks/framework.Be4oCqIX.js";const d=JSON.parse('{"title":"Vue 2 to Vue 3","description":"","frontmatter":{"pageClass":"wide-page"},"headers":[],"relativePath":"stacks/vue/vue2-to-vue3.md","filePath":"stacks/vue/vue2-to-vue3.md"}'),p={name:"stacks/vue/vue2-to-vue3.md"},o=l(`<h1 id="vue-2-to-vue-3" tabindex="-1">Vue 2 to Vue 3 <a class="header-anchor" href="#vue-2-to-vue-3" aria-label="Permalink to "Vue 2 to Vue 3"">​</a></h1><p>If you're already experienced with Vue 2 but are new to Vue 3, or if you're migrating an existing Vue 2 app to Vue 3, you should first read through the <a href="https://v3-migration.vuejs.org/" target="_blank" rel="noreferrer">official migration guide</a>.</p><p>Vuetify also offers a <a href="https://vuetifyjs.com/en/getting-started/upgrade-guide/" target="_blank" rel="noreferrer">migration guide</a> to upgrade from Vuetify 2 to Vuetify 3.</p><p>If you're new to Vue entirely, check out the rest of Vue docs and <a href="https://vuejs.org/guide/introduction.html#pick-your-learning-path" target="_blank" rel="noreferrer">pick your learning path</a>.</p><h2 id="coalesce-upgrade-steps" tabindex="-1">Coalesce Upgrade Steps <a class="header-anchor" href="#coalesce-upgrade-steps" aria-label="Permalink to "Coalesce Upgrade Steps"">​</a></h2><p>The changes specific to Coalesce when migrating from Vue2 to Vue3 are pretty minimal. Most of your work will be in following the <a href="https://v3-migration.vuejs.org/" target="_blank" rel="noreferrer">Vue 3 Migration Guide</a> and the <a href="https://vuetifyjs.com/en/getting-started/upgrade-guide/" target="_blank" rel="noreferrer">Vuetify 3 Migration Guide</a>.</p><p>The table below contains the Coalesce-specific changes when migrating to Vue 3. However, the easiest migration path may be to disregard the table below and instead, <a href="/Coalesce/stacks/vue/getting-started.html#creating-a-project">instantiate the Coalesce Vue template</a> or <a href="https://github.com/IntelliTect/Coalesce.Vue.Template/tree/master/content/Coalesce.Starter.Vue.Web" target="_blank" rel="noreferrer">look at it on GitHub</a> and compare individual files between your project and the template side by side and ingest the changes that you observe.</p><table><thead><tr><th width="150px">Location</th><th>Old (Vue 2)</th><th>New (Vue 3)</th></tr></thead><tr><td><p>package.json</p></td><td style="vertical-align:top;"><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#9CDCFE;"> "dependencies"</span><span style="color:#D4D4D4;">: {</span></span> +<span class="line"><span style="color:#9CDCFE;"> "coalesce-vue-vuetify2"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"x"</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div></td><td style="vertical-align:top;"><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#9CDCFE;"> "dependencies"</span><span style="color:#D4D4D4;">: {</span></span> +<span class="line"><span style="color:#9CDCFE;"> "coalesce-vue-vuetify3"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"x"</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div></td></tr><tr><td><p>vite.config.ts</p></td><td style="vertical-align:top;"><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">CoalesceVuetifyResolver</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "coalesce-vue-vuetify2/lib/build"</span></span></code></pre></div></td><td style="vertical-align:top;"><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">CoalesceVuetifyResolver</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "coalesce-vue-vuetify3/build"</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;">// Custom SASS options and \`optimizeDeps\` configuration can be removed</span></span> +<span class="line"><span style="color:#6A9955;">// since Vuetify3 no longer uses deprecated sass features,</span></span> +<span class="line"><span style="color:#6A9955;">// and pre-bundling styles no longer has appreciable benefit.</span></span></code></pre></div></td></tr><tr><td><p>main.ts</p></td><td style="vertical-align:top;"><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">import</span><span style="color:#CE9178;"> "coalesce-vue-vuetify2/dist/coalesce-vue-vuetify.css"</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;">// Either of these:</span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#9CDCFE;"> CoalesceVuetify</span><span style="color:#C586C0;"> from</span><span style="color:#CE9178;"> 'coalesce-vue-vuetify2/lib'</span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#9CDCFE;"> CoalesceVuetify</span><span style="color:#C586C0;"> from</span><span style="color:#CE9178;"> 'coalesce-vue-vuetify2'</span></span> +<span class="line"></span> +<span class="line"><span style="color:#9CDCFE;">Vue</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">use</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">CoalesceVuetify</span><span style="color:#D4D4D4;">, {</span></span> +<span class="line"><span style="color:#9CDCFE;"> metadata:</span><span style="color:#9CDCFE;"> $metadata</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#D4D4D4;">});</span></span></code></pre></div></td><td style="vertical-align:top;"><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">import</span><span style="color:#CE9178;"> "coalesce-vue-vuetify3/styles.css"</span></span> +<span class="line"></span> +<span class="line"></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">createCoalesceVuetify</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "coalesce-vue-vuetify3"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> coalesceVuetify</span><span style="color:#D4D4D4;"> = </span><span style="color:#DCDCAA;">createCoalesceVuetify</span><span style="color:#D4D4D4;">({</span></span> +<span class="line"><span style="color:#9CDCFE;"> metadata:</span><span style="color:#9CDCFE;"> $metadata</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#D4D4D4;">});</span></span> +<span class="line"><span style="color:#9CDCFE;">app</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">use</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">coalesceVuetify</span><span style="color:#D4D4D4;">);</span></span></code></pre></div></td></tr><tr><td><p>router.ts</p></td><td style="vertical-align:top;"><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#6A9955;">// Either of these:</span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">CAdminTablePage</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">CAdminEditorPage</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> 'coalesce-vue-vuetify2/lib'</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">CAdminTablePage</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">CAdminEditorPage</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> 'coalesce-vue-vuetify2'</span><span style="color:#D4D4D4;">;</span></span></code></pre></div></td><td style="vertical-align:top;"><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">CAdminEditorPage</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">CAdminTablePage</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "coalesce-vue-vuetify3"</span><span style="color:#D4D4D4;">;</span></span></code></pre></div></td></tr><tr><td><p>Vitest/Jest tests</p></td><td style="vertical-align:top;"><p>If you had a global test setup file performing Vue configuration, you can likely remove it entirely, or at least remove the parts that configure Vue. Vue3 does not operate on global configuration like Vue2 did.</p></td><td style="vertical-align:top;"><p>See <a href="https://github.com/IntelliTect/Coalesce.Vue.Template/blob/master/content/Coalesce.Starter.Vue.Web/src/test-utils.ts" target="_blank" rel="noreferrer">test-utils.ts</a> and <a href="https://github.com/IntelliTect/Coalesce.Vue.Template/blob/master/content/Coalesce.Starter.Vue.Web/src/components/HelloWorld.spec.ts" target="_blank" rel="noreferrer">HelloWorld.spec.ts</a> in the template for examples of Vue3 component testing.</p></td></tr></table><h2 id="from-class-components-to-script-setup" tabindex="-1">From Class Components to <code><script setup></code> <a class="header-anchor" href="#from-class-components-to-script-setup" aria-label="Permalink to "From Class Components to \`<script setup>\`"">​</a></h2><p>The components in the Coalesce template for Vue 3 have switched from <code>vue-class-component</code> to Vue Composition API with <code><script setup></code>, the <a href="https://vuejs.org/guide/introduction.html#which-to-choose" target="_blank" rel="noreferrer">official recommendation</a> for building full Vue 3 applications.</p><p>If you're used to writing components in Vue 2 with <code>vue-class-component</code> and <code>vue-property-decorator</code>, you can use this table of comparisons as a quick reference of what the equivalent features are using <a href="https://vuejs.org/api/sfc-script-setup.html" target="_blank" rel="noreferrer"><code><script setup></code></a> and <a href="https://vuejs.org/guide/extras/composition-api-faq.html" target="_blank" rel="noreferrer">Vue Composition API</a>. That said, this is not a replacement for learning and understanding the composition API. You should read the <a href="https://vuejs.org/guide/extras/composition-api-faq.html" target="_blank" rel="noreferrer">Composition API FAQ</a> as well as the <a href="https://vuejs.org/guide/essentials/reactivity-fundamentals.html" target="_blank" rel="noreferrer">Reactivity Fundamentals</a> documentation (make sure to set the API preference in the top left to Composition!).</p><p>If you'd like to continue using class components with Vue 3 (e.g. upgrading an existing project where rewriting all components is not feasible), you can try switching to <a href="https://www.npmjs.com/package/vue-facing-decorator" target="_blank" rel="noreferrer"><code>vue-facing-decorator</code></a>.</p><div class="tip custom-block"><p class="custom-block-title">Note</p><p>The examples below assume that <code>unplugin-auto-import</code> is being used (included in the Coalesce Vue3 template), eliminating the need to manually import common Vue Composition API functions.</p></div><table><thead><tr><th width="150px">Feature</th><th>Class Component</th><th>Script Setup</th></tr></thead><tr><td><p>Coalesce <code>ViewModel</code> and <code>ListViewModel</code> usage</p></td><td style="vertical-align:top;"><div class="language-vue"><button title="Copy Code" class="copy"></button><span class="lang">vue</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> lang</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"ts"</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">Vue</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">Component</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "vue-property-decorator"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">PersonViewModel</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">PersonListViewModel</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "@/viewmodels.g"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;">@</span><span style="color:#DCDCAA;">Component</span><span style="color:#D4D4D4;">({})</span></span> +<span class="line"><span style="color:#C586C0;">export</span><span style="color:#C586C0;"> default</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> MyComponent</span><span style="color:#569CD6;"> extends</span><span style="color:#4EC9B0;"> Vue</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#9CDCFE;"> person</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> PersonViewModel</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#9CDCFE;"> list</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> PersonListViewModel</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> async</span><span style="color:#DCDCAA;"> created</span><span style="color:#D4D4D4;">() {</span></span> +<span class="line"><span style="color:#C586C0;"> await</span><span style="color:#9CDCFE;"> person</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">$load</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#C586C0;"> await</span><span style="color:#9CDCFE;"> list</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">$load</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#9CDCFE;"> person</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">$startAutoSave</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">this</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#9CDCFE;"> list</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">$startAutoLoad</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">this</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span></code></pre></div></td><td style="vertical-align:top;"><div class="language-vue"><button title="Copy Code" class="copy"></button><span class="lang">vue</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> lang</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"ts"</span><span style="color:#9CDCFE;"> setup</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">PersonViewModel</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">PersonListViewModel</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "@/viewmodels.g"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> person</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> PersonViewModel</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> list</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> PersonListViewModel</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">$useAutoSave</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#9CDCFE;">list</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">$useAutoLoad</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;">// If you need to await an async operation during component creation, </span></span> +<span class="line"><span style="color:#6A9955;">// use an IIFE so that the component mount is not delayed.</span></span> +<span class="line"><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">async</span><span style="color:#569CD6;"> function</span><span style="color:#DCDCAA;"> created</span><span style="color:#D4D4D4;">() {</span></span> +<span class="line"><span style="color:#C586C0;"> await</span><span style="color:#9CDCFE;"> person</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">$load</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#C586C0;"> await</span><span style="color:#9CDCFE;"> list</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">$load</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#D4D4D4;">})();</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span></code></pre></div></td></tr><tr><td><p>@Prop, @Watch</p></td><td style="vertical-align:top;"><div class="language-vue"><button title="Copy Code" class="copy"></button><span class="lang">vue</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> lang</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"ts"</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">Vue</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">Component</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">Prop</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">Watch</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "vue-property-decorator"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;">@</span><span style="color:#DCDCAA;">Component</span><span style="color:#D4D4D4;">({})</span></span> +<span class="line"><span style="color:#C586C0;">export</span><span style="color:#C586C0;"> default</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> MyComponent</span><span style="color:#569CD6;"> extends</span><span style="color:#4EC9B0;"> Vue</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#D4D4D4;"> @</span><span style="color:#DCDCAA;">Prop</span><span style="color:#D4D4D4;">({ </span><span style="color:#9CDCFE;">default:</span><span style="color:#CE9178;"> "Student"</span><span style="color:#D4D4D4;"> })</span></span> +<span class="line"><span style="color:#9CDCFE;"> label</span><span style="color:#D4D4D4;">!: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> @</span><span style="color:#DCDCAA;">Prop</span><span style="color:#D4D4D4;">({ </span><span style="color:#9CDCFE;">required:</span><span style="color:#569CD6;"> true</span><span style="color:#D4D4D4;"> })</span></span> +<span class="line"><span style="color:#9CDCFE;"> student</span><span style="color:#D4D4D4;">!: </span><span style="color:#4EC9B0;">ApplicationUserViewModel</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> @</span><span style="color:#DCDCAA;">Watch</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"label"</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#DCDCAA;"> labelChanged</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">newVal</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">oldVal</span><span style="color:#D4D4D4;">) {</span></span> +<span class="line"><span style="color:#9CDCFE;"> console</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">log</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">\`label changed. new:</span><span style="color:#569CD6;">\${</span><span style="color:#9CDCFE;">newVal</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">, old:</span><span style="color:#569CD6;">\${</span><span style="color:#9CDCFE;">oldVal</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">\`</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span></code></pre></div></td><td style="vertical-align:top;"><div class="language-vue"><button title="Copy Code" class="copy"></button><span class="lang">vue</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> lang</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"ts"</span><span style="color:#9CDCFE;"> setup</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> props</span><span style="color:#D4D4D4;"> = </span><span style="color:#DCDCAA;">withDefaults</span><span style="color:#D4D4D4;">(</span><span style="color:#DCDCAA;">defineProps</span><span style="color:#D4D4D4;"><{</span></span> +<span class="line"><span style="color:#9CDCFE;"> label</span><span style="color:#D4D4D4;">?: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#9CDCFE;"> student</span><span style="color:#D4D4D4;">?: </span><span style="color:#4EC9B0;">ApplicationUserViewModel</span></span> +<span class="line"><span style="color:#D4D4D4;">}>(), { </span><span style="color:#9CDCFE;">label:</span><span style="color:#CE9178;"> 'Student'</span><span style="color:#D4D4D4;"> })</span></span> +<span class="line"></span> +<span class="line"><span style="color:#DCDCAA;">watch</span><span style="color:#D4D4D4;">(</span></span> +<span class="line"><span style="color:#D4D4D4;"> () </span><span style="color:#569CD6;">=></span><span style="color:#9CDCFE;"> props</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">label</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">newVal</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">oldVal</span><span style="color:#D4D4D4;">) </span><span style="color:#569CD6;">=></span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> console</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">log</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">\`label changed. new:</span><span style="color:#569CD6;">\${</span><span style="color:#9CDCFE;">newVal</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">, old:</span><span style="color:#569CD6;">\${</span><span style="color:#9CDCFE;">oldVal</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">\`</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span></code></pre></div></td></tr><tr><td><p>Reactive data</p></td><td style="vertical-align:top;"><div class="language-vue"><button title="Copy Code" class="copy"></button><span class="lang">vue</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> lang</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"ts"</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">Vue</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">Component</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "vue-property-decorator"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">PersonViewModel</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "@/viewmodels.g"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;">@</span><span style="color:#DCDCAA;">Component</span><span style="color:#D4D4D4;">({})</span></span> +<span class="line"><span style="color:#C586C0;">export</span><span style="color:#C586C0;"> default</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> MyComponent</span><span style="color:#569CD6;"> extends</span><span style="color:#4EC9B0;"> Vue</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#9CDCFE;"> person</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> PersonViewModel</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#9CDCFE;"> checked</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#9CDCFE;"> items</span><span style="color:#D4D4D4;"> = [</span></span> +<span class="line"><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">name:</span><span style="color:#CE9178;"> "Foo"</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">checked:</span><span style="color:#569CD6;"> false</span><span style="color:#D4D4D4;">, },</span></span> +<span class="line"><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">name:</span><span style="color:#CE9178;"> "Bar"</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">checked:</span><span style="color:#569CD6;"> true</span><span style="color:#D4D4D4;">, }</span></span> +<span class="line"><span style="color:#D4D4D4;"> ]</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span></code></pre></div></td><td style="vertical-align:top;"><div class="language-vue"><button title="Copy Code" class="copy"></button><span class="lang">vue</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> lang</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"ts"</span><span style="color:#9CDCFE;"> setup</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">PersonViewModel</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "@/viewmodels.g"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;">// Properties on coalesce-generated ViewModels have built in reactivity </span></span> +<span class="line"><span style="color:#6A9955;">// and don't need to be wrapped ref/reactive unless you're going to replace </span></span> +<span class="line"><span style="color:#6A9955;">// the entire top level object with a different instance.</span></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> person</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> PersonViewModel</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> checked</span><span style="color:#D4D4D4;"> = </span><span style="color:#DCDCAA;">ref</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> items</span><span style="color:#D4D4D4;"> = </span><span style="color:#DCDCAA;">reactive</span><span style="color:#D4D4D4;">([</span></span> +<span class="line"><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">name:</span><span style="color:#CE9178;"> "Foo"</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">checked:</span><span style="color:#569CD6;"> false</span><span style="color:#D4D4D4;">, },</span></span> +<span class="line"><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">name:</span><span style="color:#CE9178;"> "Bar"</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">checked:</span><span style="color:#569CD6;"> true</span><span style="color:#D4D4D4;">, }</span></span> +<span class="line"><span style="color:#D4D4D4;">])</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span></code></pre></div></td></tr><tr><td><p>Computed values</p></td><td style="vertical-align:top;"><div class="language-vue"><button title="Copy Code" class="copy"></button><span class="lang">vue</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> lang</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"ts"</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">Vue</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">Component</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "vue-property-decorator"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">PersonViewModel</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "@/viewmodels.g"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;">@</span><span style="color:#DCDCAA;">Component</span><span style="color:#D4D4D4;">({})</span></span> +<span class="line"><span style="color:#C586C0;">export</span><span style="color:#C586C0;"> default</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> MyComponent</span><span style="color:#569CD6;"> extends</span><span style="color:#4EC9B0;"> Vue</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#9CDCFE;"> person</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> PersonViewModel</span><span style="color:#D4D4D4;">()</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> get</span><span style="color:#DCDCAA;"> fullName</span><span style="color:#D4D4D4;">() {</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#CE9178;"> \`</span><span style="color:#569CD6;">\${</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">firstName</span><span style="color:#569CD6;">}</span><span style="color:#569CD6;"> \${</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">lastName</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">\`</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span></code></pre></div></td><td style="vertical-align:top;"><div class="language-vue"><button title="Copy Code" class="copy"></button><span class="lang">vue</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> lang</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"ts"</span><span style="color:#9CDCFE;"> setup</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">PersonViewModel</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "@/viewmodels.g"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> person</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> PersonViewModel</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> fullName</span><span style="color:#D4D4D4;"> = </span><span style="color:#DCDCAA;">computed</span><span style="color:#D4D4D4;">(() </span><span style="color:#569CD6;">=></span><span style="color:#CE9178;"> \`</span><span style="color:#569CD6;">\${</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">firstName</span><span style="color:#569CD6;">}</span><span style="color:#569CD6;"> \${</span><span style="color:#9CDCFE;">person</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">lastName</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">\`</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span></code></pre></div></td></tr><tr><td><p>$emit, methods</p></td><td style="vertical-align:top;"><div class="language-vue"><button title="Copy Code" class="copy"></button><span class="lang">vue</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">template</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">input</span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">value</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">value</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#D4D4D4;"> @</span><span style="color:#9CDCFE;">input</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#DCDCAA;">inputChanged</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">$event</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">target</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">value</span><span style="color:#D4D4D4;">)</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#808080;"> /></span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">template</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> lang</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"ts"</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">Vue</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">Component</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> "vue-property-decorator"</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;">@</span><span style="color:#DCDCAA;">Component</span><span style="color:#D4D4D4;">({})</span></span> +<span class="line"><span style="color:#C586C0;">export</span><span style="color:#C586C0;"> default</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> MyComponent</span><span style="color:#569CD6;"> extends</span><span style="color:#4EC9B0;"> Vue</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#D4D4D4;"> @</span><span style="color:#DCDCAA;">Prop</span><span style="color:#D4D4D4;">()</span></span> +<span class="line"><span style="color:#9CDCFE;"> value</span><span style="color:#D4D4D4;">!: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#DCDCAA;"> inputChanged</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">v</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">) {</span></span> +<span class="line"><span style="color:#569CD6;"> this</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">$emit</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">'update:input'</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">v</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span></code></pre></div></td><td style="vertical-align:top;"><div class="language-vue"><button title="Copy Code" class="copy"></button><span class="lang">vue</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">template</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">input</span></span> +<span class="line"><span style="color:#D4D4D4;"> :</span><span style="color:#9CDCFE;">value</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#9CDCFE;">modelValue</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#D4D4D4;"> @</span><span style="color:#9CDCFE;">input</span><span style="color:#D4D4D4;">=</span><span style="color:#D4D4D4;">"</span><span style="color:#DCDCAA;">inputChanged</span><span style="color:#D4D4D4;">((</span><span style="color:#9CDCFE;">$event</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">target</span><span style="color:#C586C0;"> as</span><span style="color:#4EC9B0;"> HTMLInputElement</span><span style="color:#D4D4D4;">).</span><span style="color:#9CDCFE;">value</span><span style="color:#D4D4D4;">)</span><span style="color:#D4D4D4;">"</span></span> +<span class="line"><span style="color:#808080;"> /></span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">template</span><span style="color:#808080;">></span></span> +<span class="line"></span> +<span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> lang</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"ts"</span><span style="color:#9CDCFE;"> setup</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#DCDCAA;">defineProps</span><span style="color:#D4D4D4;"><{ </span><span style="color:#9CDCFE;">modelValue</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;"> | </span><span style="color:#4EC9B0;">null</span><span style="color:#D4D4D4;"> }>();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;">// This may seem tedious, but it enables full Typescript intellisense!</span></span> +<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> emit</span><span style="color:#D4D4D4;"> = </span><span style="color:#DCDCAA;">defineEmits</span><span style="color:#D4D4D4;"><{</span></span> +<span class="line"><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"update:modelValue"</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">value</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;"> | </span><span style="color:#4EC9B0;">null</span><span style="color:#D4D4D4;">): </span><span style="color:#4EC9B0;">void</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;">}>();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">function</span><span style="color:#DCDCAA;"> inputChanged</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">v</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">) {</span></span> +<span class="line"><span style="color:#DCDCAA;"> emit</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">'update:modelValue'</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">v</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">script</span><span style="color:#808080;">></span></span></code></pre></div></td></tr></table>`,14),e=[o];function t(c,r,D,y,i,C){return a(),n("div",null,e)}const g=s(p,[["render",t]]);export{d as __pageData,g as default}; diff --git a/assets/stacks_vue_vue2-to-vue3.md.C28cFAqO.lean.js b/assets/stacks_vue_vue2-to-vue3.md.C28cFAqO.lean.js new file mode 100644 index 000000000..7609b0ab5 --- /dev/null +++ b/assets/stacks_vue_vue2-to-vue3.md.C28cFAqO.lean.js @@ -0,0 +1 @@ +import{_ as s,c as n,o as a,a7 as l}from"./chunks/framework.Be4oCqIX.js";const d=JSON.parse('{"title":"Vue 2 to Vue 3","description":"","frontmatter":{"pageClass":"wide-page"},"headers":[],"relativePath":"stacks/vue/vue2-to-vue3.md","filePath":"stacks/vue/vue2-to-vue3.md"}'),p={name:"stacks/vue/vue2-to-vue3.md"},o=l("",14),e=[o];function t(c,r,D,y,i,C){return a(),n("div",null,e)}const g=s(p,[["render",t]]);export{d as __pageData,g as default}; diff --git a/assets/style.CkBHNT0S.css b/assets/style.CkBHNT0S.css new file mode 100644 index 000000000..80985b08a --- /dev/null +++ b/assets/style.CkBHNT0S.css @@ -0,0 +1 @@ +@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Coalesce/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Coalesce/assets/inter-roman-cyrillic.C5lxZ8CY.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Coalesce/assets/inter-roman-greek-ext.CqjqNYQ-.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Coalesce/assets/inter-roman-greek.BBVDIX6e.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Coalesce/assets/inter-roman-vietnamese.BjW4sHH5.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Coalesce/assets/inter-roman-latin-ext.4ZJIpNVo.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Coalesce/assets/inter-roman-latin.Di8DUHzh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/Coalesce/assets/inter-italic-cyrillic-ext.r48I6akx.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/Coalesce/assets/inter-italic-cyrillic.By2_1cv3.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/Coalesce/assets/inter-italic-greek-ext.1u6EdAuj.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/Coalesce/assets/inter-italic-greek.DJ8dCoTZ.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/Coalesce/assets/inter-italic-vietnamese.BSbpV94h.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/Coalesce/assets/inter-italic-latin-ext.CN1xVJS-.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/Coalesce/assets/inter-italic-latin.C2AdPX0b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Punctuation SC;font-weight:400;src:local("PingFang SC Regular"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:500;src:local("PingFang SC Medium"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:600;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:700;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:lang(zh){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Heiti SC", "DengXian", "Microsoft YaHei", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{display:inline-block;margin:auto 2px -2px}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.vpi-social-discord{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z'/%3E%3C/svg%3E")}.vpi-social-facebook{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z'/%3E%3C/svg%3E")}.vpi-social-github{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}.vpi-social-instagram{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.03.084c-1.277.06-2.149.264-2.91.563a5.874 5.874 0 0 0-2.124 1.388 5.878 5.878 0 0 0-1.38 2.127C.321 4.926.12 5.8.064 7.076.008 8.354-.005 8.764.001 12.023c.007 3.259.021 3.667.083 4.947.061 1.277.264 2.149.563 2.911.308.789.72 1.457 1.388 2.123a5.872 5.872 0 0 0 2.129 1.38c.763.295 1.636.496 2.913.552 1.278.056 1.689.069 4.947.063 3.257-.007 3.668-.021 4.947-.082 1.28-.06 2.147-.265 2.91-.563a5.881 5.881 0 0 0 2.123-1.388 5.881 5.881 0 0 0 1.38-2.129c.295-.763.496-1.636.551-2.912.056-1.28.07-1.69.063-4.948-.006-3.258-.02-3.667-.081-4.947-.06-1.28-.264-2.148-.564-2.911a5.892 5.892 0 0 0-1.387-2.123 5.857 5.857 0 0 0-2.128-1.38C19.074.322 18.202.12 16.924.066 15.647.009 15.236-.006 11.977 0 8.718.008 8.31.021 7.03.084m.14 21.693c-1.17-.05-1.805-.245-2.228-.408a3.736 3.736 0 0 1-1.382-.895 3.695 3.695 0 0 1-.9-1.378c-.165-.423-.363-1.058-.417-2.228-.06-1.264-.072-1.644-.08-4.848-.006-3.204.006-3.583.061-4.848.05-1.169.246-1.805.408-2.228.216-.561.477-.96.895-1.382a3.705 3.705 0 0 1 1.379-.9c.423-.165 1.057-.361 2.227-.417 1.265-.06 1.644-.072 4.848-.08 3.203-.006 3.583.006 4.85.062 1.168.05 1.804.244 2.227.408.56.216.96.475 1.382.895.421.42.681.817.9 1.378.165.422.362 1.056.417 2.227.06 1.265.074 1.645.08 4.848.005 3.203-.006 3.583-.061 4.848-.051 1.17-.245 1.805-.408 2.23-.216.56-.477.96-.896 1.38a3.705 3.705 0 0 1-1.378.9c-.422.165-1.058.362-2.226.418-1.266.06-1.645.072-4.85.079-3.204.007-3.582-.006-4.848-.06m9.783-16.192a1.44 1.44 0 1 0 1.437-1.442 1.44 1.44 0 0 0-1.437 1.442M5.839 12.012a6.161 6.161 0 1 0 12.323-.024 6.162 6.162 0 0 0-12.323.024M8 12.008A4 4 0 1 1 12.008 16 4 4 0 0 1 8 12.008'/%3E%3C/svg%3E")}.vpi-social-linkedin{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E")}.vpi-social-mastodon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z'/%3E%3C/svg%3E")}.vpi-social-npm{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z'/%3E%3C/svg%3E")}.vpi-social-slack{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z'/%3E%3C/svg%3E")}.vpi-social-twitter,.vpi-social-x{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z'/%3E%3C/svg%3E")}.vpi-social-youtube{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-54a304ca]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-54a304ca],.VPBackdrop.fade-leave-to[data-v-54a304ca]{opacity:0}.VPBackdrop.fade-leave-active[data-v-54a304ca]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-54a304ca]{display:none}}.NotFound[data-v-d1e76dde]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-d1e76dde]{padding:96px 32px 168px}}.code[data-v-d1e76dde]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-d1e76dde]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-d1e76dde]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-d1e76dde]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-d1e76dde]{padding-top:20px}.link[data-v-d1e76dde]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-d1e76dde]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-53c99d69]{position:relative;z-index:1}.nested[data-v-53c99d69]{padding-right:16px;padding-left:16px}.outline-link[data-v-53c99d69]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-53c99d69]:hover,.outline-link.active[data-v-53c99d69]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-53c99d69]{padding-left:13px}.VPDocAsideOutline[data-v-269d7ea7]{display:none}.VPDocAsideOutline.has-outline[data-v-269d7ea7]{display:block}.content[data-v-269d7ea7]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-269d7ea7]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-269d7ea7]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-cb998dce]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-cb998dce]{flex-grow:1}.VPDocAside[data-v-cb998dce] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-cb998dce] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-cb998dce] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-19a7ae4e]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-19a7ae4e]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-5941af80]{margin-top:64px}.edit-info[data-v-5941af80]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-5941af80]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-5941af80]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-5941af80]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-5941af80]{margin-right:8px}.prev-next[data-v-5941af80]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-5941af80]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-5941af80]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-5941af80]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-5941af80]{margin-left:auto;text-align:right}.desc[data-v-5941af80]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-5941af80]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-e6f2a212]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-e6f2a212]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-e6f2a212]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-e6f2a212]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-e6f2a212]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-e6f2a212]{display:flex;justify-content:center}.VPDoc .aside[data-v-e6f2a212]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-e6f2a212]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-e6f2a212]{max-width:1104px}}.container[data-v-e6f2a212]{margin:0 auto;width:100%}.aside[data-v-e6f2a212]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-e6f2a212]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-e6f2a212]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-e6f2a212]::-webkit-scrollbar{display:none}.aside-curtain[data-v-e6f2a212]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-e6f2a212]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-e6f2a212]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-e6f2a212]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-e6f2a212]{order:1;margin:0;min-width:640px}}.content-container[data-v-e6f2a212]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-e6f2a212]{max-width:688px}.VPButton[data-v-c9cf0e3c]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-c9cf0e3c]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-c9cf0e3c]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-c9cf0e3c]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-c9cf0e3c]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-c9cf0e3c]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-c9cf0e3c]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-c9cf0e3c]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-c9cf0e3c]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-c9cf0e3c]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-c9cf0e3c]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-c9cf0e3c]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-c9cf0e3c]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-ab19afbb]{display:none}.dark .VPImage.light[data-v-ab19afbb]{display:none}.VPHero[data-v-b10c5094]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-b10c5094]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-b10c5094]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-b10c5094]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-b10c5094]{flex-direction:row}}.main[data-v-b10c5094]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-b10c5094]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-b10c5094]{text-align:left}}@media (min-width: 960px){.main[data-v-b10c5094]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-b10c5094]{max-width:592px}}.name[data-v-b10c5094],.text[data-v-b10c5094]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-b10c5094],.VPHero.has-image .text[data-v-b10c5094]{margin:0 auto}.name[data-v-b10c5094]{color:var(--vp-home-hero-name-color)}.clip[data-v-b10c5094]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-b10c5094],.text[data-v-b10c5094]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-b10c5094],.text[data-v-b10c5094]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-b10c5094],.VPHero.has-image .text[data-v-b10c5094]{margin:0}}.tagline[data-v-b10c5094]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-b10c5094]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-b10c5094]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-b10c5094]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-b10c5094]{margin:0}}.actions[data-v-b10c5094]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-b10c5094]{justify-content:center}@media (min-width: 640px){.actions[data-v-b10c5094]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-b10c5094]{justify-content:flex-start}}.action[data-v-b10c5094]{flex-shrink:0;padding:6px}.image[data-v-b10c5094]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-b10c5094]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-b10c5094]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-b10c5094]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-b10c5094]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-b10c5094]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-b10c5094]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-b10c5094]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-b10c5094]{width:320px;height:320px}}[data-v-b10c5094] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-b10c5094] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-b10c5094] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-bd37d1a2]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-bd37d1a2]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-bd37d1a2]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-bd37d1a2]>.VPImage{margin-bottom:20px}.icon[data-v-bd37d1a2]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-bd37d1a2]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-bd37d1a2]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-bd37d1a2]{padding-top:8px}.link-text-value[data-v-bd37d1a2]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-bd37d1a2]{margin-left:6px}.VPFeatures[data-v-b1eea84a]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-b1eea84a]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-b1eea84a]{padding:0 64px}}.container[data-v-b1eea84a]{margin:0 auto;max-width:1152px}.items[data-v-b1eea84a]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-b1eea84a]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-b1eea84a],.item.grid-4[data-v-b1eea84a],.item.grid-6[data-v-b1eea84a]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-b1eea84a],.item.grid-4[data-v-b1eea84a]{width:50%}.item.grid-3[data-v-b1eea84a],.item.grid-6[data-v-b1eea84a]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-b1eea84a]{width:25%}}.container[data-v-d59ac166]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-d59ac166]{padding:0 48px}}@media (min-width: 960px){.container[data-v-d59ac166]{width:100%;padding:0 64px}}.vp-doc[data-v-d59ac166] .VPHomeSponsors,.vp-doc[data-v-d59ac166] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-d59ac166] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-d59ac166] .VPHomeSponsors a,.vp-doc[data-v-d59ac166] .VPTeamPage a{text-decoration:none}.VPHome[data-v-07b1ad08]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-07b1ad08]{margin-bottom:128px}}.VPContent[data-v-9a6c75ad]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-9a6c75ad]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-9a6c75ad]{margin:0}@media (min-width: 960px){.VPContent[data-v-9a6c75ad]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-9a6c75ad]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-9a6c75ad]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-566314d4]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-566314d4]{display:none}.VPFooter[data-v-566314d4] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-566314d4] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-566314d4]{padding:32px}}.container[data-v-566314d4]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-566314d4],.copyright[data-v-566314d4]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-883964e0]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-883964e0]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-883964e0]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-883964e0]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-883964e0]{color:var(--vp-c-text-1)}.icon[data-v-883964e0]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-883964e0]{font-size:14px}.icon[data-v-883964e0]{font-size:16px}}.open>.icon[data-v-883964e0]{transform:rotate(90deg)}.items[data-v-883964e0]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-883964e0]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-883964e0]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-883964e0]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-883964e0]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-883964e0]{transition:all .2s ease-out}.flyout-leave-active[data-v-883964e0]{transition:all .15s ease-in}.flyout-enter-from[data-v-883964e0],.flyout-leave-to[data-v-883964e0]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-2488c25a]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-2488c25a]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-2488c25a]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-2488c25a]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-2488c25a]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-2488c25a]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-2488c25a]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-2488c25a]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-2488c25a]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-2488c25a]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-2488c25a]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-2488c25a]{display:none}}.menu-icon[data-v-2488c25a]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-2488c25a]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-2488c25a]{padding:12px 32px 11px}}.VPSwitch[data-v-b4ccac88]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-b4ccac88]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-b4ccac88]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-b4ccac88]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-b4ccac88] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-b4ccac88] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-7df97737]{opacity:1}.moon[data-v-7df97737],.dark .sun[data-v-7df97737]{opacity:0}.dark .moon[data-v-7df97737]{opacity:1}.dark .VPSwitchAppearance[data-v-7df97737] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-283b26e9]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-283b26e9]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-f51f088d]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-f51f088d]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-f51f088d]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-f51f088d]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-a6b0397c]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-a6b0397c]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-a6b0397c]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-a6b0397c]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-e42ed9b3]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-e42ed9b3] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-e42ed9b3] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-e42ed9b3] .group:last-child{padding-bottom:0}.VPMenu[data-v-e42ed9b3] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-e42ed9b3] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-e42ed9b3] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-e42ed9b3] .action{padding-left:24px}.VPFlyout[data-v-af5898d3]{position:relative}.VPFlyout[data-v-af5898d3]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-af5898d3]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-af5898d3]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-af5898d3]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-af5898d3]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-af5898d3],.button[aria-expanded=true]+.menu[data-v-af5898d3]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-af5898d3]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-af5898d3]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-af5898d3]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-af5898d3]{margin-right:0;font-size:16px}.text-icon[data-v-af5898d3]{margin-left:4px;font-size:14px}.icon[data-v-af5898d3]{font-size:20px;transition:fill .25s}.menu[data-v-af5898d3]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-358b6670]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-358b6670]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-358b6670]>svg,.VPSocialLink[data-v-358b6670]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-e71e869c]{display:flex;justify-content:center}.VPNavBarExtra[data-v-8e87c032]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-8e87c032]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-8e87c032]{display:none}}.trans-title[data-v-8e87c032]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-8e87c032],.item.social-links[data-v-8e87c032]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-8e87c032]{min-width:176px}.appearance-action[data-v-8e87c032]{margin-right:-2px}.social-links-list[data-v-8e87c032]{margin:-4px -8px}.VPNavBarHamburger[data-v-6bee1efd]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-6bee1efd]{display:none}}.container[data-v-6bee1efd]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-6bee1efd]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-6bee1efd]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-6bee1efd]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-6bee1efd]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-6bee1efd]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-6bee1efd]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-6bee1efd],.VPNavBarHamburger.active:hover .middle[data-v-6bee1efd],.VPNavBarHamburger.active:hover .bottom[data-v-6bee1efd]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-6bee1efd],.middle[data-v-6bee1efd],.bottom[data-v-6bee1efd]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-6bee1efd]{top:0;left:0;transform:translate(0)}.middle[data-v-6bee1efd]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-6bee1efd]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-08fbf4b6]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-08fbf4b6],.VPNavBarMenuLink[data-v-08fbf4b6]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-f732b5d0]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-f732b5d0]{display:flex}}/*! @docsearch/css 3.6.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 rgba(3,4,9,.30196078431372547);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}.DocSearch-Button-Key--pressed{transform:translate3d(0,1px,0);box-shadow:var(--docsearch-key-pressed-shadow)}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button-Key--pressed{transform:none;box-shadow:none}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-ef6192dc]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-ef6192dc]{display:flex;align-items:center}}.title[data-v-0ad69264]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-0ad69264]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-0ad69264]{border-bottom-color:var(--vp-c-divider)}}[data-v-0ad69264] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-acee064b]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-acee064b]{display:flex;align-items:center}}.title[data-v-acee064b]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-844edcde]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .5s}.VPNavBar[data-v-844edcde]:not(.home){background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar[data-v-844edcde]:not(.home){background-color:transparent}.VPNavBar[data-v-844edcde]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-844edcde]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-844edcde]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-844edcde]{padding:0}}.container[data-v-844edcde]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-844edcde],.container>.content[data-v-844edcde]{pointer-events:none}.container[data-v-844edcde] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-844edcde]{max-width:100%}}.title[data-v-844edcde]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-844edcde]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-844edcde]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-844edcde]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-844edcde]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-844edcde]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-844edcde]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.home.top) .content-body[data-v-844edcde]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-844edcde]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-844edcde]{column-gap:.5rem}}.menu+.translations[data-v-844edcde]:before,.menu+.appearance[data-v-844edcde]:before,.menu+.social-links[data-v-844edcde]:before,.translations+.appearance[data-v-844edcde]:before,.appearance+.social-links[data-v-844edcde]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-844edcde]:before,.translations+.appearance[data-v-844edcde]:before{margin-right:16px}.appearance+.social-links[data-v-844edcde]:before{margin-left:16px}.social-links[data-v-844edcde]{margin-right:-8px}.divider[data-v-844edcde]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-844edcde]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-844edcde]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-844edcde]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-844edcde]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.home.top) .divider-line[data-v-844edcde]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-844edcde]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-338d9b48]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-338d9b48]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-1a934d60]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-1a934d60]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-aea78dd1]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-aea78dd1]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-f60dbfa7]{display:block}.title[data-v-f60dbfa7]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-d2212c70]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-d2212c70]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-d2212c70]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-d2212c70]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-d2212c70]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-d2212c70]{transform:rotate(45deg)}.button[data-v-d2212c70]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-d2212c70]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-d2212c70]{transition:transform .25s}.group[data-v-d2212c70]:first-child{padding-top:0}.group+.group[data-v-d2212c70],.group+.item[data-v-d2212c70]{padding-top:4px}.VPNavScreenTranslations[data-v-516e4bc3]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-516e4bc3]{height:auto}.title[data-v-516e4bc3]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-516e4bc3]{font-size:16px}.icon.lang[data-v-516e4bc3]{margin-right:8px}.icon.chevron[data-v-516e4bc3]{margin-left:4px}.list[data-v-516e4bc3]{padding:4px 0 0 24px}.link[data-v-516e4bc3]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-57cce842]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-57cce842],.VPNavScreen.fade-leave-active[data-v-57cce842]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-57cce842],.VPNavScreen.fade-leave-active .container[data-v-57cce842]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-57cce842],.VPNavScreen.fade-leave-to[data-v-57cce842]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-57cce842],.VPNavScreen.fade-leave-to .container[data-v-57cce842]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-57cce842]{display:none}}.container[data-v-57cce842]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-57cce842],.menu+.appearance[data-v-57cce842],.translations+.appearance[data-v-57cce842]{margin-top:24px}.menu+.social-links[data-v-57cce842]{margin-top:16px}.appearance+.social-links[data-v-57cce842]{margin-top:16px}.VPNav[data-v-7ad780c2]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-7ad780c2]{position:fixed}}.VPSidebarItem.level-0[data-v-c24f735a]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-c24f735a]{padding-bottom:10px}.item[data-v-c24f735a]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-c24f735a]{cursor:pointer}.indicator[data-v-c24f735a]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-c24f735a],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-c24f735a],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-c24f735a],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-c24f735a]{background-color:var(--vp-c-brand-1)}.link[data-v-c24f735a]{display:flex;align-items:center;flex-grow:1}.text[data-v-c24f735a]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-c24f735a]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-c24f735a],.VPSidebarItem.level-2 .text[data-v-c24f735a],.VPSidebarItem.level-3 .text[data-v-c24f735a],.VPSidebarItem.level-4 .text[data-v-c24f735a],.VPSidebarItem.level-5 .text[data-v-c24f735a]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-c24f735a],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-c24f735a],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-c24f735a],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-c24f735a],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-c24f735a],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-c24f735a]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-c24f735a],.VPSidebarItem.level-1.has-active>.item>.text[data-v-c24f735a],.VPSidebarItem.level-2.has-active>.item>.text[data-v-c24f735a],.VPSidebarItem.level-3.has-active>.item>.text[data-v-c24f735a],.VPSidebarItem.level-4.has-active>.item>.text[data-v-c24f735a],.VPSidebarItem.level-5.has-active>.item>.text[data-v-c24f735a],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-c24f735a],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-c24f735a],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-c24f735a],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-c24f735a],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-c24f735a],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-c24f735a]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-c24f735a],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-c24f735a],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-c24f735a],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-c24f735a],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-c24f735a],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-c24f735a]{color:var(--vp-c-brand-1)}.caret[data-v-c24f735a]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-c24f735a]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-c24f735a]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-c24f735a]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-c24f735a]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-c24f735a],.VPSidebarItem.level-2 .items[data-v-c24f735a],.VPSidebarItem.level-3 .items[data-v-c24f735a],.VPSidebarItem.level-4 .items[data-v-c24f735a],.VPSidebarItem.level-5 .items[data-v-c24f735a]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-c24f735a]{display:none}.VPSidebar[data-v-4871f9f5]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-4871f9f5]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-4871f9f5]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-4871f9f5]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-4871f9f5]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-4871f9f5]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-4871f9f5]{outline:0}.group+.group[data-v-4871f9f5]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-4871f9f5]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSkipLink[data-v-c8291ffa]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-c8291ffa]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-c8291ffa]{top:14px;left:16px}}.Layout[data-v-d8b57b2d]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-3dc26e1d]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-3dc26e1d]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-3dc26e1d]{margin:128px 0}}.VPHomeSponsors[data-v-3dc26e1d]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-3dc26e1d]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-3dc26e1d]{padding:0 64px}}.container[data-v-3dc26e1d]{margin:0 auto;max-width:1152px}.love[data-v-3dc26e1d]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-3dc26e1d]{display:inline-block}.message[data-v-3dc26e1d]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-3dc26e1d]{padding-top:32px}.action[data-v-3dc26e1d]{padding-top:40px;text-align:center}.VPTeamPage[data-v-a5329171]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-a5329171]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-a5329171-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-a5329171-s],.VPTeamMembers+.VPTeamPageSection[data-v-a5329171-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-a5329171-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-a5329171-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-a5329171-s],.VPTeamMembers+.VPTeamPageSection[data-v-a5329171-s]{margin-top:96px}}.VPTeamMembers[data-v-a5329171-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-a5329171-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-a5329171-s]{padding:0 64px}}.VPTeamPageTitle[data-v-46c5e327]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-46c5e327]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-46c5e327]{padding:80px 64px 48px}}.title[data-v-46c5e327]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-46c5e327]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-46c5e327]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-46c5e327]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-3bf2e850]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-3bf2e850]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-3bf2e850]{padding:0 64px}}.title[data-v-3bf2e850]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-3bf2e850]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-3bf2e850]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-3bf2e850]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-3bf2e850]{padding-top:40px}.VPTeamMembersItem[data-v-acff304e]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-acff304e]{padding:32px}.VPTeamMembersItem.small .data[data-v-acff304e]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-acff304e]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-acff304e]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-acff304e]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-acff304e]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-acff304e]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-acff304e]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-acff304e]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-acff304e]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-acff304e]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-acff304e]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-acff304e]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-acff304e]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-acff304e]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-acff304e]{text-align:center}.avatar[data-v-acff304e]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-acff304e]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-acff304e]{margin:0;font-weight:600}.affiliation[data-v-acff304e]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-acff304e]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-acff304e]:hover{color:var(--vp-c-brand-1)}.desc[data-v-acff304e]{margin:0 auto}.desc[data-v-acff304e] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-acff304e]{display:flex;justify-content:center;height:56px}.sp-link[data-v-acff304e]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-acff304e]:hover,.sp .sp-link.link[data-v-acff304e]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-acff304e]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-bf782009]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-bf782009]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-bf782009]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-bf782009]{max-width:876px}.VPTeamMembers.medium .container[data-v-bf782009]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-bf782009]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-bf782009]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-bf782009]{max-width:760px}.container[data-v-bf782009]{display:grid;gap:24px;margin:0 auto;max-width:1152px}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: rgb(39 152 212);--vp-c-brand-2: rgb(1 118 181);--vp-c-brand-3: rgb(24 65 113);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--logo-text-color: var(--vp-c-brand-3);--vp-code-block-bg: #2b2b2b}html:not(.dark) .vp-doc div[class*=language-] code{color:var(--vp-c-bg)}.dark{--vp-c-text-1: rgb(185, 185, 185);--logo-text-color: #e7e7e7;--vp-code-block-bg: var(--vp-c-bg-alt)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1)}:root{--vp-home-hero-name-color: transparent;--vp-home-hero-name-background: -webkit-linear-gradient( 120deg, var(--vp-c-brand-2) 30%, var(--vp-c-brand-1) );--vp-home-hero-image-background-image: linear-gradient( -45deg, var(--vp-c-brand-2) 50%, var(--vp-c-brand-1) 50% );--vp-home-hero-image-opacity: .5;--vp-home-hero-image-spread-mult: 1.5;--vp-home-hero-image-filter: blur(calc(44px * var(--vp-home-hero-image-spread-mult))) opacity(var(--vp-home-hero-image-opacity))}.dark{--vp-home-hero-image-background-image: linear-gradient( -45deg, var(--vp-c-brand-3) 50%, var(--vp-c-brand-2) 50% );--vp-home-hero-image-spread-mult: 1}@media (min-width: 640px){:root{--vp-home-hero-image-filter: blur(calc(56px * var(--vp-home-hero-image-spread-mult))) opacity(var(--vp-home-hero-image-opacity))}}@media (min-width: 960px){:root{--vp-home-hero-image-filter: blur(calc(68px * var(--vp-home-hero-image-spread-mult))) opacity(var(--vp-home-hero-image-opacity))}}:root{--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-brand-soft);--vp-custom-block-tip-code-bg: var(--vp-c-brand-soft)}.DocSearch{--docsearch-primary-color: var(--vp-c-brand-1) !important}a{color:var(--vp-c-brand-1);text-decoration:none!important}.VPSidebarItem .text{padding:2px 0}html{overflow-y:scroll}.VPNavBarTitle .title{color:var(--logo-text-color)!important}.wide-page{--vp-layout-max-width: min(100vw, 2000px) }.wide-page .content-container{max-width:100%!important}td:has(>div[class*=language-]:only-child:not(.line-numbers-mode)){padding:0}td:has(>div[class*=language-]:only-child:not(.line-numbers-mode))>div{background-color:transparent!important;min-height:40px}td:has(>div[class*=language-]:only-child:not(.line-numbers-mode))>div:before{top:0;right:.5em}td:has(>div[class*=language-]:only-child:not(.line-numbers-mode))>div .copy{top:0}td:has(>div[class*=language-]:only-child:not(.line-numbers-mode)) .shiki{padding-top:0;padding-bottom:0}td:has(>div[class*=language-]:only-child:not(.line-numbers-mode)) .shiki code{padding-left:16px}.dark .light-only{display:none!important}html:not(.dark) .dark-only{display:none!important}table td li,table td ul,table td p{margin:0!important}table td>ul{padding-left:1rem!important}.code-tabs__nav{margin-top:.85rem;margin-bottom:-20px;padding-left:10px;border-top-left-radius:6px;border-top-right-radius:6px;background-color:var(--vp-code-block-bg)}.code-tabs__ul{margin:auto 0 5px;padding-left:0;display:inline-flex;list-style:none!important}.code-tabs__li{margin-top:0!important}.code-tabs__nav-tab{border:0;padding:5px 10px;cursor:pointer;background-color:transparent;font-size:.9em;line-height:1.4;color:#ffffffe6;font-weight:600}.code-tabs__nav-tab:focus{outline:none}.code-tabs__nav-tab:focus-visible{outline:1px solid rgba(255,255,255,.9)}.code-tabs__nav-tab-active{border-bottom:var(--vp-c-brand-1) 2px solid}@media (max-width: 500px){.code-tabs__nav{margin-left:-1.5rem;margin-right:-1.5rem;border-radius:0}}.code-tabs-item{color:#adbac7;background-color:var(--vp-code-block-bg)}.code-tabs-item div[class*=language-]:before{top:5px}.code-tabs-item>:not([class*=language-]){padding:0 24px}.code-tabs-item pre,.code-tabs-item pre+div{padding-top:8px!important}p+.code-prop{margin-top:36px}.code-prop{margin-top:10px;font-weight:inherit!important}.code-prop .shiki{margin:0;padding:2px 8px;white-space:normal;background-color:var(--vp-code-block-bg)!important;border-radius:5px}.code-prop .shiki .line{display:block;white-space:pre-wrap}.code-prop+:not(.code-prop,h1,h2,h3,h4,h5),.code-prop+:not(.code-prop,h1,h2,h3,h4,h5)+:not(.code-prop,h1,h2,h3,h4,h5),.code-prop+:not(.code-prop,h1,h2,h3,h4,h5)+:not(.code-prop,h1,h2,h3,h4,h5)+:not(.code-prop,h1,h2,h3,h4,h5),.code-prop+:not(.code-prop,h1,h2,h3,h4,h5)+:not(.code-prop,h1,h2,h3,h4,h5)+:not(.code-prop,h1,h2,h3,h4,h5)+:not(.code-prop,h1,h2,h3,h4,h5),.code-prop+:not(.code-prop,h1,h2,h3,h4,h5)+:not(.code-prop,h1,h2,h3,h4,h5)+:not(.code-prop,h1,h2,h3,h4,h5)+:not(.code-prop,h1,h2,h3,h4,h5)+:not(.code-prop,h1,h2,h3,h4,h5){margin-top:4px;margin-left:20px}.intellitect-footer{margin:auto;text-align:center}.intellitect-footer img{max-height:6ex;margin:auto}.intellitect-footer>.content{margin:auto;max-width:800px}.intellitect-footer.page-footer{font-size:14px}.intellitect-footer.page-footer hr{margin-bottom:20px!important}.intellitect-footer.page-footer *{line-height:1.75!important}.VPHero .text{font-size:42px;line-height:1.1;padding:16px 0;color:var(--logo-text-color)}.VPHero .VPImage{width:100%}.ext-logo{min-width:80px;max-width:80px;border-radius:8px}.hero-logo-horiz{font-size:calc(20px + max(35px,min(7vw,70px)))!important;white-space:nowrap;text-align:center;margin-bottom:.4em;color:var(--logo-text-color)}.hero-logo-horiz img{height:3ex;display:inline-block;vertical-align:middle;padding-bottom:.35ex;margin-right:-.3ex} diff --git a/assets/topics_audit-logging.md.C-9aEmjW.js b/assets/topics_audit-logging.md.C-9aEmjW.js new file mode 100644 index 000000000..583f49251 --- /dev/null +++ b/assets/topics_audit-logging.md.C-9aEmjW.js @@ -0,0 +1,101 @@ +import{_ as s,c as a,o as n,a7 as e}from"./chunks/framework.Be4oCqIX.js";const u=JSON.parse('{"title":"Audit Logging","description":"","frontmatter":{},"headers":[],"relativePath":"topics/audit-logging.md","filePath":"topics/audit-logging.md"}'),o={name:"topics/audit-logging.md"},l=e(`<h1 id="audit-logging" tabindex="-1">Audit Logging <a class="header-anchor" href="#audit-logging" aria-label="Permalink to "Audit Logging"">​</a></h1><p>Keeping a history of all (or most) of the changes that are made to records in your database can be invaluable, both for <a href="https://csrc.nist.gov/glossary/term/non_repudiation" target="_blank" rel="noreferrer">non-repudiation</a> (i.e. proving what happened and who did it), and for troubleshooting or debugging.</p><p>Coalesce provides a package <code>IntelliTect.Coalesce.AuditLogging</code> that adds an easy way to inject this kind of audit logging into your EF Core <code>DbContext</code>. It also includes an out-of-the-box view <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-audit-log-page.html"><code>c-admin-audit-log-page</code></a> that enables browsing of this data on the frontend.</p><h2 id="setup" tabindex="-1">Setup <a class="header-anchor" href="#setup" aria-label="Permalink to "Setup"">​</a></h2><p>In this setup process, we're going to add an additional Coalesce Nuget package, define a custom entity to hold our audit logs, install the audit logging extension into our <code>DbContext</code>, and add a pre-made interface on the frontend to view our logs.</p><h3 id="_1-add-the-nuget-package" tabindex="-1">1. Add the NuGet package <a class="header-anchor" href="#_1-add-the-nuget-package" aria-label="Permalink to "1. Add the NuGet package"">​</a></h3><p>Add a reference to the Nuget package <code>IntelliTect.Coalesce.AuditLogging</code> to your data project:</p><div class="language-xml"><button title="Copy Code" class="copy"></button><span class="lang">xml</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#808080;"><</span><span style="color:#569CD6;">ItemGroup</span><span style="color:#808080;">></span></span> +<span class="line"><span style="color:#808080;"> <</span><span style="color:#569CD6;">PackageReference</span><span style="color:#9CDCFE;"> Include</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"IntelliTect.Coalesce.Vue"</span><span style="color:#9CDCFE;"> Version</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"$(CoalesceVersion)"</span><span style="color:#808080;"> /></span></span> +<span class="line highlighted"><span style="color:#808080;"> <</span><span style="color:#569CD6;">PackageReference</span><span style="color:#9CDCFE;"> Include</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"IntelliTect.Coalesce.AuditLogging"</span><span style="color:#9CDCFE;"> Version</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">"$(CoalesceVersion)"</span><span style="color:#808080;"> /></span></span> +<span class="line"><span style="color:#808080;"></</span><span style="color:#569CD6;">ItemGroup</span><span style="color:#808080;">></span></span></code></pre></div><h3 id="_2-define-the-log-entity" tabindex="-1">2. Define the log entity <a class="header-anchor" href="#_2-define-the-log-entity" aria-label="Permalink to "2. Define the log entity"">​</a></h3><p>Define the entity type that will hold the audit records in your database:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">using</span><span style="color:#4EC9B0;"> IntelliTect</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">AuditLogging</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Roles</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">"Administrator"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> AuditLog</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">DefaultAuditLog</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#D4D4D4;">? </span><span style="color:#9CDCFE;">UserId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> AppUser</span><span style="color:#D4D4D4;">? </span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Other custom props as desired</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>This entity only needs to implement <code>IAuditLog</code>, but a default implementation of this interface <code>DefaultAuditLog</code> is provided for your convenience. <code>DefaultAuditLog</code> contains additional properties <code>ClientIp</code>, <code>Referrer</code>, and <code>Endpoint</code> for recording information about the HTTP request (if available), and also comes pre-configured for security with Create, Edit, and Delete APIs disabled.</p><p>You should further augment this type with any additional properties that you would like to track on each change record. A property to track the user who performed the change should be added, since it is not provided by the default implementation so that you can declare it yourself with the correct type for the foreign key and navigation property.</p><p>You should also apply security to restrict reading of these records to only the most privileged users with a <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html#read">Read Attribute</a> (as in the example above) and/or a <a href="/Coalesce/modeling/model-components/data-sources.html#defining-data-sources">custom Default Data Source</a>.</p><h3 id="_3-configure-your-dbcontext" tabindex="-1">3. Configure your <code>DbContext</code> <a class="header-anchor" href="#_3-configure-your-dbcontext" aria-label="Permalink to "3. Configure your \`DbContext\`"">​</a></h3><p>On your <code>DbContext</code>, implement the <code>IAuditLogDbContext<AuditLog></code> interface using the class you just created as the type parameter. Then register the Coalesce audit logging extension in your <code>DbContext</code>'s <code>OnConfiguring</code> method so that saves will be intercepted and audit log entries created.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> AppDbContext</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">DbContext</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">IAuditLogDbContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AuditLog</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DbSet</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AuditLog</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">AuditLogs</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DbSet</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AuditLogProperty</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">AuditLogProperties</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> protected</span><span style="color:#569CD6;"> override</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> OnConfiguring</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">DbContextOptionsBuilder</span><span style="color:#9CDCFE;"> optionsBuilder</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> optionsBuilder</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">UseCoalesceAuditLogging</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AuditLog</span><span style="color:#D4D4D4;">>(</span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">x</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">WithAugmentation</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">OperationContext</span><span style="color:#D4D4D4;">>()</span></span> +<span class="line"><span style="color:#D4D4D4;"> );</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>You could also perform this setup in your web project when calling <code>.AddDbContext()</code>.</p><p>The above code also contains a reference to a class <code>OperationContext</code>. This is the service that will allow you to populate additional custom properties on your audit entries. You'll want to define it as follows:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> OperationContext</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">DefaultAuditOperationContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AuditLog</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#6A9955;"> // Inject any additional desired services in the constructor:</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> OperationContext</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IHttpContextAccessor</span><span style="color:#9CDCFE;"> accessor</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">base</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">accessor</span><span style="color:#D4D4D4;">) { }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> Populate</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">AuditLog</span><span style="color:#9CDCFE;"> auditEntry</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">EntityEntry</span><span style="color:#9CDCFE;"> changedEntity</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> base</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Populate</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">auditEntry</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">changedEntity</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Adjust as needed to retrieve your UserId from the ClaimsPrincipal.</span></span> +<span class="line"><span style="color:#9CDCFE;"> auditEntry</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">UserId</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">GetUserId</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>When you're inheriting from <code>DefaultAuditLog</code> for your <code>IAuditLog</code> implementation, you'll want to similarly inherit from <code>DefaultAuditOperationContext<></code> for your operation context. It will take care of populating the HTTP request tracking fields on the <code>AuditLog</code> record. If you want a totally custom implementation, you only need to implement the <code>IAuditOperationContext<TAuditLog></code> interface.</p><p>The operation context class passed to <code>WithAugmentation</code> will be injected from the application service provider if available; otherwise, a new instance will be constructed using dependencies from the application service provider. To make an injected dependency optional, make the constructor parameter nullable with a default value of <code>null</code>, or create <a href="https://learn.microsoft.com/en-us/dotnet/core/extensions/dependency-injection#multiple-constructor-discovery-rules" target="_blank" rel="noreferrer">alternate constructors</a>.</p><h3 id="_4-add-the-ui" tabindex="-1">4. Add the UI <a class="header-anchor" href="#_4-add-the-ui" aria-label="Permalink to "4. Add the UI"">​</a></h3><p>For Vue applications, the <a href="/Coalesce/stacks/vue/coalesce-vue-vuetify/components/c-admin-audit-log-page.html">c-admin-audit-log-page</a> component provides an out-of-the-box user interface for browsing through audit logs. Simply define the following route in your application's router:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">CAdminAuditLogPage</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> 'coalesce-vue-vuetify3'</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#C8C8C8;"> path</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">'/admin/audit-logs'</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#C8C8C8;"> component</span><span style="color:#D4D4D4;">: </span><span style="color:#9CDCFE;">CAdminAuditLogPage</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#C8C8C8;"> props</span><span style="color:#D4D4D4;">: { </span><span style="color:#C8C8C8;">type</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">'AuditLog'</span><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="configuration" tabindex="-1">Configuration <a class="header-anchor" href="#configuration" aria-label="Permalink to "Configuration"">​</a></h2><h3 id="suppression" tabindex="-1">Suppression <a class="header-anchor" href="#suppression" aria-label="Permalink to "Suppression"">​</a></h3><p>You can turn audit logging on or off for individual operations by implementing the <code>SuppressAudit</code> property on your DbContext. For example, implement it as an auto-property as follows and then set it to <code>true</code> in application code when desired:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> AppDbContext</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">DbContext</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">IAuditLogDbContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AuditLog</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> SuppressAudit</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="exclusions-formatting" tabindex="-1">Exclusions & Formatting <a class="header-anchor" href="#exclusions-formatting" aria-label="Permalink to "Exclusions & Formatting"">​</a></h3><p>Coalesce's audit logging is built on top of <a href="https://entityframework-plus.net/ef-core-audit" target="_blank" rel="noreferrer">Entity Framework Plus</a> and can be configured using all of its <a href="https://entityframework-plus.net/ef-core-audit#scenarios" target="_blank" rel="noreferrer">configuration</a>, including <a href="https://entityframework-plus.net/ef-core-audit-exclude-include-entity" target="_blank" rel="noreferrer">includes/excludes</a> and <a href="https://entityframework-plus.net/ef-core-audit-format-value" target="_blank" rel="noreferrer">custom property formatting</a>.</p><p>Coalesce will not use EF Plus's <code>AuditManager.DefaultConfiguration</code> global singleton instance. You must use Coalesce's configuration extensions which allow for more targeted configuration per context that does not rely on a global static singleton. For example:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> AppDbContext</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">DbContext</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">IAuditLogDbContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AuditLog</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> protected</span><span style="color:#569CD6;"> override</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> OnConfiguring</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">DbContextOptionsBuilder</span><span style="color:#9CDCFE;"> optionsBuilder</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> optionsBuilder</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">UseCoalesceAuditLogging</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AuditLog</span><span style="color:#D4D4D4;">>(</span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">x</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">WithAugmentation</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">OperationContext</span><span style="color:#D4D4D4;">>()</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">ConfigureAudit</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">c</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Exclude</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">DataProtectionKey</span><span style="color:#D4D4D4;">>()</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">ExcludeProperty</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">TrackingBase</span><span style="color:#D4D4D4;">>(</span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;"> => </span><span style="color:#569CD6;">new</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CreatedById</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CreatedOn</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ModifiedById</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ModifiedOn</span><span style="color:#D4D4D4;"> })</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">FormatType</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">DateTimeOffset</span><span style="color:#D4D4D4;">>(</span><span style="color:#9CDCFE;">d</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">d</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">ToTimeZone</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"America/Los_Angeles"</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">ToString</span><span style="color:#D4D4D4;">())</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Format</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Image</span><span style="color:#D4D4D4;">>(</span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Content</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;"> => </span><span style="color:#CE9178;">$"{</span><span style="color:#9CDCFE;">Convert</span><span style="color:#CE9178;">.</span><span style="color:#DCDCAA;">ToHexString</span><span style="color:#CE9178;">(</span><span style="color:#9CDCFE;">SHA1</span><span style="color:#CE9178;">.</span><span style="color:#DCDCAA;">HashData</span><span style="color:#CE9178;">(</span><span style="color:#9CDCFE;">x</span><span style="color:#CE9178;">))}, {</span><span style="color:#9CDCFE;">x</span><span style="color:#CE9178;">.</span><span style="color:#9CDCFE;">Length</span><span style="color:#CE9178;">} bytes"</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> )</span></span> +<span class="line"><span style="color:#D4D4D4;"> );</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="property-descriptions" tabindex="-1">Property Descriptions <a class="header-anchor" href="#property-descriptions" aria-label="Permalink to "Property Descriptions"">​</a></h3><p>The <code>AuditLogProperty</code> children of your <code>IAuditLog</code> implementation have two properties <code>OldValueDescription</code> and <code>NewValueDescription</code> that can be used to hold a description of the old and new values. By default, Coalesce will populate the descriptions of foreign key properties with the <a href="/Coalesce/modeling/model-components/attributes/list-text.html">List Text</a> of the referenced principal entity. This greatly improves the usability of the audit logs, which would otherwise only show meaningless numbers or GUIDs for foreign keys that changed.</p><p>This feature will load principal entities into the <code>DbContext</code> if they are not already loaded, which could inflict subtle differences in application functionality in rare edge cases if your application is making assumptions about navigation properties not being loaded. Typically though, this will not be an issue and will not lead unintentional information disclosure to clients as long as <a href="/Coalesce/concepts/include-tree.html">IncludeTree</a>s are used correctly.</p><p>This feature may be disabled by calling <code>.WithPropertyDescriptions(PropertyDescriptionMode.None)</code> inside your call to <code>.UseCoalesceAuditLogging(...)</code> in your DbContext configuration. You may also populate these descriptions in your <code>IAuditOperationContext</code> implementation that was provided to <code>.WithAugmentation<T>()</code>.</p><h2 id="merging" tabindex="-1">Merging <a class="header-anchor" href="#merging" aria-label="Permalink to "Merging"">​</a></h2><p>When using a supported database provider (currently only SQL Server), audit records for changes to the same entity will be merged together when the change is identical in all aspects to the previous audit record for that entity, with the sole exception of the old/new property values.</p><p>In other words, if the same user is making repeated changes to the same property on the same entity from the same page, then those changes will merge together into one audit record.</p><p>This merging only happens together if the existing audit record is recent; the default cutoff for this is 30 seconds, but can be configured with <code>.WithMergeWindow(TimeSpan.FromSeconds(15))</code> when calling <code>UseCoalesceAuditLogging</code>. It can also be turned off by setting this value to <code>TimeSpan.Zero</code>. The merging logic respects all custom properties you add to your <code>IAuditLog</code> implementation, requiring their values to match between the existing and new audit records for a merge to occur.</p><h2 id="caveats" tabindex="-1">Caveats <a class="header-anchor" href="#caveats" aria-label="Permalink to "Caveats"">​</a></h2><p>Only changes that are tracked by the <code>DbContext</code>'s <code>ChangeTracker</code> can be audited. Changes that are made with raw SQL, or changes that are made with bulk update functions like <a href="https://learn.microsoft.com/en-us/ef/core/performance/efficient-updating?tabs=ef7" target="_blank" rel="noreferrer"><code>ExecuteUpdate</code> or <code>ExecuteDelete</code></a> will not be audited using this package.</p><h2 id="audit-stamping" tabindex="-1">Audit Stamping <a class="header-anchor" href="#audit-stamping" aria-label="Permalink to "Audit Stamping"">​</a></h2><p>A lightweight alternative or addition to full audit logging is audit stamping - the process of setting fields like <code>CreatedBy</code> or <code>ModifiedOn</code> on each changed entity. This cannot record a history of exact changes, but can at least record the age of an entity and how recently it changed.</p><p>Coalesce offers a simple mechanism to register an Entity Framework save interceptor to perform this kind of action (this <strong>does NOT</strong> require the <code>IntelliTect.Coalesce.AuditLogging</code> package). This mechanism operations on all saves that go through Entity Framework, eliminating the need to perform this manually in individual Behaviors, Services, and Custom Methods:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#9CDCFE;">services</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">AddDbContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">>(</span><span style="color:#9CDCFE;">options</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">options</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">UseSqlServer</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">connectionString</span><span style="color:#D4D4D4;">) </span><span style="color:#6A9955;">// (or other provider)</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">UseStamping</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">TrackingBase</span><span style="color:#D4D4D4;">>((</span><span style="color:#9CDCFE;">entity</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">user</span><span style="color:#D4D4D4;">) => </span><span style="color:#9CDCFE;">entity</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">SetTracking</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">user</span><span style="color:#D4D4D4;">))</span></span> +<span class="line"><span style="color:#D4D4D4;">);</span></span></code></pre></div><p>In the above example, <code>TrackingBase</code> is an interface or class that you would write as part of your application that defines the properties and mechanisms for performing the tracking operation. For example:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> abstract</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> TrackingBase</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Display</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Order</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">1000</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> ApplicationUser</span><span style="color:#9CDCFE;"> CreatedBy</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Display</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Order</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">1001</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#D4D4D4;">? </span><span style="color:#9CDCFE;">CreatedById</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Display</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Order</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">1002</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DateTimeOffset</span><span style="color:#9CDCFE;"> CreatedOn</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Display</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Order</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">1003</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> ApplicationUser</span><span style="color:#9CDCFE;"> ModifiedBy</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Display</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Order</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">1004</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#D4D4D4;">? </span><span style="color:#9CDCFE;">ModifiedById</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Display</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Order</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">1005</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DateTimeOffset</span><span style="color:#9CDCFE;"> ModifiedOn</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> SetTracking</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">ClaimsPrincipal</span><span style="color:#D4D4D4;">? </span><span style="color:#9CDCFE;">user</span><span style="color:#D4D4D4;">) </span></span> +<span class="line"><span style="color:#D4D4D4;"> => </span><span style="color:#DCDCAA;">SetTracking</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">user</span><span style="color:#D4D4D4;">?.</span><span style="color:#DCDCAA;">GetApplicationUserId</span><span style="color:#D4D4D4;">());</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> SetTracking</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">int</span><span style="color:#D4D4D4;">? </span><span style="color:#9CDCFE;">userId</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#569CD6;">this</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CreatedById</span><span style="color:#D4D4D4;"> == </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> this</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CreatedById</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">userId</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#569CD6;"> this</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">CreatedOn</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">DateTimeOffset</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Now</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> this</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ModifiedById</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">userId</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#569CD6;"> this</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ModifiedOn</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">DateTimeOffset</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Now</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>The overload <code>UseStamping<TStampable></code> will provide the <code>ClaimsPrincipal</code> from the current HTTP request if present, defaulting to <code>null</code> if an operation occurs outside an HTTP request (e.g. a background job). The overloads <code>UseStamping<TStampable, TService></code> and <code>UseStamping<TStampable, TService1, TService2></code> can be used to inject services into the operation. If more than two services are needed, you should wrap those dependencies up into an additional services that takes them as dependencies.</p>`,50),t=[l];function p(r,c,D,i,y,d){return n(),a("div",null,t)}const g=s(o,[["render",p]]);export{u as __pageData,g as default}; diff --git a/assets/topics_audit-logging.md.C-9aEmjW.lean.js b/assets/topics_audit-logging.md.C-9aEmjW.lean.js new file mode 100644 index 000000000..760104437 --- /dev/null +++ b/assets/topics_audit-logging.md.C-9aEmjW.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as n,a7 as e}from"./chunks/framework.Be4oCqIX.js";const u=JSON.parse('{"title":"Audit Logging","description":"","frontmatter":{},"headers":[],"relativePath":"topics/audit-logging.md","filePath":"topics/audit-logging.md"}'),o={name:"topics/audit-logging.md"},l=e("",50),t=[l];function p(r,c,D,i,y,d){return n(),a("div",null,t)}const g=s(o,[["render",p]]);export{u as __pageData,g as default}; diff --git a/assets/topics_coalesce-json.md.BLoLFmSK.js b/assets/topics_coalesce-json.md.BLoLFmSK.js new file mode 100644 index 000000000..5bc2533f8 --- /dev/null +++ b/assets/topics_coalesce-json.md.BLoLFmSK.js @@ -0,0 +1,69 @@ +import{_ as s,c as n,o as a,a7 as e}from"./chunks/framework.Be4oCqIX.js";const f=JSON.parse('{"title":"Code Generation Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"topics/coalesce-json.md","filePath":"topics/coalesce-json.md"}'),o={name:"topics/coalesce-json.md"},l=e(`<h1 id="code-generation-configuration" tabindex="-1">Code Generation Configuration <a class="header-anchor" href="#code-generation-configuration" aria-label="Permalink to "Code Generation Configuration"">​</a></h1><p>In Coalesce, all configuration of the code generation is done in a JSON file. This file is typically named <code>coalesce.json</code> and is typically placed in the solution root.</p><h2 id="file-resolution" tabindex="-1">File Resolution <a class="header-anchor" href="#file-resolution" aria-label="Permalink to "File Resolution"">​</a></h2><p>When the code generation is run by invoking <code>dotnet coalesce</code>, Coalesce will try to find a configuration file via the following means:</p><ol><li>If an argument is specified on the command line, it will be used as the location of the file. E.g. <code>dotnet coalesce C:/Projects/MyProject/config.json</code></li><li>If no argument is given, Coalesce will try to use a file in the working directory named <code>coalesce.json</code></li><li>If no file is found in the working directory, Coalesce will crawl up the directory tree from the working directory until a file named <code>coalesce.json</code> is found. If such a file is never found, an error will be thrown.</li></ol><h2 id="contents" tabindex="-1">Contents <a class="header-anchor" href="#contents" aria-label="Permalink to "Contents"">​</a></h2><p>A full example of a <code>coalesce.json</code> file, along with an explanation of each property, is as follows:</p><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#CE9178;"> "webProject"</span><span style="color:#D4D4D4;">: {</span></span> +<span class="line"><span style="color:#6A9955;"> // Required: Path to the csproj of the web project. Path is relative to location of this coalesce.json file.</span></span> +<span class="line"><span style="color:#CE9178;"> "projectFile"</span><span style="color:#9CDCFE;">:</span><span style="color:#CE9178;"> "src/Coalesce.Web/Coalesce.Web.csproj"</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Optional: Framework to use when evaluating & building dependencies.</span></span> +<span class="line"><span style="color:#6A9955;"> // Not needed if your project only specifies a single framework - only required for multi-targeting projects.</span></span> +<span class="line"><span style="color:#CE9178;"> "framework"</span><span style="color:#9CDCFE;">:</span><span style="color:#CE9178;"> "netcoreapp2.0"</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Optional: Build configuration to use when evaluating & building dependencies.</span></span> +<span class="line"><span style="color:#6A9955;"> // Defaults to "Debug".</span></span> +<span class="line"><span style="color:#CE9178;"> "configuration"</span><span style="color:#9CDCFE;">:</span><span style="color:#CE9178;"> "Debug"</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Optional: Override the namespace prefix for generated C# code.</span></span> +<span class="line"><span style="color:#6A9955;"> // Defaults to MSBuild's \`$(RootNamespace)\` for the project.</span></span> +<span class="line"><span style="color:#CE9178;"> "rootNamespace"</span><span style="color:#9CDCFE;">:</span><span style="color:#CE9178;"> "MyCompany.Coalesce.Web"</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#D4D4D4;"> },</span></span> +<span class="line"></span> +<span class="line"><span style="color:#CE9178;"> "dataProject"</span><span style="color:#D4D4D4;">: {</span></span> +<span class="line"><span style="color:#6A9955;"> // Required: Path to the csproj of the data project. Path is relative to location of this coalesce.json file.</span></span> +<span class="line"><span style="color:#CE9178;"> "projectFile"</span><span style="color:#9CDCFE;">:</span><span style="color:#CE9178;"> "src/Coalesce.Domain/Coalesce.Domain.csproj"</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Optional: Framework to use when evaluating & building dependencies.</span></span> +<span class="line"><span style="color:#6A9955;"> // Not needed if your project only specifies a single framework - only required for multi-targeting projects.</span></span> +<span class="line"><span style="color:#CE9178;"> "framework"</span><span style="color:#9CDCFE;">:</span><span style="color:#CE9178;"> "netstandard2.0"</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Optional: Build configuration to use when evaluating & building dependencies.</span></span> +<span class="line"><span style="color:#6A9955;"> // Defaults to "Release".</span></span> +<span class="line"><span style="color:#CE9178;"> "configuration"</span><span style="color:#9CDCFE;">:</span><span style="color:#CE9178;"> "Debug"</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#D4D4D4;"> },</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // The name of the root generator to use. Defaults to "Knockout".</span></span> +<span class="line"><span style="color:#6A9955;"> // Available values are "Vue" and "Knockout".</span></span> +<span class="line"><span style="color:#CE9178;"> "rootGenerator"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"Vue"</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#6A9955;"> // If set, specifies a list of whitelisted root type names that will restrict</span></span> +<span class="line"><span style="color:#6A9955;"> // which types Coalesce will use for code generation. </span></span> +<span class="line"><span style="color:#6A9955;"> // Root types are those that must be annotated with [Coalesce].</span></span> +<span class="line"><span style="color:#6A9955;"> // Useful if want to segment a single data project into multiple web projects, </span></span> +<span class="line"><span style="color:#6A9955;"> // or into different areas/directories within a single web project.</span></span> +<span class="line"><span style="color:#CE9178;"> "rootTypesWhitelist"</span><span style="color:#D4D4D4;">: [</span></span> +<span class="line"><span style="color:#CE9178;"> "MyDbContext"</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">"MyCustomDto"</span></span> +<span class="line"><span style="color:#D4D4D4;"> ],</span></span> +<span class="line"></span> +<span class="line"><span style="color:#CE9178;"> "generatorConfig"</span><span style="color:#D4D4D4;">: {</span></span> +<span class="line"><span style="color:#6A9955;"> // A set of objects keyed by generator name.</span></span> +<span class="line"><span style="color:#6A9955;"> // Generator names may optionally be qualified by their full namespace.</span></span> +<span class="line"><span style="color:#6A9955;"> // All generators are listed when running 'dotnet coalesce' with '--verbosity debug'.</span></span> +<span class="line"><span style="color:#6A9955;"> // For example, "Views" or "IntelliTect.Coalesce.CodeGeneration.Knockout.Generators.Views".</span></span> +<span class="line"><span style="color:#CE9178;"> "GeneratorName"</span><span style="color:#9CDCFE;">:</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#6A9955;"> // Optional: true if the generator should be disabled.</span></span> +<span class="line"><span style="color:#CE9178;"> "disabled"</span><span style="color:#9CDCFE;">:</span><span style="color:#569CD6;"> true</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#6A9955;"> // Optional: Configures a path relative to the default output path for the generator</span></span> +<span class="line"><span style="color:#6A9955;"> // where that generator's output should be placed instead.</span></span> +<span class="line"><span style="color:#CE9178;"> "targetDirectory"</span><span style="color:#9CDCFE;">:</span><span style="color:#CE9178;"> "../DifferentFolder"</span></span> +<span class="line"><span style="color:#D4D4D4;"> },</span></span> +<span class="line"><span style="color:#6A9955;"> // Indentation for generated C# is configurable by type (API controllers, DTO classes and regular View controllers)</span></span> +<span class="line"><span style="color:#6A9955;"> // It defaults to 4 spaces</span></span> +<span class="line"><span style="color:#CE9178;"> "ApiController"</span><span style="color:#9CDCFE;">:</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#CE9178;"> "indentationSize"</span><span style="color:#9CDCFE;">:</span><span style="color:#B5CEA8;"> 2</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> },</span></span> +<span class="line"><span style="color:#CE9178;"> "ClassDto"</span><span style="color:#9CDCFE;">:</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#CE9178;"> "indentationSize"</span><span style="color:#9CDCFE;">:</span><span style="color:#B5CEA8;"> 2</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;"> },</span></span> +<span class="line"><span style="color:#CE9178;"> "ViewController"</span><span style="color:#9CDCFE;"> :</span><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#CE9178;"> "indentationSize"</span><span style="color:#9CDCFE;">:</span><span style="color:#B5CEA8;"> 2</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="additional-cli-options" tabindex="-1">Additional CLI Options <a class="header-anchor" href="#additional-cli-options" aria-label="Permalink to "Additional CLI Options"">​</a></h2><p>There are a couple of extra options which are only available as CLI parameters to <code>dotnet coalesce</code>. These options do not affect the behavior of the code generation - only the behavior of the CLI itself.</p><p><code>--debug</code></p><p>When this flag is specified when running <code>dotnet coalesce</code>, Coalesce will wait up to 60 seconds for a debugger to be attached to its process before starting code generation.</p><p><code>-v|--verbosity <level></code></p><p>Set the verbosity of the output. Options are <code>trace</code>, <code>debug</code>, <code>information</code>, <code>warning</code>, <code>error</code>, <code>critical</code>, and <code>none</code>.</p>`,14),t=[l];function p(c,i,r,u,d,y){return a(),n("div",null,t)}const C=s(o,[["render",p]]);export{f as __pageData,C as default}; diff --git a/assets/topics_coalesce-json.md.BLoLFmSK.lean.js b/assets/topics_coalesce-json.md.BLoLFmSK.lean.js new file mode 100644 index 000000000..1e8e1770c --- /dev/null +++ b/assets/topics_coalesce-json.md.BLoLFmSK.lean.js @@ -0,0 +1 @@ +import{_ as s,c as n,o as a,a7 as e}from"./chunks/framework.Be4oCqIX.js";const f=JSON.parse('{"title":"Code Generation Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"topics/coalesce-json.md","filePath":"topics/coalesce-json.md"}'),o={name:"topics/coalesce-json.md"},l=e("",14),t=[l];function p(c,i,r,u,d,y){return a(),n("div",null,t)}const C=s(o,[["render",p]]);export{f as __pageData,C as default}; diff --git a/assets/topics_security.md.FXyI2mu5.js b/assets/topics_security.md.FXyI2mu5.js new file mode 100644 index 000000000..3f8f284a8 --- /dev/null +++ b/assets/topics_security.md.FXyI2mu5.js @@ -0,0 +1,291 @@ +import{_ as s,c as a,o as e,a7 as n}from"./chunks/framework.Be4oCqIX.js";const o="/Coalesce/assets/security-overview.BO07VrRB.jpg",h=JSON.parse('{"title":"Security","description":"","frontmatter":{},"headers":[],"relativePath":"topics/security.md","filePath":"topics/security.md"}'),l={name:"topics/security.md"},t=n(`<h1 id="security" tabindex="-1">Security <a class="header-anchor" href="#security" aria-label="Permalink to "Security"">​</a></h1><p>This page is a comprehensive overview of all the techniques that can be used in a Coalesce application to restrict the capabilities of API endpoints that Coalesce generates.</p><p>The following table is a quick reference of scenarios you might encounter and how you might handle them. If you're unfamiliar with these techniques, though, then you are encouraged to read through this page to get a deeper understanding of what's available before selecting a solution.</p><table><thead><tr><th width="150px">Feature</th><th width="190px">Restriction</th><th>Technique</th></tr></thead><tr><td rowspan="4"><p><a href="/Coalesce/modeling/model-types/entities.html">Entity</a> Reads: <code>/get</code>, <br> <code>/list</code>, <br> <code>/count</code></p></td><td>Disable</td><td><p><a href="#class-security-attributes">[Read(DenyAll)]</a></p></td></tr><tr><td>Roles</td><td><p><a href="#class-security-attributes">[Read("RoleName")]</a></p></td></tr><tr><td><p>Prevent <a href="/Coalesce/modeling/model-components/data-sources.html#default-loading-behavior">auto-include</a></p></td><td><ul><li>Omit <code>base</code> call in Data Source <code>GetQuery</code> override.</li><li><code>[Read(NoAutoInclude = true)]</code> on properties or types.</li><li><code>[assembly: CoalesceConfiguration(NoAutoInclude = true)]</code></li></ul></td></tr><tr><td><p>Any custom code:</p><ul><li>Query Predicates</li><li>Filtered Includes</li><li>Conditional Includes</li><li>Sort/search/filter overrides</li></ul></td><td><p><a href="#data-sources">Custom Default Data Source</a></p></td></tr><tr></tr><tr><td rowspan="5"><p><a href="/Coalesce/modeling/model-types/entities.html">Entity</a> Mutations: <code>/save</code>, <br> <code>/bulkSave</code>, <br> <code>/delete</code></p></td><td>Disable</td><td><p><a href="#class-security-attributes">[Create(DenyAll)] [Edit(DenyAll)] [Delete(DenyAll)]</a></p></td></tr><tr><td>Roles</td><td><p><a href="#class-security-attributes">[Create("Role")] [Edit("Role")] [Delete("Role")]</a></p></td></tr><tr><td>Restrict target records (edit/delete)</td><td><p><a href="#data-sources">Custom Default Data Source</a></p></td></tr><tr><td>Static Validation</td><td><p><a href="#attribute-validation">Validation attributes</a></p></td></tr><tr><td><p>Any custom code:</p><ul><li>Security</li><li>Validation</li></ul></td><td><p><a href="#behaviors">Custom Behaviors</a><br></p></td></tr><tr><td rowspan="5"><p><a href="/Coalesce/modeling/model-components/methods.html">Methods</a> and <a href="/Coalesce/modeling/model-types/services.html">Services</a></p></td><td>Disable</td><td><p>N/A - explicit opt-in required via <code>[Coalesce]</code></p></td></tr><tr><td>Roles</td><td><p><a href="#method-security-attributes">[Execute("RoleName")]</a></p></td></tr><tr><td>Static Validation</td><td><p><a href="#attribute-validation">Validation attributes</a></p></td></tr><tr><td><p>Restrict Targets (only <a href="/Coalesce/modeling/model-components/methods.html#instance-methods">instance methods</a>)</p></td><td><ul><li><a href="#data-sources">custom Default Data Source</a></li><li>specify data source: <a href="/Coalesce/modeling/model-components/methods.html#loadfromdatasource-type-datasourcetype">[LoadFromDataSource]</a></li></ul></td></tr><tr><td>Other</td><td><p>Write custom logic in the method.</p></td></tr><tr><td rowspan="8"><p><a href="/Coalesce/modeling/model-components/properties.html">Properties</a><br><small style="display:block;line-height:1.3;"> (All input and output for Entity CRUD, Methods, and Services) </small></p></td><td>Globally Exclude</td><td><ul><li><a href="#internal-properties">[InternalUse]</a></li><li><code>internal</code> access modifier</li></ul></td></tr><tr><td> Roles </td><td><p><a href="#role-restrictions">Property Security Attributes</a></p></td></tr><tr><td><p>Read-only</p></td><td><ul><li><code>internal</code> setter or no setter</li><li><code>[Read]</code> attribute without <code>[Edit]</code></li><li><a href="#read-only-properties">other techniques</a></li></ul></td></tr><tr><td><p>Init-only (write-once)</p></td><td><p><a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/init" target="_blank" rel="noreferrer"><code>init</code> setter</a></p></td></tr><tr><td><p>Custom security</p></td><td><ul><li>Navigation Properties: <a href="#data-sources">Data Sources</a></li><li>Scalar/Other Properties: <a href="#custom-restrictions">Property Restrictions</a></li></ul></td></tr></table><h2 id="endpoint-security" tabindex="-1">Endpoint Security <a class="header-anchor" href="#endpoint-security" aria-label="Permalink to "Endpoint Security"">​</a></h2><p>Coalesce generates API endpoints by traversing your data model's classes, starting from types annotated with <code>[Coalesce]</code>. This usually includes your <code>DbContext</code> class, as well as any <a href="/Coalesce/modeling/model-types/services.html">Service</a> classes or interfaces.</p><p>Classes can be hidden from Coalesce entirely by annotating them with <code>[InternalUse]</code>, preventing generation of API endpoints for that class, as well as preventing properties of that type from being exposed.</p><p><code>DbSet<></code> properties on your <code>DbContext</code> class can also be annotated with <code>[InternalUse]</code>, causing that type to be treated by Coalesce like an <a href="/Coalesce/modeling/model-types/external-types.html">External Type</a> rather than an <a href="/Coalesce/modeling/model-types/entities.html">Entity</a>, once again preventing generation of API endpoints but <em>without</em> preventing properties of that type from being exposed.</p><h3 id="class-security-attributes" tabindex="-1">Class Security Attributes <a class="header-anchor" href="#class-security-attributes" aria-label="Permalink to "Class Security Attributes"">​</a></h3><p>For each of your <a href="/Coalesce/modeling/model-types/entities.html">Entities</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>, Coalesce generates a set of CRUD API endpoints (<code>/get</code>, <code>/list</code>, <code>/count</code>, <code>/save</code>, <code>/bulkSave</code>, and <code>/delete</code>).</p><p>The default behavior is that all endpoints require an authenticated user (anonymous users are rejected).</p><p>These endpoints can be secured by placing any or all of the <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">[Read], [Create], [Edit], and [Delete] attributes</a> on the the class. Each attribute can specify required roles for that action, or open that action to anonymous, unauthenticated users, or disable the endpoint entirely.</p><p>This security is applied to the generated <a href="https://learn.microsoft.com/en-us/aspnet/core/mvc/controllers/actions" target="_blank" rel="noreferrer">controllers</a>. The <code>[Read]</code> attribute on a class <strong><em>does not</em></strong> affect instances of that class when those instances are present as child properties of other types, since in those scenarios the data will be coming from a different endpoint on a different controller.</p><table><thead><tr><th>Endpoints</th><th>Governing Attributes</th></tr></thead><tr><td><p><code>/get</code>, <code>/list</code>, <code>/count</code></p></td><td><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">ReadAttribute</span><span style="color:#D4D4D4;">]</span></span></code></pre></div></td></tr><tr><td><p><code>/save</code></p></td><td><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">CreateAttribute</span><span style="color:#D4D4D4;">] </span><span style="color:#6A9955;">// Affects saves of new entities</span></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">EditAttribute</span><span style="color:#D4D4D4;">] </span><span style="color:#6A9955;">// Affects saves of existing entities</span></span></code></pre></div></td></tr><tr><td><p><code>/delete</code></p></td><td><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">DeleteAttribute</span><span style="color:#D4D4D4;">]</span></span></code></pre></div></td></tr><tr><td><p><code>/bulkSave</code></p></td><td><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#6A9955;">// Read permission required for the root entity:</span></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">ReadAttribute</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;">// Control of each entity affected by the bulk save:</span></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">CreateAttribute</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">EditAttribute</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">DeleteAttribute</span><span style="color:#D4D4D4;">]</span></span></code></pre></div></td></tr></table><p>Here are some examples of applying security attributes to an entity class. If a particular action doesn't need to be restricted, you can omit that attribute, but this example shows usages of all four:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#6A9955;">// Allow read access by unauthenticated, anonymous users:</span></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">SecurityPermissionLevels</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">AllowAll</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#6A9955;">// Allow creation of new entities by the Admin and HR roles (params string[] style):</span></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Create</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Admin"</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">"HR"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#6A9955;">// Allow editing of existing Employee entities by users with the Admin or HR roles (CSV style):</span></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Edit</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Admin,HR"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#6A9955;">// Prohibit deletion of Employee entities</span></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Delete</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">SecurityPermissionLevels</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">DenyAll</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> EmployeeId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="method-security-attributes" tabindex="-1">Method Security Attributes <a class="header-anchor" href="#method-security-attributes" aria-label="Permalink to "Method Security Attributes"">​</a></h3><p>To secure the endpoints generated for your <a href="/Coalesce/modeling/model-components/methods.html">Custom Methods</a> and <a href="/Coalesce/modeling/model-types/services.html">Services</a>, the <a href="/Coalesce/modeling/model-components/attributes/execute.html">[Execute] attribute</a> can be used to specify a set of required roles for that endpoint, or to open that endpoint to anonymous users.</p><p>The default behavior is that all endpoints require an authenticated user (anonymous users are rejected).</p><p>For example:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> EmployeeId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Execute</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Payroll,HR"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> GiveRaise</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">int</span><span style="color:#9CDCFE;"> centsPerHour</span><span style="color:#D4D4D4;">) {</span></span> +<span class="line"><span style="color:#6A9955;"> // Only Payroll and HR users can call this method</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Execute</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">SecurityPermissionLevels</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">AllowAll</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> SendMessage</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> message</span><span style="color:#D4D4D4;">) {</span></span> +<span class="line"><span style="color:#6A9955;"> // Anyone (even anonymous, unauthenticated users) can call this method.</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="property-column-security" tabindex="-1">Property/Column Security <a class="header-anchor" href="#property-column-security" aria-label="Permalink to "Property/Column Security"">​</a></h2><p>Security applied via attributes to properties in Coalesce affects all usages of that property across all Coalesce-generated APIs. This includes usages of that property on types that occur as children of other types, which is a spot where class-level or endpoint-level security generally does not apply. <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">These attributes</a> can be placed on the properties on your <a href="/Coalesce/modeling/model-types/entities.html">Entities</a> and <a href="/Coalesce/modeling/model-types/external-types.html">External Types</a> to apply role-based restrictions to that property.</p><ul><li><code>ReadAttribute</code> limits the roles that can read values from that property in responses from the server.</li><li><code>EditAttribute</code> limits the roles that can write values to that property in requests made to the server.</li><li><code>RestrictAttribute</code> registers an implementation of <a href="#custom-restrictions">IPropertyRestriction</a> that allows for writing custom code to implement these restrictions.</li></ul><p>This security is executed and enforced by the mapping that occurs in the <a href="/Coalesce/stacks/agnostic/dtos.html">generated DTOs</a>, meaning it affects both entity CRUD APIs as well as <a href="/Coalesce/modeling/model-components/methods.html">Custom Methods</a>. It is also checked by the <a href="/Coalesce/modeling/model-components/data-sources.html#standard-data-source">Standard Data Source</a> to prevent sorting, searching, and filtering by properties that a user is not permitted to read.</p><h3 id="internal-properties" tabindex="-1">Internal Properties <a class="header-anchor" href="#internal-properties" aria-label="Permalink to "Internal Properties"">​</a></h3><p>Properties can be hidden from Coalesce entirely, either with the <a href="/Coalesce/modeling/model-components/attributes/internal-use.html">[InternalUse]</a> attribute or non-public C# access modifiers.</p><p>The properties in the following example are hidden entirely from all Coalesce functionality and generated APIs:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">using</span><span style="color:#4EC9B0;"> IntelliTect</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">DataAnnotations</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#6A9955;"> // InternalUseAttribute hides anything from Coalesce.</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">InternalUse</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Name</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Non-public C# access modifiers will hide properties from Coalesce:</span></span> +<span class="line"><span style="color:#569CD6;"> internal</span><span style="color:#569CD6;"> decimal</span><span style="color:#9CDCFE;"> Salary</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Property's type is [InternalUse], so properties using that type are also internal.</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> Department</span><span style="color:#9CDCFE;"> Department</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">InternalUse</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Department</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#6A9955;"> // All properties on an [InternalUse] type are non-exposed,</span></span> +<span class="line"><span style="color:#6A9955;"> // since the parent type is not exposed.</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Name</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="read-only-properties" tabindex="-1">Read-Only Properties <a class="header-anchor" href="#read-only-properties" aria-label="Permalink to "Read-Only Properties"">​</a></h3><p>A property in Coalesce can be made read-only in any of the following ways:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">using</span><span style="color:#4EC9B0;"> IntelliTect</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">DataAnnotations</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;">using</span><span style="color:#4EC9B0;"> System</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">ComponentModel</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#6A9955;"> // A property with a [Read] attribute but no [Edit] attribute is read-only:</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Name</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Payroll users and HR users can read this property. Nobody can edit it:</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Payroll,HR"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> decimal</span><span style="color:#9CDCFE;"> Salary</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Using System.ComponentModel.ReadOnlyAttribute:</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">ReadOnly</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DateTime</span><span style="color:#9CDCFE;"> BirthDate</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Non-public setter:</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DateTime</span><span style="color:#9CDCFE;"> StartDate</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">internal</span><span style="color:#569CD6;"> set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // No setter:</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> EmploymentDuration</span><span style="color:#D4D4D4;"> => (</span><span style="color:#9CDCFE;">DateTime</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Now</span><span style="color:#D4D4D4;"> - </span><span style="color:#9CDCFE;">StartDate</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">ToString</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Edits denied:</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Edit</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">SecurityPermissionLevels</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">DenyAll</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> EmployeeNumber</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="role-restrictions" tabindex="-1">Role Restrictions <a class="header-anchor" href="#role-restrictions" aria-label="Permalink to "Role Restrictions"">​</a></h3><p>Reading and writing a property in Coalesce can be restricted by roles:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">using</span><span style="color:#4EC9B0;"> IntelliTect</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">DataAnnotations</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#6A9955;"> // A property with no attributes is readable and writable without restriction</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Name</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // When a [Read] and [Edit] attributes are both present,</span></span> +<span class="line"><span style="color:#6A9955;"> // the read roles are required for edits in addition to any edit roles.</span></span> +<span class="line"><span style="color:#6A9955;"> // Property is only readable by Payroll & HR,</span></span> +<span class="line"><span style="color:#6A9955;"> // and is also only editable by Payroll & HR.</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Payroll,HR"</span><span style="color:#D4D4D4;">), </span><span style="color:#4EC9B0;">Edit</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DateTime</span><span style="color:#9CDCFE;"> BirthDate</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Property is readable by Payroll and HR, and editable only by Payroll.</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Payroll"</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">"HR"</span><span style="color:#D4D4D4;">), </span><span style="color:#4EC9B0;">Edit</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Payroll"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> decimal</span><span style="color:#9CDCFE;"> Salary</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Property is readable by Payroll, and editable only by a user who is both Payroll AND HR.</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Payroll"</span><span style="color:#D4D4D4;">), </span><span style="color:#4EC9B0;">Edit</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"HR"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> DateTime</span><span style="color:#9CDCFE;"> StartDate</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Init-only properties on entities can only be set by the first /save of the entity.</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> EmployeeNumber</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">init</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>A few of the examples above point out that when a property is restricted for reading by roles, those roles are also required when editing that property. This is because it usually doesn't make sense for a user to change a value when they have no way of knowing what the original value was. If you have a situation where a property should be editable without knowing the original value, use a custom method on the model to accept and set the new value.</p><h3 id="custom-restrictions" tabindex="-1">Custom Restrictions <a class="header-anchor" href="#custom-restrictions" aria-label="Permalink to "Custom Restrictions"">​</a></h3><p>In addition to <a href="/Coalesce/modeling/model-components/attributes/security-attribute.html">role-based</a> property restrictions, you can also define property restrictions that can execute custom code for each model instance if your logic require more nuanced decisions than can be made with roles.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#C586C0;">using</span><span style="color:#4EC9B0;"> IntelliTect</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">DataAnnotations</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span><span style="color:#D4D4D4;"> </span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> Id</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> UserId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Restrict</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">SalaryRestriction</span><span style="color:#D4D4D4;">>]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> decimal</span><span style="color:#9CDCFE;"> Salary</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> SalaryRestriction</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">MyUserService</span><span style="color:#9CDCFE;"> userService</span><span style="color:#D4D4D4;">) : </span><span style="color:#4EC9B0;">IPropertyRestriction</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> bool</span><span style="color:#DCDCAA;"> UserCanRead</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IMappingContext</span><span style="color:#9CDCFE;"> context</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> propertyName</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Employee</span><span style="color:#9CDCFE;"> model</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">GetUserId</span><span style="color:#D4D4D4;">() == </span><span style="color:#9CDCFE;">model</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">UserId</span><span style="color:#D4D4D4;"> || </span><span style="color:#9CDCFE;">userService</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsPayroll</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> bool</span><span style="color:#DCDCAA;"> UserCanWrite</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IMappingContext</span><span style="color:#9CDCFE;"> context</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> propertyName</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Employee</span><span style="color:#9CDCFE;"> model</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">object</span><span style="color:#9CDCFE;"> incomingValue</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">userService</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsPayroll</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> bool</span><span style="color:#DCDCAA;"> UserCanFilter</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IMappingContext</span><span style="color:#9CDCFE;"> context</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">string</span><span style="color:#9CDCFE;"> propertyName</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">userService</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsPayroll</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>Restriction classes support dependency injection, so you can inject any supplemental services needed to make a determination.</p><p>The <code>UserCanRead</code> method controls whether values of the restricted property will be mapped from model instances to the generated DTO. Similarly, <code>UserCanWrite</code> controls whether the property can be mapped back to the model instance from the generated DTO.</p><p>The <code>UserCanFilter</code> method has a default implementation that returns <code>false</code>, but can be implemented if there is an appropriate, instance-agnostic way to determine if a user can sort, search, or filter values of that property.</p><p>Multiple different restrictions can be placed on a single property; all of them must succeed for the operation to be permitted. Restrictions also stack on top of role attribute restrictions (<code>[Read]</code> and <code>[Edit]</code>).</p><h2 id="row-level-security" tabindex="-1">Row-level Security <a class="header-anchor" href="#row-level-security" aria-label="Permalink to "Row-level Security"">​</a></h2><h3 id="data-sources" tabindex="-1">Data Sources <a class="header-anchor" href="#data-sources" aria-label="Permalink to "Data Sources"">​</a></h3><p>In Coalesce, <a href="/Coalesce/modeling/model-components/data-sources.html">Data Sources</a> are the mechanism that you can extend to implement row-level security on your <a href="/Coalesce/modeling/model-types/entities.html">Entities</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>.</p><p>Data Sources are used when fetching results for <code>/get</code>, <code>/list</code>, and <code>/count</code> endpoints, and when fetching the target or result of a <code>/save</code>, <code>/bulkSave</code>, or <code>/delete</code>, and when fetching the invocation target of an <a href="/Coalesce/modeling/model-components/methods.html#instance-methods">Instance Method</a>.</p><p>By default, your entities will be fetched using the <a href="/Coalesce/modeling/model-components/data-sources.html#standard-data-source">Standard Data Source</a>, but you can declare a custom default data source for each of your entities to override this default functionality. The default functionality here includes the <a href="/Coalesce/modeling/model-components/data-sources.html#default-loading-behavior">default loading behavior</a>, a feature where the Standard Data Source automatically includes the immediate relationships of requested entities. This can be suppressed by overriding the <code>GetQuery</code> method on your custom data source and not calling the base method, or by placing <code>[Read(NoAutoInclude = true)]</code> on classes or navigation properties that you do not want automatically included.</p><p>For most use cases, all your security rules will be implemented in the <a href="/Coalesce/modeling/model-components/data-sources.html#member-getquery">GetQuery/GetQueryAsync</a> method. This is the most foundational method of the data source that all other functions in the data source build upon. Any predicates applied to the query of a type's default data source will affect all of the type's generated API endpoints (except for static custom methods).</p><p>There are a few different techniques that you can use to apply filtering in a data source, each one working for a specific use case. The example below includes an example of each technique.</p><h4 id="query-predicates" tabindex="-1">Query Predicates <a class="header-anchor" href="#query-predicates" aria-label="Permalink to "Query Predicates"">​</a></h4><p>The <strong>Query Predicates</strong> technique involves applying a <code>.Where()</code> predicate to your query to filter the root entities that are returned by the query using some database-executed logic. This is a form of row-level security and can be used to only include a record based on the values of that record in the database.</p><h4 id="conditional-includes" tabindex="-1">Conditional Includes <a class="header-anchor" href="#conditional-includes" aria-label="Permalink to "Conditional Includes"">​</a></h4><p>The <strong>Conditional Includes</strong> technique involves conditionally appending <code>.Include()</code> calls to your query only when some server-executed criteria is met. Usually this involves checking the roles of a user and only including a navigation property if the user is in the requisite role. This technique cannot be used with database-executed logic and is therefore behaves more like table-level security than row-level security.</p><h4 id="filtered-includes" tabindex="-1">Filtered Includes <a class="header-anchor" href="#filtered-includes" aria-label="Permalink to "Filtered Includes"">​</a></h4><p>The <strong>Filtered Includes</strong> technique involves using <a href="https://learn.microsoft.com/en-us/ef/core/querying/related-data/eager#filtered-include" target="_blank" rel="noreferrer">EF Core filtered includes</a> to apply database-executed logic to filter the rows of child collection navigation properties.</p><p>EF filtered Includes <strong>cannot</strong> be used to apply database-executed filters to <em>reference</em> navigation properties due to <a href="https://github.com/dotnet/efcore/issues/24422" target="_blank" rel="noreferrer">lack of EF support</a> - see the sections below on <a href="#transform-results">transform results</a> and <a href="#ef-global-query-filters">global query filters</a> for two possible solutions.</p><p>A complex example using all three of the above techniques:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> EmployeeId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> IsIntern</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> List</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">DepartmentMember</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">DepartmentMembers</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Override the default data source for Employee with a custom one:</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DefaultDataSource</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> DefaultSource</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">StandardDataSource</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> DefaultSource</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CrudContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">base</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) { }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">> </span><span style="color:#DCDCAA;">GetQuery</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IDataSourceParameters</span><span style="color:#9CDCFE;"> parameters</span><span style="color:#D4D4D4;">) {</span></span> +<span class="line"><span style="color:#4EC9B0;"> IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">query</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">Db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Employees</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // TECHNIQUE: Conditional Includes - subset child objects using server-executed logic:</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsInRole</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"HR"</span><span style="color:#D4D4D4;">)) {</span></span> +<span class="line"><span style="color:#6A9955;"> // HR can see everything. Return early so they are not subjected to the other filters:</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> query</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Include</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">DepartmentMembers</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">ThenInclude</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">dm</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">dm</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Department</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // TECHNIQUE: Query Predicates - subset root objects using database-executed logic:</span></span> +<span class="line"><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> employeeId</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">GetEmployeeId</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#9CDCFE;"> query</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">query</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Where</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> =></span></span> +<span class="line"><span style="color:#6A9955;"> // Anyone can see interns</span></span> +<span class="line"><span style="color:#9CDCFE;"> e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">IsIntern</span><span style="color:#D4D4D4;"> ||</span></span> +<span class="line"><span style="color:#6A9955;"> // Otherwise, a user can only see employees in their own departments:</span></span> +<span class="line"><span style="color:#9CDCFE;"> e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">DepartmentMembers</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Any</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">dm</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">dm</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Department</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">DepartmentMembers</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Any</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">u</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">u</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeId</span><span style="color:#D4D4D4;"> == </span><span style="color:#9CDCFE;">employeeId</span><span style="color:#D4D4D4;">))</span></span> +<span class="line"><span style="color:#D4D4D4;"> );</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // TECHNIQUE: EF Core Filtered Includes - subset collections using database-executed logic.</span></span> +<span class="line"><span style="color:#6A9955;"> // Include the departments of employees, but only those that the current user is a member of.</span></span> +<span class="line"><span style="color:#9CDCFE;"> query</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">query</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Include</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">DepartmentMembers</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Where</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">dm</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">dm</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Department</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">DepartmentMembers</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Any</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">u</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">u</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeId</span><span style="color:#D4D4D4;"> == </span><span style="color:#9CDCFE;">employeeId</span><span style="color:#D4D4D4;">)))</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">ThenInclude</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">dm</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">dm</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Department</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> query</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Department</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> DepartmentId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> Name</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> List</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">DepartmentMember</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">DepartmentMembers</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;"> // Override the default data source for Department with a custom one:</span></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DefaultDataSource</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> DefaultSource</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">StandardDataSource</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Department</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> DefaultSource</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CrudContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">base</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) { }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Department</span><span style="color:#D4D4D4;">> </span><span style="color:#DCDCAA;">GetQuery</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IDataSourceParameters</span><span style="color:#9CDCFE;"> parameters</span><span style="color:#D4D4D4;">) {</span></span> +<span class="line"><span style="color:#4EC9B0;"> IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Department</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">query</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">Db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Departments</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Include</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">DepartmentMembers</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">ThenInclude</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">dm</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">dm</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Employee</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (!</span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsInRole</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"HR"</span><span style="color:#D4D4D4;">))</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#6A9955;"> // Non-HR users can only see their own departments:</span></span> +<span class="line"><span style="color:#9CDCFE;"> query</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">query</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Where</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">d</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">d</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">DepartmentMembers</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Any</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">dm</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">dm</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeId</span><span style="color:#D4D4D4;"> == </span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">GetEmployeeId</span><span style="color:#D4D4D4;">()));</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> query</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;">// Only HR can directly read or modify DepartmentMember records.</span></span> +<span class="line"><span style="color:#D4D4D4;">[</span><span style="color:#4EC9B0;">Read</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"HR"</span><span style="color:#D4D4D4;">), </span><span style="color:#4EC9B0;">Create</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"HR"</span><span style="color:#D4D4D4;">), </span><span style="color:#4EC9B0;">Edit</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"HR"</span><span style="color:#D4D4D4;">), </span><span style="color:#4EC9B0;">Delete</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"HR"</span><span style="color:#D4D4D4;">)]</span></span> +<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> DepartmentMember</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> Id</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> DepartmentId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> Department</span><span style="color:#9CDCFE;"> Department</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> EmployeeId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> Employee</span><span style="color:#9CDCFE;"> Employee</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h4 id="transform-results" tabindex="-1">Transform Results <a class="header-anchor" href="#transform-results" aria-label="Permalink to "Transform Results"">​</a></h4><p>There exists a fourth technique in Data Sources for applying filtered includes: the <a href="/Coalesce/modeling/model-components/data-sources.html#member-transformresults">TransformResultsAsync</a> method. Unlike the other techniques above that are performed in the <code>GetQuery</code> method and applied at the beginning of the data source query pipeline, <code>TransformResults</code> is applied at the very end of the process against the materialized results. It also only affects the responses from the generated <code>/get</code>, <code>/list</code>, <code>/save</code>, <code>/bulkSave</code>, and <code>/delete</code> endpoints - it has no bearing on the invocation target of <a href="/Coalesce/modeling/model-components/methods.html#instance-methods">instance methods</a>.</p><p>The primary purpose of <code>TransformResults</code> is to conditionally load navigation properties. This was very useful before EF Core introduced native <a href="#filtered-includes">filtered includes</a> for collection navigation properties, and is still useful for applying filtered includes to <em>reference</em> navigation properties since EF <a href="https://github.com/dotnet/efcore/issues/24422" target="_blank" rel="noreferrer">does not support this</a>. It can also be used for any kind of filtered includes if native EF filtered includes get translated into poorly-performant SQL, or it can be used to populate <a href="/Coalesce/modeling/model-types/external-types.html">external type</a> or other non-database-mapped properties on your entities.</p><p>The general technique for using <code>TransformResults</code> involves using <a href="https://learn.microsoft.com/en-us/ef/core/querying/related-data/explicit#explicit-loading" target="_blank" rel="noreferrer">EF Core Explicit Loading</a> to attach additional navigation properties to the result set, and then using Coalesce's <code>.IncludedSeparately()</code> method in the data source's <code>GetQuery</code> so that Coalesce can still build the correct <a href="/Coalesce/concepts/include-tree.html">Include Tree</a> to shape the serialization of your results.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> EmployeeId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> ManagerId</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> Employee</span><span style="color:#9CDCFE;"> Manager</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">DefaultDataSource</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> DefaultSource</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">StandardDataSource</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> DefaultSource</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CrudContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">base</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) { }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> IQueryable</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">> </span><span style="color:#DCDCAA;">GetQuery</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IDataSourceParameters</span><span style="color:#9CDCFE;"> parameters</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#6A9955;"> // Use IncludedSeparately to instruct Coalesce that we're going to</span></span> +<span class="line"><span style="color:#6A9955;"> // manually populate the Manager, and that it should be mapped to the result DTOs</span></span> +<span class="line"><span style="color:#6A9955;"> // despite not being eagerly loaded with EF's .Include() method.</span></span> +<span class="line"><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">Db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Employees</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IncludedSeparately</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Manager</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#569CD6;"> async</span><span style="color:#4EC9B0;"> Task</span><span style="color:#DCDCAA;"> TransformResultsAsync</span><span style="color:#D4D4D4;">(</span></span> +<span class="line"><span style="color:#4EC9B0;"> IReadOnlyList</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">results</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#4EC9B0;"> IDataSourceParameters</span><span style="color:#9CDCFE;"> parameters</span></span> +<span class="line"><span style="color:#D4D4D4;"> )</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#C586C0;"> foreach</span><span style="color:#D4D4D4;"> (</span><span style="color:#569CD6;">var</span><span style="color:#9CDCFE;"> employee</span><span style="color:#C586C0;"> in</span><span style="color:#9CDCFE;"> results</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#6A9955;"> // Only load the employee's manager if the current logged in user is that manager.</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">employee</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ManagerId</span><span style="color:#D4D4D4;"> == </span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">GetEmployeeId</span><span style="color:#D4D4D4;">() && </span><span style="color:#9CDCFE;">employee</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Manager</span><span style="color:#569CD6;"> is</span><span style="color:#569CD6;"> null</span><span style="color:#D4D4D4;">) {</span></span> +<span class="line"><span style="color:#569CD6;"> await</span><span style="color:#9CDCFE;"> Db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Employees</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Where</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeId</span><span style="color:#D4D4D4;"> == </span><span style="color:#9CDCFE;">employee</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ManagerId</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">LoadAsync</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>Alternatively, and indeed preferably, you can often formulate a query that does not use iteration and requires only a single database round-trip:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> override</span><span style="color:#569CD6;"> async</span><span style="color:#4EC9B0;"> Task</span><span style="color:#DCDCAA;"> TransformResultsAsync</span><span style="color:#D4D4D4;">(</span></span> +<span class="line"><span style="color:#4EC9B0;"> IReadOnlyList</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">results</span><span style="color:#D4D4D4;">,</span></span> +<span class="line"><span style="color:#4EC9B0;"> IDataSourceParameters</span><span style="color:#9CDCFE;"> parameters</span></span> +<span class="line"><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> var</span><span style="color:#9CDCFE;"> managerIds</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">results</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Select</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ManagerId</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">ToList</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#569CD6;"> await</span><span style="color:#9CDCFE;"> Db</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Employees</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Where</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">managerIds</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Contains</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ManagerId</span><span style="color:#D4D4D4;">) && </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">EmployeeId</span><span style="color:#D4D4D4;"> == </span><span style="color:#9CDCFE;">User</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">GetEmployeeId</span><span style="color:#D4D4D4;">())</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">LoadAsync</span><span style="color:#D4D4D4;">();</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="behaviors" tabindex="-1">Behaviors <a class="header-anchor" href="#behaviors" aria-label="Permalink to "Behaviors"">​</a></h3><p>In Coalesce, <a href="/Coalesce/modeling/model-components/behaviors.html">Behaviors</a> are the extension point to implement row-level security or other customizations of create/edit/delete operations on your <a href="/Coalesce/modeling/model-types/entities.html">Entities</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a>. Behaviors are implemented on top of data sources, meaning the client request will be rejected if the requested entity for modification cannot be loaded from the entity's default data source.</p><p>By default, each entity will use the <a href="/Coalesce/modeling/model-components/behaviors.html#behaviors">Standard Behaviors</a>, but you can declare a <a href="/Coalesce/modeling/model-components/behaviors.html#defining-behaviors">custom behaviors class</a> for each of your entities to override this default functionality.</p><p>For most use cases, all your security rules will be implemented in the <a href="/Coalesce/modeling/model-components/behaviors.html#member-beforesaveasync">BeforeSave/BeforeSaveAsync</a> and <a href="/Coalesce/modeling/model-components/behaviors.html#member-beforedeleteasync">BeforeDelete/BeforeDeleteAsync</a> methods.</p><p>For a more complete explanation of everything you can do with behaviors, see the full <a href="/Coalesce/modeling/model-components/behaviors.html">Behaviors</a> documentation page.</p><h3 id="ef-global-query-filters" tabindex="-1">EF Global Query Filters <a class="header-anchor" href="#ef-global-query-filters" aria-label="Permalink to "EF Global Query Filters"">​</a></h3><p>Since Coalesce's data access layer is built on top of Entity Framework, you can also use <a href="https://learn.microsoft.com/en-us/ef/core/querying/filters" target="_blank" rel="noreferrer">Entity Framework's Global Query Filters</a> feature to apply row-level security.</p><p>This approach is less flexible than custom Coalesce data sources and has other <a href="https://learn.microsoft.com/en-us/ef/core/querying/filters#accessing-entity-with-query-filter-using-required-navigation" target="_blank" rel="noreferrer">drawbacks</a> as well, but on the other hand it has more absolute authority, is less susceptible to issues like inadvertently returning data through unfiltered navigation properties, and can sometimes require less work to implement than individual data sources.</p><p>Global Query Filters are also the only way to implement database-executed <a href="#filtered-includes">filtered includes</a> of <a href="https://learn.microsoft.com/en-us/ef/core/modeling/relationships/glossary" target="_blank" rel="noreferrer">reference navigation properties</a>, as there is no version of <code>.Include()</code> for reference navigation properties that allows a database-executed predicate to be applied. See <a href="https://github.com/dotnet/efcore/issues/24422" target="_blank" rel="noreferrer">this open issue</a> on EF Core.</p><h3 id="foreign-key-injection-vulnerabilities" tabindex="-1">Foreign Key Injection Vulnerabilities <a class="header-anchor" href="#foreign-key-injection-vulnerabilities" aria-label="Permalink to "Foreign Key Injection Vulnerabilities"">​</a></h3><p>When a user is saving a model with Coalesce, they can provide values for the model's foreign key properties. When this interaction takes place through a user interface, the user is not likely to produce a foreign key referencing an object that the user is not allowed to view.</p><p>A malicious user, however, is a different story. Imagine a user who is brute-forcing the <code>/save</code> endpoint on one of your entities, enumerating values of a foreign key. The may be trying to leak data through navigation property values returned by the response from the save, or they may be trying to inject their data into an object graph that they do not otherwise have access to.</p><p>If this scenario sounds like a plausible threat vector your application, be sure to perform sufficient <a href="#server-side-data-validation">validation</a> of incoming foreign keys to ensure that the user is allowed to use a particular foreign key value before saving it to your database.</p><p>Also consider making any required foreign keys that should not change for the lifetime of an entity into init-only properties (i.e. use the <code>init</code> accessor in C# instead of the <code>set</code> accessor). While this does not entirely solve the foreign key injection issue, it eliminates the need to validate that a user is not changing the parent of an object if such an operation is not desirable.</p><h2 id="server-side-data-validation" tabindex="-1">Server-side Data Validation <a class="header-anchor" href="#server-side-data-validation" aria-label="Permalink to "Server-side Data Validation"">​</a></h2><p>Coalesce, as of version 4, will by default perform server-side validation of incoming data using validation attributes.</p><p>Your database will also enforce any constraints (referential integrity, <code>not null</code>, check constraints, etc.), but errors produced by your database will manifest as exceptions, which are not user-friendly.</p><p>For any custom validation that cannot be implemented by attributes, you must implement that yourself for <a href="#saves-and-deletes">saves and deletes</a> or <a href="#custom-methods-and-services">custom methods</a>.</p><h3 id="attribute-validation" tabindex="-1">Attribute Validation <a class="header-anchor" href="#attribute-validation" aria-label="Permalink to "Attribute Validation"">​</a></h3><p>Historically, Coalesce did not provide any automatic, attribute-based validation of incoming data. As of Coalesce 4.0, automatic server side validation using <a href="https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.validationattribute" target="_blank" rel="noreferrer">ValidationAttribute</a>-derived attributes on your models is enabled by default.</p><p>In addition to any validation attributes present on your model properties and method parameters, there are some other rules that work similarly to the default validation in ASP.NET Core:</p><ul><li>The C# 11 <code>required</code> keyword also acts like a <code>RequiredAttribute</code></li><li>If C# nullable reference types are enabled, non-nullable reference types are required required.</li><li>Non-nullable value types are implicitly optional, with the exception of non-nullable foreign keys, which are required.</li></ul><p>To disable this functionality for your entire application, disable the corresponding configuration options on <code>CoalesceOptions</code>. For example, in Startup.cs or Program.cs:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#9CDCFE;">services</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">AddCoalesce</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">>(</span><span style="color:#9CDCFE;">b</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">b</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Configure</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">o</span><span style="color:#D4D4D4;"> =></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#6A9955;"> // Set either to false to disable:</span></span> +<span class="line"><span style="color:#9CDCFE;"> o</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ValidateAttributesForSaves</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#9CDCFE;"> o</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ValidateAttributesForMethods</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;">}));</span></span></code></pre></div><p>Each option also has a more granular override:</p><p>Enabling <code>ValidateAttributesForSaves</code> causes the <a href="/Coalesce/modeling/model-components/behaviors.html#standard-behaviors">Standard Behaviors</a> to perform validation of validation attributes during <code>/save</code> or <code>/bulkSave</code> calls, preventing a save when validation fails. This can be overridden per type or even per request by setting the <code>ValidateAttributesForSaves</code> property on a <a href="/Coalesce/modeling/model-components/behaviors.html#defining-behaviors">custom Behaviors</a> instance.</p><p>Enabling <a href="/Coalesce/modeling/model-components/attributes/execute.html#member-validateattributes"><code>ValidateAttributesForMethods</code></a> causes the generated controllers for <a href="/Coalesce/modeling/model-components/methods.html">custom methods</a> to perform validation of incoming parameters. Validation attributes may be placed on method parameters, and validation will also be performed against the members of any complex type parameters. This can be overridden per method by setting the <code>ValidateAttributes</code> property on <a href="/Coalesce/modeling/model-components/attributes/execute.html">ExecuteAttribute</a> for the method.</p><h3 id="saves-and-deletes" tabindex="-1">Saves and Deletes <a class="header-anchor" href="#saves-and-deletes" aria-label="Permalink to "Saves and Deletes"">​</a></h3><p>Validation of <code>/save</code>, <code>/bulkSave</code>, and <code>/delete</code> actions against <a href="/Coalesce/modeling/model-types/entities.html">Entities</a> and <a href="/Coalesce/modeling/model-types/dtos.html">Custom DTOs</a> are performed by the <a href="/Coalesce/modeling/model-components/behaviors.html">Behaviors</a> for the type. Automatic <a href="#attribute-validation">attribute based validation</a> can be used (saves only), or Behaviors can be overridden to perform validation and other customization of the save and delete process, as in the following example:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> int</span><span style="color:#9CDCFE;"> IsCeo</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> decimal</span><span style="color:#9CDCFE;"> Salary</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Behaviors</span><span style="color:#D4D4D4;"> : </span><span style="color:#4EC9B0;">StandardBehaviors</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">></span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#DCDCAA;"> Behaviors</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">CrudContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">> </span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) : </span><span style="color:#569CD6;">base</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">context</span><span style="color:#D4D4D4;">) { }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> ItemResult</span><span style="color:#DCDCAA;"> BeforeSave</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">SaveKind</span><span style="color:#9CDCFE;"> kind</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Employee</span><span style="color:#D4D4D4;">? </span><span style="color:#9CDCFE;">oldItem</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">Employee</span><span style="color:#9CDCFE;"> item</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#6A9955;"> // \`oldItem\` is a shallow copy of entity from the database,</span></span> +<span class="line"><span style="color:#6A9955;"> // and \`item\` is the tracked entity with incoming user data applied to it.</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">item</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Salary</span><span style="color:#D4D4D4;"> > </span><span style="color:#B5CEA8;">1_000_000m</span><span style="color:#D4D4D4;"> && !</span><span style="color:#9CDCFE;">oldItem</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">IsCeo</span><span style="color:#D4D4D4;">) </span><span style="color:#C586C0;">return</span><span style="color:#CE9178;"> "Salary is too high."</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#569CD6;"> true</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> override</span><span style="color:#4EC9B0;"> ItemResult</span><span style="color:#DCDCAA;"> BeforeDelete</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">Case</span><span style="color:#9CDCFE;"> item</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">item</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">IsCeo</span><span style="color:#D4D4D4;">) </span><span style="color:#C586C0;">return</span><span style="color:#CE9178;"> "The CEO cannot be fired."</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#569CD6;"> true</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h3 id="custom-methods-and-services" tabindex="-1">Custom Methods and Services <a class="header-anchor" href="#custom-methods-and-services" aria-label="Permalink to "Custom Methods and Services"">​</a></h3><p>For <a href="/Coalesce/modeling/model-components/methods.html">Custom Methods</a> and <a href="/Coalesce/modeling/model-types/services.html">Services</a>, you can perform your own custom validation and return errors when validation fails. You can also use <a href="#attribute-validation">attribute based validation</a>. Custom methods that need to return errors to the client are recommended to wrap their return type in an <code>ItemResult<T></code>, allowing errors to be received and handled elegantly by your Coalesce Typescript code.</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Employee</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> decimal</span><span style="color:#9CDCFE;"> Salary</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">get</span><span style="color:#D4D4D4;">; </span><span style="color:#569CD6;">set</span><span style="color:#D4D4D4;">; }</span></span> +<span class="line"></span> +<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">]</span></span> +<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#4EC9B0;"> ItemResult</span><span style="color:#D4D4D4;"><</span><span style="color:#569CD6;">decimal</span><span style="color:#D4D4D4;">> </span><span style="color:#DCDCAA;">GiveRaise</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">decimal</span><span style="color:#9CDCFE;"> raiseAmount</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">raiseAmount</span><span style="color:#D4D4D4;"> > </span><span style="color:#B5CEA8;">3.5m</span><span style="color:#D4D4D4;">) </span><span style="color:#C586C0;">return</span><span style="color:#CE9178;"> "Raises must be less than $3.50."</span></span> +<span class="line"><span style="color:#9CDCFE;"> Salary</span><span style="color:#D4D4D4;"> += </span><span style="color:#9CDCFE;">raiseAmount</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> Salary</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><h2 id="security-overview-page" tabindex="-1">Security Overview Page <a class="header-anchor" href="#security-overview-page" aria-label="Permalink to "Security Overview Page"">​</a></h2><p>Coalesce provides batteries-included page that you can view to review the effective security rules in place for all the Coalesce-generated code in your project. Add this page to your application by mapping it as a route, either directly on <code>WebHost</code> in .NET 6+, or in <code>UseEndpoints</code> for 3.1+.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>If you include the security overview in your production app, you should secure it with an authorization policy like in the example below. Alternatively, only map the endpoint in non-production environments.</p></div><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#6A9955;">// .NET 6+ Program.cs:</span></span> +<span class="line"><span style="color:#9CDCFE;">app</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">MapCoalesceSecurityOverview</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"coalesce-security"</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">RequireAuthorization</span><span style="color:#D4D4D4;">(</span></span> +<span class="line"><span style="color:#569CD6;"> new</span><span style="color:#4EC9B0;"> AuthorizeAttribute</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">Roles</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">env</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsDevelopment</span><span style="color:#D4D4D4;">() ? </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;"> : </span><span style="color:#CE9178;">"Admin"</span><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;">);</span></span> +<span class="line"></span> +<span class="line"><span style="color:#6A9955;">// .NET Core 3.1+ Startup.cs:</span></span> +<span class="line"><span style="color:#9CDCFE;">app</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">UseEndpoints</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">endpoints</span><span style="color:#D4D4D4;"> =></span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#9CDCFE;"> endpoints</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">MapCoalesceSecurityOverview</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"coalesce-security"</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">RequireAuthorization</span><span style="color:#D4D4D4;">(</span></span> +<span class="line"><span style="color:#569CD6;"> new</span><span style="color:#4EC9B0;"> AuthorizeAttribute</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">Roles</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">env</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">IsDevelopment</span><span style="color:#D4D4D4;">() ? </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;"> : </span><span style="color:#CE9178;">"Admin"</span><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#D4D4D4;"> );</span></span> +<span class="line"><span style="color:#D4D4D4;">});</span></span></code></pre></div><p>Example of the contents of the security overview page: <img src="`+o+'" alt=""></p><h2 id="testing-your-security" tabindex="-1">Testing Your Security <a class="header-anchor" href="#testing-your-security" aria-label="Permalink to "Testing Your Security"">​</a></h2><p>If your application has complex security requirements and/or sensitive data that needs to be protected, you are encouraged to invest time into creating a set of automated tests to ensure that it is working how you expect.</p><p>The most comprehensive way to do this is to build a suite of integration tests using <a href="https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests" target="_blank" rel="noreferrer">Microsoft's in-memory test server infrastructure</a>. Follow Microsoft's documentation to set up a test project, and then write tests against your API endpoints. You will want to <a href="https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests#customize-webapplicationfactory" target="_blank" rel="noreferrer">substitute your Entity Framework database provider</a> with an in-memory Sqlite instance, and add a <a href="https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-7.0#mock-authentication" target="_blank" rel="noreferrer">mock authentication handler</a> to simulate authentication (we're mainly focused on testing <em>authorization</em>, not <em>authentication</em>).</p>',107),p=[t];function r(c,D,i,y,d,C){return e(),a("div",null,p)}const m=s(l,[["render",r]]);export{h as __pageData,m as default}; diff --git a/assets/topics_security.md.FXyI2mu5.lean.js b/assets/topics_security.md.FXyI2mu5.lean.js new file mode 100644 index 000000000..f131bbd94 --- /dev/null +++ b/assets/topics_security.md.FXyI2mu5.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as e,a7 as n}from"./chunks/framework.Be4oCqIX.js";const o="/Coalesce/assets/security-overview.BO07VrRB.jpg",h=JSON.parse('{"title":"Security","description":"","frontmatter":{},"headers":[],"relativePath":"topics/security.md","filePath":"topics/security.md"}'),l={name:"topics/security.md"},t=n("",107),p=[t];function r(c,D,i,y,d,C){return e(),a("div",null,p)}const m=s(l,[["render",r]]);export{h as __pageData,m as default}; diff --git a/assets/topics_startup.md.Ds1vbwaO.js b/assets/topics_startup.md.Ds1vbwaO.js new file mode 100644 index 000000000..994618e62 --- /dev/null +++ b/assets/topics_startup.md.Ds1vbwaO.js @@ -0,0 +1,28 @@ +import{_ as o,c as l,I as n,a7 as p,l as s,a,o as t,E as c}from"./chunks/framework.Be4oCqIX.js";const F=JSON.parse('{"title":"Application Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"topics/startup.md","filePath":"topics/startup.md"}'),r={name:"topics/startup.md"},D=p(`<h1 id="application-configuration" tabindex="-1">Application Configuration <a class="header-anchor" href="#application-configuration" aria-label="Permalink to "Application Configuration"">​</a></h1><p>In order for Coalesce to work in your application, you must register the needed services in your <code>Startup.cs</code> or <code>Program.cs</code>. Doing so is simple:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> ConfigureServices</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IServiceCollection</span><span style="color:#9CDCFE;"> services</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#9CDCFE;"> services</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">AddCoalesce</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">>();</span></span> +<span class="line"><span style="color:#D4D4D4;"> ...</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>This registers all the basic services that Coalesce needs in order to work with your EF DbContext. However, there are many more options available. Here's a more complete invocation of <code>AddCoalesce</code> that takes advantage of many of the options available:</p><div class="language-c#"><button title="Copy Code" class="copy"></button><span class="lang">c#</span><pre class="shiki dark-plus vp-code"><code><span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> void</span><span style="color:#DCDCAA;"> ConfigureServices</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">IServiceCollection</span><span style="color:#9CDCFE;"> services</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;">{</span></span> +<span class="line"><span style="color:#9CDCFE;"> services</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">AddCoalesce</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">builder</span><span style="color:#D4D4D4;"> => </span><span style="color:#9CDCFE;">builder</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">AddContext</span><span style="color:#D4D4D4;"><</span><span style="color:#4EC9B0;">AppDbContext</span><span style="color:#D4D4D4;">>()</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">UseDefaultDataSource</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">typeof</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">MyDataSource</span><span style="color:#D4D4D4;"><,>))</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">UseDefaultBehaviors</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">typeof</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">MyBehaviors</span><span style="color:#D4D4D4;"><,>))</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">UseTimeZone</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">TimeZoneInfo</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">FindSystemTimeZoneById</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"Pacific Standard Time"</span><span style="color:#D4D4D4;">))</span></span> +<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">Configure</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">o</span><span style="color:#D4D4D4;"> =></span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> o</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ValidateAttributesForMethods</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">// note: true is the default</span></span> +<span class="line"><span style="color:#9CDCFE;"> o</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ValidateAttributesForSaves</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">// note: true is the default</span></span> +<span class="line"><span style="color:#9CDCFE;"> o</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">DetailedExceptionMessages</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#9CDCFE;"> o</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ExceptionResponseFactory</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">ctx</span><span style="color:#D4D4D4;"> =></span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">ctx</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Exception</span><span style="color:#569CD6;"> is</span><span style="color:#4EC9B0;"> FileNotFoundException</span><span style="color:#D4D4D4;">)</span></span> +<span class="line"><span style="color:#D4D4D4;"> {</span></span> +<span class="line"><span style="color:#9CDCFE;"> ctx</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">HttpContext</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Response</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">StatusCode</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">404</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">// Optional - set a specific response code.</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#569CD6;"> new</span><span style="color:#4EC9B0;"> IntelliTect</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Coalesce</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Models</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">ApiResult</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">"File not found"</span><span style="color:#D4D4D4;">);</span></span> +<span class="line"><span style="color:#D4D4D4;"> }</span></span> +<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#569CD6;"> null</span><span style="color:#D4D4D4;">;</span></span> +<span class="line"><span style="color:#D4D4D4;"> };</span></span> +<span class="line"><span style="color:#D4D4D4;"> });</span></span> +<span class="line"><span style="color:#D4D4D4;"> );</span></span> +<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre></div><p>Available builder methods include:</p>`,6),i=s("p",null,[a("Register services needed by Coalesce to use the specified context. This is done automatically when calling the "),s("code",null,"services.AddCoalesce<AppDbContext>();"),a(" overload.")],-1),y=s("p",null,[a("Overrides the default data source used, replacing the "),s("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-data-source"},"Standard Data Source"),a(". See "),s("a",{href:"/Coalesce/modeling/model-components/data-sources.html"},"Data Sources"),a(" for more details.")],-1),d=s("p",null,[a("Overrides the default behaviors used, replacing the "),s("a",{href:"/Coalesce/modeling/model-components/behaviors.html#standard-behaviors"},"Standard Behaviors"),a(". See "),s("a",{href:"/Coalesce/modeling/model-components/behaviors.html"},"Behaviors"),a(" for more details.")],-1),C=s("p",null,"Specify a static time zone that should be used when Coalesce is performing operations on dates/times that lack timezone information. For example, when a user inputs a search term that contains only a date, Coalesce needs to know what timezone's midnight to use when performing the search.",-1),u=s("p",null,"Specify a service implementation to use to resolve the current timezone. This should be a scoped service, and will be automatically registered if it is not already. This allows retrieving timezone information on a per-request basis from HTTP headers, Cookies, or any other source.",-1),h=s("p",null,"Configure additional options for Coalesce runtime behavior. Current options include options for server-side validation, and options for exception handling. See individual members for details.",-1);function m(f,v,A,E,g,b){const e=c("Prop");return t(),l("div",null,[D,n(e,{def:"public Builder AddContext<TDbContext>()"}),i,n(e,{def:"public Builder UseDefaultDataSource(Type dataSource)"}),y,n(e,{def:"public Builder UseDefaultBehaviors(Type behaviors)"}),d,n(e,{def:"public Builder UseTimeZone(TimeZoneInfo timeZone)"}),C,n(e,{def:"public Builder UseTimeZone<ITimeZoneResolver>()"}),u,n(e,{def:"public Builder Configure(Action<CoalesceOptions> setupAction)"}),h])}const B=o(r,[["render",m]]);export{F as __pageData,B as default}; diff --git a/assets/topics_startup.md.Ds1vbwaO.lean.js b/assets/topics_startup.md.Ds1vbwaO.lean.js new file mode 100644 index 000000000..dd07429ab --- /dev/null +++ b/assets/topics_startup.md.Ds1vbwaO.lean.js @@ -0,0 +1 @@ +import{_ as o,c as l,I as n,a7 as p,l as s,a,o as t,E as c}from"./chunks/framework.Be4oCqIX.js";const F=JSON.parse('{"title":"Application Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"topics/startup.md","filePath":"topics/startup.md"}'),r={name:"topics/startup.md"},D=p("",6),i=s("p",null,[a("Register services needed by Coalesce to use the specified context. This is done automatically when calling the "),s("code",null,"services.AddCoalesce<AppDbContext>();"),a(" overload.")],-1),y=s("p",null,[a("Overrides the default data source used, replacing the "),s("a",{href:"/Coalesce/modeling/model-components/data-sources.html#standard-data-source"},"Standard Data Source"),a(". See "),s("a",{href:"/Coalesce/modeling/model-components/data-sources.html"},"Data Sources"),a(" for more details.")],-1),d=s("p",null,[a("Overrides the default behaviors used, replacing the "),s("a",{href:"/Coalesce/modeling/model-components/behaviors.html#standard-behaviors"},"Standard Behaviors"),a(". See "),s("a",{href:"/Coalesce/modeling/model-components/behaviors.html"},"Behaviors"),a(" for more details.")],-1),C=s("p",null,"Specify a static time zone that should be used when Coalesce is performing operations on dates/times that lack timezone information. For example, when a user inputs a search term that contains only a date, Coalesce needs to know what timezone's midnight to use when performing the search.",-1),u=s("p",null,"Specify a service implementation to use to resolve the current timezone. This should be a scoped service, and will be automatically registered if it is not already. This allows retrieving timezone information on a per-request basis from HTTP headers, Cookies, or any other source.",-1),h=s("p",null,"Configure additional options for Coalesce runtime behavior. Current options include options for server-side validation, and options for exception handling. See individual members for details.",-1);function m(f,v,A,E,g,b){const e=c("Prop");return t(),l("div",null,[D,n(e,{def:"public Builder AddContext<TDbContext>()"}),i,n(e,{def:"public Builder UseDefaultDataSource(Type dataSource)"}),y,n(e,{def:"public Builder UseDefaultBehaviors(Type behaviors)"}),d,n(e,{def:"public Builder UseTimeZone(TimeZoneInfo timeZone)"}),C,n(e,{def:"public Builder UseTimeZone<ITimeZoneResolver>()"}),u,n(e,{def:"public Builder Configure(Action<CoalesceOptions> setupAction)"}),h])}const B=o(r,[["render",m]]);export{F as __pageData,B as default}; diff --git a/coalesce-horizontal-color.svg b/coalesce-horizontal-color.svg new file mode 100644 index 000000000..fb32d410d --- /dev/null +++ b/coalesce-horizontal-color.svg @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 496.32 135.76" style="enable-background:new 0 0 496.32 135.76;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#003F72;} + .st1{fill:#0076B5;} + .st2{fill:#F3681C;} + .st3{fill:#009AE2;} +</style> +<g> + <g> + <path class="st0" d="M179.62,79.16c-0.51,7.06-3.12,12.62-7.82,16.68c-4.7,4.06-10.9,6.08-18.6,6.08c-8.42,0-15.03-2.83-19.86-8.5 + c-4.82-5.66-7.23-13.44-7.23-23.33v-4.01c0-6.31,1.11-11.87,3.34-16.68c2.22-4.81,5.4-8.5,9.53-11.07 + c4.13-2.57,8.93-3.85,14.4-3.85c7.57,0,13.67,2.03,18.3,6.09c4.63,4.06,7.3,9.75,8.02,17.09h-13.53 + c-0.33-4.24-1.51-7.31-3.54-9.22c-2.03-1.91-5.12-2.86-9.26-2.86c-4.51,0-7.88,1.61-10.12,4.85c-2.24,3.23-3.39,8.24-3.45,15.03 + v4.96c0,7.09,1.07,12.28,3.22,15.55c2.15,3.28,5.54,4.91,10.16,4.91c4.18,0,7.3-0.95,9.36-2.86c2.06-1.91,3.24-4.86,3.54-8.86 + H179.62z"/> + <path class="st0" d="M185.62,76.19c0-4.84,0.93-9.15,2.8-12.94c1.86-3.79,4.55-6.72,8.05-8.79c3.5-2.07,7.56-3.11,12.19-3.11 + c6.58,0,11.95,2.01,16.12,6.04c4.16,4.03,6.48,9.5,6.96,16.41l0.09,3.34c0,7.48-2.09,13.49-6.27,18.01 + c-4.18,4.52-9.78,6.78-16.81,6.78c-7.03,0-12.64-2.25-16.84-6.76c-4.19-4.51-6.29-10.64-6.29-18.39V76.19z M198.65,77.11 + c0,4.64,0.87,8.18,2.62,10.63c1.74,2.45,4.24,3.68,7.48,3.68c3.16,0,5.62-1.21,7.4-3.64c1.77-2.42,2.66-6.3,2.66-11.62 + c0-4.54-0.89-8.07-2.66-10.56c-1.78-2.5-4.27-3.75-7.48-3.75c-3.19,0-5.65,1.24-7.39,3.73C199.52,68.06,198.65,71.91,198.65,77.11 + z"/> + <path class="st0" d="M266.27,101.03c-0.6-1.17-1.04-2.63-1.3-4.37c-3.16,3.51-7.26,5.27-12.31,5.27c-4.78,0-8.74-1.38-11.88-4.15 + c-3.14-2.77-4.71-6.25-4.71-10.46c0-5.17,1.91-9.13,5.75-11.9c3.83-2.77,9.37-4.16,16.61-4.19h5.99v-2.8 + c0-2.26-0.58-4.06-1.74-5.41c-1.16-1.35-2.98-2.03-5.47-2.03c-2.2,0-3.92,0.53-5.16,1.58c-1.25,1.05-1.87,2.5-1.87,4.33h-13.03 + c0-2.82,0.87-5.44,2.62-7.85c1.74-2.4,4.21-4.29,7.39-5.66c3.19-1.37,6.76-2.05,10.73-2.05c6.01,0,10.78,1.51,14.31,4.53 + c3.53,3.02,5.3,7.27,5.3,12.73v21.14c0.03,4.63,0.68,8.13,1.94,10.51v0.77H266.27z M255.5,91.97c1.92,0,3.7-0.43,5.32-1.28 + s2.82-2.01,3.61-3.45v-8.39h-4.87c-6.52,0-9.99,2.26-10.41,6.76l-0.05,0.77c0,1.62,0.57,2.96,1.72,4.01 + C251.95,91.44,253.51,91.97,255.5,91.97z"/> + <path class="st0" d="M299.4,101.03h-13.07V31.78h13.07V101.03z"/> + <path class="st0" d="M330.74,101.93c-7.15,0-12.98-2.19-17.47-6.58c-4.49-4.39-6.74-10.23-6.74-17.54v-1.26 + c0-4.9,0.95-9.28,2.84-13.14c1.89-3.86,4.57-6.84,8.04-8.93s7.43-3.13,11.88-3.13c6.67,0,11.92,2.1,15.75,6.31 + c3.83,4.21,5.75,10.17,5.75,17.89v5.32h-31.06c0.42,3.19,1.69,5.74,3.81,7.66c2.12,1.92,4.8,2.88,8.05,2.88 + c5.02,0,8.94-1.82,11.77-5.45l6.4,7.17c-1.95,2.77-4.6,4.92-7.94,6.47S334.79,101.93,330.74,101.93z M329.25,61.85 + c-2.58,0-4.68,0.88-6.29,2.63c-1.61,1.75-2.64,4.26-3.09,7.52h18.12v-1.04c-0.06-2.9-0.84-5.14-2.34-6.72 + C334.14,62.65,332.01,61.85,329.25,61.85z"/> + <path class="st0" d="M384.61,87.55c0-1.59-0.79-2.85-2.36-3.76c-1.58-0.92-4.11-1.74-7.6-2.46c-11.6-2.43-17.4-7.37-17.4-14.79 + c0-4.33,1.8-7.94,5.39-10.84c3.59-2.9,8.29-4.35,14.09-4.35c6.19,0,11.14,1.46,14.85,4.37c3.71,2.91,5.57,6.7,5.57,11.36h-13.03 + c0-1.86-0.6-3.4-1.8-4.62c-1.2-1.22-3.08-1.82-5.63-1.82c-2.2,0-3.89,0.5-5.09,1.49c-1.2,0.99-1.8,2.26-1.8,3.79 + c0,1.44,0.68,2.61,2.05,3.49c1.37,0.89,3.68,1.66,6.92,2.3c3.25,0.65,5.98,1.37,8.2,2.19c6.88,2.52,10.32,6.9,10.32,13.12 + c0,4.45-1.91,8.04-5.72,10.8c-3.82,2.75-8.75,4.12-14.79,4.12c-4.09,0-7.72-0.73-10.89-2.19c-3.17-1.46-5.66-3.45-7.46-5.99 + c-1.8-2.54-2.71-5.28-2.71-8.23h12.35c0.12,2.31,0.98,4.09,2.57,5.32s3.73,1.85,6.4,1.85c2.49,0,4.38-0.47,5.66-1.42 + C383.97,90.32,384.61,89.08,384.61,87.55z"/> + <path class="st0" d="M425.95,91.43c2.4,0,4.36-0.66,5.86-1.98c1.5-1.32,2.28-3.08,2.34-5.28h12.21c-0.03,3.31-0.93,6.34-2.7,9.08 + c-1.78,2.75-4.2,4.88-7.28,6.4c-3.08,1.52-6.48,2.28-10.21,2.28c-6.97,0-12.47-2.22-16.5-6.65c-4.03-4.43-6.04-10.56-6.04-18.37 + v-0.86c0-7.51,2-13.51,6-17.99s9.48-6.72,16.45-6.72c6.1,0,10.99,1.74,14.67,5.21c3.68,3.47,5.55,8.09,5.61,13.86h-12.21 + c-0.06-2.54-0.84-4.6-2.34-6.19c-1.5-1.59-3.49-2.38-5.95-2.38c-3.04,0-5.33,1.11-6.88,3.32c-1.55,2.21-2.32,5.8-2.32,10.77v1.35 + c0,5.03,0.77,8.64,2.3,10.84C420.49,90.33,422.82,91.43,425.95,91.43z"/> + <path class="st0" d="M476.26,101.93c-7.15,0-12.98-2.19-17.47-6.58c-4.49-4.39-6.74-10.23-6.74-17.54v-1.26 + c0-4.9,0.95-9.28,2.84-13.14c1.89-3.86,4.57-6.84,8.04-8.93s7.43-3.13,11.88-3.13c6.67,0,11.92,2.1,15.75,6.31 + c3.83,4.21,5.75,10.17,5.75,17.89v5.32h-31.06c0.42,3.19,1.69,5.74,3.81,7.66c2.12,1.92,4.8,2.88,8.05,2.88 + c5.02,0,8.94-1.82,11.77-5.45l6.4,7.17c-1.95,2.77-4.6,4.92-7.94,6.47S480.31,101.93,476.26,101.93z M474.77,61.85 + c-2.58,0-4.68,0.88-6.29,2.63c-1.61,1.75-2.64,4.26-3.09,7.52h18.12v-1.04c-0.06-2.9-0.84-5.14-2.34-6.72 + C479.66,62.65,477.53,61.85,474.77,61.85z"/> + </g> + <g> + <g> + <path class="st1" d="M116.4,100.35L116.4,100.35L116.4,100.35c-4.08,6.06-9.28,11.34-15.41,15.56 + c-9.81,6.75-21.32,10.32-33.28,10.32c-32.08,0-58.18-26.18-58.18-58.35c0-32.18,26.1-58.35,58.18-58.35 + c11.97,0,23.48,3.57,33.28,10.32c6.26,4.31,11.55,9.72,15.66,15.95l8.97-3.68C120.72,24.21,114.2,17.37,106.4,12 + C95,4.15,81.62,0,67.71,0C49.56,0,32.53,7.07,19.76,19.91C7.02,32.72,0,49.75,0,67.88s7.02,35.16,19.76,47.97 + c12.77,12.84,29.8,19.91,47.95,19.91c13.91,0,27.28-4.15,38.69-12c7.67-5.28,14.1-11.98,18.98-19.72L116.4,100.35z"/> + </g> + <g> + <path class="st2" d="M130.91,42.85"/> + </g> + <g> + <path class="st3" d="M87.93,88.67c-5.22,4.93-12.15,7.74-19.54,7.74c-15.74,0-28.54-12.8-28.54-28.54 + c0-15.74,12.8-28.54,28.54-28.54c7.57,0,14.65,2.95,19.92,8.1l21.24-8.71c-3.39-4.79-7.61-8.97-12.51-12.36 + c-8.44-5.83-18.34-8.92-28.64-8.92c-27.81,0-50.43,22.62-50.43,50.43s22.62,50.43,50.43,50.43c10.3,0,20.2-3.08,28.64-8.92 + c4.77-3.3,8.89-7.34,12.23-11.96L87.93,88.67z"/> + </g> + <g> + <path class="st1" d="M87.93,88.67c-5.22,4.93-12.15,7.74-19.54,7.74c-15.74,0-28.54-12.8-28.54-28.54 + c0-6.28,2.04-12.1,5.49-16.82L27.2,38.79c-5.82,8.22-9.25,18.26-9.25,29.08c0,27.81,22.62,50.43,50.43,50.43 + c10.3,0,20.2-3.08,28.64-8.92c4.77-3.3,8.89-7.34,12.23-11.96L87.93,88.67z"/> + </g> + <g> + <path class="st3" d="M116.66,35.8l8.97-3.68C120.72,24.21,114.2,17.37,106.4,12C95,4.15,81.62,0,67.71,0 + C49.56,0,32.53,7.07,19.76,19.91c-2.83,2.85-5.39,5.91-7.64,9.14l7.98,5.33C30.63,19.36,48.05,9.53,67.71,9.53 + c11.97,0,23.48,3.57,33.28,10.32C107.26,24.16,112.55,29.57,116.66,35.8z"/> + </g> + <g> + <path class="st0" d="M116.4,100.35c-4.08,6.06-9.28,11.34-15.41,15.56c-9.81,6.75-21.32,10.32-33.28,10.32 + c-6.66,0-13.05-1.13-19.02-3.2l-2.61,9.22c6.87,2.31,14.16,3.5,21.63,3.5c13.91,0,27.28-4.15,38.69-12 + c7.67-5.28,14.1-11.98,18.98-19.72L116.4,100.35z"/> + </g> + <g> + <path class="st0" d="M87.93,88.67c-5.22,4.93-12.15,7.74-19.54,7.74c-3.72,0-7.28-0.72-10.55-2.02l-6.36,21 + c5.29,1.89,10.98,2.91,16.9,2.91c10.3,0,20.2-3.08,28.64-8.92c4.77-3.3,8.89-7.34,12.23-11.96L87.93,88.67z"/> + </g> + </g> +</g> +</svg> diff --git a/coalesce-icon-color.svg b/coalesce-icon-color.svg new file mode 100644 index 000000000..fdcfcb93b --- /dev/null +++ b/coalesce-icon-color.svg @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 358.97 372.28" style="enable-background:new 0 0 358.97 372.28;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#0176B5;} + .st1{fill:#F26A21;} + .st2{fill:#2798D4;} + .st3{fill:#184171;} +</style> +<g> + <g> + <path class="st0" d="M319.2,275.19L319.2,275.19L319.2,275.19c-11.18,16.63-25.44,31.09-42.25,42.67 + c-26.89,18.52-58.45,28.3-91.27,28.3c-87.98,0-159.55-71.78-159.55-160.02c0-88.23,71.58-160.02,159.55-160.02 + c32.82,0,64.38,9.79,91.27,28.3c17.17,11.82,31.68,26.66,42.95,43.74l24.61-10.09c-13.48-21.69-31.35-40.44-52.74-55.17 + C260.5,11.38,223.81,0,185.68,0c-49.77,0-96.47,19.39-131.5,54.6C19.24,89.72,0,136.44,0,186.14s19.24,96.42,54.18,131.54 + c35.03,35.21,81.73,54.6,131.5,54.6c38.13,0,74.82-11.38,106.09-32.91c21.04-14.48,38.66-32.86,52.06-54.09L319.2,275.19z"/> + <path class="st1" d="M358.97,117.52"/> + <path class="st2" d="M241.11,243.16c-14.33,13.51-33.31,21.22-53.59,21.22c-43.16,0-78.27-35.11-78.27-78.27 + c0-43.16,35.11-78.27,78.27-78.27c20.77,0,40.18,8.09,54.62,22.22l58.24-23.88c-9.3-13.13-20.85-24.6-34.32-33.91 + c-23.15-16-50.31-24.46-78.54-24.46c-76.26,0-138.3,62.04-138.3,138.29s62.04,138.29,138.3,138.29c28.24,0,55.39-8.46,78.54-24.45 + c13.09-9.04,24.38-20.14,33.54-32.81L241.11,243.16z"/> + <path class="st0" d="M241.11,243.16c-14.33,13.51-33.31,21.22-53.59,21.22c-43.16,0-78.27-35.11-78.27-78.27 + c0-17.23,5.59-33.17,15.06-46.11l-49.72-33.64c-15.97,22.55-25.37,50.07-25.37,79.75c0,76.26,62.04,138.29,138.3,138.29 + c28.24,0,55.39-8.46,78.54-24.45c13.09-9.04,24.37-20.14,33.53-32.81L241.11,243.16z"/> + <path class="st2" d="M319.91,98.17l24.61-10.09c-13.48-21.69-31.35-40.44-52.74-55.17C260.5,11.38,223.81,0,185.68,0 + c-49.77,0-96.47,19.39-131.5,54.6c-7.77,7.81-14.77,16.2-20.95,25.07L55.1,94.28C84,53.09,131.76,26.12,185.68,26.12 + c32.82,0,64.38,9.79,91.27,28.3C294.12,66.25,308.63,81.09,319.91,98.17z"/> + <path class="st3" d="M319.2,275.19c-11.18,16.63-25.44,31.09-42.25,42.67c-26.89,18.52-58.45,28.3-91.27,28.3 + c-18.25,0-35.8-3.09-52.15-8.78l-7.16,25.29c18.85,6.32,38.82,9.61,59.31,9.61c38.13,0,74.82-11.38,106.09-32.91 + c21.04-14.48,38.66-32.86,52.06-54.09L319.2,275.19z"/> + <path class="st3" d="M241.11,243.16c-14.33,13.51-33.31,21.22-53.59,21.22c-10.21,0-19.97-1.97-28.92-5.54l-17.43,57.57 + c14.5,5.17,30.1,7.99,46.36,7.99c28.24,0,55.39-8.46,78.54-24.45c13.09-9.04,24.37-20.14,33.53-32.81L241.11,243.16z"/> + </g> +</g> +</svg> diff --git a/concepts/include-tree.html b/concepts/include-tree.html new file mode 100644 index 000000000..6f72e7409 --- /dev/null +++ b/concepts/include-tree.html @@ -0,0 +1,135 @@ +<!DOCTYPE html> +<html lang="en-US" dir="ltr"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width,initial-scale=1"> + <title>Include Tree | Coalesce + + + + + + + + + + + + + + +
Skip to content

Include Tree

When Coalesce maps from the your POCO objects that are returned from EF Core queries, it will follow a structure called an IncludeTree to determine what relationships to follow and how deep to go in re-creating that structure in the mapped DTOs.

Purpose

Without an IncludeTree present, Coalesce will map the entire object graph that is reachable from the root object. This can often spiral out of control if there aren't any rules defining how far to go while turning this graph into a tree.

For example, suppose you had the following model with a many-to-many relationship (key properties omitted for brevity):

c#
public class Employee
+{
+    [ManyToMany("Projects")]
+    public ICollection<EmployeeProject> EmployeeProjects { get; set; }
+            
+    public static IQueryable<Employee> WithProjectsAndMembers(AppDbContext db, ClaimsPrincipal user)
+    {
+        // Load all projects of an employee, as well as all members of those projects.
+        return db.Employees
+            .Include(e => e.EmployeeProjects)
+                .ThenInclude(ep => ep.Project.EmployeeProjects)
+                .ThenInclude(ep => ep.Employee);
+    }
+}
+
+public class Project
+{
+    [ManyToMany("Employees")]
+    public ICollection<EmployeeProject> EmployeeProjects { get; set; }
+}
+
+public class EmployeeProject
+{
+    public Employee Employee { get; set; }
+    public Project Project { get; set; }
+}

Now, imagine that you have five employees and five projects, with every employee being a member of every project (i.e. there are 25 EmployeeProject rows).

Your client code makes a call to the Coalesce-generated API to load Employee #1 using the custom data source:

ts
import { Employee } from '@/viewmodels.g'
+import { EmployeeViewModel } from '@/viewmodels.g'
+
+var employee = new EmployeeViewModel();
+employee.$dataSource = new Employee.DataSources.WithProjectsAndMembers();
+employee.$load(1);

If you're already familiar with the fact that an IncludeTree is implicitly created in this scenario, then imagine for a moment that this is not the case (if you're not familiar with this fact, then keep reading!).

After Coalesce has called your Data Sources and evaluated the EF IQueryable returned, there are now 35 objects loaded into the current DbContext being used to handle this request - the 5 employees, 5 projects, and 25 relationships.

To map these objects to DTOs, we start with the root (employee #1) and expand outward from there until the entire object graph has been faithfully re-created with DTO objects, including all navigation properties.

The root DTO object (employee #1) then eventually is passed to the JSON serializer by ASP.NET Core to formulate the response to the request. As the object is serialized to JSON, the only objects that are not serialized are those that were already serialized as an ancestor of itself. What this ultimately means is that the structure of the serialized JSON with our example scenario ends up following a pattern like this (the vast majority of items have been omitted):

Employee#1
+    EmployeeProject#1
+        Project#1
+            EmployeeProject#6
+                Employee#2
+                    EmployeeProject#7
+                        Project#2
+                            ... continues down through all remaining employees and projects.
+                    ...
+            EmployeeProject#11
+                Employee#3
+            ...
+    EmployeeProject#2
+        Project#2
+    ...

See how the structure includes the EmployeeProjects of Employee#2? We didn't write our custom data source calls to .Include in such a way that indicated that we wanted the root employee, their projects, the employees of those projects, and then the projects of those employees. But, because the JSON serializer blindly follows the object graph, that's what gets serialized. It turns out that the depth of the tree increases on the order of O(n^2), and the total size increases on the order of Ω(n!).

This is where IncludeTree comes in. When you use a custom data source like we did above, Coalesce automatically captures the structure of the calls to .Include and .ThenInclude, and uses this to perform trimming during creation of the DTO objects.

With an IncludeTree in place, our new serialized structure looks like this:

Employee#1
+    EmployeeProject#1
+        Project#1
+            EmployeeProject#6
+                Employee#2
+            EmployeeProject#11
+                Employee#3
+            ...
+    EmployeeProject#2
+        Project#2
+    ...

No more extra data trailing off the end of the projects' employees!

Usage

Custom Data Sources

In most cases, you don't have to worry about creating an IncludeTree. When using the Standard Data Source (or a derivative), the structure of the .Include and .ThenInclude calls will be captured automatically and be turned into an IncludeTree.

However, there are sometimes cases where you perform complex loading in these methods that involves loading data into the current DbContext outside of the IQueryable that is returned from the method. The most common situation for this is needing to conditionally load related data - for example, load all children of an object where the child has a certain value of a Status property.

In these cases, Coalesce provides a pair of extension methods, .IncludedSeparately and .ThenIncluded, that can be used to merge in the structure of the data that was loaded separately from the main IQueryable.

For example:

c#
public override IQueryable<Employee> GetQuery()
+{
+    // Load all projects that are complete, and their members, into the db context.
+    Db.Projects
+        .Include(p => p.EmployeeProjects).ThenInclude(ep => ep.Employee)
+        .Where(p => p.Status == ProjectStatus.Complete)
+        .Load();
+
+    // Return an employee query, and notify Coalesce that we loaded the projects in a different query.
+    return Db.Employees
+        .IncludedSeparately(e => e.EmployeeProjects)
+        .ThenIncluded(ep => ep.Project.EmployeeProjects)
+        .ThenIncluded(ep => ep.Employee);
+}

You can also override the GetIncludeTree method of the Standard Data Source to achieve the same result:

c#
public override IncludeTree GetIncludeTree(IQueryable<T> query, IDataSourceParameters parameters) => Db
+    .Employees
+    .IncludedSeparately(e => e.EmployeeProjects)
+    .ThenIncluded(ep => ep.Project.EmployeeProjects)
+    .ThenIncluded(ep => ep.Employee)
+    .GetIncludeTree();

Model Methods

If you have custom methods that return object data, you may also want to control the structure of the returned data when it is serialized. Fortunately, you can also use IncludeTree in these situations. Without an IncludeTree, the entire object graph is traversed and serialized without limit.

TIP

An IncludeTree can be obtained from any IQueryable by calling the GetIncludeTree extension method (using IntelliTect.Coalesce.Helpers.IncludeTree).

In situations where your root object isn't on your DbContext (see External Types), you can use Enumerable.Empty<MyNonDbClass>().AsQueryable() to get an IQueryable to start from. When you do this, you must use IncludedSeparately - the regular EF Include method won't work without a DbSet.

See the following two techniques for returning an IncludeTree from a custom method:

ItemResult.IncludeTree

The easiest and most versatile way to return an IncludeTree from a custom method is to make that method return an ItemResult<T>, and then set the IncludeTree property of the ItemResult object. For example:

c#
public class Employee
+{
+    public async Task<ItemResult<ICollection<Employee>>> GetChainOfCommand(AppDbContext db)
+    {
+        IQueryable<Employee> query = db.Employees
+            .Include(e => e.Supervisor);
+
+        var ret = new List<Employee>();
+        var current = this;
+        while (current.Supervisor != null)
+        {
+            ret.Push(current);
+            current = await query.FirstOrDefaultAsync(e => e.EmployeeId == current.SupervisorId);
+        }
+
+        return new(ret, includeTree: query.GetIncludeTree());
+    }
+}

Out Parameter

To tell Coalesce about the structure of the data returned from a model method, you can also add out IncludeTree includeTree to the signature of the method. Inside your method, set includeTree to an instance of an IncludeTree. However, this approach cannot be used on async methods, since out parameters are not allowed on async methods in C#. For example:

c#
public class Employee
+{
+    public ICollection<Employee> GetChainOfCommand(AppDbContext db, out IncludeTree includeTree)
+    {
+        IQueryable<Employee> query = db.Employees
+            .Include(e => e.Supervisor);
+
+        var ret = new List<Employee>();
+        var current = this;
+        while (current.Supervisor != null)
+        {
+            ret.Push(current);
+            current = query.FirstOrDefault(e => e.EmployeeId == current.SupervisorId);
+        }
+
+        includeTree = query.GetIncludeTree();
+
+        return ret;
+    }
+}

External Type Caveats

One important point remains regarding IncludeTree - it is not used to control the serialization of objects which are not mapped to the database, known as External Types. External Types are always put into the DTOs when encountered (unless otherwise prevented by [DtoIncludes] & [DtoExcludes] or Security Attributes), with the assumption that because these objects are created by you (as opposed to Entity Framework), you are responsible for preventing any undesired circular references.

By not filtering unmapped properties, you as the developer don't need to account for them in every place throughout your application where they appear - instead, they 'just work' and show up on the client as expected.

Note also that this statement does not apply to database-mapped objects that hang off of unmapped objects - any time a database-mapped object appears, it will be controlled by your include tree. If no include tree is present (because nothing was specified for the unmapped property), these mapped objects hanging off of unmapped objects will be serialized freely and with all circular references, unless you include some calls to .IncludedSeparately(m => m.MyUnmappedProperty.MyMappedProperty) to limit those objects down.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/concepts/includes.html b/concepts/includes.html new file mode 100644 index 000000000..d399396cd --- /dev/null +++ b/concepts/includes.html @@ -0,0 +1,75 @@ + + + + + + Includes String | Coalesce + + + + + + + + + + + + + + +
Skip to content

Includes String

Coalesce provides a number of extension points for loading & serialization which make use of a concept called an "includes string" (also referred to as "include string" or just "includes").

Includes String

The includes string is simply a string which can be set to any arbitrary value. It is passed from the client to the server in order to customize data loading and serialization. It can be set on both the TypeScript ViewModels and the ListViewModels.

ts
import { PersonViewModel, PersonListViewModel } from '@/viewmodels.g'
+
+var person = new PersonViewModel();
+person.$includes = "details";
+
+var personList = new PersonListViewModel();
+personList.$includes = "details";

The default value (i.e. no action) is the empty string.

Special Values

There are a few values of includes that are either set by default in the auto-generated views, or otherwise have special meaning:

ValueDescription
'none'Setting includes to none suppresses the Default Loading Behavior provided by the Standard Data Source - The resulting data will be the requested object (or list of objects) and nothing more.
'admin-list'Used when loading a list of objects in the Vue admin list page.
'admin-editor'Used when loading an object in the Vue admin editor component.
'Editor'Used when loading an object in the generated Knockout CreateEdit views.
'<ModelName>ListGen'Used when loading a list of objects in the generated Knockout Table and Cards views. For example, PersonListGen

DtoIncludes & DtoExcludes

Main document: [DtoIncludes] & [DtoExcludes].

There are two C# attributes, DtoIncludes and DtoExcludes, that can be used to annotate your data model in order to customize what data gets put into the DTOs and ultimately serialized to JSON and sent out to the client.

When the database entries are returned to the client they will be trimmed based on the requested includes string and the values in DtoExcludes and DtoIncludes.

DANGER

These attributes are not security attributes - consumers of your application's API can set the includes string to any value when making a request.

Do not use them to keep certain data private - use the Security Attributes family of attributes for that.

It is important to note that the value of the includes string will match against these attributes on any of your models that appears in the object graph being mapped to DTOs - it is not limited only to the model type of the root object.

Important

DtoIncludes does not ensure that specific data will be loaded from the database. It only permits what is already loaded into the current EF DbContext to be returned from the API. See Data Sources to learn how to control what data gets loaded from the database.

Example Usage

Server code:

c#
public class Person
+{
+    // Don't include CreatedBy when editing - will be included for all other views
+    [DtoExcludes("Editor")]
+    public AppUser CreatedBy { get; set; }
+
+    // Only include the Person's Department when `includes == "details"` on the TypeScript ViewModel.
+    [DtoIncludes("details")]
+    public Department Department { get; set; }
+
+    // LastName will be included in all views
+    public string LastName { get; set; }
+}
+
+public class Department
+{
+    [DtoIncludes("details")]
+    public ICollection<Person> People { get; set; }
+}

Client code:

ts
import { PersonListViewModel } from '@/viewmodels.g'
+
+const personList = new PersonListViewModel();
+personList.$includes = "Editor";
+await personList.$load();
+// Objects in personList.$items will not contain CreatedBy nor Department objects.
+
+const personList2 = new PersonListViewModel();
+personList2.$includes = "details";
+await personList.$load();
+// Objects in personList2.items will be allowed to contain both CreatedBy and Department objects. 
+// Department will be allowed to include its other Person objects.

Properties

// Also settable via constructor parameter #1
+public string ContentViews { get; set; }

A comma-delimited list of values of includes on which to operate.

For DtoIncludes, this will be the values of includes for which this property will be allowed to be serialized and sent to the client.

For DtoExcludes, this will be the values of includes for which this property will not be serialized and sent to the client.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/ef-logo.svg b/ef-logo.svg new file mode 100644 index 000000000..c6fa67bbc --- /dev/null +++ b/ef-logo.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 000000000..72230b456 Binary files /dev/null and b/favicon.ico differ diff --git a/hashmap.json b/hashmap.json new file mode 100644 index 000000000..1f95cb988 --- /dev/null +++ b/hashmap.json @@ -0,0 +1 @@ +{"stacks_vue_coalesce-vue-vuetify_components_c-list-filters.md":"CfJw1bmc","modeling_model-components_attributes_load-from-data-source.md":"Dv6-2Hym","history.md":"DvbsYBZt","stacks_vue_coalesce-vue-vuetify_components_c-display.md":"40__qAFd","modeling_model-components_attributes.md":"B5unI9Yv","stacks_vue_getting-started.md":"CsGY0Ojn","stacks_vue_coalesce-vue-vuetify_components_c-datetime-picker.md":"CEz5y16z","stacks_vue_coalesce-vue-vuetify_overview.md":"DVTM1ZpW","modeling_model-components_attributes_controller-action.md":"DXjXwMYh","index.md":"gWv-4Axo","stacks_vue_coalesce-vue-vuetify_components_c-list-page.md":"BzwX42JE","stacks_vue_coalesce-vue-vuetify_components_c-list-pagination.md":"DDqx2UyA","stacks_vue_coalesce-vue-vuetify_components_c-select-values.md":"L-eFs33j","stacks_vue_layers_metadata.md":"DW2muex8","modeling_model-components_attributes_create-controller.md":"CFTGXpG6","modeling_model-types_entities.md":"BEoDTH5o","stacks_vue_layers_api-clients.md":"CClYP9-n","stacks_vue_coalesce-vue-vuetify_components_c-list-range-display.md":"BC27qosh","modeling_model-types_external-types.md":"DW99dR-e","stacks_agnostic_dtos.md":"BF2vCqh3","stacks_agnostic_generation.md":"BWKL3slG","stacks_disambiguation_external-view-model.md":"DAw1p-qQ","modeling_model-components_attributes_controller.md":"CZcJPWfz","modeling_model-components_attributes_inject.md":"B9bthKFm","stacks_disambiguation_view-model.md":"CzBeA1Ds","modeling_model-components_attributes_list-text.md":"Px-9u6YU","modeling_model-types_dtos.md":"DTDoLnze","stacks_vue_coalesce-vue-vuetify_components_c-select-string-value.md":"siH2saaT","modeling_model-components_attributes_dto-includes-excludes.md":"Dd89hsVh","stacks_vue_coalesce-vue-vuetify_components_c-select-many-to-many.md":"DSdWGTti","stacks_ko_client_model-config.md":"BuytGqN2","modeling_model-components_properties.md":"CIU0sEVx","modeling_model-components_attributes_execute.md":"BdJBAyrr","stacks_vue_coalesce-vue-vuetify_components_c-select.md":"DQkXRM0W","stacks_agnostic_getting-started-modeling.md":"C3weGRHD","modeling_model-components_attributes_coalesce.md":"iDTpVbk-","stacks_ko_client_list-view-model.md":"BDLFsClf","stacks_ko_client_methods.md":"rVDJ_aT5","modeling_model-types_standalone-entities.md":"dEM9wcnV","stacks_ko_client_view-model.md":"ZI6fgw2k","concepts_include-tree.md":"BXieZTN4","stacks_vue_coalesce-vue-vuetify_components_c-list-page-size.md":"wJ5LwbBH","modeling_model-components_attributes_select-filter.md":"BUJLRc9i","modeling_model-types_services.md":"B4VMmBhF","concepts_includes.md":"Dnj1ImVb","modeling_model-components_attributes_internal-use.md":"gmzAsQ0e","stacks_vue_coalesce-vue-vuetify_components_c-admin-editor.md":"DWk33QEa","stacks_vue_layers_models.md":"DB6_7cJd","modeling_model-components_attributes_security-attribute.md":"DhnyKpJ3","stacks_vue_coalesce-vue-vuetify_components_c-admin-methods.md":"IVuyGF-G","stacks_vue_coalesce-vue-vuetify_components_c-admin-display.md":"C7xZ7lO2","stacks_ko_client_external-view-model.md":"DmCJfjvS","introduction.md":"BE8ZZqMg","stacks_vue_coalesce-vue-vuetify_components_c-admin-table-page.md":"D9I1rd0Z","modeling_model-components_attributes_default-order-by.md":"D-E4Vwd5","stacks_vue_coalesce-vue-vuetify_components_c-input.md":"Qgah7Otc","stacks_vue_coalesce-vue-vuetify_components_c-table.md":"B6phKUDK","stacks_ko_overview.md":"BMODd3xy","modeling_model-components_behaviors.md":"C6zcbZxr","modeling_model-components_data-sources.md":"BYHdRZTD","stacks_disambiguation_list-view-model.md":"DmMly1hf","stacks_ko_getting-started.md":"G_8elEmE","modeling_model-components_attributes_date-type.md":"Bj8PZnZT","stacks_ko_client_bindings.md":"B_vNJUNj","stacks_vue_coalesce-vue-vuetify_components_c-admin-table.md":"D2X20ug6","modeling_model-components_attributes_search.md":"Bfjkh84A","modeling_model-components_attributes_hidden.md":"DXMeApNl","stacks_vue_coalesce-vue-vuetify_components_c-loader-status.md":"CTe0iEId","stacks_vue_coalesce-vue-vuetify_components_c-admin-audit-log-page.md":"CLAof-8y","modeling_model-components_attributes_restrict.md":"ByU_F_Nf","modeling_model-components_attributes_typescript-partial.md":"BmqcZBS2","stacks_vue_coalesce-vue-vuetify_components_c-admin-method.md":"Dk5B7o9j","stacks_vue_layers_viewmodels.md":"D8D3h0Ky","stacks_vue_coalesce-vue-vuetify_components_c-admin-editor-page.md":"Dyg34jax","stacks_vue_coalesce-vue-vuetify_components_c-admin-table-toolbar.md":"Bp-fgShc","modeling_model-components_methods.md":"Bmp5l49a","modeling_model-components_attributes_many-to-many.md":"BkQD-eVo","stacks_vue_overview.md":"D1EN1jE9","topics_coalesce-json.md":"BLoLFmSK","modeling_model-components_attributes_client-validation.md":"ChVi5Qho","topics_audit-logging.md":"C-9aEmjW","topics_startup.md":"Ds1vbwaO","stacks_vue_vue2-to-vue3.md":"C28cFAqO","topics_security.md":"FXyI2mu5"} diff --git a/history.html b/history.html new file mode 100644 index 000000000..fc4d72228 --- /dev/null +++ b/history.html @@ -0,0 +1,25 @@ + + + + + + Welcome to Coalesce's documentation! | Coalesce + + + + + + + + + + + + + + +
Skip to content

Welcome to Coalesce's documentation!

Coalesce is a framework based on ASP.NET Core that makes rapidly building awesome websites much easier. A project that would take a 3 months to complete now takes 1 month. We built this because we got tired of writing all the boiler plate code that is necessary to make amazing sites.

It does this by allowing developers to focus on the creative aspects of the solution. The more mundane parts are generated automatically. This means that you get to focus on data modeling, business logic and front-end development. Coalesce does the plumbing.

Here is a typical workflow

  1. Build an EF Core data model with business logic
  2. Coalesce generates controllers, TypeScript view models, API and view model documentation, and admin pages/examples
  3. Build an interactive and intuitive user experience
  4. Rinse and repeat

Core Features

  • Built on the latest Microsoft ASP.NET Core
  • Easy to learn
  • TypeScript from the ground up
  • Flexibility to use MVC patterns as required
  • Admin pages for all your models are build automatically and include features like searching, sorting, and paging
  • Robust documentation for the framework
  • Automatically generated documentation for the API layer and TypeScript view models
  • Feature rich TypeScript view models that can be easily extended
  • Many extension points for customizations
  • Abstraction that doesn't require you know how everything works
  • Security and data trimming by role is built in
  • Flexibility about which data to return to the client
  • Open source

Is Coalesce for Everyone and Every Project?

Coalesce was designed to create line-of-business applications. It provides a more customizable and maintainable alternative to off the shelf customizable products like SharePoint and Sales Force.

You should consider using Coalesce if your project:

  • Is small to medium size (1-200 classes)
  • Requires an interactive user experience
  • Has data entry requirements, especially forms, tables, etc.
  • Needs to get started quickly with functional prototypes that can become production software

Design Decisions and Limitations

Coalesce is specifically designed to meet the needs of web developers. However, there are lots of ways to do this. We have made a set of decisions which we believe makes for a great development experience

  • ASP.NET Core: there is no intent to back port this to an earlier version
  • EF Core for the object relational mapper
  • Currently uses the full framework because .NET Core doesn't supported the required functionality, yet
  • Knockout for client-side data binding
  • Business logic most easily lives in the model classes
  • Coalesce is designed for relational databases. This might change in the future, but not until we have a compelling use case.

How Does it Work?

After you create your classes and the EF data context, Coalesce uses this information to generate code. When the Coalesce CLI (command line interface) is run, the following things happen:

  1. The model is validated to ensure that all the Coalesce specific requirements are met. This includes things like ensuring that all classes have a primary key assigned, validating that linked child objects have a key to their parent, etc. If issues are found, generation stops and the errors are displayed with advise to fix the issues.
  2. The core files needed for Coalesce are copied to the target project. This includes TypeScript base classes, customizable templates, and other files for extension points. Each file is copied twice, once as a file that can be modified in the project and once as an original file. This ensures that if any changes are made by the user these files Coalesce will not overwrite the your changes.
  3. The API controllers are generated. One is generated for each object. This includes methods that get a list of items, get a specific item, save an item, etc.
  4. The TypeScript view models are created. There are two view models for each object. One is a list view model which allows for getting an displaying lists of a type of object. This includes full functionality to sort, filter, search, page, etc. Additionally, a view model that represents the individual object is also created. This has all the properties and methods of the server side object. This is basically a client-side proxy object for representing and manipulating the object on the server side. These objects seamlessly use the API controllers to interact with the server.
  5. Next, the View controller are created. One is create for each model class and provide a tabular view, a card view (for mobile), an editor, and documentation.
  6. Finally, the CSHTML views for the controller are created. These are the actual CSHTML for the above controllers. These not only provide administrative view and editing features, but also serve as an example of how to use the framework

General Guidance

Here are a few things we have found helpful when using Coalesce

  • Learn and embrace the Coalesce paradigm and work with it rather than trying to do things another way.
  • Following what we refer to as the 'well worn path' is very helpful. Try to stick to standard ways to do things rather than trying to use esoteric features.
  • Keep your models as consistent and straightforward as possible. Use relational modeling best practices.
  • Remember that public methods on your class models are added to the client side view models and this makes calling business logic from the client really easy.
  • Don't be afraid to fall back to building parts of your site using traditional methods. Coalesce isn't right for everything. But, honestly, we have only done this a few times, like 3.

The Story

Why Coalesce

In 2014 several developers from IntelliTect got together to talk about our craft. There were lots of different backgrounds, but recently we had all been writing web code in C#. We discussed things we enjoyed and things we dreaded. There was an underlying commitment to providing customers with great sites at a reasonable cost. However, those things often seemed at odds because of the complexity of web development.

The Problem

For example, writing AJAX drop down lists with type ahead takes quite a bit of plumbing. Layer onto this the need for view models that allow for validation and saving as the user moves from field to field. We absolutely want want to deliver visually pleasing sites with complex UI paradigms. However, all this excellence adds up: complex view models, complex APIs, data binding, ugh.

Then there is that sinking feeling when you have to add another class to the project knowing that you are going to need to create all this yet again and you consider taking short cuts. Will there really be more than about 20 items in this table, maybe we don't need paging. Inevitably, the customer asks for admin screens. We consider giving them SQL Server Management Console and then consider using the built in ASP.NET list and editor pages. Better sense wins out and we end up spending two weeks building slick admin pages with paging, searching, sorting, etc.

The Path to the Solution

That evening we starting talking about the things we loved to do:

  • Data modeling
  • Figuring out and writing business logic
  • Working with customers
  • Making cool user interfaces
  • Creating something new and awesome

We also lists things that we didn't enjoy

  • Writing the same controller again
  • Creating a view model for a class that is similar but different from another one in the project
  • Putting sorting and paging on every admin page
  • Basically doing anything that feels repetitive or boilerplate

Over the next few months we talked about this issue, but couldn't find the right abstraction. We talked about other solutions that solve parts of the problem and considered putting together something from several pieces. Nothing felt unified and we ended up with leaky abstractions. We needed some way to divide the problem so that we could build the fun stuff and have something generate the boring stuff. This solution needed to be robust enough to satisfy our customer's needs and also be of use to developers without their needing to know the inner workings of the system.

Our Solution

What if we could build the models and business logic and have a tool build everything except the UI? There are great tools like Entity Framework for modeling and good tooling for minimizing duplicate code in user interfaces. And so Coalesce was born, a tool that would bring together the backend and front end development. '

Coalesce takes Entity Framework Core models and builds controllers, TypeScript view models, and admin pages automatically. These are built in a general way so that they can be applied to many different scenarios. There will always be pages that need to be written by hand and we intentionally don't support many edge cases in order to keep things simple. There is nothing wrong with building something by hand.

How has it Worked?

We have been using Coalesce for many of our web projects with great success. Typically, a project is taking about 1/3 the time it was taking before once developers ramp up. The ramp up on Coalesce has typically been a couple of days. We realized that in order for Coalesce to be useful it need to be intuitive to use and easy to understand. We have intentionally used simple paradigms to minimize the learning curve. There are complex bits, but hopefully, those are well hidden and documented as needed.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 000000000..48c2f48e5 --- /dev/null +++ b/index.html @@ -0,0 +1,25 @@ + + + + + + Coalesce + + + + + + + + + + + + + + +
Skip to content

Coalesce

Accelerated Web App Development

ASP.NET Core • EF Core • Vue.js • TypeScript

Coalesce

Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/intellitect-text-black.svg b/intellitect-text-black.svg new file mode 100644 index 000000000..f2236edae --- /dev/null +++ b/intellitect-text-black.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + diff --git a/intellitect-text-white.svg b/intellitect-text-white.svg new file mode 100644 index 000000000..07e2a13c3 --- /dev/null +++ b/intellitect-text-white.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + diff --git a/introduction.html b/introduction.html new file mode 100644 index 000000000..231733ea9 --- /dev/null +++ b/introduction.html @@ -0,0 +1,25 @@ + + + + + + Introduction | Coalesce + + + + + + + + + + + + + + +
Skip to content

Coalesce

Designed to help you quickly build amazing web applications, Coalesce is a rapid-development, code generation-based web application framework created by IntelliTect and built on top of:

C#, .NET, and ASP.NET Core are the backend foundation of all Coalesce applications.
Entity Framework provides the interface between your database and C# code. Coalesce will use your EF data model to generate an extensible, customizable CRUD API that will drive both your custom pages and the out-of-the-box admin pages.
TypeScript enables discovery of Coalesce features through Intellisense and provides confidence that your frontend code won't break as your application grows.
Vue.js provides data binding and interactivity for your application as it runs in a browser. Coalesce will generate TypeScript ViewModels to facilitate rapid development of custom pages.
Vite is the development and build tooling for your frontend Vue code, enabling lightning-fast single-page application development. Coalesce integrates ASP.NET Core and Vite together, streamlining local development to require nothing more than a dotnet run or a single-click launch in your IDE.

What do I do?

You are responsible for the interesting parts of your application:

  • Data Model
  • Business Logic
  • External Integrations
  • Page Content
  • Site Design
  • Custom Scripting

What is done for me?

Coalesce builds the part of your application that are mundane and monotonous to build:

  • Client side TypeScript ViewModels that mirror your data model for both lists and individual objects. Utilize these to rapidly build out your application's various pages.
  • APIs to interact with your models via endpoints like List, Get, Save, and more.
  • Out-of-the-box Vue Components for common controls like dates, selecting objects via drop downs, enums, etc. Dropdowns support searching and paging automatically.
  • A complete set of admin pages are provided, allowing you to read, create, edit, and delete data straight away without writing any additional code.

Getting Started

To get started with Coalesce, check out Getting Started with Vue.

While Knockout.js is still supported by Coalesce, it is a deprecated option and not recommended for new projects. If you do still want to choose Knockout, click here.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes.html b/modeling/model-components/attributes.html new file mode 100644 index 000000000..a496da402 --- /dev/null +++ b/modeling/model-components/attributes.html @@ -0,0 +1,25 @@ + + + + + + Attributes | Coalesce + + + + + + + + + + + + + + +
Skip to content

Attributes

Coalesce provides a number of C# attributes that can be used to decorate your model classes and their properties in order to customize behavior, appearance, security, and more. Coalesce also supports a number of annotations from System.ComponentModel.DataAnnotations.

Coalesce Attributes

Browse the list in the sidebar to learn about the attributes that Coalesce provides that can be used to decorate your models.

ComponentModel Attributes

Coalesce also supports a number of the built-in System.ComponentModel.DataAnnotations attributes and will use these to shape the generated code.

[Display]

The displayed name and description of a property, as well as the order in which it appears in generated views, can be set via the [Display] attribute. By default, properties will be displayed in the order in which they are defined in their class.

[DisplayName]

The displayed name of a property can also be set via the [DisplayName] attribute.

[Required]

Properties with [Required] will generate client validation and server validation rules.

[Range]

Properties with [Range] will generate client validation and server validation rules.

[MinLength]

Properties with [MinLength] will generate client validation and server validation rules.

[MaxLength]

Properties with [MaxLength] will generate client validation and server validation rules.

[DataType]

Some values of DataType when provided to DataTypeAttribute on a string property will alter the behavior of the Vue Components. See c-display and See c-display for details.

[ForeignKey]

Normally, Coalesce figures out which properties are foreign keys, but if you don't use standard EF naming conventions then you'll need to annotate with [ForeignKey] to help out both EF and Coalesce. See the Entity Framework Relationships documentation for more.

[InverseProperty]

Sometimes, Coalesce (and EF, too) can have trouble figuring out what the foreign key is supposed to be for a collection navigation property. See the Entity Framework Relationships documentation for details on how and why to use [InverseProperty].

[DatabaseGenerated]

Primary Keys with [DatabaseGenerated(DatabaseGeneratedOption.None)] will be settable on the client and will be appropriately handled by the Standard Behaviors on the server. Unsupported on the Knockout front-end stack.

[NotMapped]

Model properties that aren't mapped to the database should be marked with [NotMapped] so that Coalesce doesn't try to load them from the database when searching or carrying out the Default Loading Behavior.

[DefaultValue]

Properties with [DefaultValue] will receive the specified value when a new ViewModel is instantiated on the client. This enables scenarios like pre-filling a required property with a suggested value.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/client-validation.html b/modeling/model-components/attributes/client-validation.html new file mode 100644 index 000000000..5b184b0d0 --- /dev/null +++ b/modeling/model-components/attributes/client-validation.html @@ -0,0 +1,55 @@ + + + + + + [ClientValidation] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[ClientValidation]

The [IntelliTect.Coalesce.DataAnnotations.ClientValidation] attribute is used to control the behavior of client-side model validation and to add additional client-only validation parameters. Database validation is available via standard System.ComponentModel.DataAnnotations annotations.

These propagate to the client as validations in TypeScript via generated Metadata and ViewModel rules (for Vue) or Knockout-Validation rules (for Knockout). For both stacks, any failing validation rules prevent saves from going to the server.

WARNING

This attribute controls client-side validation only. To perform server-side validation, create a custom Behaviors class for your types and/or place C# validation attributes on your models. Read More.

Example Usage

c#
public class Person
+{
+    public int PersonId { get; set; }
+
+    [ClientValidation(IsRequired = true, AllowSave = true)]
+    public string FirstName { get; set; }
+
+    [ClientValidation(IsRequired = true, AllowSave = false, MinLength = 1, MaxLength = 100)]
+    public string LastName { get; set; }
+}

Properties

Behavioral Properties

public bool AllowSave { get; set; } // Knockout Only

If set to true, any client validation errors on the property will not prevent saving on the client. This includes all client-side validation, including null-checking for required foreign keys and other validations that are implicit. This also includes other explicit validation from System.ComponentModel.DataAnnotations annotations.

Instead, validation errors will be treated only as warnings, and will be available through the warnings: KnockoutValidationErrors property on the TypeScript ViewModel.

Note

Use AllowSave = true to allow partially complete data to still be saved, protecting your user from data loss upon navigation while still hinting to them that they are not done filling out data.

public string ErrorMessage { get; set; }

Set an error message to be used if any client validations fail

Validation Rule Properties

In addition to the following properties, you also customize validation on a per-instance basis of the ViewModels using the Rules/Validation methods.

c#
public bool IsRequired { get; set; }
+public double MinValue { get; set; } = double.MaxValue;
+public double MaxValue { get; set; } = double.MinValue;
+public double MinLength { get; set; } = double.MaxValue;
+public double MaxLength { get; set; } = double.MinValue;
+public string Pattern { get; set; }
+public bool IsEmail { get; set; }
+public bool IsPhoneUs { get; set; }

Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/coalesce.html b/modeling/model-components/attributes/coalesce.html new file mode 100644 index 000000000..39a519d66 --- /dev/null +++ b/modeling/model-components/attributes/coalesce.html @@ -0,0 +1,25 @@ + + + + + + [Coalesce] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[Coalesce]

Used to mark a type or member for generation by Coalesce.

Some types and members will be implicitly included in generation - for example, all types represented by a DbSet<T> on a DbContext that has a [Coalesce] attribute will automatically be included. Properties on these types will also be generated for unless explicitly excluded, since this is by far the most common usage scenario in Coalesce.

On the other hand, Methods on these types will not have endpoints generated unless they are explicitly annotated with [Coalesce] to avoid accidentally exposing methods that were perhaps not intended to be exposed.

The documentation pages for types and members that require/accept this attribute will state as such. An exhaustive list of all valid targets for [Coalesce] will not be found on this page.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/controller-action.html b/modeling/model-components/attributes/controller-action.html new file mode 100644 index 000000000..dec2ae06d --- /dev/null +++ b/modeling/model-components/attributes/controller-action.html @@ -0,0 +1,52 @@ + + + + + + [ControllerAction] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[ControllerAction]

Specifies how a custom method is exposed via HTTP. Can be used to customize the HTTP method/verb for the method, as well as caching behavior.

Example Usage

c#
public class Person
+{
+    public int PersonId { get; set; }
+    public string LastName { get; set; }
+
+    public string PictureHash { get; set; }
+
+    [Coalesce]
+    [ControllerAction(Method = HttpMethod.Get)]
+    public static long PersonCount(AppDbContext db, string lastNameStartsWith = "")
+    {
+        return db.People.Count(f => f.LastName.StartsWith(lastNameStartsWith));
+    }
+
+    [Coalesce]
+    [ControllerAction(HttpMethod.Get, VaryByProperty = nameof(PictureHash))]
+    public IFile GetPicture(AppDbContext db)
+    {
+        return new IntelliTect.Coalesce.Models.File(db.PersonPictures
+            .Where(x => x.PersonId == this.PersonId)
+            .Select(x => x.Content)
+        )
+        {
+            ContentType = "image/jpg",
+        };
+    }
+}

Properties

// Also settable via constructor parameter #1
+public HttpMethod Method { get; set; } = HttpMethod.Post;

The HTTP method to use on the generated API Controller.

Enum values are:

  • HttpMethod.Post Use the POST method.
  • HttpMethod.Get Use the GET method.
  • HttpMethod.Put Use the PUT method.
  • HttpMethod.Delete Use the DELETE method.
  • HttpMethod.Patch Use the PATCH method.

public string VaryByProperty { get; set; }

For HTTP GET model instance methods, if VaryByProperty is set to the name of a property on the parent model class, ETag headers based on the value of this property will be used to implement caching. If the client provides a matching If-None-Match Header with the request, the method will not be invoked and HTTP Status `304 Not Modified`` will be returned.

Additionally, if the VaryByProperty is set to a client-exposed property, the value of the property will be included in the query string when performing API calls to invoke the method. If the query string value matches the current value on the model, a long-term Cache-Control header will be set on the response, allowing the client to avoid making future invocations to the same method while the value of the VaryByProperty remains the same.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/controller.html b/modeling/model-components/attributes/controller.html new file mode 100644 index 000000000..f08412876 --- /dev/null +++ b/modeling/model-components/attributes/controller.html @@ -0,0 +1,31 @@ + + + + + + [Controller] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[Controller]

Allows for control over the generated MVC Controllers.

Currently only controls over the API controllers are present, but additional properties may be added in the future.

This attribute may be placed on any type from which an API controller is generated, including Entity Models, Custom DTOs, and Services.

Example Usage

c#
[Controller(ApiRouted = false, ApiControllerSuffix = "Gen", ApiActionsProtected = true)]
+public class Person
+{
+    public int PersonId { get; set; }
+    
+    ...
+}

Properties

public bool ApiRouted { get; set; } = true;

Determines whether or not a [Route] annotation will be placed on the generated API controller. Set to false to prevent emission of the [Route] attribute.

Use cases include:

  • Defining your routes through IRouteBuilder in Startup.cs instead
  • Preventing API controllers from being exposed by default.
  • Routing to your own custom controller that inherits from the generated API controller in order to implement more granular or complex authorization logic.

public string ApiControllerName { get; set; } = null;

If set, will determine the name of the generated API controller.

Takes precedence over the value of ApiControllerSuffix.

public string ApiControllerSuffix { get; set; } = null;

If set, will be appended to the default name of the API controller generated for this model.

Will be overridden by the value of ApiControllerName if it is set.

public bool ApiActionsProtected { get; set; } = false;

If true, actions on the generated API controller will have an access modifier of protected instead of public.

In order to consume the generated API controller, you must inherit from the generated controller and override each desired generated action method via hiding (i.e. use public new ..., not public override ...).

Note

If you inherit from the generated API controllers and override their methods without setting ApiActionsProtected = true, all non-overridden actions from the generated controller will still be exposed as normal.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/create-controller.html b/modeling/model-components/attributes/create-controller.html new file mode 100644 index 000000000..67c327d63 --- /dev/null +++ b/modeling/model-components/attributes/create-controller.html @@ -0,0 +1,33 @@ + + + + + + [CreateController] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[CreateController]

By default an API and View controller are both created. This allows for suppressing the creation of either or both of these.

Example Usage

c#
[CreateController(view: false, api: true)]
+public class Person
+{
+    public int PersonId { get; set; }
+    
+    ...
+}

Properties

// Also settable via constructor parameter #1
+public bool WillCreateView { get; set; } = true

// Also settable via constructor parameter #2
+public bool WillCreateApi { get; set; } = true


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/date-type.html b/modeling/model-components/attributes/date-type.html new file mode 100644 index 000000000..7860abe2d --- /dev/null +++ b/modeling/model-components/attributes/date-type.html @@ -0,0 +1,32 @@ + + + + + + [DateType] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[DateType]

Specifies whether a DateTime type will have a date and a time, or only a date.

Example Usage

c#
public class Person
+{
+    public int PersonId { get; set; }
+
+    [DateType(DateTypeAttribute.DateTypes.DateOnly)]
+    public DateTimeOffset? BirthDate { get; set; }
+}

Properties

// Also settable via constructor parameter #1
+public DateTypes DateType { get; set; } = DateTypes.DateTime; 

The type of date the property represents.

Enum values are:

  • DateTypeAttribute.DateTypes.DateTime Subject is both a date and time.
  • DateTypeAttribute.DateTypes.DateOnly Subject is only a date with no significant time component.

Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/default-order-by.html b/modeling/model-components/attributes/default-order-by.html new file mode 100644 index 000000000..36f960657 --- /dev/null +++ b/modeling/model-components/attributes/default-order-by.html @@ -0,0 +1,49 @@ + + + + + + [DefaultOrderBy] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[DefaultOrderBy]

Allows setting of the default manner in which the data returned to the client will be sorted. Multiple fields can be used to sort an object by specifying an index.

This affects the sort order both when requesting a list of the model itself, as well as when the model appears as a child collection off of a navigation property of another object.

In the first case (a list of the model itself), this can be overridden by setting the orderBy or orderByDescending property on the TypeScript ListViewModel - see TypeScript List ViewModels.

Example Usage

c#
public class Person
+{
+    public int PersonId { get; set; }
+    
+    public int DepartmentId { get; set; }
+
+    [DefaultOrderBy(FieldOrder = 0, FieldName = nameof(Department.Order))]
+    public Department Department { get; set; }
+    
+    [DefaultOrderBy(FieldOrder = 1)]
+    public string LastName { get; set; }
+}
c#
public class Person
+{
+    public int PersonId { get; set; }
+    
+    public int DepartmentId { get; set; }
+
+    [DefaultOrderBy(FieldOrder = 0, FieldName = nameof(Department.Order))]
+    public Department Department { get; set; }
+    
+    [DefaultOrderBy(FieldOrder = 1)]
+    public string LastName { get; set; }
+}

Properties

// Also settable via constructor parameter #1
+public int FieldOrder { get; set; } = 0; 

Specify the index of this field when sorting by multiple fields.

Lower-valued properties will be used first; higher-valued properties will be used as a tiebreaker (i.e. .ThenBy(...)).

// Also settable via constructor parameter #2
+public OrderByDirections OrderByDirection { get; set; } = OrderByDirections.Ascending;

Specify the direction of the ordering for the property.

Enum values are:

  • DefaultOrderByAttribute.OrderByDirections.Ascending
  • DefaultOrderByAttribute.OrderByDirections.Descending

public string FieldName { get; set; }

When using the DefaultOrderByAttribute on an object property, specifies the field on the object to use for sorting. See the first example above.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/dto-includes-excludes.html b/modeling/model-components/attributes/dto-includes-excludes.html new file mode 100644 index 000000000..b21daf278 --- /dev/null +++ b/modeling/model-components/attributes/dto-includes-excludes.html @@ -0,0 +1,65 @@ + + + + + + [DtoIncludes] & [DtoExcludes] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[DtoIncludes] & [DtoExcludes]

Allows for easily controlling what data gets set to the client. When requesting data from the generated client-side list view models, you can specify an includes property on the ViewModel or ListViewModel.

For more information about the includes string, see Includes String.

When the database entries are returned to the client they will be trimmed based on the requested includes string and the values in DtoExcludes and DtoIncludes.

DANGER

These attributes are not security attributes - consumers of your application's API can set the includes string to any value when making a request.

Do not use them to keep certain data private - use the Security Attributes family of attributes for that.

It is important to note that the value of the includes string will match against these attributes on any of your models that appears in the object graph being mapped to DTOs - it is not limited only to the model type of the root object.

Important

DtoIncludes does not ensure that specific data will be loaded from the database. It only permits what is already loaded into the current EF DbContext to be returned from the API. See Data Sources to learn how to control what data gets loaded from the database.

Example Usage

Server code:

c#
public class Person
+{
+    // Don't include CreatedBy when editing - will be included for all other views
+    [DtoExcludes("Editor")]
+    public AppUser CreatedBy { get; set; }
+
+    // Only include the Person's Department when `includes == "details"` on the TypeScript ViewModel.
+    [DtoIncludes("details")]
+    public Department Department { get; set; }
+
+    // LastName will be included in all views
+    public string LastName { get; set; }
+}
+
+public class Department
+{
+    [DtoIncludes("details")]
+    public ICollection<Person> People { get; set; }
+}

Client code:

ts
import { PersonListViewModel } from '@/viewmodels.g'
+
+const personList = new PersonListViewModel();
+personList.$includes = "Editor";
+await personList.$load();
+// Objects in personList.$items will not contain CreatedBy nor Department objects.
+
+const personList2 = new PersonListViewModel();
+personList2.$includes = "details";
+await personList.$load();
+// Objects in personList2.items will be allowed to contain both CreatedBy and Department objects. 
+// Department will be allowed to include its other Person objects.

Properties

// Also settable via constructor parameter #1
+public string ContentViews { get; set; }

A comma-delimited list of values of includes on which to operate.

For DtoIncludes, this will be the values of includes for which this property will be allowed to be serialized and sent to the client.

For DtoExcludes, this will be the values of includes for which this property will not be serialized and sent to the client.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/execute.html b/modeling/model-components/attributes/execute.html new file mode 100644 index 000000000..3ffdb502f --- /dev/null +++ b/modeling/model-components/attributes/execute.html @@ -0,0 +1,35 @@ + + + + + + [Execute] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[Execute]

Controls permissions for executing of a static or instance method through the API.

For other security controls, see Security Attributes.

Example Usage

c#
public class Person
+{
+    public int PersonId { get; set; }
+    
+    [Coalesce, Execute(Roles = "Payroll,HR")]
+    public void GiveRaise(int centsPerHour) {
+        ...
+    }
+
+    ...
+}

Properties

public string Roles { get; set; }

A comma-separated list of roles which are allowed to execute the method.

public SecurityPermissionLevels PermissionLevel { get; set; } = SecurityPermissionLevels.AllowAuthorized;

The level of access to allow for the action for the method.

Enum values are:

  • SecurityPermissionLevels.AllowAll Allow all users to perform the action for the attribute, including users who are not authenticated at all.
  • SecurityPermissionLevels.AllowAuthorized Allow only users who are members of the roles specified on the attribute to perform the action. If no roles are specified on the attribute, then all authenticated users are allowed (no anonymous access).
  • SecurityPermissionLevels.DenyAll Deny the action to all users, regardless of authentication status or authorization level. If DenyAll is used, no API endpoint for the action will be generated.

public bool AutoClear { get; set; }

If true, the method's arguments will be cleared after a successful invocation on admin pages.

public bool? ValidateAttributes { get; set; }

If non-null, overrides the value of CoalesceOptions.ValidateAttributesForMethods when determining whether to perform automatic server-side validation of the method's parameters.

If validation is performed, the method's parameters will be validated by the server and the method invocation prevented if errors are found.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/hidden.html b/modeling/model-components/attributes/hidden.html new file mode 100644 index 000000000..06f45ef57 --- /dev/null +++ b/modeling/model-components/attributes/hidden.html @@ -0,0 +1,32 @@ + + + + + + [Hidden] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[Hidden]

Mark an property as hidden from the edit, List or All areas.

DANGER

This attribute is not a security attribute - it only affects the rendering of the admin pages. It has no impact on data visibility in the API.

Do not use it to keep certain data private - use the Security Attributes family of attributes for that.

Example Usage

c#
public class Person
+{
+    public int PersonId { get; set; }
+
+    [Hidden(HiddenAttribute.Areas.All)]
+    public int? IncomeLevelId { get; set; }
+}

Properties

// Also settable via constructor parameter #1
+public Areas Area { get; set; } = Areas.All;

The areas in which the property should be hidden.

Enum values are:

  • HiddenAttribute.Areas.None Hide from no generated views. Primary and Foreign keys are hidden by default - setting this value explicitly can override this default behavior.
  • HiddenAttribute.Areas.All Hide from all generated views
  • HiddenAttribute.Areas.List Hide from generated list views only (Knockout Table/Cards, Vue c-admin-table)
  • HiddenAttribute.Areas.Edit Hide from generated editor only (Knockout CreateEdit, Vue c-admin-editor)

Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/inject.html b/modeling/model-components/attributes/inject.html new file mode 100644 index 000000000..c4290a00c --- /dev/null +++ b/modeling/model-components/attributes/inject.html @@ -0,0 +1,36 @@ + + + + + + [Inject] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[Inject]

Used to mark a Method parameter for dependency injection from the application's IServiceProvider.

See Methods for more.

This gets translated to a Microsoft.AspNetCore.Mvc.FromServicesAttribute in the generated API controller's action.

Example Usage

c#
public class Person
+{
+    public int PersonId { get; set; }
+    public string FirstName { get; set; }
+    public string LastName { get; set; }
+
+    public string GetFullName([Inject] ILogger<Person> logger)
+    {
+        logger.LogInformation("Person " + PersonId + "'s full name was requested");
+        return FirstName + " " + LastName";
+    }
+}

Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/internal-use.html b/modeling/model-components/attributes/internal-use.html new file mode 100644 index 000000000..f4cf1ffa5 --- /dev/null +++ b/modeling/model-components/attributes/internal-use.html @@ -0,0 +1,44 @@ + + + + + + [InternalUse] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[InternalUse]

Used to mark a type, property or method for internal use. Internal Use members are:

  • Not exposed via the API.
  • Not present in the generated TypeScript view models.
  • Not present nor accounted for in the generated C# DTOs.
  • Not present in the generated editor or list views.

Effectively, an Internal Use member is invisible to Coalesce. This attribute can be considered a Security Attribute.

Note that this only needs to be used on members that are public. Non-public members (including internal) are always invisible to Coalesce.

Example Usage

In this example, Color is the property exposed to the API, but ColorHex is the property that maps to the database that stores the value. A helper method also exists for the color generation, but needs no attribute to be hidden since methods must be explicitly exposed with [Coalesce].

If no color is saved in the database (the user hasn't picked a color), one is deterministically created.

c#
public class ApplicationUser
+{
+    public int ApplicationUserId { get; set; }
+
+    [InternalUse]
+    public string ColorHex { get; set; }
+
+    [NotMapped]
+    public string Color
+    {
+        get => ColorHex ?? GenerateColor(ApplicationUserId).ToRGBHexString();
+        set => ColorHex = value;
+    }
+
+    public static HSLColor GenerateColor(int? seed = null)
+    {
+        var random = seed.HasValue ? new Random(seed.Value) : new Random();
+        return new HSLColor(random.NextDouble(), random.Next(40, 100) / 100d, random.Next(25, 65) / 100d);
+    }
+}

Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/list-text.html b/modeling/model-components/attributes/list-text.html new file mode 100644 index 000000000..5ef5152cb --- /dev/null +++ b/modeling/model-components/attributes/list-text.html @@ -0,0 +1,36 @@ + + + + + + [ListText] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[ListText]

When a textual representation of an object needs to be displayed in the UI, this attribute controls which property will be used. Examples include dropdowns and cells in admin UI tables.

If this attribute is not used, and a property named Name exists on the model, that property will be used. Otherwise, the primary key will be used.

Example Usage

c#
public class Person
+{
+    public int PersonId { get; set; }
+
+    public string FirstName { get; set; }
+
+    public string LastName { get; set; }
+
+    [ListText]
+    [NotMapped]
+    public string Name => FirstName + " " + LastName
+}

Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/load-from-data-source.html b/modeling/model-components/attributes/load-from-data-source.html new file mode 100644 index 000000000..091a3e1c4 --- /dev/null +++ b/modeling/model-components/attributes/load-from-data-source.html @@ -0,0 +1,36 @@ + + + + + + [LoadFromDataSource] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[LoadFromDataSource]

Specifies that the targeted model instance method should load the instance it is called on from the specified data source when invoked from an API endpoint. If not defined, the model's default data source is used.

Example Usage

c#
public class Person
+{
+    public int PersonId { get; set; }
+    public string FirstName { get; set; }
+
+    [Coalesce, LoadFromDataSource(typeof(WithoutCases))]
+    public void ChangeSpacesToDashesInName()
+    {
+        FirstName = FirstName.Replace(" ", "-");
+    }
+}

Properties

// ONLY settable via constructor parameter #1
+public Type DataSourceType { get; }

The name of the Data Source to load the instance object from.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/many-to-many.html b/modeling/model-components/attributes/many-to-many.html new file mode 100644 index 000000000..17672d0cf --- /dev/null +++ b/modeling/model-components/attributes/many-to-many.html @@ -0,0 +1,34 @@ + + + + + + [ManyToMany] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[ManyToMany]

Used to specify a Many to Many relationship. Because EF core does not support automatic intermediate mapping tables, this field is used to allow for direct reference of the many-to-many collections from the ViewModel.

The named specified in the attribute will be used as the name of a collection of the objects on the other side of the relationship in the generated TypeScript ViewModels.

Example Usage

c#
public class Person
+{
+    public int PersonId { get; set; }
+    public string FirstName { get; set; }
+    public string LastName { get; set; }
+
+    [ManyToMany("Appointments")]
+    public ICollection<PersonAppointment> PersonAppointments { get; set; }
+}

Properties

// ONLY settable via constructor parameter #1
+public string CollectionName { get; }

The name of the collection that will contain the set of objects on the other side of the many-to-many relationship.

public string FarNavigationProperty { get; set; }

The name of the navigation property on the middle entity that points at the far side of the many-to-many relationship. Use this to resolve ambiguities when the middle table of the many-to-many relationship has more than two reference navigation properties on it.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/restrict.html b/modeling/model-components/attributes/restrict.html new file mode 100644 index 000000000..5eb01833d --- /dev/null +++ b/modeling/model-components/attributes/restrict.html @@ -0,0 +1,47 @@ + + + + + + [Restrict] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[Restrict]

In addition to role-based property restrictions, you can also define property restrictions that can execute custom code for each model instance if your logic require more nuanced decisions than can be made with roles.

c#
using IntelliTect.Coalesce.DataAnnotations;
+public class Employee 
+{
+  public int Id { get; set; }
+
+  [Read]
+  public string UserId { get; set; }
+
+  [Restrict<SalaryRestriction>]
+  public decimal Salary { get; set; }
+}
+
+public class SalaryRestriction(MyUserService userService) : IPropertyRestriction<Employee>
+{
+  public bool UserCanRead(IMappingContext context, string propertyName, Employee model)
+    => context.User.GetUserId() == model.UserId || userService.IsPayroll(context.User);
+
+  public bool UserCanWrite(IMappingContext context, string propertyName, Employee model, object incomingValue)
+    => userService.IsPayroll(context.User);
+
+  public bool UserCanFilter(IMappingContext context, string propertyName)
+    => userService.IsPayroll(context.User);
+}

Restriction classes support dependency injection, so you can inject any supplemental services needed to make a determination.

The UserCanRead method controls whether values of the restricted property will be mapped from model instances to the generated DTO. Similarly, UserCanWrite controls whether the property can be mapped back to the model instance from the generated DTO.

The UserCanFilter method has a default implementation that returns false, but can be implemented if there is an appropriate, instance-agnostic way to determine if a user can sort, search, or filter values of that property.

Multiple different restrictions can be placed on a single property; all of them must succeed for the operation to be permitted. Restrictions also stack on top of role attribute restrictions ([Read] and [Edit]).

A non-generic variant of IPropertyRestriction also exists for restrictions that might be reused across multiple model types.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/search.html b/modeling/model-components/attributes/search.html new file mode 100644 index 000000000..0ea0b4dc3 --- /dev/null +++ b/modeling/model-components/attributes/search.html @@ -0,0 +1,42 @@ + + + + + + [Search] | Coalesce + + + + + + + + + + + + + + +
Skip to content

Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/security-attribute.html b/modeling/model-components/attributes/security-attribute.html new file mode 100644 index 000000000..fee0d8ec6 --- /dev/null +++ b/modeling/model-components/attributes/security-attribute.html @@ -0,0 +1,53 @@ + + + + + + Security Attributes | Coalesce + + + + + + + + + + + + + + +
Skip to content

Security Attributes

Coalesce provides a collection of attributes which can provide class-level (and property-level, where appropriate) security controls over the generated API.

TIP

This page provides API-level documentation for a specific set of attributes. For a complete overview of all the security-focused techniques that can be used in a Coalesce application, see the Security page.

Class vs. Property Security

There are important differences between class-level security and property-level security, beyond the usage of the attributes themselves. In general, class-level security is implemented in the generated API Controllers as [Authorize] attributes on the generated actions. Property security attributes are implemented in the Generated C# DTOs.

Implementations

[Read]

Controls permissions for reading of objects and properties through the API.

For property-level security only, if a [Read] attribute is present without an [Edit] attribute, the property is read-only.

Additionally, you can set NoAutoInclude = true the [Read] attribute to suppress the Default Loading Behavior.

Example Usage

c#
[Read(Roles = "Management", PermissionLevel = SecurityPermissionLevels.AllowAuthorized)]
+public class Employee
+{
+    public int EmployeeId { get; set; }
+
+    [Read("Payroll")]
+    public string LastFourSsn { get; set; }
+    
+    ...
+}

[Edit]

Controls permissions for editing of objects and properties through the API.

For property-level security only, if a [Read] attribute is present, one of its roles must be fulfilled in addition to the roles specified (if any) for the [Edit] attribute.

Example Usage

c#
[Edit(Roles = "Management,Payroll", PermissionLevel = SecurityPermissionLevels.AllowAuthorized)]
+public class Employee
+{
+    public int EmployeeId { get; set; }
+
+    [Read("Payroll,HumanResources"), Edit("Payroll")]
+    public string LastFourSsn { get; set; }
+    
+    ...
+}

[Create]

Controls permissions for creation of an object of the targeted type through the API.

Example Usage

c#
[Create(Roles = "HumanResources", PermissionLevel = SecurityPermissionLevels.AllowAuthorized)]
+public class Employee
+{
+    ...
+}

[Delete]

Controls permissions for deletion of an object of the targeted type through the API.

Example Usage

c#
[Delete(Roles = "HumanResources,Management", PermissionLevel = SecurityPermissionLevels.AllowAuthorized)]
+public class Employee
+{
+    ...
+}

[Execute]

A separate attribute for controlling method execution exists. Its documentation may be found on the [Execute] page.

[Restrict]

For property security, [Read] and [Edit] can be used to apply role-based security. If you need logic more complicated than checking for the presence of a role, [Restrict] offers the ability to write custom code to control the read and/or write permissions of a property.

Attribute Properties

// Also settable via constructor parameter #1
+public string Roles { get; set; }

A comma-delimited list of roles that are authorized to take perform the action represented by the attribute. If the current user belongs to any of the listed roles, the action will be allowed.

The string set for this property will be outputted as an [Authorize(Roles="RolesString")] attribute on generated API controller actions.

// Also settable via constructor parameter #2
+public SecurityPermissionLevels PermissionLevel { get; set; }

The level of access to allow for the action for class-level security only. Has no effect for property-level security.

Enum values are:

  • SecurityPermissionLevels.AllowAll Allow all users to perform the action for the attribute, including users who are not authenticated at all.
  • SecurityPermissionLevels.AllowAuthorized Allow only users who are members of the roles specified on the attribute to perform the action. If no roles are specified on the attribute, then all authenticated users are allowed (no anonymous access).
  • SecurityPermissionLevels.DenyAll Deny the action to all users, regardless of authentication status or authorization level. If DenyAll is used, no API endpoint for the action will be generated.

Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/select-filter.html b/modeling/model-components/attributes/select-filter.html new file mode 100644 index 000000000..671b4e4f0 --- /dev/null +++ b/modeling/model-components/attributes/select-filter.html @@ -0,0 +1,43 @@ + + + + + + [SelectFilter] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[SelectFilter]

WARNING

This attribute only affects the generated Knockout HTML views - it does not enforce any relational rules in your data.

This attribute also currently has no effect against the Vue stack.

Specify a property to restrict dropdown menus by. Values presented will be only those where the value of the foreign property matches the value of the local property.

The local property name defaults to the same value of the foreign property.

Additionally, in place of a LocalPropertyName to check against, you may instead specify a static value using StaticPropertyValue to filter by a constant.

Example Usage

In this example, a dropdown for EmployeeRank created using @Knockout.SelectForObject in cshtml files will only present possible values of EmployeeRank which are valid for the EmployeeType of the Employee.

c#
public class Employee
+{
+    public int EmployeeId { get; set; }
+    public int EmployeeTypeId { get; set; }
+    public EmployeeType EmployeeType { get; set; }
+    public int EmployeeRankId { get; set; }
+
+    [SelectFilter(ForeignPropertyName = nameof(EmployeeRank.EmployeeTypeId), LocalPropertyName = nameof(Employee.EmployeeTypeId))]
+    public EmployeeRank EmployeeRank { get; set; }
+}
+
+public class EmployeeRank
+{
+    public int EmployeeRankId { get; set; }
+    public int EmployeeTypeId { get; set; }
+    public EmployeeType EmployeeType { get; set; }
+}
razor
<div>
+    @(Knockout.SelectForObject<Models.Employee>(e => e.EmployeeRank))
+</div>

Properties

public string ForeignPropertyName { get; set; }

The name of the property on the foreign object to filter against.

public string LocalPropertyName { get; set; }

The name of another property belonging to the class in which this attribute is used. The results of select lists will be filtered to match this value.

Defaults to the value of ForeignPropertyName if not set.

public string LocalPropertyObjectName { get; set; }

If specified, the LocalPropertyName will be resolved from the property by this name that resides on the local object.

This allows for querying against properties that are one level away from the current object.

public string StaticPropertyValue { get; set; }

A constant value that the foreign property will be filtered against. This string must be parsable into the foreign property's type to have any effect. If this is set, LocalPropertyName will be ignored.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/attributes/typescript-partial.html b/modeling/model-components/attributes/typescript-partial.html new file mode 100644 index 000000000..5e8e96976 --- /dev/null +++ b/modeling/model-components/attributes/typescript-partial.html @@ -0,0 +1,31 @@ + + + + + + [TypeScriptPartial] | Coalesce + + + + + + + + + + + + + + +
Skip to content

[TypeScriptPartial]

Note

This attribute only applies to the Knockout front-end stack. It is not applicable to the Vue stack.

If defined on a model, a typescript file will be generated in ./Scripts/Partials if one does not already exist. This 'Partial' TypeScript file contains a class which inherits from the generated TypeScript ViewModel. The partial class has the same name as the generated ViewModel would normally have, and the generated ViewModel is renamed to "<ClassName>Partial".

This behavior allows you to extend the behavior of the generated TypeScript view models with your own properties and methods for defining more advanced behavior on the client. One of the most common use cases of this is to define additional Knockout ComputedObservable properties for information that is only useful in the browser - for example, computing a css class based on data in the object.

Example Usage

c#
[TypeScriptPartial]
+public class Employee
+{
+    public int EmployeeId { get; set; }
+
+    ...
+}

Properties

public string BaseClassName { get; set; }

If set, overrides the name of the generated ViewModel which becomes the base class for the generated 'Partial' TypeScript file.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/behaviors.html b/modeling/model-components/behaviors.html new file mode 100644 index 000000000..1be4fd579 --- /dev/null +++ b/modeling/model-components/behaviors.html @@ -0,0 +1,94 @@ + + + + + + Behaviors | Coalesce + + + + + + + + + + + + + + +
Skip to content

Behaviors

In a CRUD system, creating, updating, and deleting are considered especially different from reading. In Coalesce, the dedicated classes that perform these operations are derivatives of a special interface known as the IBehaviors<T>. These are their stories.


Coalesce separates out the parts of your API that read your data from the parts that mutate it. The read portion is performed by Data Sources, and the mutations are performed by behaviors. Like data sources, there exists a standard set of behaviors that Coalesce provides out-of-the-box that cover the most common use cases for creating, updating, and deleting objects in your data model.

Also like data sources, these functions can be easily overridden on a per-model basis, allowing complete control over the ways in which your data is mutated by the APIs that Coalesce generates. However, unlike data sources which can have as many implementations per model as you like, you can only have one set of behaviors.

Defining Behaviors

By default, each of your models that Coalesce exposes will utilize the standard behaviors (IntelliTect.Coalesce.StandardBehaviors<T, TContext>) for the out-of-the-box API endpoints that Coalesce provides. These behaviors provide a set of create, update, and delete methods for an EF Core DbContext, as well as a plethora of virtual methods that make the StandardBehaviors a great base class for your custom implementations. Unlike data sources which require an annotation to override the Coalesce-provided standard class, the simple presence of an explicitly declared set of behaviors will suppress the standard behaviors.

Note

When you define a set of custom behaviors, take note that these are only used by the standard set of API endpoints that Coalesce always provides. They will not be used to handle any mutations in any Methods you write for your models.

To create your own behaviors, you simply need to define a class that implements IntelliTect.Coalesce.IBehaviors<T>. To expose your behaviors to Coalesce, either place it as a nested class of the type T that your behaviors are for, or annotate it with the [Coalesce] attribute. Of course, the easiest way to create behaviors that doesn't require you to re-engineer a great deal of logic would be to inherit from IntelliTect.Coalesce.StandardBehaviors<T, TContext>, and then override only the parts that you need.

c#
public class Case
+{
+    public int CaseId { get; set; }
+    public int OwnerId { get; set; }
+    public bool IsDeleted { get; set; }
+    ...
+}
+
+[Coalesce]
+public class CaseBehaviors : StandardBehaviors<Case, AppDbContext>
+{
+    public CaseBehaviors(CrudContext<AppDbContext> context) : base(context) { }
+
+    public override ItemResult BeforeSave(SaveKind kind, Case oldItem, Case item)
+    {
+        // Allow admins to bypass all validation.
+        if (User.IsInRole("Admin")) return true;
+
+        if (kind == SaveKind.Update && oldItem.OwnerId != item.OwnerId)
+            return "The owner of a case may not be changed";
+
+        // This is a new item, OR its an existing item and the owner isn't being modified.
+        if (item.CreatedById != User.GetUserId())
+            return "You are not the owner of this item.";
+
+        return true;
+    }
+
+    public override ItemResult BeforeDelete(Case item) 
+        => User.IsInRole("Manager") ? true : "Unauthorized";
+
+    public override Task ExecuteDeleteAsync(Case item)
+    {
+        // Soft delete the item.
+        item.IsDeleted = true;
+        return Db.SaveChangesAsync();
+    }
+}

Dependency Injection

All behaviors are instantiated using dependency injection and your application's IServiceProvider. As a result, you can add whatever constructor parameters you desire to your behaviors as long as a value for them can be resolved from your application's services. The single parameter to the StandardBehaviors is resolved in this way - the CrudContext<TContext> contains the common set of objects most commonly used, including the DbContext and the ClaimsPrincipal representing the current user.

Standard Behaviors

The standard behaviors, IntelliTect.Coalesce.StandardBehaviors<T> and its EntityFramework-supporting sibling IntelliTect.Coalesce.StandardBehaviors<T, TContext>, contain a significant number of properties and methods that can be utilized and/or overridden at your leisure.

Properties

CrudContext<TContext> Context

The object passed to the constructor that contains the set of objects needed by the standard behaviors, and those that are most likely to be used in custom implementations.

TContext Db

An instance of the db context that contains a DbSet<T> for the entity handled by the behaviors

ClaimsPrincipal User

The user making the current request.

IDataSource<T> OverrideFetchForUpdateDataSource

A data source that, if set, will override the data source that is used to retrieve the target of an update operation from the database. The incoming values will then be set on this retrieved object. Null by default; override by setting a value in the constructor.

IDataSource<T> OverridePostSaveResultDataSource

A data source that, if set, will override the data source that is used to retrieve a newly-created or just-updated object from the database after a save. The retrieved object will be returned to the client. Null by default; override by setting a value in the constructor.

IDataSource<T> OverrideFetchForDeleteDataSource

A data source that, if set, will override the data source that is used to retrieve the target of an delete operation from the database. The retrieved object will then be deleted. Null by default; override by setting a value in the constructor.

IDataSource<T> OverridePostDeleteResultDataSource

A data source that, if set, will override the data source that is used to retrieve the target of an delete operation from the database after it has been deleted. If an object is able to be retrieved from this data source, it will be sent back to the client. This allows soft-deleted items to be returned to the client when the user is able to see them. Null by default; override by setting a value in the constructor.

Method Overview

The standard behaviors implementation contains many different methods which can be overridden in your derived class to control functionality.

These methods often call one another, so overriding one method may cause some other method to no longer be called. The hierarchy of method calls, ignoring any logic or conditions contained within, is as follows:

SaveAsync
+    DetermineSaveKindAsync
+    GetDbSet
+    ValidateDto
+    MapIncomingDto
+    BeforeSaveAsync
+        BeforeSave
+    ExecuteSaveAsync
+    AfterSave
+
+DeleteAsync
+    BeforeDeleteAsync
+        BeforeDelete
+    ExecuteDeleteAsync
+        GetDbSet
+    AfterDelete

Method Details

All of the methods outlined above can be overridden. A description of each of the methods is as follows:

Task<ItemResult<TDto?>> SaveAsync<TDto>(TDto incomingDto, IDataSource<T> dataSource, IDataSourceParameters parameters)

Save the given item. This is the main entry point for saving, and takes a DTO as a parameter. This method is responsible for performing mapping to your EF models and ultimately saving to your database. If it is required that you access properties from the incoming DTO in this method, a set of extension methods GetValue and GetObject are available on the DTO for accessing properties that are mapped 1:1 with your EF models.

Task<(SaveKind Kind, object? IncomingKey)> DetermineSaveKindAsync<TDto>(TDto incomingDto, IDataSource<T> dataSource, IDataSourceParameters parameters)

Given the incoming DTO on which Save has been called, examine its properties to determine if the operation is meant to be a create or an update operation. Return this distinction along with the key that was used to make the distinction.

This method is called outside of the standard data source by the base API controller to perform role-based security on saves at the controller level.

DbSet<T> GetDbSet()

Returns a DbSet<T> that items can be added to (creates) or remove from (deletes).

ItemResult ValidateDto(SaveKind kind, IClassDto<T> dto)

Provides a chance to validate the properties of the DTO object itself, as opposed to doing validation in BeforeSave of the properties of the model after the DTO has been mapped to the model. This also where attribute-based validation is performed.

To perform custom validation in this method (uncommon), there are a number of extension methods on IClassDto<T> that can be used to access the value of the properties of Generated C# DTOs. For behaviors on Custom DTOs where the DTO type is known, simply cast to the correct type.

T MapIncomingDto<TDto>(SaveKind kind, T? item, TDto dto, IDataSourceParameters parameters)

Map the properties of the incoming DTO to the model that will be saved to the database. For a SaveKind.Create, this will call the MapToNew method on the DTO and a new instance must be returned (item will be null). For a SaveKind.Update, this will call the MapTo method on the DTO, and the incoming item must be returned. If more precise control is needed, extension methods on IClassDto<T> or casting to a known type can be used to get specific values. If all else fails, the DTO can be reflected upon.

Task<ItemResult> BeforeSaveAsync(SaveKind kind, T? oldItem, T item);
+ItemResult BeforeSave(SaveKind kind, T? oldItem, T item)

Provides an easy way for derived classes to intercept a save attempt and either reject it by returning an unsuccessful result, or approve it by returning success. The incoming item can also be modified at will in this method to override changes that the client made as desired.

ItemResult AfterSave(SaveKind kind, T? oldItem, ref T item, ref IncludeTree? includeTree)

Provides an easy way for derived classes to perform actions after a save operation has been completed. Failure results returned here will present an error to the client, but will not prevent modifications to the database since changes have already been saved at this point. This method can optionally modify or replace the item that is sent back to the client after a save by setting ref T item to another object or to null. Setting ref IncludeTree includeTree will override the Include Tree used to shape the response object.

WARNING

Setting ref T item to null will prevent the new object from being returned - be aware that this can be harmful in create scenarios since it prevents the client from receiving the primary key of the newly created item. If autoSave is enabled on the client, this could cause a large number of duplicate objects to be created in the database, since each subsequent save by the client will be treated as a create when the incoming object lacks a primary key.

Task<ItemResult<TDto?>> DeleteAsync<TDto>(object id, IDataSource<T> dataSource, IDataSourceParameters parameters)

Deletes the given item.

Task<ItemResult> BeforeDeleteAsync(T item);
+ItemResult BeforeDelete(T item)

Provides an easy way to intercept a delete request and potentially reject it (by returning a non-success ItemResult).

Task ExecuteDeleteAsync(T item)

Performs the delete action against the database. The implementation of this method removes the item from its corresponding DbSet<T>, and then calls Db.SaveChangesAsync().

Overriding this allows for changing this row-deletion implementation to something else, like setting of a soft delete flag, or copying the data into another archival table before deleting.

void AfterDelete(ref T item, ref IncludeTree? includeTree)

Allows for performing any sort of cleanup actions after a delete has completed. If the item was still able to be retrieved from the database after the delete operation completed, this method allows lets you modify or replace the item that is sent back to the client by setting ref T item to another object or to null. Setting ref IncludeTree includeTree will override the Include Tree used to shape the response object.

Globally Replacing the Standard Behaviors

You can, of course, create a custom base behaviors class that all your custom implementations inherit from. But, what if you want to override the standard behaviors across your entire application, so that StandardBehaviors<,> will never be instantiated? You can do that too!

Simply create a class that implements IEntityFrameworkBehaviors<,> (the StandardBehaviors<,> already does - feel free to inherit from it), then register it at application startup like so:

c#
public class MyBehaviors<T, TContext> : StandardBehaviors<T, TContext>
+    where T : class
+    where TContext : DbContext
+{
+    public MyBehaviors(CrudContext<TContext> context) : base(context)
+    {
+    }
+
+    ...
+}
c#
public void ConfigureServices(IServiceCollection services)
+{
+    services.AddCoalesce(b =>
+    {
+        b.AddContext<AppDbContext>();
+        b.UseDefaultBehaviors(typeof(MyBehaviors<,>));
+    });

Your custom behaviors class must have the same generic type parameters - <T, TContext>. Otherwise, the Microsoft.Extensions.DependencyInjection service provider won't know how to inject it.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/data-sources.html b/modeling/model-components/data-sources.html new file mode 100644 index 000000000..1c3bf9a02 --- /dev/null +++ b/modeling/model-components/data-sources.html @@ -0,0 +1,135 @@ + + + + + + Data Sources | Coalesce + + + + + + + + + + + + + + +
Skip to content

Data Sources

In Coalesce, all data that is retrieved from your database through the generated controllers is done so by a data source. These data sources control what data gets loaded and how it gets loaded. By default, there is a single generic data source that serves all data for your models in a generic way that fits many of the most common use cases - the Standard Data Source.

In addition to this standard data source, Coalesce allows you to create custom data sources that provide complete control over the way data is loaded and serialized for transfer to a requesting client. These data sources are defined on a per-model basis, and you can have as many of them as you like for each model.

Defining Data Sources

By default, each of your models that Coalesce exposes will expose the standard data source (IntelliTect.Coalesce.StandardDataSource<T, TContext>). This data source provides all the standard functionality one would expect - paging, sorting, searching, filtering, and so on. Each of these component pieces is implemented in one or more virtual methods, making the StandardDataSource a great place to start from when implementing your own data source. To suppress this behavior of always exposing the raw StandardDataSource, create your own custom data source and annotate it with [DefaultDataSource].

To implement your own custom data source, you simply need to define a class that implements IntelliTect.Coalesce.IDataSource<T>. To expose your data source to Coalesce, either place it as a nested class of the type T that you data source serves, or annotate it with the [Coalesce] attribute. Of course, the easiest way to create a data source that doesn't require you to re-engineer a great deal of logic would be to inherit from IntelliTect.Coalesce.StandardDataSource<T, TContext>, and then override only the parts that you need.

c#
public class Person
+{
+    [DefaultDataSource]
+    public class IncludeFamily : StandardDataSource<Person, AppDbContext>
+    {
+        public IncludeFamily(CrudContext<AppDbContext> context) : base(context) { }
+
+        public override IQueryable<Person> GetQuery(IDataSourceParameters parameters) 
+            => Db.People
+            .Where(f => User.IsInRole("Admin") || f.CreatedById == User.GetUserId())
+            .Include(f => f.Parents).ThenInclude(s => s.Parents)
+            .Include(f => f.Cousins).ThenInclude(s => s.Parents);
+    }
+}
+
+[Coalesce]
+public class NamesStartingWithA : StandardDataSource<Person, AppDbContext>
+{
+    public NamesStartingWithA(CrudContext<AppDbContext> context) : base(context) { }
+
+    public override IQueryable<Person> GetQuery(IDataSourceParameters parameters) 
+        => Db.People.Include(f => f.Siblings).Where(f => f.FirstName.StartsWith("A"));
+}

The structure of the IQueryable built by the various methods of StandardDataSource is used to shape and trim the structure of the DTO as it is serialized and sent out to the client. One may also override method IncludeTree GetIncludeTree(IQueryable<Person> query, IDataSourceParameters parameters) to control this explicitly. See Include Tree for more information on how this works.

WARNING

If you create a custom data source that has custom logic for securing your data, be aware that the default implementation of StandardDataSource (or your custom default implementation - see below) is still exposed unless you annotate one of your custom data sources with [DefaultDataSource]. Doing so will replace the default data source with the annotated class for your type T.

Dependency Injection

All data sources are instantiated using dependency injection and your application's IServiceProvider. As a result, you can add whatever constructor parameters you desire to your data sources as long as a value for them can be resolved from your application's services. The single parameter to the StandardDataSource is resolved in this way - the CrudContext<TContext> contains the common set of objects most commonly used, including the DbContext and the ClaimsPrincipal representing the current user.

Consuming Data Sources

The ViewModels and ListViewModels each have a property called $dataSource. This property accepts an instance of a DataSource class generated in the Model Layer.

ts
import { Person } from '@/models.g'
+import { PersonViewModel, PersonListViewModel } from '@/viewmodels.g'
+
+var viewModel = new PersonViewModel();
+viewModel.$dataSource = new Person.DataSources.IncludeFamily();
+viewModel.$load(1);
+
+var list = new PersonListViewModel();
+list.$dataSource = new Person.DataSources.NamesStartingWith();
+list.$load(1);

Standard Parameters

All methods on IDataSource<T> take a parameter that contains all the client-specified parameters for things paging, searching, sorting, and filtering information. Almost all virtual methods on StandardDataSource are also passed the relevant set of parameters.

Custom Parameters

On any data source that you create, you may add additional properties annotated with [Coalesce] that will then be exposed as parameters to the client. These property parameters are currently restricted to primitives (numeric types, strings) and dates (DateTime, DateTimeOffset). Property parameter primitives may be expanded to allow for more types in the future.

c#
[Coalesce]
+public class NamesStartingWith : StandardDataSource<Person, AppDbContext>
+{
+    public NamesStartingWith(CrudContext<AppDbContext> context) : base(context) { }
+
+    [Coalesce]
+    public string StartsWith { get; set; }
+
+    public override IQueryable<Person> GetQuery(IDataSourceParameters parameters) 
+        => Db.People.Include(f => f.Siblings)
+        .Where(f => string.IsNullOrWhitespace(StartsWith) ? true : f.FirstName.StartsWith(StartsWith));
+}

List Auto-loading

You can setup TypeScript List ViewModels to automatically reload from the server when data source parameters change:

To automatically reload a ListViewModel when data source parameters change, simply use the list's $useAutoLoad or $startAutoLoad function:

ts
import { Person } from '@/models.g';
+import { PersonListViewModel } from '@/viewmodels.g';
+
+const list = new PersonListViewModel;
+const dataSource = list.$dataSource = new Person.DataSources.NamesStartingWith
+list.$useAutoLoad(); // When using options API, use $startAutoLoad(this)
+
+// Trigger a reload:
+dataSource.startsWith = "Jo";

Standard Data Source

The standard data sources, IntelliTect.Coalesce.StandardDataSource<T> and its EntityFramework-supporting sibling IntelliTect.Coalesce.StandardDataSource<T, TContext>, contain a significant number of properties and methods that can be utilized and/or overridden at your leisure.

Default Loading Behavior

When an object or list of objects is requested, the default behavior of the the StandardDataSource is to load all of the immediate relationships of the object (parent objects and child collections), as well as the far side of many-to-many relationships. This is performed in StandardDataSource.GetQuery(), so in order to suppress this behavior in a custom data source, don't build you query off of base.GetQuery(), but instead start directly from the DbSet for your entity when building your custom query.

Clients can suppress this per-request by setting includes = "none" on your TypeScript ViewModel or ListViewModel, but note this is not a security mechanism and should only be used to reduce payload size or improve response time.

On the server, you can suppress this behavior by placing [Read(NoAutoInclude = true)] on either an entire class (affecting all navigation properties of that type), or on specific navigation properties. When placed on a entity class that holds sensitive data, this can help ensure you don't accidentally leak records due to forgetting to customize the data sources of the types whose navigation properties reference your sensitive entity.

You can also suppress this for your entire application by placing [assembly: CoalesceConfiguration(NoAutoInclude = true)] on the assembly that holds your models.

Properties

The following properties are available for use on the StandardDataSource any any derived instances.

CrudContext<TContext> Context

The object passed to the constructor that contains the set of objects needed by the standard data source, and those that are most likely to be used in custom implementations.

TContext Db

An instance of the DbContext that contains a DbSet<T> for the entity served by the data source.

ClaimsPrincipal User

The user making the current request.

int MaxSearchTerms

The max number of search terms to process when interpreting a search term word-by-word. Override by setting a value in the constructor.

int DefaultPageSize

The page size to use if none is specified by the client. Override by setting a value in the constructor.

int MaxPageSize

The maximum page size that will be served. By default, client-specified page sizes will be clamped to this value. Override by setting a value in the constructor.

Method Overview

The standard data source contains 19 different methods which can be overridden in your derived class to control its behavior.

These methods often call one another, so overriding one method may cause some other method to no longer be called. The hierarchy of method calls, ignoring any logic or conditions contained within, is as follows:

GetMappedItemAsync
+    GetItemAsync
+        GetQueryAsync
+            GetQuery
+        GetIncludeTree
+    TransformResults
+
+GetMappedListAsync
+    GetListAsync
+        GetQueryAsync
+            GetQuery
+        ApplyListFiltering
+            ApplyListPropertyFilters
+                ApplyListPropertyFilter
+            ApplyListSearchTerm
+        GetListTotalCountAsync
+        ApplyListSorting
+            ApplyListClientSpecifiedSorting
+            ApplyListDefaultSorting
+        ApplyListPaging
+        GetIncludeTree
+    TrimListFields
+    TransformResults
+
+GetCountAsync
+    GetQueryAsync
+        GetQuery
+    ApplyListFiltering
+        ApplyListPropertyFilters
+            ApplyListPropertyFilter
+        ApplyListSearchTerm
+    GetListTotalCountAsync

Method Details

All of the methods outlined above can be overridden. A description of each of the non-interface inner methods is as follows:

IQueryable<T> GetQuery(IDataSourceParameters parameters);
+Task<IQueryable<T>> GetQueryAsync(IDataSourceParameters parameters);

The method is the one that you will most commonly be override in order to implement custom query logic. The default implementation of GetQueryAsync simply calls GetQuery - be aware of this in cases of complex overrides/inheritance. From this method, you could:

  • Specify additional query filtering such as row-level security or soft-delete logic. Or, restrict the data source entirely for users or whole roles by returning an empty query.
  • Include additional data using EF's .Include() and .ThenInclude().
  • Add additional edges to the serialized object graph using Coalesce's .IncludedSeparately() and .ThenIncluded().

Note

When GetQuery is overridden, the Default Loading Behavior is overridden as well. To restore this behavior, use the IQueryable<T>.IncludeChildren() extension method to build your query.

IncludeTree? GetIncludeTree(IQueryable<T> query, IDataSourceParameters parameters)

Allows for explicitly specifying the Include Tree that will be used when serializing results obtained from this data source into DTOs. By default, the query that is build up through all the other methods in the data source will be used to build the include tree.

bool CanEvalQueryAsynchronously(IQueryable<T> query)

Called by other methods in the standard data source to determine whether or not EF Core async methods will be used to evaluate queries. This may be globally disabled when bugs like https://github.com/dotnet/SqlClient/issues/593 are present in EF Core.

IQueryable<T> ApplyListFiltering(IQueryable<T> query, IFilterParameters parameters)

A simple wrapper that calls ApplyListPropertyFilters and ApplyListSearchTerm.

IQueryable<T> ApplyListPropertyFilters(IQueryable<T> query, IFilterParameters parameters)

For each value in parameters.Filter, invoke ApplyListPropertyFilter to apply a filter to the query.

IQueryable<T> ApplyListPropertyFilter(IQueryable<T> query, PropertyViewModel prop, string value)

Given a property and a client-provided string value, perform some filtering on that property.

  • Dates with a time component will be matched exactly.
  • Dates with no time component will match any dates that fell on that day.
  • Strings will match exactly unless an asterisk is found, in which case they will be matched with string.StartsWith.
  • Enums will match by string or numeric value. Multiple comma-delimited values will create a filter that will match on any of the provided values.
  • Numeric values will match exactly. Multiple comma-delimited values will create a filter that will match on any of the provided values.

IQueryable<T> ApplyListSearchTerm(IQueryable<T> query, IFilterParameters parameters)

Applies filters to the query based on the specified search term. See [Search] for a detailed look at how searching works in Coalesce.

IQueryable<T> ApplyListSorting(IQueryable<T> query, IListParameters parameters)

If any client-specified sort orders are present, invokes ApplyListClientSpecifiedSorting. Otherwise, invokes ApplyListDefaultSorting.

IQueryable<T> ApplyListClientSpecifiedSorting(IQueryable<T> query, IListParameters parameters)

Applies sorting to the query based on sort orders specified by the client. If the client specified "none" as the sort field, no sorting will take place.

IQueryable<T> ApplyListDefaultSorting(IQueryable<T> query)

Applies default sorting behavior to the query, including behavior defined with use of [DefaultOrderBy] in C# POCOs, as well as fallback sorting to "Name" or primary key properties.

IQueryable<T> ApplyListPaging(IQueryable<T> query, IListParameters parameters, int? totalCount, out int page, out int pageSize)

Applies paging to the query based on incoming parameters. Provides the actual page and pageSize that were used as out parameters.

Task<int> GetListTotalCountAsync(IQueryable<T> query, IFilterParameters parameters)

Simple wrapper around invoking .Count() on a query.

void TransformResults(IReadOnlyList<T> results, IDataSourceParameters parameters);
+Task TransformResultsAsync(IReadOnlyList<T> results, IDataSourceParameters parameters);

Allows for transformation of a result set after the query has been evaluated. This will be called for both lists of items and for single items. This can be used for populating non-mapped properties on a model, or conditionally loading navigation properties using logic that depends upon the contents of each loaded record.

This method is only called immediately before mapping to a DTO; it does not affect operations that don't involve mapping to a DTO - e.g. when loading the target of a /save operation or when loading the invocation target of an instance method.

See the Security page for an example on how to use TransformResults to apply filtered includes.

Do not use TransformResults to modify any database-mapped scalar properties, since such changes could be inadvertently persisted to the database.

IList<TDto> TrimListFields<TDto>(IList<TDto> mappedResult, IListParameters parameters)

Performs trimming of the fields of the result set based on the parameters given to the data source. Can be overridden to forcibly disable this, override the behavior to always trim specific fields, or any other functionality desired.

Globally Replacing the Standard Data Source

You can, of course, create a custom base data source that all your custom implementations inherit from. But, what if you want to override the standard data source across your entire application, so that StandardDataSource<,> will never be instantiated? You can do that too!

Simply create a class that implements IEntityFrameworkDataSource<,> (the StandardDataSource<,> already does - feel free to inherit from it), then register it at application startup like so:

c#
public class MyDataSource<T, TContext> : StandardDataSource<T, TContext>
+    where T : class
+    where TContext : DbContext
+{
+    public MyDataSource(CrudContext<TContext> context) : base(context)
+    {
+    }
+
+    ...
+}
c#
public void ConfigureServices(IServiceCollection services)
+{
+    services.AddCoalesce(b =>
+    {
+        b.AddContext<AppDbContext>();
+        b.UseDefaultDataSource(typeof(MyDataSource<,>));
+    });
+}

Your custom data source must have the same generic type parameters - <T, TContext>. Otherwise, the Microsoft.Extensions.DependencyInjection service provider won't know how to inject it.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/methods.html b/modeling/model-components/methods.html new file mode 100644 index 000000000..f23a85cbb --- /dev/null +++ b/modeling/model-components/methods.html @@ -0,0 +1,158 @@ + + + + + + Methods | Coalesce + + + + + + + + + + + + + + +
Skip to content

Methods

Any public methods annotated with the [Coalesce] attribute that are placed on your model classes will have API endpoints and Typescript generated by Coalesce. Both instance methods and static methods are supported. Additionally, any instance methods on Services will also have API endpoints and TypeScript generated.

These custom methods allow you to implement any custom server-side functionality in your Coalesce application that falls outside of the standard CRUD functions that are generated for your entities.

Declaring Methods

Instance Methods

Instance Methods can be declared on your Entity classes. For example:

c#
public class User
+{
+    public int UserId { get; set; }
+
+    public string Email { get; set; }
+
+    [Coalesce]
+    public async Task<ItemResult> SendMessage(
+        [Inject] SmtpClient client,
+        ClaimsPrincipal sender,
+        string message
+    ) {
+        if (string.IsNullOrWhitespace(Email)) return "Recipient has no email";
+        if (string.IsNullOrWhitespace(message)) return "Message is required";
+
+        await client.SendMailAsync(new MailMessage(  
+            from: sender.GetEmailAddress(),
+            to: Email,
+            subject: "Message from MyApp",  
+            body: message
+        ));
+        return true;
+    }
+}

When an instance method is invoked, the target model instance will be loaded using the data source specified by an attribute [LoadFromDataSource(typeof(MyDataSource))] if present. Otherwise, the model instance will be loaded using the default data source for the model's type. If you have a Custom Data Source annotated with [DefaultDataSource], that data source will be used. Otherwise, the Standard Data Source will be used. The consequence of this is that a user cannot call a method on an instance of entity that they're not allowed to see or load.

Instance methods are generated onto the TypeScript ViewModels.

When should I use Instance Methods?

Instance methods, as opposed to static or service methods, are a good fit when implementing an action that directly acts on or depends upon a specific instance of one of your entity types. One of their biggest benefits is the automatic row-level security from data sources as described above.

Static Methods

Static Methods can be declared on your Entity classes. For example:

c#
public class Person 
+{
+    public int PersonId { get; set; }
+
+    public string FirstName { get; set; }
+
+    [Coalesce]
+    public static ICollection<string> NamesStartingWith(
+        AppDbContext db,
+        string characters 
+    ) {
+        return db.People
+            .Select(p => p.FirstName)
+            .Where(f => f.StartsWith(characters))
+            .ToList();
+    }
+}

Static methods are generated onto the TypeScript ListViewModels. All of the same members that are generated for instance methods are also generated for static methods.

When should I use Static Methods?

Static methods are a good fit for actions that don't operate on a specific instance of an entity type, but whose functionality is still closely coupled with a specific, concrete entity type.

For example, imagine you have a File entity class. You could make a static method on that class that accepts a file as a parameter. This method would persist that file to storage and then save a new entity to the database. You would then disable Create on that entity, since the default /save endpoint cannot accept file uploads.

Or, imagine an Invoice class. You might make a static method that returns a summary of sales information for a given time range. Since this summarization would be performing aggregate functions against your Invoice entities and is therefore tightly coupled to Invoices, a static method would be suitable.

Service Methods

Service methods can be declared on a Coalesce Service class:

c#
[Coalesce, Service]
+public class MyService 
+{
+  [Coalesce]
+  public string MyServiceMethod() => "Hello, World!";
+}

Or, they can be declared via a Coalesce Service interface that has an implementation registered with dependency injection:

c#
[Coalesce, Service]
+public interface IMyService 
+{
+  string MyServiceMethod() => "Hello, World!";
+}

When declaring service methods by interface, a [Coalesce] attribute on each method is not needed - the entire interface is exposed by Coalesce.

When should I use Service Methods?

Services are a catch-all feature and can be used for almost any conceivable purpose in Coalesce to implement custom functionality that needs to be invoked by your front-end app.

However, there are some reasons why you might not want to use a service:

  • If the method logically operates on a single entity instance, and/or if using an instance method would let you utilize the row-level security already implemented by one of your data sources to authorize who can invoke the method.
  • If the service would only have one or two methods and would logically make sense as a static or instance method. In other words, if adding a new service class would be detrimental to the organization of your codebase and create "file sprawl".

On the other hand, services have some benefits that instance and static methods cannot provide:

  • Coalesce Services can be declared with an interface, rather than a concrete type, allowing for their implementation to be substituted more easily. For example, a service providing an external integration that you want to mock or stub during automated testing and/or local development.

Parameters

The following parameters can be added to your methods:

TypeDescription

Primitives, Dates, and other Scalars

Most common built-in primitive and scalar data types (numerics, strings, booleans, enums, DateTime, DateTimeOffset), and their nullable variants, are accepted as parameters to be passed from the client to the method call.

Entity Models

When invoking the method on the client, the object's properties will only be serialized one level deep. If an entity model parameter has additional child object properties, they will not be included in the invocation of the method - only the object's primitive & date properties will be deserialized from the client.

External Types

Unlike entity model parameters, external type parameters will be serialized and sent by the client to an arbitrarily deep level, excluding any entity model properties that may be nested inside an external type.

Files

Methods can accept file uploads by using a parameter of type IntelliTect.Coalesce.Models.IFile (or any derived type, like IntelliTect.Coalesce.Models.File).

ICollection<T>, IEnumerable<T>

Collections of any of the above valid parameter types above are also valid parameter types.

DbContext

If the method has a parameter assignable to Microsoft.EntityFrameworkCore.DbContext, then the parameter will be implicitly [Inject]ed.

ClaimsPrincipal

If the method has a parameter of type ClaimsPrincipal, the value of HttpContext.User will be passed to the parameter.

[Inject]

If a parameter is marked with the [Inject] attribute, it will be injected from the application's IServiceProvider.

out IncludeTree

Deprecated. If you need to return an Include Tree to shape the serialization of the method's return value, you should use an ItemResult<T> return value and populate the IncludeTree property on the ItemResult object.

Return Values

You can return virtually anything from these methods:

TypeDescription

Primitives, Dates, and other Scalars

Most common built-in primitive and scalar data types (numerics, strings, booleans, enums, DateTime, DateTimeOffset), and their nullable variants, may be returned from methods.

Entity Models

Any of the types of your models may be returned.

External Types

Any External Types you define may also be returned from a method.

When returning custom types from methods, be careful of the types of their properties. Coalesce will recursively discover and generate code for all public properties of your External Types. If you accidentally include a type that you do not own, these generated types could get out of hand extremely quickly.

Mark any properties you don't want generated with the [InternalUse] attribute, or give them a non-public access modifier. Whenever possible, don't return types that you don't own or control.

ICollection<T>, IEnumerable<T>

Collections of any of the above valid return types above are also valid return types. IEnumerables are useful for generator functions using yield. ICollection is highly suggested over IEnumerable whenever appropriate, though.

IQueryable<T>

Queryables of the valid return types above are valid return types. The query will be evaluated, and Coalesce will attempt to pull an Include Tree from the queryable to shape the response.

When Include Tree functionality is needed to shape the response but an IQueryable<> return type is not feasible, an ItemResult return value with an IncludeTree set on it will do the trick as well.

Files

Methods can return file downloads using type IntelliTect.Coalesce.Models.IFile (or any derived type, like IntelliTect.Coalesce.Models.File).

Please see the File Downloads section below for more details

ItemResult<T>, ItemResult, ListResult<T>

An IntelliTect.Coalesce.Models.ItemResult<T> of any of the valid return types above, including collections, is valid, as well as its non-generic variant ItemResult, and its list variant ListResult<T>.

Use an ItemResult whenever you might need to signal failure and return an error message from a custom method. The WasSuccessful and Message properties on the result object will be sent along to the client to indicate success or failure of the method. The type T will be mapped to the appropriate DTO object before being serialized as normal.

An Include Tree can be set on the object's IncludeTree parameter to shape the serialization of the method's returned value.

Security

You can implement role-based security on a method by placing the [Execute] on the method. Placing this attribute on the method with no roles specified will simply require that the calling user be authenticated.

Security for instance methods is also controlled by the data source that loads the instance - if the data source can't provide an instance of the requested model, the method won't be executed.

See the Security page to read more about custom method security, as well as all other security mechanisms in Coalesce.

Generated TypeScript

See API Callers and ViewModel Layer for details on the code that is generated for your custom methods.

Note

Any Task-returning methods with "Async" as a suffix to the C# method's name will have the "Async" suffix stripped from the generated Typescript.

Method Annotations

Methods can be annotated with attributes to control API exposure and TypeScript generation. The following attributes are available for model methods. General annotations can be found on the Attributes page.

[Coalesce]

The [Coalesce] attribute causes the method to be exposed via a generated API controller. This is not needed for methods defined on an interface marked with [Service] - Coalesce assumes that all methods on the interface are intended to be exposed. If this is not desired, create a new, more restricted interface with only the desired methods to be exposed.

[ControllerAction(Method = HttpMethod, VaryByProperty = string)]

The [ControllerAction] attribute controls how this method is exposed via HTTP. Can be used to customize the HTTP method/verb for the method, as well as caching behavior.

[Execute(string roles)]

The [Execute] attribute specifies which roles can execute this method from the generated API controller. Additional security restrictions that cannot be implemented with roles should be enforced with custom code in the method's implementation.

[LoadFromDataSource(Type dataSourceType)]

The [LoadFromDataSource] attribute specifies that the targeted model instance method should load the instance it is called on from the specified data source when invoked from an API endpoint. If not defined, the model's default data source is used.

File Downloads

Coalesce supports exposing file downloads via custom methods. Simply return a IntelliTect.Coalesce.Models.IFile (or any derived type, like IntelliTect.Coalesce.Models.File), or an ItemResult<> of such.

Consuming file downloads

There are a few conveniences for easily consuming downloaded files from your custom pages.

The API Callers have a property url. This can be provided directly to your HTML template, with the browser invoking the endpoint automatically.

ts
import { PersonViewModel } from '@/viewmodels.g'
+
+var viewModel = new PersonViewModel();
+viewModel.$load(1);
html
<img :src="downloadPicture.url">

Alternatively, the API Callers for file-returning methods have a method getResultObjectUrl(vue). If the method was invoked programmatically (i.e. via caller(), caller.invoke(), or caller.invokeWithArgs()), this method returns an Object URL that can be set as the src of an image or video HTML tag.

ts
import { PersonViewModel } from '@/viewmodels.g'
+
+var viewModel = new PersonViewModel();
+await viewModel.$load(1);
+await viewModel.downloadPicture();
html
<img :src="downloadPicture.getResultObjectUrl()">

Database-stored Files

When storing large byte[] objects in your EF models, it is important that these are never loaded unless necessary. Loading these can cause significant garbage collector churn, or even bring your app to a halt. To achieve this with EF, you can either utilize Table Splitting, or you can use an entire dedicated table that only contains a primary key and the binary content, and nothing else.

WARNING

Storing large binary objects in relational databases comes with significant drawbacks. For large-volume cloud solutions, it is much more costly than dedicated cloud-native file storage like Azure Storage or S3. Also of note is that the larger a database is, the more difficult its backup process becomes.

For files that are stored in your database, Coalesce supports a pattern that allows the file to be streamed directly to the HTTP response without needing to allocate a chunk of memory for the whole file at once. Simply pass an EF IQueryable<byte[]> to the constructor of IntelliTect.Coalesce.Models.File. This implementation, however, is specific to the underlying EF database provider. Currently, only SQL Server and SQLite are supported. Please open a Github issue to request support for other providers. An example of this mechanism is included in the DownloadAttachment method in the code sample below.

The following is an example of utilizing Table Splitting for database-stored files. Generally speaking, metadata about the file should be stored on the "main" entity, and only the bytes of the content should be split into a separate entity.

c#
public class AppDbContext : DbContext
+{
+    public DbSet<Case> Cases { get; set; }
+
+    protected override void OnModelCreating(ModelBuilder modelBuilder)
+    {
+        modelBuilder
+            .Entity<Case>()
+            .ToTable("Cases")
+            .HasOne(c => c.AttachmentContent)
+            .WithOne()
+            .HasForeignKey<CaseAttachmentContent>(c => c.CaseId);
+        modelBuilder
+            .Entity<CaseAttachmentContent>()
+            .ToTable("Cases")
+            .HasKey(d => d.CaseId);
+    }
+}
+
+public class Case
+{
+    public int CaseId { get; set; }
+
+    [Read]
+    public string AttachmentName { get; set; }
+
+    [Read]
+    public long AttachmentSize { get; set; }
+
+    [Read]
+    public string AttachmentType { get; set; }
+
+    [Read, MaxLength(32)] // Adjust max length based on chosen hash algorithm.
+    public byte[] AttachmentHash { get; set; } // Could also be a base64 string if so desired.
+
+    [InternalUse]
+    public CaseAttachmentContent AttachmentContent { get; set; } = new();
+
+    [Coalesce]
+    public async Task UploadAttachment(AppDbContext db, IFile file)
+    {
+        if (file.Content == null) return;
+
+        var content = new byte[file.Length];
+        await file.Content.ReadAsync(content.AsMemory());
+
+        AttachmentContent = new () { CaseId = CaseId, Content = content };
+        AttachmentName = file.Name;
+        AttachmentSize = file.Length;
+        AttachmentType = file.ContentType;
+        AttachmentHash = SHA256.HashData(content);
+    }
+
+    [Coalesce]
+    [ControllerAction(HttpMethod.Get, VaryByProperty = nameof(AttachmentHash))]
+    public IFile DownloadAttachment(AppDbContext db)
+    {
+        return new IntelliTect.Coalesce.Models.File(db.Cases
+            .Where(c => c.CaseId == this.CaseId)
+            .Select(c => c.AttachmentContent.Content)
+        )
+        {
+            Name = AttachmentName,
+            ContentType = AttachmentType,
+        };
+    }
+}
+
+public class CaseAttachmentContent
+{
+    public int CaseId { get; set; }
+
+    [Required]
+    public byte[] Content { get; set; }
+}

Other File Storage

For any other storage mechanism, implementations are similar to the database storage approach above. However, instead of table splitting or using a whole separate table, the file contents are simply stored elsewhere. Continue storing metadata about the file on the primary entity, and implement upload/download methods as desired that wrap the storage provider.

For downloads, prefer directly providing the underlying Stream to the IFile versus wrapping a byte[] in a MemoryStream. This will reduce server memory usage and garbage collector churn.

For cloud storage providers where complex security logic is not needed, consider having clients consume the URL of the cloud resource directly rather than passing the file content through your own server.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-components/properties.html b/modeling/model-components/properties.html new file mode 100644 index 000000000..5085ac460 --- /dev/null +++ b/modeling/model-components/properties.html @@ -0,0 +1,25 @@ + + + + + + Properties | Coalesce + + + + + + + + + + + + + + +
Skip to content

Properties

Models in a Coalesce application are just EF Core POCOs. The properties defined on your models should fit within the constraints of EF Core.

Coalesce currently has a few more restrictions than what EF Core allows, but hopefully over time some of these restrictions can be relaxed as Coalesce grows in capability.

Property Varieties

The following kinds of properties may be declared on your models.

Primary Key

To work with Coalesce, your model must have a single property for a primary key. By convention, this property should be named the same as your model class with Id appended to that name, but you can also annotate a property with [Key] or name it exactly "Id" to denote it as the primary key.

Foreign Keys & Reference Navigation Properties

While a foreign key may be declared on your model using only the EF OnModuleBuilding method to specify its purpose, Coalesce won't know what the property is a key for. Therefore, foreign key properties should always be accompanied by a reference navigation property, and vice versa.

In cases where the foreign key is not named after the navigation property with "Id" appended, the [ForeignKeyAttribute] may be used on either the key or the navigation property to denote the other property of the pair, in accordance with the recommendations set forth by EF Core's Modeling Guidelines.

Collection Navigation Properties

Collection navigation properties can be used in a straightforward manner. In the event where the inverse property on the other side of the relationship cannot be determined, [InversePropertyAttribute] will need to be used. EF Core provides documentation on how to use this attribute. Errors will be displayed at generation time if an inverse property cannot be determined without the attribute. We recommend recommended that you declare the type of collection navigation properties as ICollection<T>.

Non-mapped POCOs

Properties of a type that are not on your DbContext will also have corresponding properties generated on the TypeScript ViewModels typed as TypeScript External ViewModels, and the values of such properties will be sent with the object to the client when requested. Properties of this type will also be sent back to the server by the client when they are encountered (currently supported by the Vue Stack only).

See External Types for more information.

Primitives, Scalars, & Dates

Most common built-in primitive and scalar data types (numerics, strings, booleans, enums, DateTime, DateTimeOffset), and their nullable variants, are all supported as model properties.

Getter-only Properties

Any property that only has a getter will also have a corresponding property generated in the TypeScript ViewModels, but won't be sent back to the server during any save actions.

If such a property is defined as an auto-property, the [NotMapped] attribute should be used to prevent EF Core from attempting to map such a property to your database.

Init-only Properties

Properties on Entity Models that use an init accessor rather than a set accessor will be implicitly treated as required, and can also only have a value provided when the entity is created for the first time. Any values provided during save actions for init-only properties when updating an existing entity will be ignored.

Property Customization

For any of the kinds of properties outlined above, the following customizations can be applied:

Attributes

Coalesce provides a number of Attributes, and supports a number of other .NET attributes, that allow for further customization of your model.

Security

Property values received by the server from the client will be ignored if rejected by any property-level Security. This security is implemented in the Generated C# DTOs.

Loading & Serialization

The Default Loading Behavior, any custom functionality defined in Data Sources, and [DtoIncludes] & [DtoExcludes] may also restrict which properties are sent to the client when requested.

NotMapped

While Coalesce does not do anything special for the [NotMapped] attribute, it is still an important attribute to keep in mind while building your model, as it prevents EF Core from doing anything with the property.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-types/dtos.html b/modeling/model-types/dtos.html new file mode 100644 index 000000000..540d04bc0 --- /dev/null +++ b/modeling/model-types/dtos.html @@ -0,0 +1,110 @@ + + + + + + Custom DTOs | Coalesce + + + + + + + + + + + + + + +
Skip to content

Custom DTOs

In addition to the generated Generated C# DTOs that Coalesce will create for you, you may also create your own implementations of an IClassDto. These types are first-class citizens in Coalesce - you will get a full suite of features surrounding them as if they were entities. This includes generated API Controllers, Admin Views, and full TypeScript ViewModels and TypeScript List ViewModels.

The difference between a Custom DTO and the underlying entity that they represent is as follows:

  • The only time your custom DTO will be served is when it is requested directly from one of the endpoints on its generated controller, or when its type is explicitly used by a method or property of another type.

  • When mapping data from your database, or mapping data incoming from the client, the DTO itself must manually map all properties, since there is no corresponding Generated DTO. Attributes like [DtoIncludes] & [DtoExcludes] and property-level security through Security Attributes have no effect on custom DTOs, since those attribute only affect what get generated for Generated C# DTOs.

Creating a Custom DTO

To create a custom DTO, define a class annotated with [Coalesce] that implements IClassDTO<T>, where T is an EF Core POCO with a corresponding DbSet<T> on a DbContext that has also been exposed with [Coalesce]. Add any Properties to it just as you would add model properties to a regular EF model. If you are not exposing a DbContext class with [Coalesce] but still wish to create a Custom DTO based upon one of its entities, you can inherit from IClassDTO<T, TContext> instead as a means of explicitly declaring the type of the DbContext.

Next, ensure that one property is annotated with [Key] so that Coalesce can know the primary key of your DTO in order to perform database lookups and keep track of your object uniquely in the client-side TypeScript.

Now, populate the required MapTo and MapFrom methods with code for mapping from and to your DTO, respectively (the methods are named with respect to the underlying entity, not the DTO). Most properties probably map one-to-one in both directions, but you probably created a DTO because you wanted some sort of custom mapping - say, mapping a collection on your entity with a comma-delimited string on the DTO. This is also the place to perform any user-based, role-based, property-level security. You can access the current user on the IMappingContext object.

c#
[Coalesce]
+public class CaseDto : IClassDto<Case>
+{
+    [Key]
+    public int CaseId { get; set; }
+
+    public string Title { get; set; }
+
+    [Read]
+    public string AssignedToName { get; set; }
+
+    public void MapTo(Case obj, IMappingContext context)
+    {
+        obj.Title = Title;
+    }
+
+    public void MapFrom(Case obj, IMappingContext context = null, IncludeTree tree = null)
+    {
+        CaseId = obj.CaseKey;
+        Title = obj.Title;
+        if (obj.AssignedTo != null)
+        {
+            AssignedToName = obj.AssignedTo.Name;
+        }
+    }
+}

WARNING

Custom DTOs do not utilize property-level Security Attributes nor [DtoIncludes] & [DtoExcludes], since these are handled in the Generated DTOs. If you need property-level security or trimming, you must write it yourself in the MapTo and MapFrom methods.

If you have any child objects on your DTO, you can invoke the mapper for some other object using the static Mapper class. Also seen in this example is how to respect the Include Tree when mapping entity types; however, respecting the IncludeTree is optional. Since this DTO is a custom type that you've written, if you're certain your use cases don't need to worry about object graph trimming, then you can ignore the IncludeTree. If you do ignore the IncludeTree, you should pass null to calls to Mapper - don't pass in the incoming IncludeTree, as this could cause unexpected results.

c#
using IntelliTect.Coalesce.Mapping;
+
+[Coalesce]
+public class CaseDto : IClassDto<Case>
+{
+    public int ProductId { get; set; }
+    public Product Product { get; set; }
+    ...
+
+    public void MapFrom(Case obj, IMappingContext context = null, IncludeTree tree = null)
+    {
+        ProductId = obj.ProductId;
+
+        if (tree == null || tree[nameof(this.Product)] != null)
+            Product = Mapper.MapToDto<Product, ProductDtoGen>(obj.Product, context, tree?[nameof(this.Product)]
+        ...
+    }
+}

Using Custom DataSources and Behaviors

Declaring an IClassDto DataSource

When you create a custom DTO, it will use the Standard Data Source and Standard Behaviors just like any of your regular Entity Models. If you wish to override this, your custom data source and/or behaviors MUST be declared in one of the following ways:

  1. As a nested class of the DTO. The relationship between your data source or behaviors and your DTO will be picked up automatically.

    c#
    [Coalesce]
    +public class CaseDto : IClassDto<Case>
    +{
    +    [Key]
    +    public int CaseId { get; set; }
    +
    +    public string Title { get; set; }
    +    
    +    ...
    +
    +    public class MyCaseDtoSource : StandardDataSource<Case, AppDbContext>
    +    {
    +        ...
    +    }
    +}
  2. With a [DeclaredFor] attribute that references the DTO type:

    c#
    [Coalesce]
    +public class CaseDto : IClassDto<Case>
    +{
    +    [Key]
    +    public int CaseId { get; set; }
    +
    +    public string Title { get; set; }
    +    
    +    ...
    +}
    +
    +[Coalesce, DeclaredFor(typeof(CaseDto))]
    +public class MyCaseDtoSource : StandardDataSource<Case, AppDbContext>
    +{
    +    ...
    +}

ProjectedDtoDataSource

In addition to creating a Data Source by deriving from Standard Data Source, there also exists a class ProjectedDtoDataSource that can be used to easily perform projection from EF model types to your custom DTO types using EF query projections. ProjectedDtoDataSource inherits from Standard Data Source.

c#
[Coalesce, DeclaredFor(typeof(CaseDto))]
+public class CaseDtoSource : ProjectedDtoDataSource<Case, CaseDto, AppDbContext>
+{
+    public CaseDtoSource(CrudContext<AppDbContext> context) : base(context) { }
+
+    public override IQueryable<CaseDto> ApplyProjection(IQueryable<Case> query, IDataSourceParameters parameters)
+    {
+        return query.Select(c => new CaseDto
+        {
+            CaseId = c.CaseKey,
+            Title = c.Title,
+            AssignedToName = c.AssignedTo == null ? null : c.AssignedTo.Name
+        });
+    }
+}

Surgical Saves

The Vue ViewModels support surgical saves through their $saveMode property, and Knockout ViewModels through the saveIncludedFields configuration.

Surgical saves require DTOs on the server that are capable of determining which of their properties have been set by the model binder, as surgical saves are sent from the client by entirely omitting properties from the x-www-form-urlencoded body that is sent to the server.

The Generated C# DTOs implement the necessary logic for this; however, any Custom DTOs must have this logic manually written by you, the developer. Either implement the same pattern that can be seen in the Generated C# DTOs, or do not use surgical saves with Custom DTOs.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-types/entities.html b/modeling/model-types/entities.html new file mode 100644 index 000000000..232d17cd4 --- /dev/null +++ b/modeling/model-types/entities.html @@ -0,0 +1,25 @@ + + + + + + Entity Models | Coalesce + + + + + + + + + + + + + + +
Skip to content

Entity Models

Models are the core business objects of your application - they serve as the fundamental representation of data in your application. The design of your models is very important. In Entity Framework Core (EF), data models are just Plain Old CLR Objects (POCOs).

Building a Data Model

To start building your data model that Coalesce will generate code for, follow the best practices for EF Core. Guidance on this topic is available in abundance in the Entity Framework Core documentation.

Don't worry about querying or saving data when you're just getting started - Coalesce will provide a lot of that functionality for you, and it is very easy to customize what Coalesce offers later. To get started, just build your POCOs and DbContext classes. Annotate your DbContext class with [Coalesce] so that Coalesce will discover it and generate code based off of your context for you.

Before you start building, you are highly encouraged to read the sections below. The linked pages explain in greater detail what Coalesce will build for you for each part of your data model.

Properties

Read Properties for an outline of the different types of properties that you may place on your models and the code that Coalesce will generate for each of them.

Attributes

Coalesce provides a number of C# attributes that can be used to decorate your model classes and their properties in order to customize behavior, appearance, security, and more. Coalesce also supports a number of annotations from System.ComponentModel.DataAnnotations.

Read Attributes to learn more.

Methods

You can place both static and interface methods on your model classes. Any public methods annotated with [Coalesce] will have a generated API endpoint and corresponding generated TypeScript members for calling this API endpoint. Read Methods to learn more.

Customizing CRUD Operations

Once you've got a solid data model in place, its time to start customizing the way that Coalesce will read your data, as well as the way that it will handle your data when processing creates, updates, and deletes.

Data Sources

The method by which you can control what data the users of your application can access through Coalesce's generated APIs is by creating custom data sources. These are classes that allow complete control over the way that data is retrieved from your database and provided to clients. Read Data Sources to learn more.

Behaviors

Behaviors in Coalesce are to mutating data as data sources are to reading data. Defining a behaviors class for a model allows complete control over the way that Coalesce will create, update, and delete your application's data in response to requests made through its generated API. Read Behaviors to learn more.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-types/external-types.html b/modeling/model-types/external-types.html new file mode 100644 index 000000000..d2299e412 --- /dev/null +++ b/modeling/model-types/external-types.html @@ -0,0 +1,65 @@ + + + + + + External Types | Coalesce + + + + + + + + + + + + + + +
Skip to content

External Types

In Coalesce, any type which is connected to your data model but is not directly part of it is considered to be an "external type".

The collection of external types for a data model looks like this:

  1. Take all of the api-served types in your data model. This includes Entity Models and Custom DTOs.
  2. Take all of the property types, method parameters, and method return types of these types.
  3. Any of these types which are not built-in scalar types and not one of the aforementioned api-served types are external types.
  4. For any external type discovered, any of the property types which qualify under the above rules are also external types.

WARNING

Be careful when using types that you do not own for properties and method returns in your data model. When Coalesce generates external type ViewModels and DTOs, it will not stop until it has exhausted all paths that can be reached by following public property types and method returns.

In general, you should only expose types that you have created so that you will always have full control over them. Mark any properties you don't wish to expose with [InternalUse], or make those members non-public.

Generated Code

For each external type found in your application's model, Coalesce will generate:

Example Data Model

For example, in the following scenario, the following classes are considered as external types:

  • PluginMetadata, exposed through a getter-only property on ApplicationPlugin.
  • PluginResult, exposed through a method return on ApplicationPlugin.

PluginHandler is not because it not exposed by the model, neither directly nor through any of the other external types.

c#
public class AppDbContext : DbContext {
+    public DbSet<Application> Applications { get; set; }
+    public DbSet<ApplicationPlugin> ApplicationPlugins { get; set; }
+}
+
+public class Application {
+    public int ApplicationId { get; set; }
+    public string Name { get; set; }
+    public ICollection<ApplicationPlugin> Plugins { get; set; }
+}
+
+public class ApplicationPlugin {
+    public int ApplicationPluginId { get; set; }
+    public int ApplicationId { get; set; }
+    public Application Application { get; set; }
+
+    public string TypeName { get; set; }
+
+    private PluginHandler GetInstance() => 
+        ((PluginHandler)Activator.CreateInstance(Type.GetType(TypeName)));
+
+    public PluginMetadata Metadata => GetInstance().GetMetadata();
+
+    public PluginResult Invoke(string action, string data) => GetInstance().Invoke(Application, action, data);
+}
+
+public abstract class PluginHandler { 
+    public abstract PluginMetadata GetMetadata();
+    public abstract PluginResult Invoke(Application app, string action, string data);
+}
+
+public abstract class PluginMetadata { 
+    public bool Name { get; set; }
+    public string Version { get; set; }
+    public ICollection<string> Actions { get; set; }
+}
+
+public abstract class PluginResult { 
+    public bool Success { get; set; }
+    public string Message { get; set; }
+}

Loading & Serialization

External types have slightly different behavior when undergoing serialization to be sent to the client. Unlike database-mapped types which are subject to the rules of Include Tree, external types ignore the Include Tree when being mapped to DTOs for serialization. Read External Type Caveats for a more detailed explanation of this exception.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-types/services.html b/modeling/model-types/services.html new file mode 100644 index 000000000..e6c4b984f --- /dev/null +++ b/modeling/model-types/services.html @@ -0,0 +1,51 @@ + + + + + + Services | Coalesce + + + + + + + + + + + + + + +
Skip to content

Services

In a Coalesce application, you are likely to end up with a need for some API endpoints that aren't closely tied with your regular data model. While you could stick Static Methods on one of your entities, do so is detrimental to the organization of your code.

Instead, Coalesce allows you to generate API Controllers and a TypeScript client from a service. A service, in this case, is nothing more than a C# class or an interface with methods on it, annotated with [Coalesce, Service]. An implementation of this class or interface must be injectable from your application's service container, so a registration in Startup.cs is needed.

The instance methods of these services work just like other custom Methods in Coalesce, with one notable distinction: Instance methods don't operate on an instance of a model, but instead on a dependency injected instance of the service.

Generated Code

For each external type found in your application's model, Coalesce will generate:

  • An API controller with endpoints that correspond to the service's instance methods.
  • A TypeScript client containing the members outlined in Methods for invoking these endpoints.

Example Service

An example of a service might look something like this:

c#
[Coalesce, Service]
+public interface IWeatherService
+{
+    WeatherData GetWeather(string zipCode);
+}

With an implementation:

c#
public class WeatherService : IWeatherService
+{
+    public WeatherService(AppDbContext db)
+    {
+        this.db = db;
+    }
+
+    public WeatherData GetWeather(string zipCode)
+    {
+        // Assuming some magic HttpGet method that works as follows...
+        var response = HttpGet("http://www.example.com/api/weather/" + zipCode);
+        return response.Body.SerializeTo<WeatherData>();
+    }
+
+    public void MethodThatIsNotExposedBecauseItIsNotOnTheExposedInterface() {  }
+}

And a registration:

c#
public class Startup 
+{
+    public void ConfigureServices(IServiceCollection services)
+    {
+        services.AddCoalesce<AppDbContext>();
+        services.AddScoped<IWeatherService, WeatherService>();
+    }
+}

While it isn't required that an interface for your service exist (you can generate directly from the implementation), it is highly recommended that an interface be used. Interfaces increase testability and reduce risk of accidentally changing the signature of a published API, among other benefits.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/modeling/model-types/standalone-entities.html b/modeling/model-types/standalone-entities.html new file mode 100644 index 000000000..6194d9086 --- /dev/null +++ b/modeling/model-types/standalone-entities.html @@ -0,0 +1,72 @@ + + + + + + Standalone Entities | Coalesce + + + + + + + + + + + + + + +
Skip to content

Standalone Entities

In Coalesce, Standalone Entities are types that behave like entity types (they can support the full suite generated CRUD endpoints), but are not based on Entity Framework. These types are discovered by Coalesce by annotating them with [Coalesce, StandaloneEntity].

For these types, you must define at least one custom Data Source, and optionally a Behaviors class as well. If no behaviors are defined, the type is implicitly read-only, equivalent to turning off create/edit/delete via the Security Attributes.

To define data sources and behaviors for Standalone Entities, it is recommended you inherit from StandardDataSource<T> and StandardBehaviors<T>, respectively. For example:

c#
[Coalesce, StandaloneEntity]
+public class StandaloneExample
+{
+    public int Id { get; set; }
+
+    [Search(SearchMethod = SearchAttribute.SearchMethods.Contains), ListText]
+    public string Name { get; set; } = "";
+
+    [DefaultOrderBy]
+    public DateTimeOffset Date { get; set; }
+
+    private static int nextId = 0;
+    private static ConcurrentDictionary<int, StandaloneExample> backingStore = new ConcurrentDictionary<int, StandaloneExample>();
+
+    public class DefaultSource : StandardDataSource<StandaloneExample>
+    {
+        public DefaultSource(CrudContext context) : base(context) { }
+
+        public override Task<IQueryable<StandaloneExample>> GetQueryAsync(IDataSourceParameters parameters)
+            => Task.FromResult(backingStore.Values.AsQueryable());
+    }
+
+    public class Behaviors : StandardBehaviors<StandaloneExample>
+    {
+        public Behaviors(CrudContext context) : base(context) { }
+
+        public override Task ExecuteDeleteAsync(StandaloneExample item)
+        {
+            backingStore.TryRemove(item.Id, out _);
+            return Task.CompletedTask;
+        }
+
+        public override Task ExecuteSaveAsync(SaveKind kind, StandaloneExample? oldItem, StandaloneExample item)
+        {
+            if (kind == SaveKind.Create)
+            {
+                item.Id = Interlocked.Increment(ref nextId);
+                backingStore.TryAdd(item.Id, item);
+            }
+            else
+            {
+                backingStore.TryRemove(item.Id, out _);
+                backingStore.TryAdd(item.Id, item);
+            }
+            return Task.CompletedTask;
+        }
+    }
+}

The above example is admittedly contrived, as it is unlikely that you would be using an in-memory collection as a data persistence mechanism. A more likely real-world scenario would be to inject an interface to some other data store. Data Source and Behavior classes are instantiated using your application's service provider, so any registered service can be injected.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/net-logo.svg b/net-logo.svg new file mode 100644 index 000000000..d204a0904 --- /dev/null +++ b/net-logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/stacks/agnostic/dtos.html b/stacks/agnostic/dtos.html new file mode 100644 index 000000000..486f88678 --- /dev/null +++ b/stacks/agnostic/dtos.html @@ -0,0 +1,25 @@ + + + + + + Generated C# DTOs | Coalesce + + + + + + + + + + + + + + +
Skip to content

Generated C# DTOs

Data Transfer Objects, or DTOs, allow for transformations of data from the data store into a format more suited for transfer and use on the client side. This often means trimming properties and flattening structures to provide a leaner over-the-wire experience. Coalesce aims to support this as seamlessly as possible.

Coalesce supports two types of DTOs:

  • DTOs that are automatically generated for each POCO database object. These are controlled via Attributes on the POCO. These are outlined below.
  • DTOs that you create with IClassDto. These are outlined at Custom DTOs.

Automatically Generated DTOs

Every class that is exposed through Coalesce's generated API will have a corresponding DTO generated for it. These DTOs are used to shuttle data back and forth to the client. They are generated classes that have nullable versions of all the properties on the POCO class.

[DtoIncludes] & [DtoExcludes] and the Includes String infrastructure can be used to indicate which properties should be transferred to the client in which cases, and Include Tree is used to dictate how these DTOs are constructed from POCOs retrieved from the database.

The [Read] and [Edit] attributes can be used to apply property-level security, which manifests as conditional logic in the mapping methods on the generated DTOs.

See the Security page to read more about property-level security, as well as all other security mechanisms in Coalesce.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/agnostic/generation.html b/stacks/agnostic/generation.html new file mode 100644 index 000000000..cbfbe0a35 --- /dev/null +++ b/stacks/agnostic/generation.html @@ -0,0 +1,42 @@ + + + + + + Code Generation Overview | Coalesce + + + + + + + + + + + + + + +
Skip to content

Code Generation Overview

Coalesce's principal purpose is a code generation framework for automating the creation of the boring-but-necessary parts of a web application. Below, you find an overview of the different components of Coalesce's code generation features.

Running Code Generation

Coalesce's code generation is ran via a dotnet CLI tool, dotnet coalesce. In order to invoke this tool, you must have the appropriate references to the package that provides it in your .csproj file:

xml
<Project Sdk="Microsoft.NET.Sdk.Web">
+  <PropertyGroup>
+    <TargetFramework>net7.0</TargetFramework>
+
+    <!-- Necessary to use DotNetCliToolReference with modern framework versions -->
+    <DotnetCliToolTargetFramework>net7.0</DotnetCliToolTargetFramework>
+  </PropertyGroup>
+
+  ...
+
+  <ItemGroup>
+    <PackageReference Include="IntelliTect.Coalesce" Version="..." />
+  </ItemGroup>
+
+  <ItemGroup>
+    <DotNetCliToolReference Include="IntelliTect.Coalesce.Tools" Version="..." />
+  </ItemGroup>  
+</Project>

CLI Options

All configuration of the way that Coalesce interacts with your projects, including locating, analyzing, and producing generated code, is done in a json configuration file, coalesce.json. Read more about this file at Code Generation Configuration.

There are a couple of extra options which are only available as CLI parameters to dotnet coalesce. These options do not affect the behavior of the code generation - only the behavior of the CLI itself.

--debug - When this flag is specified when running dotnet coalesce, Coalesce will wait for a debugger to be attached to its process before starting code generation.

-v|--verbosity <level> - Set the verbosity of the output. Options are trace, debug, information, warning, error, critical, and none.

Generated Code

Coalesce will generate a full vertical stack of code for you:

Backend C#

API Controllers

For each of your Entity Models, Custom DTOs, and Services, an API controller is created in the /Api/Generated directory of your web project. These controllers provide a number of endpoints for interacting with your data.

These controllers can be secured at a high level using Security Attributes, and when applicable to the type, with Data Sources and Behaviors.

C# DTOs

For each of your Entity Models, a C# DTO class is created. These classes are used to hold the data that will be serialized and sent to the client, as well as data that has been received from the client before it has been mapped back to your EF POCO class.

See Generated C# DTOs for more information.

Frontend - Vue

An overview of the Vue generated code can be found at Vue Overview.

Frontend - Knockout

An overview of the legacy Knockout generated code can be found at Knockout Overview.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/agnostic/getting-started-modeling.html b/stacks/agnostic/getting-started-modeling.html new file mode 100644 index 000000000..d7cd72bac --- /dev/null +++ b/stacks/agnostic/getting-started-modeling.html @@ -0,0 +1,25 @@ + + + + + + Data Modeling | Coalesce + + + + + + + + + + + + + + +
Skip to content

Data Modeling

At this point, you can open up the newly-created solution in Visual Studio and run your application. However, your application won't do much without a data model, so you will probably want to do the following before running:

  • Create an initial Data Model by adding EF entity classes to the data project and the corresponding DbSet<> properties to AppDbContext. You will notice that the starter project includes a single model, Widget, to start with. Feel free to change this model or remove it entirely. Read Entity Models for more information about creating a data model.

  • Run dotnet ef migrations add Init (Init can be any name) in the data project to create an initial database migration.

  • Run Coalesce's code generation by either:

    • Running dotnet coalesce in the web project's root directory
    • Running the coalesce npm script (Vue) or gulp task (Knockout) in the Task Runner Explorer

You're now at a point where you can start creating your own pages!


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/disambiguation/external-view-model.html b/stacks/disambiguation/external-view-model.html new file mode 100644 index 000000000..54240016e --- /dev/null +++ b/stacks/disambiguation/external-view-model.html @@ -0,0 +1,25 @@ + + + + + + TypeScript External ViewModels | Coalesce + + + + + + + + + + + + + + +
Skip to content

TypeScript External ViewModels

This is a disambiguation page for a concept in Coalesce that is implemented differently between the available front-end stack choices. Please select your preferred stack.

Vue

The Vue stack for Coalesce does not create dedicated ViewModels for External Types. The interfaces in the Model Layer are used as the only representation of External Types on the client.

Knockout

See: TypeScript External ViewModels


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/disambiguation/list-view-model.html b/stacks/disambiguation/list-view-model.html new file mode 100644 index 000000000..b250c162d --- /dev/null +++ b/stacks/disambiguation/list-view-model.html @@ -0,0 +1,25 @@ + + + + + + TypeScript List ViewModels | Coalesce + + + + + + + + + + + + + + +
Skip to content

TypeScript List ViewModels

This is a disambiguation page for a concept in Coalesce that is implemented differently between the available front-end stack choices. Please select your preferred stack.

Vue

See: Vue ListViewModels

Knockout

See: Knockout ListViewModels


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/disambiguation/view-model.html b/stacks/disambiguation/view-model.html new file mode 100644 index 000000000..9744c09e6 --- /dev/null +++ b/stacks/disambiguation/view-model.html @@ -0,0 +1,25 @@ + + + + + + TypeScript ViewModels | Coalesce + + + + + + + + + + + + + + +
Skip to content

TypeScript ViewModels

This is a disambiguation page for a concept in Coalesce that is implemented differently between the available front-end stack choices. Please select your preferred stack.

Vue

See: Vue ViewModels

Knockout

See: Knockout ViewModels


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/ko/client/bindings.html b/stacks/ko/client/bindings.html new file mode 100644 index 000000000..aa4e0f806 --- /dev/null +++ b/stacks/ko/client/bindings.html @@ -0,0 +1,64 @@ + + + + + + Knockout Bindings | Coalesce + + + + + + + + + + + + + + +
Skip to content

Knockout Bindings

Coalesce provides a number of knockout bindings that make common model binding activities much easier.

Editors Note: On this page, some bindings are split into their requisite HTML component with their data-bind component listed immediately after. Keep this in mind when reading.

Input Bindings

select2Ajax

html
<select data-bind="
+    select2Ajax: personId, 
+    url: '/api/Person/list', 
+    idField: 'personId', 
+    textField: 'Name', 
+    object: person, 
+    allowClear: true
+"></select>

Creates a select2 dropdown using the specified url and fields that can be used to select an object from the endpoint specified. Additional complimentary bindings include:

url: string

The Coalesce List API url to call to populate the contents of the dropdown.

idField: string

The name of the field on each item in the results of the AJAX call which contains the ID of the option. The value of this field will be set on the observable specified for the main select2Ajax binding.

textField: string

The name of the field on each item in the results of the AJAX call which contains the text to be displayed for each option.

object?: KnockoutObservable<Coalesce.BaseViewModel | null>

An observable that holds the full object corresponding to the foreign key property being bound to. If the selected value changes, this will be set to null to avoid representation of incorrect data (unless setObject is used - see below).

setObject: boolean = false

If true, the observable specified by the object binding will be set to the selected data when an option is chosen in the dropdown. Binding itemViewModel is required if this binding is set.

Additionally, requests to the API to populate the dropdown will request the entire object, as opposed to only the two fields specified for idField and textField like is normally done when this binding is missing or set to false. To override this behavior and continue requesting only specific fields even when setObject is true, add fields=field1,field2,... to the query string of the url binding.

itemViewModel?: (new (newItem: object) => Coalesce.BaseViewModel)

A reference to the class that represents the type of the object held in the object observable. This is used when constructing new objects from the results of the API call. Not used if setObject is false or unspecified. For example, setObject: true, itemViewModel: ViewModels.Person.

pageSize: number = 25

The number of items to request in each call to the server.

format: string = '{0}'

A string containing the substring {0}, which will be replaced with the text value of an option in the dropdown list when the option is displayed.

selectionFormat: string = '{0}'

A string containing the substring {0}, which will be replaced with the text value of the selected option of the dropdown list.

cache: boolean = true

If true, a cache-busting querystring parameter will be included in AJAX requests.

selectOnClose: boolean = false

Directly maps to select2 option selectOnClose.

allowClear: boolean = true

Whether or not to allow the current select to be set to null. Directly maps to select2 option allowClear.

placeholder: string = 'select'

Placeholder when nothing is selected. Directly maps to select2 option placeholder.

openOnFocus: boolean = false

If true, the dropdown will open when tabbed to. Browser support may be incomplete in some versions of IE.

select2AjaxMultiple

html
<select multiple="multiple" data-bind="
+    select2AjaxMultiple: people, 
+    url: '/api/Person/list', 
+    idField: 'personId', 
+    textField: 'Name', 
+    itemViewModel: ViewModels.PersonCase
+"></select>

Creates a select2 multi-select input for choosing objects that participate as the foreign object in a many-to-many relationship with the current object. The primary select2AjaxMultiple binding takes the collection of items that make up the foreign side of the relationship. This is NOT the collection of the join objects (a.k.a. middle table objects) in the relationship.

Additional complimentary bindings include:

url: string

The Coalesce List API url to call to populate the contents of the dropdown. In order to only receive specific fields from the server, add fields=field1,field2,... to the query string of the url, ensuring that at least the idField and textField are included in that collection.

idField: string

The name of the field on each item in the results of the AJAX call which contains the ID of the option. The value of this field will be set as the key of the foreign object in the many-to-many relationship.

textField: string

The name of the field on each item in the results of the AJAX call which contains the text to be displayed for each option.

itemViewModel: (new (newItem: object) => Coalesce.BaseViewModel)

A reference to the class that represents the types in the supplied collection. For example, a many-to-many between Person and Case objects where Case is the object being bound to and Person is the type represented by a child collection, the correct value is ViewModels.Person. This is used when constructing new objects representing the relationship when a new item is selected.

pageSize: number = 25

The number of items to request in each call to the server.

format: string = '{0}'

A string containing the substring {0}, which will be replaced with the text value of an option in the dropdown list when the option is displayed.

selectionFormat: string = '{0}'

A string containing the substring {0}, which will be replaced with the text value of the selected option of the dropdown list.

cache: boolean = true

If true, a cache-busting querystring parameter will be included in AJAX requests.

selectOnClose: boolean = false

Directly maps to select2 option selectOnClose.

allowClear: boolean = true

Whether or not to allow the current select to be set to null. Directly maps to select2 option allowClear.

placeholder: string = 'select'

Placeholder when nothing is selected. Directly maps to select2 option placeholder.

openOnFocus: boolean = false

If true, the dropdown will open when tabbed to. Browser support may be incomplete in some versions of IE.

select2AjaxText

html
<select data-bind="
+    select2AjaxText: schoolName, 
+    url: '/api/Person/SchoolNames'
+"></select>

Creates a select2 dropdown against the specified url where the url returns a collection of string values that are potential selection candidates. The dropdown also allows the user to input any value they choose - the API simply serves suggested values.

url: string

The url to call to populate the contents of the dropdown. This should be an endpoint that returns one of the following:

  • A raw string[]
  • An object that conforms to { list: string[] }
  • An object that conforms to { object: string[] }
  • An object that conforms to { list: { [prop: string]: string } } where the value given to resultField is a valid property of the returned objects.
  • An object that conforms to { object: { [prop: string]: string } } where the value given to resultField is a valid property of the returned objects.

The url will also be passed a search parameter and a page parameter appended to the query string. The chosen endpoint is responsible for implementing this functionality. Page size is expected to be some fixed value. Implementer should anticipate that the requested page may be out of range.

The cases listed above that accept arrays of objects (as opposed to arrays of strings) require that the resultField binding is also used. These are designed for obtaining string values from objects obtained from the standard list endpoint.

resultField?: string

If provided, specifies a field on the objects returned from the API to pull the string values from. See examples in url above.

allowCustom: boolean = true

If false, the user's search input will not be presented as a valid selectable value; only the exact values obtained from the API endpoint will be selectable.

selectOnClose: boolean = false

Directly maps to select2 option selectOnClose.

allowClear: boolean = true

Whether or not to allow the current select to be set to null. Directly maps to select2 option allowClear.

placeholder: string = 'select'

Placeholder when nothing is selected. Directly maps to select2 option placeholder.

openOnFocus: boolean = false

If true, the dropdown will open when tabbed to. Browser support may be incomplete in some versions of IE.

select2

html
<select data-bind="select2: selectedNumber">
+    <option value="1">Option 1</option>
+    <option value="2">Option 2</option>
+</select>

Sets up a basic select2 dropdown on an HTML select element. Dropdown contents should be populated through other means - either using stock Knockout bindings or server-side static contents (via cshtml).

selectOnClose: boolean = false

Directly maps to select2 option selectOnClose.

allowClear: boolean = true

Whether or not to allow the current select to be set to null. Directly maps to select2 option allowClear.

placeholder: string = 'select'

Placeholder when nothing is selected. Directly maps to select2 option placeholder.

openOnFocus: boolean = false

If true, the dropdown will open when tabbed to. Browser support may be incomplete in some versions of IE.

datePicker

html
<div class="input-group date">
+    <input data-bind="datePicker: birthDate" type="text" class="form-control" id-prefix="datePicker" />
+    <span class="input-group-addon">
+        <span class="fa fa-calendar"></span>
+    </span>
+</div>

Creates a date/time picker for changing a moment.Moment property. The control used is bootstrap-datetimepicker

preserveDate: boolean = false

If true, the date portion of the moment.Moment object will be preserved by the date picker. Only the time portion will be changed by user input.

preserveTime: boolean = false

If true, the time portion of the moment.Moment object will be preserved by the date picker. Only the date portion will be changed by user input.

format: string = 'M/D/YY h:mm a'

Specify the moment-compatible format string to be used as the display format for the text value shown on the date picker. Defaults to M/D/YY h:mm a. Direct pass-through to bootstrap-datetimepicker.

sideBySide: boolean = false

If true, places the time picker next to the date picker, visible at the same time. Direct pass-through to corresponding bootstrap-datetimepicker option.

stepping: number = 1

Direct pass-through to corresponding bootstrap-datetimepicker option.

timeZone: string = ''

Direct pass-through to corresponding bootstrap-datetimepicker option.

keyBinds = { left: null, right: null, delete: null }

Override key bindings of the date picker. Direct pass-through to corresponding bootstrap-datetimepicker option.

updateImmediate: boolean = false

If true, the datePicker will update the underlying observable on each input change. Otherwise, the observable will only be changed when the datePicker loses focus (on blur).

saveImmediately

html
<div data-bind="with: product">
+    <input type="text" data-bind="textValue: description, saveImmediately: true" />
+</div>

When used in a context where $data is a Coalesce.BaseViewModel, that object's saveTimeoutMs configuration property (see ViewModel Configuration) will be set to 0 when the element it is placed on gains focus. This value will be reverted to its previous value when the element loses focus. This will cause any changes to the object, including any observable bound as input on the element, to trigger a save immediately rather than after a delay (defaults to 500ms).

delaySave

html
<div data-bind="with: product">
+    <input type="text" data-bind="textValue: description, delaySave: true" />
+</div>

When used in a context where $data is a Coalesce.BaseViewModel, that object's autoSaveEnabled configuration property (see ViewModel Configuration) will be set to false when the element it is placed on gains focus. This will cause any changes to the object, including any observable bound as input on the element, to not trigger auto saves while the element has focus. When the element loses focus, the autoSaveEnabled flag will be reverted to its previous value and an attempt will be made to save the object.

Display Bindings

tooltip

html
<div data-bind="tooltip: tooltipText">Some Element</div>
+<div data-bind="tooltip: {title: note, placement: 'bottom', animation: false}">Some Element</div>

Wrapper around the Bootstrap tooltip component. Binding can either be simply a string (or observable string), or it can be an object that will be passed directly to the Bootstrap tooltip component.

fadeVisible

html
<div data-bind="fadeVisible: isVisible">Some Element</div>

Similar to the Knockout visible binding, but uses jQuery fadeIn/fadeOut calls to perform the transition.

slideVisible

html
<div data-bind="slideVisible: isVisible">Some Element</div>

Similar to the Knockout visible, but uses jQuery slideIn/slideOut calls to perform the transition.

moment

html
<div data-bind="moment: momentObservable"></div>
+<div data-bind="moment: momentObservable, format: 'MM/DD/YYYY hh:mm a'"></div>

Controls the text of the element by calling the format method on a moment object.

momentFromNow

html
<div data-bind="momentFromNow: momentObservable"></div>
+<div data-bind="momentFromNow: momentObservable, shorten: true"></div>

Controls the text of the element by calling the fromNow method on a moment object. If shorten is true, certain phrases will be slightly shortened.

Utility Bindings

let

html
<div class="item">
+    <!-- ko let: { showControls: $data.isEditing() || $parent.editingChildren() } -->
+    <button data-bind="click: $root.editItem, visible: showControls">Edit</button>
+    <span data-bind="text: name"></span>
+    <button data-bind="click: $root.deleteItem, visible: showControls">Delete</button>
+    <!-- /ko -->
+</div>

The let binding is a somewhat common construct used in Knockout applications, but isn't part of Knockout itself. It effectively allows the creation of variables in the binding context, allowing complex statements which may be used multiple times to be aliased for both clarity of code and better performance.

Knockout Binding Defaults

Knockout Helpers

These are static properties on IntelliTect.Coalesce.Knockout.Helpers.Knockout you can assign to somewhere in the app lifecycle startup to change the default markup generated server-side when using @Knockout.* methods to render Knockout bindings in your .cshtml files.

public static int DefaultLabelCols { get; set; } = 3;

The default number of Bootstrap grid columns a field label should span across.

public static int DefaultInputCols { get; set; } = 9;

The default number of Bootstrap grid columns a form input should span across.

public static string DefaultDateFormat { get; set; } = "M/D/YYYY";

Sets the default date-only format to be used by all date/time pickers. This only applies to models with a date-only [DateType] attribute.

public static string DefaultTimeFormat { get; set; } = "h:mm a";

Sets the default time-only format to be used by all date/time pickers. This only applies to models with a time-only [DateType] attribute.

public static string DefaultDateTimeFormat { get; set; } = "M/D/YYYY h:mm a";

Sets the default date/time format to be used by all date/time pickers. This only applies to DateTimeOffset model properties that do not have a limiting [DateType] attribute.

Note

DefaultDateFormat, DefaultTimeFormat and DefaultDateTimeFormat all take various formatting strings from the Moment.js library. A full listing can be found on the Moment website.

Timezone

The date/time picker properties can be coupled with DateTimeOffset model properties to display time values localized for the current user's locale. If you want to make the localization static, simply include a script block in your _Layout.cshtml or in a specific view that sets the default for Moment.js:

html
<script>
+moment.tz.setDefault("America/Chicago");
+</script>

Note

This needs to happen after Moment is loaded, but before the bootstrap-datetimepicker script is loaded.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/ko/client/external-view-model.html b/stacks/ko/client/external-view-model.html new file mode 100644 index 000000000..a7b469c40 --- /dev/null +++ b/stacks/ko/client/external-view-model.html @@ -0,0 +1,32 @@ + + + + + + TypeScript External ViewModels | Coalesce + + + + + + + + + + + + + + +
Skip to content

TypeScript External ViewModels

For all External Types in your model, Coalesce will generate a TypeScript class that provides a bare-bones representation of that type's properties.

These ViewModels are dependent on Knockout, and are designed to be used directly from Knockout bindings in your HTML. All data properties on the generated model are Knockout observables.

Base Members

The TypeScript ViewModels for external types do not have a common base class, and do not have any of the behaviors or convenience properties that the regular TypeScript ViewModels for database-mapped classes have.

Model-Specific Members

Data Properties


+public personId: KnockoutObservable<number | null> = ko.observable(null);
+public fullName: KnockoutObservable<string | null> = ko.observable(null);
+public gender: KnockoutObservable<number | null> = ko.observable(null);
+public companyId: KnockoutObservable<number | null> = ko.observable(null);
+public company: KnockoutObservable<ViewModels.Company | null> = ko.observable(null);
+public addresses: KnockoutObservableArray<ViewModels.Address> = ko.observableArray([]);
+public birthDate: KnockoutObservable<moment.Moment | null> = ko.observable(moment());

For each exposed property on the underlying EF POCO, a KnockoutObservable<T> property will exist on the TypeScript model. For navigation properties, these will be typed with the corresponding TypeScript ViewModel for the other end of the relationship. For collections (including collection navigation properties), these properties will be KnockoutObservableArray<T> objects.

Enum Members

For each enum property on your POCO, the following will be created:

public genderText: KnockoutComputed<string | null>

A KnockoutComputed<string> property that will provide the text to display for that property.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/ko/client/list-view-model.html b/stacks/ko/client/list-view-model.html new file mode 100644 index 000000000..cda1d2592 --- /dev/null +++ b/stacks/ko/client/list-view-model.html @@ -0,0 +1,36 @@ + + + + + + TypeScript ListViewModels | Coalesce + + + + + + + + + + + + + + +
Skip to content

TypeScript ListViewModels

In addition to TypeScript ViewModels for interacting with instances of your data classes in TypeScript, Coalesce will also generated a List ViewModel for loading searched, sorted, paginated data from the server.

These ListViewModels, like the ViewModels, are dependent on Knockout and are designed to be used directly from Knockout bindings in your HTML.

Base Members

The following members are defined on BaseListViewModel<> and are available to the ListViewModels for all of your model types:

modelKeyName: string

Name of the primary key of the model that this list represents.

includes: string

String that is used to control loading and serialization on the server. See Includes String for more information.

items: KnockoutObservableArray<TItem>

The collection of items that have been loaded from the server.

addNewItem: (): TItem

Adds a new item to the items collection.

deleteItem: (item: TItem): JQueryPromise<any>

Deletes an item and removes it from the items collection.

queryString: string

An arbitrary URL query string to append to the API call when loading the list of items.

Search criteria for the list. This can be easily bound to with a text box for easy search behavior. See [Search] for a detailed look at how searching works in Coalesce.

isLoading: KnockoutObservable<boolean>

True if the list is loading.

isLoaded: KnockoutObservable<boolean>

True once the list has been loaded.

load: (callback?: any): JQueryPromise<any>

Load the list using current parameters for paging, searching, etc Result is placed into the items property.

message: KnockoutObservable<string>

If a load failed, this is a message about why it failed.

getCount: (callback?: any): JQueryPromise<any>

Gets the count of items without getting all the items. Result is placed into the count property.

count: KnockoutObservable<number>

The result of getCount(), or the total on this page.

totalCount: KnockoutObservable<number>

Total count of items, even ones that are not on the page.

nextPage: (): void

Change to the next page.

nextPageEnabled: KnockoutComputed<boolean>

True if there is another page after the current page.

previousPage: (): void

Change to the previous page.

previousPageEnabled: KnockoutComputed<boolean>

True if there is another page before the current page.

page: KnockoutObservable<number>

Page number. This can be set to get a new page.

pageCount: KnockoutObservable<number>

Total page count

pageSize: KnockoutObservable<number>

Number of items on a page.

orderBy: KnockoutObservable<string>

Name of a field by which this list will be loaded in ascending order.

If set to "none", default sorting behavior, including behavior defined with use of [DefaultOrderBy] in C# POCOs, is suppressed.

orderByDescending: KnockoutObservable<string>

Name of a field by which this list will be loaded in descending order.

orderByToggle: (field: string): void

Toggles sorting between ascending, descending, and no order on the specified field.

Model-Specific Members

Configuration

static coalesceConfig: Coalesce.ListViewModelConfiguration<PersonList, ViewModels.Person>

A static configuration object for configuring all instances of the ListViewModel's type is created. See ViewModel Configuration.

coalesceConfig: Coalesce.ListViewModelConfiguration<PersonList, ViewModels.Person>

An per-instance configuration object for configuring each specific ListViewModel instance is created. See ViewModel Configuration.

Filter Object

public filter: {
+    personId?: string
+    firstName?: string
+    lastName?: string
+    gender?: string
+    companyId?: string
+} = null;

For each exposed scalar property on the underlying EF POCO, filter will have a corresponding property. If the filter object is set, requests made to the server to retrieve data will be passed all the values in this object via the URL's query string. These parameters will filter the resulting data to only rows where the parameter values match the row's values. For example, if filter.companyId is set to a value, only people from that company will be returned.

These parameters all allow for freeform string values, allowing the server to implement any kind of filtering logic desired. The Standard Data Source will perform the following depending on the property type:

  • Dates with a time component will be matched exactly.
  • Dates with no time component will match any dates that fell on that day.
  • Strings will match exactly unless an asterisk is found, in which case they will be matched with string.StartsWith.
  • Enums will match by string or numeric value. Multiple comma-delimited values will create a filter that will match on any of the provided values.
  • Numeric values will match exactly. Multiple comma-delimited values will create a filter that will match on any of the provided values.

Example usage:

ts
var list = new ListViewModels.PersonList();
+list.filter = { lastName: "Erickson" };
+list.load();

Static Method Members

public readonly namesStartingWith = new Person.NamesStartingWith(this);
+public static NamesStartingWith = class NamesStartingWith extends Coalesce.ClientMethod<PersonList, string[]> { ... };

For each exposed Static Method on your POCO, the members outlined in Methods - Generated TypeScript will be created.

DataSources


+public dataSources = ListViewModels.PersonDataSources;
+public dataSource: DataSource<Person> = new this.dataSources.Default();

For each of the Data Sources on the class, a corresponding class will be added to a namespace named ListViewModels.<ClassName>DataSources. This namespace can always be accessed on both ViewModel and ListViewModel instances via the dataSources property, and class instances can be assigned to the dataSource property.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/ko/client/methods.html b/stacks/ko/client/methods.html new file mode 100644 index 000000000..75cf16685 --- /dev/null +++ b/stacks/ko/client/methods.html @@ -0,0 +1,29 @@ + + + + + + TypeScript Method Objects | Coalesce + + + + + + + + + + + + + + +
Skip to content

TypeScript Method Objects

For each Custom Method you define, a class will be created on the corresponding TypeScript ViewModel (instance methods) or ListViewModel (static methods) that contains the properties and functions for interaction with the method. This class is accessible through a static property named after the method. An instance of this class will also be created on each instance of its parent - this instance is in a property with the camel-cased name of the method.

Here's an example for a method called Rename that takes a single parameter 'string name' and returns a string.

c#
public string Rename(string name)
+{
+    FirstName = name;
+    return FullName; // Return the new full name of the person.
+}

Base Members

The following members are available on the method object for all client methods:

public result: KnockoutObservable<string>

Observable that will contain the results of the method call after it is complete.

public rawResult: KnockoutObservable<Coalesce.ApiResult>

Observable with the raw, deserialized JSON result of the method call. If the method call returns an object, this will contain the deserialized JSON object from the server before it has been loaded into ViewModels and its properties loaded into observables.

public isLoading: KnockoutObservable<boolean>

Observable boolean which is true while the call to the server is pending.

public message: KnockoutObservable<string>

If the method was not successful, this contains exception information.

public wasSuccessful: KnockoutObservable<boolean>

Observable boolean that indicates whether the method call was successful or not.

ListResult<T> Base Members

For methods that return a ListResult<T>, the following additional members on the method object will be available:

public page: KnockoutObservable<number>

Page number of the results.

public pageSize: KnockoutObservable<number>

Page size of the results.

public pageCount: KnockoutObservable<number>

Total number of possible result pages.

public totalCount: KnockoutObservable<number>

Total number of results.

Method-specific Members

public static Rename = class Rename extends Coalesce.ClientMethod<Person, string> { ... }

Declaration of the method object class. This will be generated on the parent ViewModel or ListViewModel.

public readonly rename = new Person.Rename(this)

Default instance of the method for easy calling of the method without needing to manually instantiate the class. This will be generated on the parent ViewModel or ListViewModel.

public invoke: (name: string, callback: (result: string) => void = null, reload: boolean = true): JQueryPromise<any>

Function that takes all the method parameters and a callback. If reload is true, the ViewModel or ListViewModel that owns the method will be reloaded after the call is complete, and only after that happens will the callback be called.

public static Args = class Args { public name: KnockoutObservable<string> = ko.observable(null); }

Class with one observable member per method argument for binding method arguments to user input. Only generated for methods with arguments.

public args = new Rename.Args()

Default instance of the args class. Only generated for methods with arguments.

public invokeWithArgs: (args = this.args, callback?: (result: string) => void, reload: boolean = true) => JQueryPromise<any>

Function for invoking the method using the args class. The default instance of the args class will be used if none is provided. Only generated for methods with arguments.

public invokeWithPrompts: (callback: (result: string) => void = null, reload: boolean = true) => JQueryPromise<any>

Simple interface using browser prompt() input boxes to prompt the user for the required data for the method call. The call is then made with the data provided. Only generated for methods with arguments.

public resultObjectUrl: KnockoutObservable<string | null>

Observable that will contain an Object URL representing the last successful invocation result. Only generated for methods that return a file.

public url: KnockoutComputed<string>

The URL for the method. Can be useful for using as the src attribute of an image or video HTML element for file-downloading methods. Any arguments will be populated from this.args. Only generated for HTTP GET methods, as configured by [ControllerAction].


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/ko/client/model-config.html b/stacks/ko/client/model-config.html new file mode 100644 index 000000000..5db89f7af --- /dev/null +++ b/stacks/ko/client/model-config.html @@ -0,0 +1,32 @@ + + + + + + ViewModel Configuration | Coalesce + + + + + + + + + + + + + + +
Skip to content

ViewModel Configuration

A crucial part of the generated TypeScript ViewModels that Coalesce creates for you is the hierarchical configuration system that allows coarse-grained or fine-grained control over their behaviors.

Hierarchy

The configuration system has four levels where configuration can be performed, structured as follows:

Root Configuration

Coalesce.GlobalConfiguration: ModelConfiguration<any>
+Coalesce.GlobalConfiguration.app: AppConfiguration

The root configuration contains all configuration properties which apply to class category (TypeScript ViewModels, TypeScript ListViewModels, and Services). The app property contains global app configuration that exists independent of any models. Then, for each class kind, the following are available:

Root ViewModel/ListViewModel Configuration

Coalesce.GlobalConfiguration.viewModel: ViewModelConfiguration<BaseViewModel>
+Coalesce.GlobalConfiguration.listViewModel: ListViewModelConfiguration<BaseListViewModel<BaseViewModel>, BaseViewModel>
+Coalesce.GlobalConfiguration.serviceClient: ServiceClientConfiguration<ServiceClient>

Additional root configuration objects exist, one for each class kind. These configuration objects govern behavior that applies to only objects of these types. Root configuration can be overridden using these objects, although the practicality of doing so is dubious.

Class Configuration

ViewModels.ClassName.coalesceConfig: ViewModelConfiguration<ViewModels.ClassName>
+ListViewModels.ClassNameList.coalesceConfig: ListViewModelConfiguration<ListViewModels.ClassNameList, ViewModels.ClassName>
+Services.ServiceNameClient.coalesceConfig: ServiceClientConfiguration<ServiceName>

Each class kind has a static property named coalesceConfig that controls behavior for all instances of that class.

Instance Configuration

instance.coalesceConfig: ViewModelConfiguration<ViewModels.ClassName>
+listInstance.coalesceConfig: ListViewModelConfiguration<ListViewModels.ClassNameList, ViewModels.ClassName>
+serviceInstance.coalesceConfig: ServiceClientConfiguration<ServiceName>

Each instance of these classes also has a coalesceConfig property that controls behaviors for that instance only.

Evaluation

All configuration properties are Knockout ComputedObservable<T> objects. These observables behave like any other observable - call them with no parameter to obtain the value, call with a parameter to set their value.

Whenever a configuration property is read from, it first checks its own configuration object for the value of that property. If the explicit value for that configuration object is null, the parent's configuration will be checked for a value. This continues until either a value is found or the root configuration object is reached.

When a configuration property is given a value, that value is established on that configuration object only. Any dependent configuration objects will not be modified, and if those dependent configuration objects already have a value for that property, their existing value will be used unless that value is later set to null.

To obtain the raw value for a specific configuration property, call the raw() method on the observable: model.coalesceConfig.autoSaveEnabled.raw().

Available Properties & Defaults

The following configuration properties are available. Their default values are also listed. Note that all configuration properties are observables, but for simplicity the documentation below lists the underlying type.

Root Configuration

These properties on Coalesce.GlobalConfiguration are available to both ViewModelConfiguration, ListViewModelConfiguration, and ServiceClientConfiguration.

baseApiUrl: string = '/api'

The relative url where the API may be found.

baseViewUrl: string = ''

The relative url where the admin views may be found.

showFailureAlerts: boolean = true

Whether or not the callback specified for onFailure will be called or not.

onFailure: (obj, message) => alert(message)

A callback to be called when a failure response is received from the server.

onStartBusy: obj => Coalesce.Utilities.showBusy()

A callback to be called when an AJAX request begins.

onFinishBusy: obj => Coalesce.Utilities.hideBusy()

A callback to be called when an AJAX request completes.

App Configuration

These properties on Coalesce.GlobalConfiguration.app are not hierarchical - they govern the entire Coalesce application:

select2Theme: string | null = null

The theme parameter to select2's constructor when called by Coalesce's select2 Knockout Bindings.

ViewModelConfiguration

saveTimeoutMs: number = 500

Time to wait after a change is seen before auto-saving (if autoSaveEnabled is true). Acts as a debouncing timer for multiple simultaneous changes.

saveIncludedFields: string[] | null = null

An array of property names that, if set, will determine which fields will be sent to the server when saving. Only those values that are actually sent to the server will be mapped to the underlying entity.

This can improves the handling of concurrent changes being made by multiple users against different fields of the same entity. Specifically, if one page is designed to edit fields A and B, and another page is designed for editing fields C and D, you can configure this setting appropriately on each page to only save the corresponding fields.

Due to design limitations, this cannot be determined dynamically like it can with Vue's $saveMode property

WARNING

Surgical saves require DTOs on the server that are capable of determining which of their properties have been set by the model binder, as surgical saves are sent from the client by entirely omitting properties from the x-www-form-urlencoded body that is sent to the server.

The Generated C# DTOs implement the necessary logic for this; however, any Custom DTOs must have this logic manually written by you, the developer. Either implement the same pattern that can be seen in the Generated C# DTOs, or do not use surgical saves with Custom DTOs.

autoSaveEnabled: boolean = true

Determines whether changes to a model will be automatically saved after saveTimeoutMs milliseconds have elapsed.

autoSaveCollectionsEnabled: boolean = true

Determines whether or not changes to many-to-many collection properties will automatically trigger a save call to the server or not.

showBusyWhenSaving: boolean = false

Whether to invoke onStartBusy and onFinishBusy during saves.

loadResponseFromSaves: boolean = true

Whether or not to reload the ViewModel with the state of the object received from the server after a call to .save().

validateOnLoadFromDto: boolean = true

Whether or not to validate the model after loading it from a DTO from the server. Disabling this can improve performance in some cases.

setupValidationAutomatically: boolean = true

Whether or not validation on a ViewModel should be setup in its constructor, or if validation must be set up manually by calling viewModel.setupValidation(). Turning this off can improve performance in read-only scenarios.

onLoadFromDto: null | ((object: T) => void) = null

An optional callback to be called when an object is loaded from a response from the server. Callback will be called after all properties on the ViewModel have been set from the server response.

initialDataSource: null | DataSource<T> | (new () => DataSource<T>) = null

The dataSource (either an instance or a type) that will be used as the initial dataSource when a new object of this type is created. Not valid for global configuration; recommended to be used on class-level configuration. E.g. ViewModels.MyModel.coalesceConfig.initialDataSource(MyModel.dataSources.MyDataSource);

ListViewModelConfiguration

No special configuration is currently available for ListViewModels.

ServiceClientConfiguration

No special configuration is currently available for ServiceClients.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/ko/client/view-model.html b/stacks/ko/client/view-model.html new file mode 100644 index 000000000..321c6f0be --- /dev/null +++ b/stacks/ko/client/view-model.html @@ -0,0 +1,46 @@ + + + + + + TypeScript ViewModels | Coalesce + + + + + + + + + + + + + + +
Skip to content

TypeScript ViewModels

For each database-mapped type in your model, Coalesce will generate a TypeScript class that provides a multitude of functionality for interacting with the data on the client.

These ViewModels are dependent on Knockout, and are designed to be used directly from Knockout bindings in your HTML. All data properties on the generated model are Knockout observables.

Base Members

The following base members are available to all generated ViewModel classes:

includes: string

String that will be passed to the server when loading and saving that allows for data trimming via C# Attributes. See Includes String.

isChecked: KnockoutObservable<boolean>

Flag to use to determine if this item is checked. Only provided for convenience.

isSelected: KnockoutObservable<boolean>

Flag to use to determine if this item is selected. Only provided for convenience.

isEditing: KnockoutObservable<boolean>

Flag to use to determine if this item is being edited. Only provided for convenience.

toggleIsEditing () => void

Toggles the isEditing flag.

isExpanded: KnockoutObservable<boolean>

Flag to use to determine if this item is expanded. Only provided for convenience.

toggleIsExpanded: () => void

Toggles the isExpanded flag.

isVisible: KnockoutObservable<boolean>

Flag to use to determine if this item is shown. Only provided for convenience.

toggleIsSelected () => void

Toggles the isSelected flag.

selectSingle: (): boolean

Sets isSelected(true) on this object and clears on the rest of the items in the parent collection.

isDirty: KnockoutObservable<boolean>

Dirty Flag. Set when a value on the model changes. Reset when the model is saved or reloaded.

isLoaded: KnockoutObservable<boolean>

True once the data has been loaded.

isLoading: KnockoutObservable<boolean>

True if the object is loading.

isSaving: KnockoutObservable<boolean>

True if the object is currently saving.

isThisOrChildSaving: KnockoutComputed<boolean>

Returns true if the current object, or any of its children, are saving.

load: id: any, callback?: (self: T) => void): JQueryPromise<any> | undefined

Loads the object from the server based on the id specified. If no id is specified, the current id, is used if one is set.

loadChildren: callback?: () => void) => void

Loads any child objects that have an ID set, but not the full object. This is useful when creating an object that has a parent object and the ID is set on the new child.

loadFromDto: data: any, force?: boolean, allowCollectionDeletes?: boolean) => void

Loads this object from a data transfer object received from the server.

  • force - Will override the check against isLoading that is done to prevent recursion.
  • allowCollectionDeletes - Set true when entire collections are loaded. True is the default. In some cases only a partial collection is returned, set to false to only add/update collections.

deleteItem: callback?: (self: T) => void): JQueryPromise<any> | undefined

Deletes the object without any prompt for confirmation.

deleteItemWithConfirmation: callback?: () => void, message?: string): JQueryPromise<any> | undefined

Deletes the object if a prompt for confirmation is answered affirmatively.

errorMessage: KnockoutObservable<string>

Contains the error message from the last failed call to the server.

onSave: callback: (self: T) => void): boolean

Register a callback to be called when a save is done. Returns true if the callback was registered, or false if the callback was already registered.

saveToDto: () => any

Saves this object into a data transfer object to send to the server.

save: callback?: (self: T) => void): JQueryPromise<any> | boolean | undefined

Saves the object to the server and then calls a callback. Returns false if there are validation errors.

parent: any

Parent of this object, if this object was loaded as part of a hierarchy.

parentCollection: KnockoutObservableArray<T>

Parent of this object, if this object was loaded as part of list of objects.

editUrl: KnockoutComputed<string>

URL to a stock editor for this object.

showEditor: callback?: any): JQueryPromise<any>

Displays an editor for the object in a modal dialog.

validate: (): boolean

Triggers any validation messages to be shown, and returns a bool that indicates if there are any validation errors.

validationIssues: any

ValidationIssues returned from the server when trying to persist data

warnings: KnockoutValidationErrors

List of warnings found during validation. Saving is still allowed with warnings present.

errors: KnockoutValidationErrors

List of errors found during validation. Any errors present will prevent saving.

Model-Specific Members

The following members are generated for each generated ViewModel class and are unique to each class. The examples below are based on a type named Person.

Configuration

static coalesceConfig: Coalesce.ViewModelConfiguration<Person>

A static configuration object for configuring all instances of the ViewModel's type is created. See ViewModel Configuration.

coalesceConfig: Coalesce.ViewModelConfiguration<Person>

An per-instance configuration object for configuring each specific ViewModel instance is created. See ViewModel Configuration.

DataSources


+public dataSources = ListViewModels.PersonDataSources;
+public dataSource: DataSource<Person> = new this.dataSources.Default();

For each of the Data Sources for a model, a class will be added to a namespace named ListViewModels.<ClassName>DataSources. This namespace can always be accessed on both ViewModel and ListViewModel instances via the dataSources property, and class instances can be assigned to the dataSource property.

Data Properties


+public personId: KnockoutObservable<number | null> = ko.observable(null);
+public fullName: KnockoutObservable<string | null> = ko.observable(null);
+public gender: KnockoutObservable<number | null> = ko.observable(null);
+public companyId: KnockoutObservable<number | null> = ko.observable(null);
+public company: KnockoutObservable<ViewModels.Company | null> = ko.observable(null);
+public addresses: KnockoutObservableArray<ViewModels.Address> = ko.observableArray([]);
+public birthDate: KnockoutObservable<moment.Moment | null> = ko.observable(moment());

For each exposed property on the underlying EF POCO, a KnockoutObservable<T> property will exist on the TypeScript model. For navigation properties, these will be typed with the corresponding TypeScript ViewModel for the other end of the relationship. For collections (including collection navigation properties), these properties will be KnockoutObservableArray<T> objects.

Enum Members

For each enum property on your POCO, the following will be created:

public genderText: KnockoutComputed<string | null>

A KnockoutComputed<string> property that will provide the text to display for that property.

public genderValues: Coalesce.EnumValue[] = [ 
+    { id: 1, value: 'Male' },
+    { id: 2, value: 'Female' },
+    { id: 3, value: 'Other' },
+];

A static array of objects with properties id and value that represent all the values of the enum.


+export namespace Person {
+    export enum GenderEnum {
+        Male = 1,
+        Female = 2,
+        Other = 3,
+    };
+}

A TypeScript enum that mirrors the C# enum directly. This enum is in a sub-namespace of ViewModels named the same as the class name.

Collection Navigation Property Helpers

For each collection navigation property on the POCO, the following members will be created:

public addToAddresses: (autoSave?: boolean) => ViewModels.Address;

A method that will add a new object to that collection property. If autoSave is specified, the auto-save behavior of the new object will be set to that value. Otherwise, the inherited default will be used (see ViewModel Configuration)

public addressesListUrl: KnockoutComputed<string>;

A KnockoutComputed<string> that evaluates to a relative url for the generated table view that contains only the items that belong to the collection navigation property.

Reference Navigation Property Helpers

public showCompanyEditor: (callback?: any) => void;

For each reference navigation property on the POCO a method will be created that will call showEditor on that current value of the navigation property, or on a new instance if the current value is null.

public companyText: KnockoutComputed<string>;

For each reference navigation property, a KnockoutComputed<string> property will be created that will provide the text to display for that property. This will be the property on the class annotated with [ListText].

Instance Method Members

public readonly getBirthDate = new Person.GetBirthDate(this);
+public static GetBirthDate = class GetBirthDate extends Coalesce.ClientMethod<Person, moment.Moment> { ... };

For each Instance Method on your POCO, a class and instance member will be created as described in Methods - Generated TypeScript.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/ko/getting-started.html b/stacks/ko/getting-started.html new file mode 100644 index 000000000..5b37e56d4 --- /dev/null +++ b/stacks/ko/getting-started.html @@ -0,0 +1,75 @@ + + + + + + Getting Started with Knockout | Coalesce + + + + + + + + + + + + + + +
Skip to content

Getting Started with Knockout

Creating a Project

WARNING

The Coalesce Knockout.js stack is deprecated and will be receiving only critical bug fixes going forward. You are strongly encouraged to start all new Coalesce projects with Vue.

The quickest and easiest way to create a new Coalesce Knockout application is to use the dotnet new template. In your favorite shell:

sh
dotnet new install IntelliTect.Coalesce.KnockoutJS.Template
+dotnet new coalesceko

View on GitHub

Data Modeling

At this point, you can open up the newly-created solution in Visual Studio and run your application. However, your application won't do much without a data model, so you will probably want to do the following before running:

  • Create an initial Data Model by adding EF entity classes to the data project and the corresponding DbSet<> properties to AppDbContext. You will notice that the starter project includes a single model, Widget, to start with. Feel free to change this model or remove it entirely. Read Entity Models for more information about creating a data model.

  • Run dotnet ef migrations add Init (Init can be any name) in the data project to create an initial database migration.

  • Run Coalesce's code generation by either:

    • Running dotnet coalesce in the web project's root directory
    • Running the coalesce npm script (Vue) or gulp task (Knockout) in the Task Runner Explorer

You're now at a point where you can start creating your own pages!

Building Pages & Features

Lets say we've created a model called Person as follows, and we've ran code generation with dotnet coalesce:

c#
namespace MyApplication.Data.Models 
+{
+    public class Person
+    {
+        public int PersonId { get; set; }
+        public string Name { get; set; }
+        public DateTimeOffset? BirthDate { get; set; }
+    }
+}

We can create a details page for a Person by creating:

  • A controller in src/MyApplication.Web/Controllers/PersonController.cs:

    c#
    namespace MyApplication.Web.Controllers
    +{
    +    public partial class PersonController
    +    {
    +        public IActionResult Details() => View();
    +    }
    +}
  • A view in src/MyApplication.Web/Views/Person/Details.cshtml:

    razor
    <h1>Person Details</h1>
    +
    +<div data-bind="with: person">
    +    <dl class="dl-horizontal">
    +        <dt>Name </dt>
    +        <dd data-bind="text: name"></dd>
    +
    +        <dt>Date of Birth </dt>
    +        <dd data-bind="moment: birthDate, format: 'MM/DD/YYYY hh:mm a'"></dd>
    +    </dl>
    +</div>
    +
    +@section Scripts
    +{
    +<script src="~/js/person.details.js"></script>
    +<script>
    +    $(function () {
    +        var vm = new MyApplication.PersonDetails();
    +        ko.applyBindings(vm);
    +        vm.load();
    +    });
    +</script>
    +}
  • And a script in src/MyApplication.Web/Scripts/person.details.ts:

    ts
    /// <reference path="viewmodels.generated.d.ts" />
    +
    +module MyApplication {
    +    export class PersonDetails {
    +        public person = new ViewModels.Person();
    +
    +        load() {
    +            var id = Coalesce.Utilities.GetUrlParameter("id");
    +            if (id != null && id != '') {
    +                this.person.load(id);
    +            }
    +        }
    +    }
    +}

With these pieces in place, we now have a functioning page that will display details about a person. We can start up the application and navigate to /Person/Details?id=1 (assuming a person with ID 1 exists - if not, navigate to /Person/Table and create one).

From this point, one can start adding more fields, more features, and more flair to the page. Check out all the other documentation in the sidebar to see what else Coalesce has to offer, including the Knockout Overview.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/ko/overview.html b/stacks/ko/overview.html new file mode 100644 index 000000000..ef9a1bdce --- /dev/null +++ b/stacks/ko/overview.html @@ -0,0 +1,25 @@ + + + + + + Knockout Overview | Coalesce + + + + + + + + + + + + + + +
Skip to content

Knockout Overview

The Knockout stack for Coalesce offers the ability to build pages with the time-tested Knockout JavaScript library using all of the features of the Coalesce generated APIs and ViewModels. It can be used for anything between adding simple interactive augmentations of MVC pages to building a full MPA-SPA hybrid application.

Getting Started

Check out Getting Started with Knockout if you haven't already to learn how to get a new Coalesce Knockout project up and running.

Generated Code

Below you will find a brief overview of each of the different pieces of code that Coalesce will generate for you when you choose the Knockout stack.

TypeScript

Coalesce generates a number of different types of TypeScript classes to support your data through the generated API.

ViewModels

One view model class is generated for each of your Entity Models and Custom DTOs. These models contain fields for your model Properties, and functions and other members for your model Methods. They also contain a number of standard fields & functions inherited from BaseViewModel which offer basic loading & saving functionality, as well as other handy utility members for use with Knockout.

See TypeScript ViewModels for more details.

List ViewModels

One ListViewModel is generated for each of your Entity Models and Custom DTOs. These classes contain functionality for loading sets of objects from the server. They provide searching, paging, sorting, and filtering functionality.

See TypeScript ListViewModels for more details.

External Type ViewModels

Any non-primitive types which are not themselves a Entity Models or Custom DTOs which are accessible through the aforementioned types, either through one of its Properties, or return value from one of its Methods, will have a corresponding TypeScript ViewModel generated for it. These ViewModels only provide a KnockoutObservable field for each property on the C# class.

See TypeScript External ViewModels for more details.

View Controllers

For each of your Entity Models and Custom DTOs, a controller is created in the /Controllers/Generated directory of your web project. These controllers provide routes for the generated admin views.

As you add your own pages to your application, you should add additional partial classes in the /Controllers that extend these generated partial classes to expose those pages.

Admin Views

For each of your Entity Models and Custom DTOs, a number of views are generated to provide administrative-level access to your data.

Table

Provides a basic table view with sorting, searching, and paging of your data. Can be rendered in either read-only mode (routed as /Table), or editable mode (routed as TableEdit).

Cards

Provides a card-based view of your data with searching and paging.

CreateEdit

Provides an editor view which can be used to create new entities or edit existing ones.

EditorHtml

Provides a minimal amount of HTML to display an editor for the object type. This is used by the showEditor method on the generated TypeScript ViewModels.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-admin-audit-log-page.html b/stacks/vue/coalesce-vue-vuetify/components/c-admin-audit-log-page.html new file mode 100644 index 000000000..0c2b220e3 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-admin-audit-log-page.html @@ -0,0 +1,38 @@ + + + + + + c-admin-audit-log-page | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-admin-audit-log-page

A full-featured page for interacting with Coalesce's Audit Logging. Presents a view similar to c-admin-table-page with content optimized for viewing audit log records. Designed to be routed to directly with vue-router.

Examples

ts
import { CAdminAuditLogPage } from 'coalesce-vue-vuetify3';
+const router = new Router({
+  // ...
+  routes: [
+    // ... other routes
+    {
+      path: '/admin/audit-logs',
+      component: CAdminAuditLogPage,
+      props: {
+        type: 'AuditLog'
+      }
+    },
+  ]
+})

Props

type: string

The PascalCase name of your IAuditLog implementation.

list?: ListViewModel

An optional ListViewModel that will be used if provided instead of the one the component will create automatically from the provided type prop.

color: string = 'primary'

A Vuetify color name to be applied to the toolbar at the top of the page.

Slots

row-detail: { item: AuditLogViewModel }

A slot that can be used to replace the entire content of the Detail column on the page.

row-detail-append: { item: AuditLogViewModel }

A slot that can be used to append additional content to the Detail column on the page.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-admin-display.html b/stacks/vue/coalesce-vue-vuetify/components/c-admin-display.html new file mode 100644 index 000000000..fc2431a0e --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-admin-display.html @@ -0,0 +1,32 @@ + + + + + + c-admin-display | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-admin-display

Behaves the same as c-display, except any collection navigation properties will be rendered as links to an admin list page, and any models will be rendered as a link to an admin item page.

Links for collections are resolved from vue-router with a route name of coalesce-admin-list, a type route param containing the name of the collection's type, and a query parameter filter.<foreign key name> with a value of the primary key of the owner of the collection. This route is expected to resolve to a c-admin-table-page, which is setup by default by the template outlined in Getting Started with Vue.

Links for single models are resolved from vue-router with a route name of coalesce-admin-item, a type route param containing the name of the model's type, and a id route param containing the object's primary key. This route is expected to resolve to a c-admin-editor-page, which is setup by default by the template outlined in Getting Started with Vue.

Examples

template
<!-- Renders regularly as text: -->
+<c-admin-display :model="person" for="firstName" />
+
+<!-- Renders as a link to an item: -->
+<c-admin-display :model="person" for="company" />
+
+<!-- Renders as a link to a list: -->
+<c-admin-display :model="person" for="casesAssigned" />

Props

Same as c-display.

Slots

Same as c-display.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-admin-editor-page.html b/stacks/vue/coalesce-vue-vuetify/components/c-admin-editor-page.html new file mode 100644 index 000000000..7b377aeb1 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-admin-editor-page.html @@ -0,0 +1,43 @@ + + + + + + c-admin-editor-page | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-admin-editor-page

A page for a creating/editing single ViewModel instance. Provides a c-admin-editor and a c-admin-methods for the instance. Designed to be routed to directly with vue-router.

Examples

ts
// router.ts or main.ts
+
+// WITHOUT Vuetify A la carte:
+import { CAdminEditorPage } from 'coalesce-vue-vuetify';
+// WITH Vuetify A-la-carte:
+import { CAdminEditorPage } from 'coalesce-vue-vuetify/lib';
+
+const router = new Router({
+    // ...
+    routes: [
+        // ... other routes
+        {
+            path: '/admin/:type/edit/:id?',
+            name: 'coalesce-admin-item',
+            component: CAdminEditorPage,
+            props: true,
+        },
+    ]
+})

Props

type: string

The PascalCase name of the type to be created/edited.

id?: number | string

The primary key of the item being edited. If null or not provided, the page will be creating a new instance of the provided type instead.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-admin-editor.html b/stacks/vue/coalesce-vue-vuetify/components/c-admin-editor.html new file mode 100644 index 000000000..48595e3d4 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-admin-editor.html @@ -0,0 +1,25 @@ + + + + + + c-admin-editor | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-admin-editor

An editor for a single ViewModel instance. Provides a c-input for each property of the model.

Does not automatically enable auto-save - if desired, this must be enabled by the implementor of this component.

Examples

template
<c-admin-editor :model="person" />

Props

model: ViewModel | ListViewModel

The ViewModel to render an editor for.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-admin-method.html b/stacks/vue/coalesce-vue-vuetify/components/c-admin-method.html new file mode 100644 index 000000000..6dd922ca7 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-admin-method.html @@ -0,0 +1,25 @@ + + + + + + c-admin-method | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-admin-method

Provides an interface for invoking a method and rendering its result, designed to be use in an admin page.

For each parameter of a method, a c-input will be rendered to accept the input of that parameter. A button is provided to trigger an invocation of the method, progress and errors are rendered with a c-loader-status, and results are rendered with c-display.

Examples

template
<c-admin-method :model="person" for="setTitle" auto-reload-model />

Props

for: string | Method

A metadata specifier for the method. One of:

  • A string with the name of the method belonging to model.
  • A direct reference to a method's metadata object.
  • A string in dot-notation that starts with a type name and ending with a method name.

model: ViewModel | ListViewModel | ServiceViewModel

An ViewModel or ListViewModel or ServiceViewModel owning the method and API Caller that was specified by the for prop.

autoReloadModel?: boolean = false

True if the model should have its $load invoked after a successful invocation of the method.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-admin-methods.html b/stacks/vue/coalesce-vue-vuetify/components/c-admin-methods.html new file mode 100644 index 000000000..f8736fd1f --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-admin-methods.html @@ -0,0 +1,25 @@ + + + + + + c-admin-methods | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-admin-methods

Renders in a Vuetify v-expansion-panels a c-admin-method for each method on a ViewModel or ListViewModel.

Examples

template
<c-admin-methods :model="person" class="x" auto-reload-model />
template
<c-admin-methods :model="person" auto-reload-model />
template
<c-admin-methods :model="personList" auto-reload-model />

Props

model: ViewModel | ListViewModel

An ViewModel or ListViewModel or ServiceViewModel whose methods should each render as a c-admin-method.

autoReloadModel?: boolean = false

True if the model should have its $load invoked after a successful invocation of any method.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.html b/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.html new file mode 100644 index 000000000..3d43c8ffe --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-page.html @@ -0,0 +1,43 @@ + + + + + + c-admin-table-page | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-admin-table-page

A full-featured page for interacting with a ListViewModel. Provides a c-admin-table and a c-admin-methods for the list. Designed to be routed to directly with vue-router.

Examples

ts
// router.ts or main.ts
+
+// WITHOUT Vuetify A la carte:
+import { CAdminTablePage } from 'coalesce-vue-vuetify';
+// WITH Vuetify A-la-carte:
+import { CAdminTablePage } from 'coalesce-vue-vuetify/lib';
+
+const router = new Router({
+    // ...
+    routes: [
+        // ... other routes
+        {
+            path: '/admin/:type',
+            name: 'coalesce-admin-list',
+            component: CAdminTablePage,
+            props: true,
+        },
+    ]
+})

Props

type: string

The PascalCase name of the type to be listed.

list?: ListViewModel

An optional ListViewModel that will be used if provided instead of the one the component will otherwise create automatically.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-toolbar.html b/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-toolbar.html new file mode 100644 index 000000000..30a35ebc7 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-admin-table-toolbar.html @@ -0,0 +1,25 @@ + + + + + + c-admin-table-toolbar | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-admin-table-toolbar

A full-featured toolbar for a ListViewModel designed to be used on an admin page, including "Create" and "Reload" buttons, a c-list-range-display, a c-list-page, a search field, c-list-filters, and a c-list-page-size.

Examples

template
<c-admin-table-toolbar :list="personList" />
template
<c-admin-table-toolbar :list="personList" color="pink" :editable.sync="isEditable" />

Props

list: ListViewModel

The ListViewModel to render the toolbar for.

color: string = 'primary'

The color of the toolbar.

editable?: boolean

If provided, adds a button to toggle the value of this prop. Should be bound with the .sync modifier.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-admin-table.html b/stacks/vue/coalesce-vue-vuetify/components/c-admin-table.html new file mode 100644 index 000000000..2c153049f --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-admin-table.html @@ -0,0 +1,25 @@ + + + + + + c-admin-table | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-admin-table

An full-featured table for a ListViewModel, including a c-admin-table-toolbar, c-table, and c-list-pagination.

The table can be in read mode (default), or toggled into edit mode with the button provided by the c-admin-table-toolbar. When placed into edit mode, auto-save is enabled.

Examples

template
<c-admin-table :list="personList" />

Props

list: ListViewModel

The ListViewModel to render a table for.

pageSizes?: number[]

An optional list of available page sizes to offer through the c-list-pagination's c-list-page-size component. Defaults to [10, 25, 100].

queryBind?: boolean

If true, the Data Source Standard Parameters of the provided ListViewModel will be read from and written to the window's query string. The "Editable" state of the table will also be bound to the query string.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-datetime-picker.html b/stacks/vue/coalesce-vue-vuetify/components/c-datetime-picker.html new file mode 100644 index 000000000..6b441ef1b --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-datetime-picker.html @@ -0,0 +1,34 @@ + + + + + + c-datetime-picker | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-datetime-picker

A general, all-purpose date/time input component that can be used either with models and metadata or as a standalone component using only v-model.

Examples

template
<c-datetime-picker :model="person" for="birthDate" />
+
+<c-datetime-picker v-model="standaloneDate" />
+
+<c-datetime-picker 
+    v-model="standaloneTime" 
+    date-kind="time"
+    date-format="h:mm a"
+/>

Props

for?: string | DateProperty | DateValue

A metadata specifier for the value being bound. One of:

  • A string with the name of the value belonging to model.
  • A direct reference to a metadata object.
  • A string in dot-notation that starts with a type name.

model?: Model | DataSource

An object owning the value that was specified by the for prop. If provided, the input will be bound to the corresponding property on the model object.

value?: Date // Vue 2
+modelValue?: Date // Vue 3

If binding the component with v-model, accepts the value part of v-model.

dateKind?: 'date' | 'time' | 'datetime' = 'datetime'

Whether the date is only a date, only a time, or contains significant date and time information.

If the component was bound with metadata using the for prop, this will default to the kind specified by [DateType].

dateFormat?: string

The format of the date that will be rendered in the component's text field, and the format that will be attempted first when parsing user input in the text field.

Defaults to:

  • M/d/yyyy h:mm a if dateKind == 'datetime',
  • M/d/yyyy if dateKind == 'date', or
  • h:mm a if dateKind == 'time'.

WARNING

When parsing a user's text input into the text field, c-datetime-picker will first attempt to parse it with the format specified by dateFormat, or the default as described above if not explicitly specified.

If this fails, the date will be parsed with the Date constructor, but only if the dateKind is datetime or date. This works fairly well on all modern browsers, but can still occasionally have issues. c-datetime-picker tries its best to filter out bad parses from the Date constructor, like dates with a year earlier than 1000.

native?: boolean

True if a native HTML5 input should be used instead of a popup menu with Vuetify date/time pickers inside of it.

sideBySide?: boolean

True if the calendar and clock should be shown side by side in the picker menu, rather than in separate tabs.

readonly?: boolean

True if the component should be read-only.

disabled?: boolean

True if the component should be disabled.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-display.html b/stacks/vue/coalesce-vue-vuetify/components/c-display.html new file mode 100644 index 000000000..203e691fc --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-display.html @@ -0,0 +1,30 @@ + + + + + + c-display | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-display

A general-purpose component for displaying any Value by rendering the value to a string with the display functions from the Models Layer. For plain string and number values, usage of this component is largely superfluous. For all other value types including dates, booleans, enums, objects, and collections, it is very handy.

Examples

Typical usage, providing an object and a property on that object:

template
<c-display :model="person" for="gender" />

Customizing date formatting (view format patterns):

template
<c-display :model="person" for="birthDate" format="M/d/yyyy" />

A contrived example of using c-display to render the result of an API Caller:

template
<c-display 
+    :value="person.setFirstName.result" 
+    :for="person.$metadata.methods.setFirstName.return" 
+    element="div"
+/>

Displaying a standalone date value without a model or other source of metadata:

template
<c-display :value="dateProp" format="M/d/yyyy" />

Props

for: string | Property | Value

A metadata specifier for the value being bound. Either a direct reference to the metadata object, or a string with the name of the value belonging to model, or a string in dot-notation that starts with a type name.

model?: Model | DataSource

An object owning the value that was specified by the for prop.

format: DisplayOptions["format"]

Shorthand for :options="{ format: format }", allowing for specification of the format to be used when displaying dates.

See DisplayOptions for details on the options available for format.

options: DisplayOptions

Specify options for formatting some kinds of values, including dates. See DisplayOptions for details.

value: any // Vue 2
+modelValue: any // Vue 3

Can be provided the value to be displayed in conjunction with the for prop, as an alternative to the model prop.

This is an uncommon scenario - it is generally easier to use the for/model props together.

Slots

default - Used to display fallback content if the value being displayed is either null or "" (empty string).

[DataTypeAttribute]

For properties and other values annotated with [DataTypeAttribute], the following special handling occurs based on the data type:

  • DataType.MultilineText: Renders with white-space: pre-wrap.
  • DataType.Password: Renders with a show/hide toggle (hidden by default), showing a fixed number of dot characters when hidden.
  • DataType.Url: Renders as a clickable link.
  • DataType.EmailAddress: Renders as a clickable mailto link.
  • DataType.PhoneNumber: Renders as a clickable tel link.
  • DataType.ImageUrl: Renders as an img element.
  • "Color": Renders a colored dot next to the value, interpreting the field value as a 7-character HTML hex color code.

Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-input.html b/stacks/vue/coalesce-vue-vuetify/components/c-input.html new file mode 100644 index 000000000..0f25eb351 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-input.html @@ -0,0 +1,30 @@ + + + + + + c-input | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-input

A general-purpose input component for most Values. c-input delegates to other components based on the type of value it is bound to. This includes both other Coalesce Vuetify Components as well as direct usages of some Vuetify components.

All attributes are passed through to the delegated-to component, allowing for full customization of the underlying Vuetify component.

A summary of the components delegated to, by type:

Any other unsupported type will simply be displayed with c-display, unless a default slot is provided - in that case, the default slot will be rendered instead.

When bound to a ViewModel, the validation rules for the bound property will be obtained from the ViewModel and passed to Vuetify's rules prop.

Examples

Typical usage, providing an object and a property on that object:

template
<c-input :model="person" for="firstName" />

Customizing the Vuetify component used:

template
<c-input :model="comment" for="content" textarea solo />

Binding to API Caller args objects:

template
<c-input 
+    :model="person.setFirstName" 
+    for="newName" />

Or, using a more verbose syntax:

template
<c-input 
+    :model="person.setFirstName.args" 
+    for="Person.methods.setFirstName.newName" />

Binding to Data Source Parameters:

template
<c-input :model="personList.$dataSource" for="startsWith" />

Usage with v-model (this scenario is atypical - the model/for pair of props are used in almost all scenarios):

template
<c-input v-model="person.firstName" for="Person.firstName" />

Props

for?: string | Property | Value

A metadata specifier for the value being bound. One of:

  • A string with the name of the value belonging to model.
  • A direct reference to a metadata object.
  • A string in dot-notation that starts with a type name.

model?: Model | DataSource

An object owning the value that was specified by the for prop. If provided, the input will be bound to the corresponding property on the model object.

value?: any // Vue 2
+modelValue?: any // Vue 3

If binding the component with v-model, accepts the value part of v-model.

Slots

default - Used to display fallback content if c-input does not support the type of the value being bound. Generally this does not need to be used, as you should avoid creating c-input components for unsupported types in the first place.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-list-filters.html b/stacks/vue/coalesce-vue-vuetify/components/c-list-filters.html new file mode 100644 index 000000000..bc2e77fc6 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-list-filters.html @@ -0,0 +1,25 @@ + + + + + + c-list-filters | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-list-filters

A component that provides an interface for modifying the filters prop of a ListViewModel's parameters.

Example Usage

template
<c-list-filters :list="list" />

Props

list: ListViewModel

The ListViewModel whose filters will be editable.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.html b/stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.html new file mode 100644 index 000000000..521327a98 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-list-page-size.html @@ -0,0 +1,25 @@ + + + + + + c-list-page-size | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-list-page-size

A component that provides an dropdown for modifying the pageSize parameter prop of a ListViewModel.

Example Usage

template
<c-list-page-size :list="list" />

Props

list: ListViewModel

The ListViewModel whose pagination will be editable.

pageSizes?: number[]

An optional list of available page sizes to offer through c-list-page-size. Defaults to [10, 25, 100].


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-list-page.html b/stacks/vue/coalesce-vue-vuetify/components/c-list-page.html new file mode 100644 index 000000000..1bddae979 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-list-page.html @@ -0,0 +1,25 @@ + + + + + + c-list-page | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-list-page

A component that provides previous/next buttons and a text field for modifying the page parameter prop of a ListViewModel.

Example Usage

template
<c-list-page :list="list" />

Props

list: ListViewModel

The ListViewModel whose current page will be changeable with the component.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.html b/stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.html new file mode 100644 index 000000000..7f287ddea --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-list-pagination.html @@ -0,0 +1,25 @@ + + + + + + c-list-pagination | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-list-pagination

A component that provides an interface for modifying the pagination parameters of a ListViewModel.

This is a composite of c-list-page-size, c-list-range-display, and c-list-page, arranged horizontally. It is designed to be used above or below a table (e.g. c-table).

Example Usage

template
<c-list-pagination :list="list" />

Props

list: ListViewModel

The ListViewModel whose pagination will be editable.

pageSizes?: number[]

An optional list of available page sizes to offer through c-list-page-size. Defaults to [10, 25, 100].


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-list-range-display.html b/stacks/vue/coalesce-vue-vuetify/components/c-list-range-display.html new file mode 100644 index 000000000..5f373e0c7 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-list-range-display.html @@ -0,0 +1,25 @@ + + + + + + c-list-range-display | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-list-range-display

Displays pagination information about the current $items of a ListViewModel in the format <start index> - <end index> of <total count>.

Uses the pagination information returned from the last successful $load call, not the current $params of the ListViewModel.

Examples

template
<c-list-range-display :list="list" />

Props

list: ListViewModel

The ListViewModel to display pagination information for.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-loader-status.html b/stacks/vue/coalesce-vue-vuetify/components/c-loader-status.html new file mode 100644 index 000000000..e0a0d8a4a --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-loader-status.html @@ -0,0 +1,68 @@ + + + + + + c-loader-status | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-loader-status

A component for displaying progress and error information for one or more API Callers.

TIP

It is highly recommended that all API Callers utilized by your application that don't have any other kind of error handling should be represented by a c-loader-status so that users can be aware of any errors that occur.

Progress is indicated with a Vuetify v-progress-linear component, and errors are displayed in a v-alert. Transitions are applied to smoothly fade between the different states the the caller can be in.

Examples

Wrap contents of a details/edit page:

template
<h1>Person Details</h1>
+<c-loader-status
+    :loaders="{ 
+        'no-initial-content no-error-content': [person.$load],
+        '': [person.$save, person.$delete],
+    }"
+    #default
+>
+    First Name: {{ person.firstName }}
+    Last Name: {{ person.lastName }}
+    Employer: {{ person.company.name }}
+</c-loader-status>

Use c-loader-status to render a progress bar and any error messages, but don't use it to control content:

template
<c-loader-status :loaders="list.$load" />

Wrap a save/submit button:

template
<c-loader-status :loaders="[person.$save, person.$delete]" no-loading-content>
+    <button> Save </button>
+    <button> Delete </button>
+</c-loader-status>

Hides the table before the first load has completed, or if loading the list encountered an error. Don't show the progress bar after we've already loaded the list for the first time (useful for loads that occur without user interaction, e.g. setInterval):

template
<c-loader-status
+    :loaders="list.$load"
+    no-initial-content 
+    no-error-content
+    no-secondary-progress 
+>
+    <table>
+        <tr v-for="item in list.$items"> ... </tr>
+    </table>
+</c-loader-status>

Props

loaders: 
+  // Flags per component:
+  | ApiCaller 
+  | ApiCaller[]
+  // Flags per caller:
+  | { [flags: string]: ApiCaller | ApiCaller[] } 

This prop has multiple options that support simple or complex usage scenarios:

Flags Per Component

A single instance, or array of API Callers, whose status will be represented by the component. The flags for these objects will be determined from the component-level flag props.

template
<c-loader-status
+  :loaders="[product.$load, person.$load]"
+  no-initial-content
+  no-error-content
+/>

Flags Per Caller

A more advanced usage allows passing different flags for different callers. Provide a dictionary object with entries mapping zero or more flags to one or more API Callers. Multiple entries of flags/caller pairs may be specified in the dictionary to give different behavior to different API callers. These flags are layered on top of the base flag props.

template
<c-loader-status
+  :loaders="{ 
+    'no-initial-content no-error-content': [person.$load],
+    'no-loading-content': [person.$save, person.$delete],
+  }"
+/>

progressPlaceholder: boolean = true

Specify if space should be reserved for the progress indicator. If set to false, the content in the default slot may jump up and down slightly as the progress indicator shows and hides.

progressAbsolute: boolean = false

Positions the progress bar absolutely. This can be useful in compact interfaces where extra space for the progress bar is undesirable, allowing the progress bar to potentially overlap content while active.

height: number = 10

Specifies the height in pixels of the v-progress-linear used to indicate progress.


+no-loading-content?: boolean;
+no-error-content?: boolean;
+no-initial-content?: boolean;
+no-progress?: boolean;
+no-initial-progress?: boolean;
+no-secondary-progress?: boolean;

Component level flags options that control behavior when the simple form of loaders (single instance or array) is used, as well as provide baseline defaults that can be overridden by the advanced form of loaders (object map) .

Flags

The available flags are as follows, all of which default to true. In the object literal syntax for loaders, the no- prefix may be omitted to set the flag to true.

Flag
Description
no-loading-contentControls whether the default slot is rendered while any API caller is loading (i.e. when caller.isLoading === true).
no-error-contentControls whether the default slot is rendered while any API Caller is in an error state (i.e. when caller.wasSuccessful === false).
no-initial-contentControls whether the default slot is rendered while any API Caller has yet to receive a response for the first time (i.e. when caller.wasSuccessful === null).
no-progressMaster toggle for whether the progress indicator is shown in any scenario.
no-initial-progressControls whether the progress indicator is shown when an API Caller is loading for the very first time (i.e. when caller.wasSuccessful === null).
no-secondary-progressControls whether the progress indicator is shown when an API Caller is loading any time after its first invocation (i.e. when caller.wasSuccessful !== null).

Slots

default - Accepts the content whose visibility is controlled by the state of the supplied API Callers. It will be shown or hidden according to the flags defined for each caller.

TIP

(Vue 2 Only): Define the default slot as a scoped slot (e.g. with #default or v-slot:default on the c-loader-status) to prevent the VNode tree from being created when the content should be hidden. This improves performance and helps avoid null reference errors that can be caused when trying to render objects that haven't been loaded yet.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-select-many-to-many.html b/stacks/vue/coalesce-vue-vuetify/components/c-select-many-to-many.html new file mode 100644 index 000000000..a03c4c0f6 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-select-many-to-many.html @@ -0,0 +1,34 @@ + + + + + + c-select-many-to-many | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-select-many-to-many

A multi-select dropdown component that allows for selecting values fetched from the generated /list API endpoints for collection navigation properties that were annotated with [ManyToMany].

TIP

It is unlikely that you'll ever need to use this component directly - it is highly recommended that you use c-input instead and let it delegate to c-select-many-to-many for you.

Examples

template
<c-select-many-to-many :model="case" for="caseProducts" />
template
<c-select-many-to-many 
+    :model="case" 
+    for="caseProducts" 
+    dense
+    outlined
+/>
template
<c-select-many-to-many 
+    v-model="case.caseProducts" 
+    for="Case.caseProducts" 
+/>

Props

for: string | Property | Value

A metadata specifier for the value being bound. One of:

  • A string with the name of the value belonging to model.
  • A direct reference to a metadata object.
  • A string in dot-notation that starts with a type name.

Note

c-select-many-to-many expects metadata for the "real" collection navigation property on a model. If you provide it the string you passed to [ManyToMany], an error wil be thrown.

model?: Model

An object owning the value that was specified by the for prop. If provided, the input will be bound to the corresponding property on the model object.

value?: any // Vue 2
+modelValue?: any // Vue 3

If binding the component with v-model, accepts the value part of v-model.

params?: ListParameters

An optional set of Data Source Standard Parameters to pass to API calls made to the server.

cache?: ResponseCachingConfiguration | boolean

If provided and non-false, enables response caching on the component's internal API caller.

Events

The following events and automatic API calls are only used when bound to a model that has auto-saves enabled.

  • adding - Fired when a new item has been selected, but before the call to /save has completed.
  • added - Fired when the call to /save has completed after adding a new item.
  • deleting - Fired when an item has been removed, but before the call to /delete has completed.
  • deleted - Fired when the call to /delete has completed after removing an item.

Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-select-string-value.html b/stacks/vue/coalesce-vue-vuetify/components/c-select-string-value.html new file mode 100644 index 000000000..7d6e581a2 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-select-string-value.html @@ -0,0 +1,51 @@ + + + + + + c-select-string-value | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-select-string-value

A dropdown component that will present a list of suggested string values from a custom API endpoint. Allows users to input values that aren't provided by the endpoint.

Effectively, this is a server-driven autocomplete list.

Examples

template
<c-select-string-value 
+    :model="person" 
+    for="jobTitle"
+    method="getSuggestedJobTitles"
+/>
template
<c-select-string-value 
+    v-model="title"
+    label="Job Title"
+    for="Person"
+    method="getSuggestedJobTitles"
+/>
c#
class Person 
+{
+    public int PersonId { get; set; } 
+
+    public string JobTitle { get; set; }
+
+    [Coalesce]
+    public static async Task<ICollection<string>> GetSuggestedJobTitles(AppDbContext db, string search) 
+    {
+        return await db.People
+            .Select(p => p.JobTitle)
+            .Distinct()
+            .Where(t => t.StartsWith(search))
+            .OrderBy(t => t)
+            .Take(100)
+            .ToListAsync()
+    }
+}

Props

for: string | Property | Value

A metadata specifier for the value being bound. One of:

  • A string with the name of the value belonging to model.
  • A direct reference to a metadata object.
  • A string in dot-notation that starts with a type name.

model: Model

An object owning the value that was specified by the for prop. If provided, the input will be bound to the corresponding property on the model object.

method: string

The camel-cased name of the Custom Method to invoke to get the list of valid values. Will be passed a single string parameter search. Must be a static method on the type of the provided model object that returns a collection of strings.

params?: DataSourceParameters

An optional set of Data Source Standard Parameters to pass to API calls made to the server.

listWhenEmpty?: boolean = false

True if the method should be invoked and the list displayed when the entered search term is blank.

eager?: boolean = false

True if the bound value should be updated as the user types. Otherwise, the bound value is updated when focus is lost or when a suggested value is chosen. This is only applicable for Vuetify 2 - in Vuetify 3, this is the default behavior.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-select-values.html b/stacks/vue/coalesce-vue-vuetify/components/c-select-values.html new file mode 100644 index 000000000..78701f751 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-select-values.html @@ -0,0 +1,29 @@ + + + + + + c-select-values | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-select-values

A multi-select input component for collections of non-object values (primarily strings and numbers).

TIP

It is unlikely that you'll ever need to use this component directly - it is highly recommended that you use c-input instead and let it delegate to c-select-values for you.

Examples

template
<c-select-values 
+    :model="post.setTags.args" 
+    for="Post.methods.setTags.params.tagNames" 
+/>

Props

for: string | CollectionProperty | CollectionValue

A metadata specifier for the value being bound. One of:

  • A string with the name of the value belonging to model.
  • A direct reference to a metadata object.
  • A string in dot-notation that starts with a type name.

model?: Model

An object owning the value that was specified by the for prop.

value?: any // Vue 2
+modelValue?: any // Vue 3

If binding the component with v-model, accepts the value part of v-model.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-select.html b/stacks/vue/coalesce-vue-vuetify/components/c-select.html new file mode 100644 index 000000000..7cc9044e6 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-select.html @@ -0,0 +1,59 @@ + + + + + + c-select | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-select

A dropdown component that allows for selecting values fetched from the generated /list API endpoints.

Used for selecting values for foreign key and navigation properties, or for selecting arbitrary objects or primary keys without a parent or owning object.

Examples

Binding to a navigation property or foreign key of a model:

template
  <c-select :model="person" for="company" />
+  <!-- OR: -->
+  <c-select :model="person" for="companyId" />

Binding an arbitrary primary key value or an arbitrary object:

template
  <!-- Binding a key: -->
+  <c-select for="Person" :key-value.sync="selectedPersonId" />
+
+  <!-- Binding an object: -->
+  <c-select for="Person" :object-value.sync="selectedPerson" />
+  <c-select for="Person" v-model="selectedPerson" />

Examples of other props:

template
<c-select 
+  for="Person" 
+  v-model="selectedPerson"
+  :clearable="false"
+  preselect-first
+  :params="{ pageSize: 42, filter: { isActive: true } }"
+  :create="createMethods"
+  dense
+  outlined
+  color="pink"
+/>
+<!-- `createMethods` is defined in the docs of `create` below -->

Props

for: string | ForeignKeyProperty | ModelReferenceNavigationProperty | ModelType

A metadata specifier for the value being bound. One of:

  • The name of a foreign key or reference navigation property belonging to model.
  • The name of a model type.
  • A direct reference to a metadata object.
  • A string in dot-notation that starts with a type name that resolves to a foreign key or reference navigation property.

TIP

When binding by a key value, if the corresponding object cannot be found (e.g. there is no navigation property, or the navigation property is null), c-select will automatically attempt to load the object from the server so it can be displayed in the UI.

model?: Model

An object owning the value that was specified by the for prop. If provided, the input will be bound to the corresponding property on the model object.

If for specifies a foreign key or reference navigation property, both the foreign key and the navigation property of the model will be updated when the selected value is changed.

value?: any // Vue 2
+modelValue?: any // Vue 3

When binding the component with v-model, accepts the value part of v-model. If for was specified as a foreign key, this will expect a key; likewise, if for was specified as a type or as a navigation property, this will expect an object.

keyValue?: any

When bound with :key-value.sync="keyValue", allows binding the primary key of the selected object explicitly.

objectValue?: any

When bound with :object-value.sync="objectValue", allows binding the selected object explicitly.

clearable?: boolean

Whether the selection can be cleared or not, emitting null as the input value.

If not specified and the component is bound to a foreign key or reference navigation property, defaults to whether or not the foreign key has a required validation rule defined in its Metadata.

preselectFirst?: boolean = false

If true, then when the first list results for the component are received by the client just after the component is created, c-select will emit the first item in the list as the selected value.

preselectSingle?: boolean = false

If true, then when the first list results for the component are received by the client just after the component is created, if the results contained exactly one item, c-select will emit that only item as the selected value.

reloadOnOpen?: boolean = false

If true, the list results will be reloaded when the dropdown menu is opened. By default, list results are loaded when the component is mounted and also when any of its parameters change (either search input or the params prop).

params?: ListParameters

An optional set of Data Source Standard Parameters to pass to API calls made to the server.

cache?: ResponseCachingConfiguration | boolean

If provided and non-false, enables response caching on the component's internal API callers.

create?: {
+  getLabel: (search: string, items: TModel[]) => string | false,
+  getItem: (search: string, label: string) => Promise<TModel>
+}

A object containing a pair of methods that allowing users to create new items from directly within the c-select if a matching object is not found.

The object must contain the following two methods. You should define these in your component's script section - don't try to define them inline in your component.

create.getLabel: (search: string, items: TModel[]) => string | false

A function that will be called with the user's current search term, as well as the collection of currently loaded items being presented to the user as valid selection options.

It should return either a string that will be presented to the user as an option in the dropdown that can be clicked to invoke the getItem function below, or it should return false to prevent such an option from being shown to the user.

create.getItem: (search: string, label: string) => Promise<TModel>

A function that will be invoked when the user clicks the option in the dropdown list described by getLabel. It will be given the user's current search term as well as the value of the label returned from getLabel as parameters. It must perform the necessary operations to create the new object on the server and then return a reference to that object.

For example:

ts
createMethods = {
+  getLabel(search: string, items: Person[]) {
+    const searchLower = search.toLowerCase();
+    if (items.some(a => a.name?.toLowerCase().indexOf(searchLower) == 0)) {
+      return false;
+    }
+    return search;
+  },
+  async getItem(search: string, label: string) {
+    const client = new PersonApiClient();
+    return (await client.addPersonByName(label)).data.object!;
+  }
+}

Slots

#item="{ item, search }" - Slot used to customize the text of both items inside the list, as well as the text of selected items. By default, items are rendered with c-display. Slot is passed a parameter item containing a model instance, and search containing the current search query.

#list-item="{ item, search }" - Slot used to customize the text of items inside the list. If not provided, falls back to the item slot.

#selected-item="{ item, search }" - Slot used to customize the text of selected items. If not provided, falls back to the item slot.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/components/c-table.html b/stacks/vue/coalesce-vue-vuetify/components/c-table.html new file mode 100644 index 000000000..848215772 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/components/c-table.html @@ -0,0 +1,41 @@ + + + + + + c-table | Coalesce + + + + + + + + + + + + + + +
Skip to content

c-table

A table component for displaying the contents of a ListViewModel. Also supports modifying the list's sort parameters by clicking on column headers. Pairs well with a c-list-pagination.

Example Usage

A simple table, rendering the items of a ListViewModel:

template
<c-table :list="list" />

A more complex example using more of the available options:

template
<c-table
+  :list="list"
+  :props="['firstName', 'lastName']"
+  :extra-headers="['Actions']"
+>
+  <template #item.append="{item}"> 
+    <td>
+      <v-btn
+        title="Edit"
+        text icon
+        :to="{name: 'edit-person', params: { id: item.$primaryKey }}"
+      >
+        <i class="fa fa-edit"></i>
+      </v-btn>
+    </td>
+  </template>
+</c-table>

Props

list: ListViewModel

The ListViewModel to display pagination information for.

props?: string[]

If provided, specifies which properties, and their ordering, should be given a column in the table.

If not provided, all non-key columns that aren't annotated with [Hidden(HiddenAttribute.Areas.List)] are given a column.

extraHeaders?: string[]

The text contents of one or more extra th elements to render in the table. Should be used in conjunction with the item.append slot.

editable: boolean = false

If true, properties in each table cell will be rendered with c-input. Non-editable properties will be rendered in accordance with the value of the admin prop.

admin: boolean = false

If true, properties in each table cell will be rendered with c-admin-display instead of c-display.

Slots

item.append - A slot rendered after the td elements on each row that render the properties of each item in the table. Should be provided zero or more additional td elements. The number should match the number of additional headers provided to the extraHeaders prop.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/coalesce-vue-vuetify/overview.html b/stacks/vue/coalesce-vue-vuetify/overview.html new file mode 100644 index 000000000..6dbac3730 --- /dev/null +++ b/stacks/vue/coalesce-vue-vuetify/overview.html @@ -0,0 +1,25 @@ + + + + + + Vuetify Components | Coalesce + + + + + + + + + + + + + + +
Skip to content

Vuetify Components

The Vue stack for Coalesce provides a set of components based on Vuetify, packaged up in an NPM package coalesce-vue-vuetify2 or coalesce-vue-vuetify3. These components are driven primarily by the Metadata Layer, and include both low level input and display components like c-input and c-display that are highly reusable in the custom pages you'll build in your application, as well as high-level components like c-admin-table-page and c-admin-editor-page that constitute entire pages.

Setup

All Coalesce projects should be started from the template described in Getting Started with Vue, and will therefore have all the setup completed for you.

If for whatever reason you find yourself adding Coalesce to an existing project, use the template as a reference for what configuration needs to be added to your project.

Display Components

ComponentDescription

c-display

A general-purpose component for displaying any Value by rendering the value to a string with the display functions from the Models Layer. For plain string and number values, usage of this component is largely superfluous. For all other value types including dates, booleans, enums, objects, and collections, it is very handy.

c-loader-status

A component for displaying progress and error information for one or more API Callers.

TIP

It is highly recommended that all API Callers utilized by your application that don't have any other kind of error handling should be represented by a c-loader-status so that users can be aware of any errors that occur.

c-list-range-display

Displays pagination information about the current $items of a ListViewModel in the format <start index> - <end index> of <total count>.

c-table

A table component for displaying the contents of a ListViewModel. Also supports modifying the list's sort parameters by clicking on column headers. Pairs well with a c-list-pagination.

Input Components

ComponentDescription

c-input

A general-purpose input component for most Values. c-input delegates to other components based on the type of value it is bound to. This includes both other Coalesce Vuetify Components as well as direct usages of some Vuetify components.

c-select

A dropdown component that allows for selecting values fetched from the generated /list API endpoints.

Used for selecting values for foreign key and navigation properties, or for selecting arbitrary objects or primary keys without a parent or owning object.

c-datetime-picker

A general, all-purpose date/time input component that can be used either with models and metadata or as a standalone component using only v-model.

c-select-many-to-many

A multi-select dropdown component that allows for selecting values fetched from the generated /list API endpoints for collection navigation properties that were annotated with [ManyToMany].

c-select-string-value

A dropdown component that will present a list of suggested string values from a custom API endpoint. Allows users to input values that aren't provided by the endpoint.

Effectively, this is a server-driven autocomplete list.

c-select-values

A multi-select input component for collections of non-object values (primarily strings and numbers).

c-list-filters

A component that provides an interface for modifying the filters prop of a ListViewModel's parameters.

c-list-pagination

A component that provides an interface for modifying the pagination parameters of a ListViewModel.

This is a composite of c-list-page-size, c-list-range-display, and c-list-page, arranged horizontally. It is designed to be used above or below a table (e.g. c-table).

c-list-page-size

A component that provides an dropdown for modifying the pageSize parameter prop of a ListViewModel.

c-list-page

A component that provides previous/next buttons and a text field for modifying the page parameter prop of a ListViewModel.

Admin Components

ComponentDescription

c-admin-method

Provides an interface for invoking a method and rendering its result, designed to be use in an admin page.

c-admin-methods

Renders in a Vuetify v-expansion-panels a c-admin-method for each method on a ViewModel or ListViewModel.

c-admin-display

Behaves the same as c-display, except any collection navigation properties will be rendered as links to an admin list page, and any models will be rendered as a link to an admin item page.

c-admin-editor

An editor for a single ViewModel instance. Provides a c-input for each property of the model.

c-admin-editor-page

A page for a creating/editing single ViewModel instance. Provides a c-admin-editor and a c-admin-methods for the instance. Designed to be routed to directly with vue-router.

c-admin-table

An full-featured table for a ListViewModel, including a c-admin-table-toolbar, c-table, and c-list-pagination.

c-admin-table-toolbar

A full-featured toolbar for a ListViewModel designed to be used on an admin page, including "Create" and "Reload" buttons, a c-list-range-display, a c-list-page, a search field, c-list-filters, and a c-list-page-size.

c-admin-table-page

A full-featured page for interacting with a ListViewModel. Provides a c-admin-table and a c-admin-methods for the list. Designed to be routed to directly with vue-router.

c-admin-audit-log-page

A full-featured page for interacting with Coalesce's Audit Logging. Presents a view similar to c-admin-table-page with content optimized for viewing audit log records. Designed to be routed to directly with vue-router.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/getting-started.html b/stacks/vue/getting-started.html new file mode 100644 index 000000000..665c3e4a3 --- /dev/null +++ b/stacks/vue/getting-started.html @@ -0,0 +1,63 @@ + + + + + + Getting Started | Coalesce + + + + + + + + + + + + + + +
Skip to content

Getting Started

Environment Setup

Before you begin, ensure that you have all the requisite tools installed

  • Recent version of the .NET SDK. If you have Visual Studio, you already have this.
  • A recent version of Node.js (an LTS version is recommended).
  • A compatible IDE.
    • Recommended:
    • Also consider:
      • VS Code for full stack development.
      • JetBrains Rider

Creating a Project

The quickest and easiest way to create a new Coalesce Vue application is to use the dotnet new template. In your favorite shell:

sh
dotnet new install IntelliTect.Coalesce.Vue.Template
+dotnet new coalescevue -o MyCompany.MyProject
+cd MyCompany.MyProject/*.Web
+npm ci
  Static Badge

Project Structure

Important

The Vue template is based on Vite. You are strongly encouraged to read through at least the first few pages of the Vite Documentation before getting started on any development.

The structure of the Web project follows the conventions of both ASP.NET Core and Vite. The Vue-specific folders are as follows:

  • /src - Files that should be compiled into your frontend application. CSS/SCSS, TypeScript, Vue SFCs, and so on.
  • /public - Static assets that should be served as files. Includes index.html, the root document of the application.
  • /wwwroot - Target for compiled output. This directory is excluded from git.

During development, no special tooling is required to build your frontend code. Coalesce's UseViteDevelopmentServer in ASP.NET Core will take care of that automatically when the application starts. Just make sure NPM packages have been installed (npm ci).

Data Modeling

At this point, you can open up the newly-created solution in Visual Studio and run your application. However, your application won't do much without a data model, so you will probably want to do the following before running:

  • Create an initial Data Model by adding EF entity classes to the data project and the corresponding DbSet<> properties to AppDbContext. You will notice that the starter project includes a single model, Widget, to start with. Feel free to change this model or remove it entirely. Read Entity Models for more information about creating a data model.

  • Run dotnet ef migrations add Init (Init can be any name) in the data project to create an initial database migration.

  • Run Coalesce's code generation by either:

    • Running dotnet coalesce in the web project's root directory
    • Running the coalesce npm script (Vue) or gulp task (Knockout) in the Task Runner Explorer

You're now at a point where you can start creating your own pages!

Building Pages & Features

Lets say we've created a model called Person as follows, and we've ran code generation with dotnet coalesce:

c#
namespace MyApplication.Data.Models 
+{
+    public class Person
+    {
+        public int PersonId { get; set; }
+        public string Name { get; set; }
+        public DateTimeOffset? BirthDate { get; set; }
+    }
+}

We can create a details page for a Person by creating a Single File Component in MyApplication.Web/src/views/person-details.vue:

vue
<template>
+  <dl>
+    <dt>Name</dt>
+    <dd>
+      <c-display :model="person" for="name" />
+    </dd>
+
+    <dt>Date of Birth</dt>
+    <dd>
+      <c-display :model="person" for="birthDate" format="M/d/yyyy" />
+    </dd>
+  </dl>
+</template>
+
+<script setup lang="ts"> 
+import { PersonViewModel } from "@/viewmodels.g";
+
+const props = defineProps<{ id: number }>();
+const person = new PersonViewModel();
+
+person.$load(props.id);
+</script>

Note

In the code above, c-display is a component that comes from the Vuetify Components for Coalesce.

For simple property types like string and number you can always use simple template interpolation syntax, but for more complex properties like dates, c-display is handy to use because it includes features like built-in date formatting.

We then need to add route to this new view. In MyApplication.Web/src/router.ts, add a new item to the routes array:

ts
// In the `routes` array, add the following item:
+{
+  path: '/person/:id',
+  name: 'person-details',
+  component: () => import('@/views/person-details.vue'),
+  props: route => ({ id: +route.params.id }),
+},

With these pieces in place, we now have a functioning page that will display details about a person. We can start up the application (or, if it was already running, refresh the page) and navigate to /person/1 (assuming a person with ID 1 exists - if not, navigate to /admin/Person and create one).

From this point, you can start adding more fields, more features, and more flair to the page. Check out all the other documentation in the sidebar to see what else Coalesce has to offer, including the Vue Overview.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/layers/api-clients.html b/stacks/vue/layers/api-clients.html new file mode 100644 index 000000000..eabc9a435 --- /dev/null +++ b/stacks/vue/layers/api-clients.html @@ -0,0 +1,76 @@ + + + + + + Vue API Client Layer | Coalesce + + + + + + + + + + + + + + +
Skip to content

Vue API Client Layer

The API client layer, generated as api-clients.g.ts, exports a class for each API controller that was generated for your data model. These classes are stateless and provide one method for each API endpoint. This includes both the standard set of endpoints created for Entity Models and Custom DTOs, as well as any custom Methods on the aforementioned types, as well as any methods on your Services.

The API clients provided by Coalesce are based on axios. All API clients used a shared axios instance, exported from coalesce-vue as AxiosClient. This instance can be used to configure all HTTP requests made by Coalesce, including things like attaching interceptors to modify the requests being made, or configuring defaults.

As with all the layers, the source code of coalesce-vue is also a great supplement to this documentation.

Concepts

API Client

A class, generated for each controller-backed type in your data model as <ModelName>ApiClient and exported from api-clients.g.ts containing one method for each API endpoint.

Each method on the API client takes in the regular parameters of the method as you would expect, as well as an optional AxiosRequestConfig parameter at the end that can be used to provide additional configuration for the single request, if needed.

For the methods that correspond to the standard set of CRUD endpoints that Coalesce provides (get, list, count, save, delete), an additional parameter parameters is available that accepts the set of Standard Parameters appropriate for the endpoint.

Each method returns a Promise<AxiosResponse<TApiResult>> where TApiResult is either ItemResult, ItemResult<T>, or ListResult<T>, depending on the return type of the API endpoint. AxiosResponse is the response object from axios, containing the TApiResult in its data property, as well as other properties like headers. The returned type T is automatically converted into valid Model implementations for you.

API Callers/API States

A stateful function for invoking an API endpoint, created with the $makeCaller function on an API Client. API Callers provide a wide array of functionality that is useful for working with API endpoints that are utilized by a user interface.

Because they are such an integral part of the overall picture of coalesce-vue, they have their own section below where they are explained in much greater detail.

API Callers

API Callers (typed with the name ApiState in coalesce-vue, sometimes also referred to as "loaders" or "invokers") are stateful functions for invoking an API endpoint, created with the $makeCaller function on an API Client. A summary of features:

Endpoint Invocation

Each API Caller is itself a function, so it can be invoked to trigger an API request to the server.

State management

API Callers contain properties about the last request made, including things like wasSuccessful, isLoading, result, and more.

Concurrency Management

Using setConcurrency(mode), you can configure how each individual caller handles what happens when multiple requests are made simultaneously

Argument Binding

API Callers can be created so that they have an args object that can be bound to, using .invokeWithArgs() to make a request using those arguments as the API endpoint's parameters. The API Callers created for the ViewModel Layer are all created this way.

Creating and Invoking an API Caller

API Callers can be created with the $makeCaller method of an API Client. The way in which it was created affects how it is invoked, as the parameters that the caller accepts are defined when it is created.

TIP

During typical development, it is unlikely that you'll need to make a custom API Caller - the ones created for you on the generated ViewModel Layer will usually suffice. However, creating your own can allow for some more advanced functionality.

Some examples:

ts
// Preamble for all the examples below:
+import { PersonApiClient } from '@/api-clients.g';
+const client = new PersonApiClient;

A caller that takes no additional parameters:

ts
const caller = client.$makeCaller(
+    "item", 
+    c => c.namesStartingWith("A")
+);
+
+await caller();
+console.log(caller.result)

A caller that takes custom parameters:

ts
const caller = client.$makeCaller(
+    methods => methods.namesStartingWith, 
+    (c, str: string) => c.namesStartingWith(str)
+);
+
+await caller("Rob");
+console.log(caller.result)

A caller that has an args object that can be bound to. This is how the generated API Callers in the ViewModel Layer are created:

ts
const caller = client.$makeCaller("item", 
+    // The parameter-based version is always required, even if it won't be used.
+    (c, str: string) => c.namesStartingWith(str),
+    // A function which creates a blank instance of the args object.
+    // All props should be initialized (i.e. not undefined) to work with Vue's reactivity.
+    () => ({str: null as string | null, }),
+    // The function that accepts the args object and uses it:
+    (c, args) => c.namesStartingWith(args.str)
+);
+
+caller.args.str = "Su";
+await caller.invokeWithArgs();
+console.log(caller.result)

A caller that performs multiple async operations:

ts
const deleteFirstNameStartingWith = client.$makeCaller(
+    "item",
+    async (c, str: string) => {
+        const namesResult = await c.namesStartingWith(str)
+        return await c.deletePersonByName(namesResult.data.object[0])
+    }
+);
+
+await caller("Rob");
+console.log(caller.result)

The first parameter, resultType, can either be one of "item" or "list", indicating whether the method returns a ItemResult or ListResult (examples #1 and #3 above). It can also be a function which accepts the set of method metadata for the API Client and which returns the specific method metadata (example #2 above), or it can be a direct reference to a specific method metadata object.

Properties

The following state properties can be found on API Caller instances. These properties are useful for binding to in a user interface to display errors, results, or indicators of progress.

All Callers

isLoading: boolean

True if there is currently a request pending for the API Caller.

wasSuccessful: boolean | null

A boolean indicating if the last request made was successful, or null if either no request has been made yet, or if a request has been made but has not yet completed.

message: string | null

An error message from the last request, if any. Will be set to null upon successful completion of a request.

hasResult: boolean

True if result is non-null. This prop is useful in performance-critical scenarios where checking result directly will cause an overabundance of re-renders in high-churn scenarios.

args: {}

Holds an object for the arguments of the function, and will be used if the caller is invoked with its invokeWithArgs() method. Useful for binding the arguments of a caller to inputs in a user interface.

Only exists if the caller was created with the option of being invoked with an args object as described in the sections above.

get url(): string

Returns the URL for the method's HTTP endpoint. Any parameters are sourced from the args object. Useful for binding file-returning HTTP GET methods directly to image or video HTML elements.

Only exists if the caller was created with the option of being invoked with an args object as described in the sections above.


ItemResult-based Callers

result: T | null

The principal data returned by the previous request. Will be set to null if the last response received returned no data (e.g. if the response was an error response)

validationIssues: ValidationIssue[] | null

Any validation issues returned by the previous request. This is never populated automatically by Coalesce, and is therefore is only used if you have written custom code to populate it in your Behaviors or Methods.


ListResult-based Callers

result: Array<T> | null

The principal data returned by the previous request. Will be set to null if the last response received returned no data (e.g. if the response was an error response).

page, pageSize, pageCount, totalCount: number | null

Properties which contain the pagination information returned by the previous request.

Concurrency Mode

setConcurrency(mode: 'disallow' | 'debounce' | 'cancel' | 'allow')

API callers have a setConcurrency method that allows you to customize how they behave when additional invocations are performed when there is already a request pending. There are four options available, with "disallow" being the default:

"disallow"

The default behavior - simply throws an error for any secondary invocations.

Note

Having "disallow" as the default prevents the unexpected behavior that can happen in a number of ways with the other modes:

  • For requests that are performing data-mutating actions on the server, all other concurrency modes could lead to an unexpected end state of the data due to requests either being abandoned, cancelled, or potentially happening out-of-order.
  • Throwing errors for multiple concurrent requests quickly surfaces issues during development where concurrent requests are not being correctly guarded against in a user interface - e.g. not disabling a "Save" or "Submit" button while the request is pending, which would otherwise lead to double-posts.
"debounce"

When a secondary invocation is performed, enqueue it after the current pending invocation completes.

If additional invocations are performed while there is already an invocation enqueued and waiting, the already-enqueued invocation is abandoned and replaced by the most recent invocation attempt. The promise of the abandoned invocation will be resolved with undefined (it is NOT rejected).

"cancel"

When a secondary invocation is performed, cancel the current pending invocation.

This completely aborts the request, propagating all the way back to the server where cancellation can be observed with HttpContext.RequestAborted. The promise of the cancelled invocation will be resolved with undefined (it is NOT rejected).

"allow"

When a secondary invocation is performed, always continue normally, sending the request to the server.

The state of the properties on the caller at any time will reflect the most recent response received from the server, which is never guaranteed to correlate with the most recent request made to the server - that is, requests are not guaranteed to complete in the order they were made. In particular, the isLoading property will be false after the first response comes back, even if the second response has not yet been received.

WARNING

For the reasons outlined above, it is generally not recommended to use "allow" unless you fully understand the drawbacks. This mode mirrors the legacy behavior of the Knockout stack for Coalesce.

Response Caching

Response caching on API Callers is a feature that will save API responses to persistent storage (sessionStorage or localStorage). The next time a matching request is made, the result property of the API Caller will be populated with that saved response, allowing for a faster time to interactivity and reduced repaints and shifting of elements as initial data loads after a page navigation. It does not prevent any HTTP requests from being made, and does not affect the Promise returned from invoke or invokeWithArgs.

Common use cases include:

  • Site-wide status or alert messages
  • Server-provided configuration
  • Dashboard data, like statistics or graphs

When a cached response is loaded, result is populated with that response's data, wasSuccessful and hasResult are set to true, and onFulfilled callbacks are invoked.

useResponseCaching(configuration?: ResponseCachingConfiguration | false)

Enables response caching on the API Caller. Only HTTP GET methods are supported, and file-returning methods are not supported. Call with false to disable caching after it was previously enabled. The available options are as follows:

ts
export type ResponseCachingConfiguration = {
+  /** Function that will determine the cache key used for a particular request.
+   * Return a falsy value to prevent caching. The default key is the request URL.
+   */
+  key?: (
+    req: AxiosRequestConfig,
+    defaultKey: string
+  ) => string | null | undefined;
+
+  /** The maximum age of a cached response. If null, the entry will not expire. Default 1 hour.
+   *
+   * The smallest of the current configured max age and the max age that was set at the time of the cached response is used. */
+  maxAgeSeconds?: number | null;
+
+  /** The Storage (default `sessionStorage`) that will hold cached responses. */
+  storage?: Storage;
+};

Other Methods

API Callers have a few other methods available as well:

cancel(): void

Manually cancel the current request. The promise of the cancelled invocation will be resolved with undefined (it is NOT rejected). If using concurrency mode "allow", only the most recent invocation is cancelled.

onFulfilled((state: TInvoker) => void | Promise<any>): void

Add a callback to the caller to be invoked when a success response is received from the server. If a promise is returned, this promise will be awaited and will delay the setting of the isLoading prop to false until it completes.

onRejected((state: TInvoker) => void | Promise<any>): void

Add a callback to the caller to be invoked when a failure response is received from the server. If a promise is returned, this promise will be awaited and will delay the setting of the isLoading prop to false until it completes.

invoke(...args: TArgs)

The invoke function is a reference from the caller to itself. In other words, caller.invoke === caller. This exists to mirror the syntax of the Knockout generated method classes.

invokeWithArgs(args?: {})

If called a parameter, that parameter will be used as the args object. Otherwise, caller.args will be used.

Only exists if the caller was created with the option of being invoked with an args object as described in the sections above.

getResultObjectUrl(vue?: Vue): string | undefined

If the method returns a file, this method will return an Object URL representing the value of the result prop.

Accepts a Vue instance in order to manage the lifecycle of the URL, since object URLs must be manually released to avoid memory leaks. When the provided Vue component is destroyed, the object URL will be destroyed. If called inside the component template, the Vue instance can be acquired automatically.

Only exists if the caller was created with the option of being invoked with an args object as described in the sections above.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/layers/metadata.html b/stacks/vue/layers/metadata.html new file mode 100644 index 000000000..1b7ca435d --- /dev/null +++ b/stacks/vue/layers/metadata.html @@ -0,0 +1,25 @@ + + + + + + Vue Metadata Layer | Coalesce + + + + + + + + + + + + + + +
Skip to content

Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/layers/models.html b/stacks/vue/layers/models.html new file mode 100644 index 000000000..12d8fce0e --- /dev/null +++ b/stacks/vue/layers/models.html @@ -0,0 +1,101 @@ + + + + + + Vue Model Layer | Coalesce + + + + + + + + + + + + + + +
Skip to content

Vue Model Layer

The model layer, generated as models.g.ts, contains a set of TypeScript interfaces that represent each client-exposed type in your data model. Each interface contains all the Properties of that type, as well as a $metadata property that references the metadata object for that type. Enums and Data Sources are also represented in the model layer.

The model layer also includes a TypeScript class for each type that can be used to easily instantiate a valid implementation of its corresponding interface. However, it is not necessary for the classes to be used, and all parts of Coalesce that interact with the model layer don't perform any instanceof checks against models - the $metadata property is used to determine type identity.

Concepts

The model layer is fairly simple - the only main concept it introduces on top of the Metadata Layer is the notion of interfaces and enums that mirror the C# types in your data model. As with the Metadata Layer, the source code of coalesce-vue is a great documentation supplement to this page.

Model

An interface describing an instance of a class type from your application's data model. All Model interfaces contain members for all the Properties of that type, as well as a $metadata property that references the metadata object for that type.

DataSource

A class-based representation of a Data Source containing properties for any of the Custom Parameters of the data source, as well as a $metadata property that references the metadata object for the data source.

Data sources are generated as concrete classes in a namespace named DataSources that is nested inside a namespace named after their parent model type. For example:

ts
import { Person } from '@/models.g'
+
+const dataSource = new Person.DataSources.NamesStartingWith;
+dataSource.startsWith = "A";
+// Provide the dataSource to an API Client or a ViewModel...

Model Functions

The following functions exported from coalesce-vue can be used with your models:

// Vue Options API
+bindToQueryString(vue: Vue, obj: {}, key: string, queryKey: string = key, parse?: (v: any) => any, mode: 'push' | 'replace' = 'replace')
+ 
+// Vue Composition API
+useBindToQueryString(obj: {}, key: string, queryKey: string = key, parse?: (v: any) => any, mode: 'push' | 'replace' = 'replace')

Binds property key of obj to query string parameter queryKey. When the object's value changes, the query string will be updated using vue-router. When the query string changes, the object's value will be updated.

The query string will be updated using either router.push or router.replace depending on the value of parameter mode.

If the query string contains a value when this is called, the object will be updated with that value immediately.

If the object being bound to has $metadata, information from that metadata will be used to serialize and parse values to and from the query string. Otherwise, String(value) will be used to serialize the value, and the parse parameter (if provided) will be used to parse the value from the query string.

ts
import { bindToQueryString } from 'coalesce-vue';
+
+// In the 'created' Vue lifecycle hook on a component:
+created() {
+    // Bind pagination information to the query string:
+    bindToQueryString(this, this.listViewModel.$params, 'pageSize', 'pageSize', v => +v);
+
+    // Assuming the component has an 'activeTab' data member:
+    bindToQueryString(this, this, 'activeTab');
+}

// Vue Options API
+bindKeyToRouteOnCreate(vue: Vue, model: Model<ModelType>, routeParamName: string = 'id', keepQuery: boolean = false)
+ 
+// Vue Composition API
+useBindKeyToRouteOnCreate(model: Model<ModelType>, routeParamName: string = 'id', keepQuery: boolean = false)

When model is created (i.e. its primary key becomes non-null), replace the current URL with one that includes uses primary key for the route parameter named by routeParamName.

The query string will not be kept when the route is changed unless true is given to keepQuery.

ts
import { bindKeyToRouteOnCreate } from 'coalesce-vue';
+
+// In the 'created' Vue lifecycle hook on a component:
+created() {
+    if (this.id) {
+        this.viewModel.$load(this.id);
+    } else {
+        bindKeyToRouteOnCreate(this, this.viewModel);
+    }
+}

Note

The route will be replaced directly via the HTML5 History API such that vue-router will not observe the change as an actual route change, preventing the current view from being recreated if a path-based key is being used on the application's <router-view> component.

Advanced Model Functions

The following functions exported from coalesce-vue can be used with your models.

Note

These functions are used to implement the higher-order layers in the Vue stack.

While you're absolutely free to use them in your own code and can rely on their interface and behavior to remain consistent, you will find that you seldom need to use them directly - that's why we've split them into their own section here in the documentation.

convertToModel(value: any, metadata: Value | ClassType): any

Given any JavaScript value value, convert it into a valid implementation of the value or type described by metadata.

For metadata describing a primitive or primitive-like value, the input will be parsed into a valid implementation of the correct JavaScript type. For example, for metadata that describes a boolean, a string "true" will return a boolean true, and ISO 8601 date strings will result in a JavaScript Date object.

For metadata describing a type, the input object will be mutated into a valid implementation of the appropriate model interface. Missing properties will be set to null, and any descendent properties of the provided object will be recursively processed with convertToModel.

If any values are encountered that are fundamentally incompatible with the requested type described by the metadata, an error will be thrown.

mapToModel(value: any, metadata: Value | ClassType): any

Performs the same operations as convertToModel, except that any objects encountered will not be mutated - instead, a new object or array will always be created.

mapToDto(value: any, metadata: Value | ClassType): any

Maps the input to a representation suitable for JSON serialization.

Will not serialize child objects or collections whose metadata includes dontSerialize. Will only recurse to a maximum depth of 3.

modelDisplay(model: Model, options?: DisplayOptions): string

Returns a string representing the model suitable for display in a user interface.

Uses the displayProp defined on the object's metadata. If no displayProp is defined, the object will be displayed as JSON. The display prop on a model can be defined in C# with [ListText].

See DisplayOptions for available options.

propDisplay(model: Model, prop: Property | string, options?: DisplayOptions): string

Returns a string representing the specified property of the given object suitable for display in a user interface.

The property can either be a string, representing one of the model's properties, or the actual Property metadata object of the property.

See DisplayOptions for available options.

valueDisplay(value: any, metadata: Value, options?: DisplayOptions): string

Returns a string representing the given value (described by the given metadata).

See DisplayOptions for available options.

DisplayOptions

The following options are available to functions in coalesce-vue that render a value or object for display:

ts
export interface DisplayOptions {
+  /** Date format options. One of:
+   * - A UTS#35 date format string (https://date-fns.org/docs/format)
+   * - An object with options for https://date-fns.org/docs/format or https://github.com/marnusw/date-fns-tz#format, including a string `format` for the format itself. If a `timeZone` option is provided per https://github.com/marnusw/date-fns-tz#format, the date being formatted will be converted to that timezone.
+   * - An object with options for https://date-fns.org/docs/formatDistance */
+  format?:
+    | string
+    | ({
+        /** A UTS#35 date format string (https://date-fns.org/docs/format) */
+        format: string;
+      } & Parameters<typeof format>[2])
+    | {
+        /** Format date with https://date-fns.org/docs/formatDistanceToNow */
+        distance: true;
+        /** Append/prepend `'in'` or `'ago'` if date is after/before now. Default `true`. */
+        addSuffix?: boolean;
+        /** Include detail smaller than one minute. Default `false`. */
+        includeSeconds?: boolean;
+      };
+
+  collection?: {
+    /** The maximum number of items to display individually.
+     * When there are more than this number of items, the count of items will be displayed instead.
+     * Default `5`.
+     * */
+    enumeratedItemsMax?: number;
+
+    /** The separator to place between enumerated items. Default `', '` */
+    enumeratedItemsSeparator?: string;
+  };
+}

Note

Dates rendered with the formatDistanceToNow function into a Vue component will not automatically be updated in realtime. If this is needed, you should use a strategy like using a key that you periodically update to force a re-render.

Time Zones

In Coalesce Vue, all DateTimeOffset-based properties, for both inputs and display-only contexts, are by default formatted into the user's computer's system time zone. This is largely just a consequence of how the JavaScript Date type works. However, this behavior can be overridden by configuring a global default timezone, or by providing a time zone name to individual usages.

Fields with a type of DateTime are agnostic to time zone and UTC offset and so are not subject to any of the following rules.

setDefaultTimeZone(timeZoneName: string | null): void

Gets or sets the default time zone used by Coalesce. The time zone should be an IANA Time Zone Database name, e.g. "America/Los_Angeles".

The time zone provided here is used in the following ways:

  • It will be used as DisplayOptions.format.timeZone if no other value was provided for this option. This is used by functions modelDisplay, propDisplay, and valueDisplay, as well as the c-display component.
  • It will be used by c-datetime-picker, used to both interpret the user input and display the selected date. This can also be set on individual component usages via the timeZone prop.
  • It will be used when serializing DateTimeOffset fields into JSON DTOs, representing the ISO 8601 date string in the specified time zone rather than in the user's computer's system time zone.

getDefaultTimeZone(): string | null

Returns the current configured default time zone. Default is null, falling back on the user's computer's system time zone.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/layers/viewmodels.html b/stacks/vue/layers/viewmodels.html new file mode 100644 index 000000000..09e47c5fd --- /dev/null +++ b/stacks/vue/layers/viewmodels.html @@ -0,0 +1,80 @@ + + + + + + Vue ViewModel Layer | Coalesce + + + + + + + + + + + + + + +
Skip to content

Vue ViewModel Layer

The ViewModel layer, generated as viewmodels.g.ts, exports a ViewModel class for each API-backed type in your data model (Entity Models, Custom DTOs, and Services). It also exports a ListViewModel type for Entity Models and Custom DTOs.

These classes provide a wide array of functionality that is useful when interacting with your data model through a user interface. The generated ViewModels are the primary way that Coalesce is used when developing a Vue application.

ViewModels

The following members can be found on the generated Entity and Custom DTO ViewModels, exported from viewmodels.g.ts as <TypeName>ViewModel.

Model Data Properties

Each ViewModel class implements the corresponding interface from the Model Layer, meaning that the ViewModel has a data property for each Property on the model. Object-typed properties will be typed as the corresponding generated ViewModel.

Changing the value of a property will automatically flag that property as dirty. See Auto-save & Dirty Flags below for information on how property dirty flags are used.

There are a few special behaviors when assigning to different kinds of data properties on View Models as well:

Model Object Properties

  • If the object being assigned to the property is not a ViewModel instance, a new instance will be created automatically and used instead of the incoming object.
  • If the model property is a reference navigation, the corresponding foreign key property will automatically be set to the primary key of that object. If the incoming value was null, the foreign key will be set to null.
  • If deep auto-saves are enabled on the instance being assigned to, auto-save will be spread to the incoming object, and to all other objects reachable from that object.

Model Collection Properties

  • When assigning an entire array, any items in the array that are not a ViewModel instance will have an instance created for them.
  • The same rule goes for pushing items into the existing array for a model collection - a new ViewModel instance will be created and be used instead of the object(s) being pushed.

Foreign Key Properties

If the corresponding navigation property contains an object, and that object's primary key doesn't match the new foreign key value being assigned, the navigation property will be set to null.

Other Data Properties & Functions

readonly $metadata: ModelType

The metadata object from the Metadata Layer layer for the type represented by the ViewModel.

readonly $stableId: number

An immutable number that is unique among all ViewModel instances, regardless of type.

Useful for uniquely identifying instances with :key="vm.$stableId" in a Vue component, especially for instances that lack a primary key.

$primaryKey: string | number

A getter/setter property that wraps the primary key of the model. Used to interact with the primary key of any ViewModel in a polymorphic way.

$display(prop?: string | Property): string

Returns a string representation of the object, or one of its properties if specified, suitable for display.

$addChild(prop: string | ModelCollectionNavigationProperty, initialDirtyData?: {})

Creates a new instance of an item for the specified child model collection, adds it to that collection, and returns the item. If initialDirtyData is provided, it will be loaded into the new instance with $loadDirtyData().

Loading & Parameters

$load: ItemApiState;
+$load(id?: TKey) => ItemResultPromise<TModel>;

An API Caller for the /get endpoint. Accepts an optional id argument - if not provided, the ViewModel's $primaryKey is used instead. Uses the instance's $params object for the Standard Parameters.

$params: DataSourceParameters

An object containing the Standard Parameters to be used for the $load, $save, $bulkSave, and $delete API callers.

$dataSource: DataSource

Getter/setter wrapper around $params.dataSource. Takes an instance of a Data Source class generated in the Model Layer.

$includes: string | null

Getter/setter wrapper around $params.includes. See Includes String for more information.

$loadCleanData(source: {} | TModel, purgeUnsaved = false)

Loads data from the provided model into the current ViewModel, and then clears all dirty flags.

Data is loaded recursively into all related ViewModel instances, preserving existing instances whose primary keys match the incoming data.

If auto-save is enabled, only non-dirty properties are updated. This prevents user input that is pending a save from being overwritten by the response from an auto-save /save request.

If purgeUnsaved is true, items without a primary key will be dropped from collection navigation properties. This is used by the $load caller in order to fully reset the object graph with the state from the server.

$loadDirtyData(source: {} | TModel)

Same as $loadCleanData, but does not clear any existing dirty flags, nor does it clear any dirty flags that will be set while mutating the data properties of any ViewModel instance that gets loaded.

constructor(initialDirtyData?: {} | TModel | null)

Create a new instance of the ViewModel, loading the given initial data with $loadDirtyData() if provided.

Saving and Deleting

$save: ItemApiState;
+$save(overrideProps?: Partial<TModel>) => ItemResultPromise<TModel>;

An API Caller for the /save endpoint. Uses the instance's $params object for the Standard Parameters. A save operation saves only properties on the model it is called on - for deep/bulk saves, see $bulkSave.

This caller is used for both manually-triggered saves in custom code and for auto-saves. If the Rules/Validation report any errors when the caller is invoked, an error will be thrown.

overrideProps can provide properties to save that override the data properties on the ViewModel instance. This allows for manually saving a change to a property without setting the property on the ViewModel instance into a dirty state. This makes it easier to handle some scenarios where changing the value of the property may put the UI into a logically inconsistent state until the save response has been returned from the server - for example, if a change to one property affects the computed value of other properties.

When a save creates a new record and a new primary key is returned from the server, any entities attached to the current ViewModel via a collection navigation property will have their foreign keys set to the new primary key. This behavior, combined with the usage of deep auto-saves, allows for complex object graphs to be constructed even before any model in the graph has been created.

When a save is in progress, the names of properties being saved are in contained in $savingProps.

Saving behavior can be further customized with $loadResponseFromSaves and $saveMode, listed below.

$delete: ItemApiState;
+$delete() => ItemResultPromise<TModel>;

An API Caller for the /delete endpoint. Uses the instance's $params object for the Standard Parameters.

If the object was loaded as a child of a collection, it will be removed from that collection upon being deleted. Note that ViewModels currently only support tracking of a single parent collection, so if an object is programmatically added to additional collections, it will only be removed from one of them upon delete.

$loadResponseFromSaves: boolean

Default true - controls if a ViewModel will be loaded with the data from the model returned by the /save endpoint when saved with the $save API caller. There is seldom any reason to disable this.

$savingProps: ReadonlySet<string>

When $save.isLoading == true, contains the properties of the model currently being saved by $save (including auto-saves). Does not include non-dirty properties even if $saveMode == 'whole'.

This can be used to make per-property UI state changes during saves - for example, displaying progress indicators on/near individual inputs, or disabling input controls.

$saveMode: 'surgical' | 'whole'

Configures which properties of the model are sent to the server during a save or bulk save.

"surgical" (default)

By default, only dirty properties (and always the primary key) are sent to the server when performing a save.

This improves the handling of concurrent changes being made by multiple users against different fields of the same entity at the same time - specifically, it prevents a user with a stale value of some field X from overwriting a more recent value of X in the database when the user is only making changes to some other property Y and has no intention of changing X.

Save mode "surgical" doesn't help when multiple users are editing field X at the same time - if such a scenario is applicable to your application, you must implement more advanced handling of concurrency conflicts.

WARNING

Surgical saves require DTOs on the server that are capable of determining which of their properties have been set by the model binder, as surgical saves are sent from the client by entirely omitting properties from the x-www-form-urlencoded body that is sent to the server.

The Generated C# DTOs implement the necessary logic for this; however, any Custom DTOs must have this logic manually written by you, the developer. Either implement the same pattern that can be seen in the Generated C# DTOs, or do not use surgical saves with Custom DTOs.

"whole"

All serializable properties of the object are sent back to the server with every save.

$getPropDirty(propName: string): boolean

Returns true if the given property is flagged as dirty.

$setPropDirty(propName: string, dirty: boolean = true, triggerAutoSave = true)

Manually set the dirty flag of the given property to the desired state. This seldom needs to be done explicitly, as mutating a property will automatically flag it as dirty.

If dirty is true and triggerAutoSave is false, auto-save (if enabled) will not be immediately triggered for this specific flag change. Note that a future change to any other property's dirty flag will still trigger a save of all dirty properties.

$isDirty: boolean

Getter/setter that summarizes the model's property-level dirty flags. Returns true if any properties are dirty.

When set to false, all property dirty flags are cleared. When set to true, all properties are marked as dirty.

Auto-save

// Vue Options API
+$startAutoSave(vue: Vue, options: AutoSaveOptions<this> = {})
+ 
+// Vue Composition API
+$useAutoSave(options: AutoSaveOptions<this> = {})

Starts auto-saving of the instance when its savable data properties become dirty. Saves are performed with the $save API Caller (documented above) and will not be performed if the ViewModel has any validation errors - see Rules/Validation below.

ts
type AutoSaveOptions<TThis> = 
+{ 
+    /** Time, in milliseconds, to debounce saves for.  */
+    wait?: number;
+    
+    /** If true, auto-saving will also be enabled for all view models that are
+        reachable from the navigation properties & collections of the current view model. */
+    deep?: boolean;
+
+    /** Additional options to pass to the third parameter of lodash's `debounce` function. */
+    debounce?: DebounceSettings;
+
+    /** A function that will be called before autosaving that can return false to prevent a save. 
+        Only allowed if not using deep auto-saves.
+    */
+    predicate?: (viewModel: TThis) => boolean;
+}

$stopAutoSave(): void

Turns off auto-saving of the instance. Does not recursively disable auto-saves on related instances if deep was used when auto-save was enabled.

readonly $isAutoSaveEnabled: boolean

Returns true if auto-save is currently active on the instance.

Bulk saves

$bulkSave: ItemApiState;
+$bulkSave(options: BulkSaveOptions) => ItemResultPromise<TModel>;

Bulk saves save all changes to an object graph in one API call and one database transaction. This includes creation, updates, and deletions of entities.

To use bulk saves, you can work with your ViewModel instances on the client much in the same way you would on the server with Entity Framework. Assign objects to reference navigation properties and modify scalar values to perform creates and updates. To perform deletions, you must call model.$remove() on the ViewModel you want to remove, similar how you would call DbSet<>.Remove(model) on the server.

If the client-side Rules/Validation report any errors for any of the models being saved in the operation, an error will be thrown.

On the server, each affected entity is handled through the same standard mechanisms as are used by individual saves or deletes (Behaviors, Data Sources, and Security Attributes), but with a bit of sugar on top:

  • All operations are wrapped in a single database transaction that is rolled back if any individual operation fails.
  • Foreign keys will be fixed up as new items are created, allowing a parent and child record to be created at the same time even when the client has no foreign key to link the two together.

For the response to a bulk save, the server will load and return the root ViewModel that $bulkSave was called upon, using the instance's $params object for the Standard Parameters.

ts
export interface BulkSaveOptions {
+  /** A predicate that will be applied to each modified model
+   * to determine if it should be included in the bulk save operation.
+   *
+   * The predicate is applied before validation (`$hasError`), allowing
+   * it to be used to skip over entities that have client validation errors
+   * that would otherwise cause the entire bulk save operation to fail.
+   * */
+  predicate?: (viewModel: ViewModel, action: "save" | "delete") => boolean;
+}

$remove(): void

Removes the item from its parent collection (if it is in a collection), and marks the item for deletion in the next bulk save.

readonly $isRemoved: boolean

Returns true if the instance was previously removed by calling $remove().

Rules/Validation

$addRule(prop: string | Property, identifier: string, rule: (val: any) => true | string)

Add a custom validation rule to the ViewModel for the specified property. identifier should be a short, unique slug that describes the rule; it is not displayed in the UI, but is used if you wish to later remove the rule with $removeRule().

The function you provide should take a single argument that contains the current value of the property, and should either return true to indicate that the validation rule has succeeded, or a string that will be displayed as an error message to the user.

Any failing validation rules on a ViewModel will prevent that ViewModel's $save caller from being invoked.

$removeRule(prop: string | Property, identifier: string)

Remove a validation rule from the ViewModel for the specified property and rule identifier.

This can be used to remove either a rule that was provided by the generated Metadata Layer, or a custom rule that was added by $addRule. Reference your generated metadata file metadata.g.ts to see any generated rules and the identifiers they use.

$getRules(prop: string | Property): ((val: any) => string | true)[]

Returns an array of active rule functions for the specified property, or undefined if the property has no active validation rules.

$getErrors(prop?: string | Property): Generator<string>

Returns a generator that provides all error messages for either a specific property (if provided) or the entire model (if no prop argument is provided).

TIP

You can obtain an array from a generator with Array.from(vm.$getErrors()) or [...vm.$getErrors()]

readonly $hasError: boolean

Indicates if any properties have validation errors.

Generated Members

API Callers

For each of the instance Methods of the type, an API Caller will be generated.

addTo*() Functions

For each collection navigation property, a method is generated that will create a new instance of the ViewModel for the collected type, add it to the collection, and then return the new object.

Many-to-many helper collections

For each collection navigation property annotated with [ManyToMany], a getter-only property is generated that returns a collection of the object on the far side of the many-to-many relationship. Nulls are filtered from this collection.

ListViewModels

The following members can be found on the generated ListViewModels, exported from viewmodels.g.ts as *TypeName*ListViewModel.

Data Properties

readonly $items: T[]

Collection holding the results of the last successful invocation of the $load API Caller.

Parameters & API Callers

$params: ListParameters

An object containing the Standard Parameters to be used for the $load and $count API callers.

$dataSource: DataSource

Getter/setter wrapper around $params.dataSource. Takes an instance of a Data Source class generated in the Model Layer.

$includes: string | null

Getter/setter wrapper around $params.includes. See Includes String for more information.

$load: ListApiState;
+$load() => ListResultPromise<TModel>

An API Caller for the /list endpoint. Uses the instance's $params object for the Standard Parameters.

Results are available in the $items property. The result property of the $load API Caller contains the raw results and is not recommended for use in general development - $items should always be preferred.

$count: ItemApiState;
+$count() => ItemResultPromise<number>

An API Caller for the /count endpoint. Uses the instance's $params object for the Standard Parameters.

The result is available in $count.result - this API Caller does not interact with other properties on the ListViewModel like $pageSize or $pageCount.

readonly $hasPreviousPage: boolean 
+readonly $hasNextPage: boolean

Properties which indicate if $page can be decremented or incremented, respectively. $pageCount and $page are used to make this determination.

$previousPage(): void 
+$nextPage(): void

Methods that will decrement or increment $page, respectively. Each does nothing if there is no previous or next page as returned by $hasPreviousPage and $hasNextPage.

$page: number

Getter/setter wrapper for $params.page. Controls the page that will be requested on the next invocation of $load.

$pageSize: number

Getter/setter wrapper for $params.pageSize. Controls the page that will be requested on the next invocation of $load.

readonly $pageCount: number

Shorthand for $load.pageCount - returns the page count reported by the last successful invocation of $load.

Auto-Load

// Vue Options API
+$startAutoLoad(vue: Vue, options: AutoLoadOptions<this> = {})
+ 
+// Vue Composition API
+$useAutoLoad(options: AutoLoadOptions<this> = {})

Starts auto-loading of the list as changes to its parameters occur. Loads are performed with the $load API Caller.

ts
type AutoLoadOptions<TThis> =
+{ 
+    /** Time, in milliseconds, to debounce loads for.  */
+    wait?: number;
+
+    /** Additional options to pass to the third parameter of lodash's `debounce` function. */
+    debounce?: DebounceSettings;
+
+    /** A function that will be called before loading that can return false to prevent a load. */
+    predicate?: (viewModel: TThis) => boolean;
+}

$stopAutoLoad()

Manually turns off auto-loading of the instance.

Auto-save

// Vue Options API
+$startAutoSave(vue: Vue, options: AutoSaveOptions<this> = {})
+ 
+// Vue Composition API
+$useAutoSave(options: AutoSaveOptions<this> = {})

Enables auto-save for the items in the list, propagating to new items as they're added or loaded. See ViewModel auto-save documentation for more details.

$stopAutoSave(): void

Turns off auto-saving of the items in the list, and turns of propagation of auto-save to any future items if auto-save was previously turned on for the list. Only affects items that are currently in the list's $items.

readonly $isAutoSaveEnabled: boolean

Returns true if auto-save is currently active on the instance.

Generated Members

API Callers

For each of the static Methods on the type, an API Caller will be created.

Service ViewModels

The following members can be found on the generated Service ViewModels, exported from viewmodels.g.ts as <ServiceName>ViewModel.

Generated Members

API Callers

For each method of the Service, an API Caller will be created.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/overview.html b/stacks/vue/overview.html new file mode 100644 index 000000000..23f5e5cbf --- /dev/null +++ b/stacks/vue/overview.html @@ -0,0 +1,25 @@ + + + + + + Vue Overview | Coalesce + + + + + + + + + + + + + + +
Skip to content

Vue Overview

The Vue stack for Coalesce has been designed from the ground up to be used to build modern web applications using current technologies like Vite, ES Modules, and more. It enables you to use all of the features of Vue.js, including building a SPA, and the ability to use modern component frameworks like Vuetify.

Getting Started

Check out Getting Started with Vue to learn how to get a new Coalesce Vue project up and running.

TypeScript Layers

The generated code for the Vue stack all builds on the coalesce-vue NPM package which contains most of the core functionality of the Vue stack. Its version should generally be kept in sync with the IntelliTect.Coalesce NuGet packages in your project.

Both the generated code and coalesce-vue are split into four layers, with each layer building on the layers underneath. From the bottom, these layers are:

Metadata Layer

The metadata layer, generated as metadata.g.ts, contains information about the types, properties, methods, and other components of your data model. Because Vue applications are typically compiled into a set of static assets, it is necessary for the frontend code to have a representation of your data model as an analog to the ReflectionRepository that is available at runtime in your .NET app.

Read more about the Metadata layer

Model Layer

The model layer, generated as models.g.ts, contains a set of TypeScript interfaces that represent each client-exposed type in your data model. Each interface contains all the Properties of that type, as well as a $metadata property that references the metadata object for that type. Enums and Data Sources are also represented in the model layer.

Read more about the Model layer

API Client Layer

The API client layer, generated as api-clients.g.ts, exports a class for each API controller that was generated for your data model. These classes are stateless and provide one method for each API endpoint. This includes both the standard set of endpoints created for Entity Models and Custom DTOs, as well as any custom Methods on the aforementioned types, as well as any methods on your Services.

Read more about the API Client layer

ViewModel Layer

The ViewModel layer, generated as viewmodels.g.ts, exports a ViewModel class for each API-backed type in your data model (Entity Models, Custom DTOs, and Services). It also exports a ListViewModel type for Entity Models and Custom DTOs.

These classes provide a wide array of functionality that is useful when interacting with your data model through a user interface. The generated ViewModels are the primary way that Coalesce is used when developing a Vue application.

Read more about the ViewModel layer

Vue Components

The Vue stack for Coalesce provides a set of components based on Vuetify, packaged up in an NPM package coalesce-vue-vuetify2 or coalesce-vue-vuetify3. These components are driven primarily by the Metadata Layer, and include both low level input and display components like c-input and c-display that are highly reusable in the custom pages you'll build in your application, as well as high-level components like c-admin-table-page and c-admin-editor-page that constitute entire pages.

Read more about the Vuetify Components here.

Admin Views

The Vue.js stack for Coalesce provides some high level components that provide functionality of whole pages like c-admin-table-page and c-admin-editor-page.

The template described in Getting Started with Vue comes with routes already in place for these page-level components. For example, /admin/Person for a table, /admin/Person/edit to create a new Person, and /admin/Person/edit/:id to edit a Person.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/stacks/vue/vue2-to-vue3.html b/stacks/vue/vue2-to-vue3.html new file mode 100644 index 000000000..d8837b04f --- /dev/null +++ b/stacks/vue/vue2-to-vue3.html @@ -0,0 +1,201 @@ + + + + + + Vue 2 to Vue 3 | Coalesce + + + + + + + + + + + + + + +
Skip to content

Vue 2 to Vue 3

If you're already experienced with Vue 2 but are new to Vue 3, or if you're migrating an existing Vue 2 app to Vue 3, you should first read through the official migration guide.

Vuetify also offers a migration guide to upgrade from Vuetify 2 to Vuetify 3.

If you're new to Vue entirely, check out the rest of Vue docs and pick your learning path.

Coalesce Upgrade Steps

The changes specific to Coalesce when migrating from Vue2 to Vue3 are pretty minimal. Most of your work will be in following the Vue 3 Migration Guide and the Vuetify 3 Migration Guide.

The table below contains the Coalesce-specific changes when migrating to Vue 3. However, the easiest migration path may be to disregard the table below and instead, instantiate the Coalesce Vue template or look at it on GitHub and compare individual files between your project and the template side by side and ingest the changes that you observe.

LocationOld (Vue 2)New (Vue 3)

package.json

json
{
+  "dependencies": {
+    "coalesce-vue-vuetify2": "x"
+  }
+}
json
{
+  "dependencies": {
+    "coalesce-vue-vuetify3": "x"
+  }
+}

vite.config.ts

ts
import { CoalesceVuetifyResolver } from "coalesce-vue-vuetify2/lib/build"
ts
import { CoalesceVuetifyResolver } from "coalesce-vue-vuetify3/build"
+
+// Custom SASS options and `optimizeDeps` configuration can be removed
+// since Vuetify3 no longer uses deprecated sass features,
+// and pre-bundling styles no longer has appreciable benefit.

main.ts

ts
import "coalesce-vue-vuetify2/dist/coalesce-vue-vuetify.css"
+
+// Either of these:
+import CoalesceVuetify from 'coalesce-vue-vuetify2/lib'
+import CoalesceVuetify from 'coalesce-vue-vuetify2'
+
+Vue.use(CoalesceVuetify, {
+  metadata: $metadata,
+});
ts
import "coalesce-vue-vuetify3/styles.css"
+
+
+import { createCoalesceVuetify } from "coalesce-vue-vuetify3";
+
+
+const coalesceVuetify = createCoalesceVuetify({
+  metadata: $metadata,
+});
+app.use(coalesceVuetify);

router.ts

ts
// Either of these:
+import { CAdminTablePage, CAdminEditorPage } from 'coalesce-vue-vuetify2/lib';
+import { CAdminTablePage, CAdminEditorPage } from 'coalesce-vue-vuetify2';
ts

+import { CAdminEditorPage, CAdminTablePage } from "coalesce-vue-vuetify3";

Vitest/Jest tests

If you had a global test setup file performing Vue configuration, you can likely remove it entirely, or at least remove the parts that configure Vue. Vue3 does not operate on global configuration like Vue2 did.

See test-utils.ts and HelloWorld.spec.ts in the template for examples of Vue3 component testing.

From Class Components to <script setup>

The components in the Coalesce template for Vue 3 have switched from vue-class-component to Vue Composition API with <script setup>, the official recommendation for building full Vue 3 applications.

If you're used to writing components in Vue 2 with vue-class-component and vue-property-decorator, you can use this table of comparisons as a quick reference of what the equivalent features are using <script setup> and Vue Composition API. That said, this is not a replacement for learning and understanding the composition API. You should read the Composition API FAQ as well as the Reactivity Fundamentals documentation (make sure to set the API preference in the top left to Composition!).

If you'd like to continue using class components with Vue 3 (e.g. upgrading an existing project where rewriting all components is not feasible), you can try switching to vue-facing-decorator.

Note

The examples below assume that unplugin-auto-import is being used (included in the Coalesce Vue3 template), eliminating the need to manually import common Vue Composition API functions.

FeatureClass ComponentScript Setup

Coalesce ViewModel and ListViewModel usage

vue
<script lang="ts">
+import { Vue, Component } from "vue-property-decorator";
+import { PersonViewModel, PersonListViewModel } from "@/viewmodels.g";
+
+@Component({})
+export default class MyComponent extends Vue {
+  public person = new PersonViewModel();
+  public list = new PersonListViewModel();
+
+  async created() {
+    await person.$load();
+    await list.$load();
+
+    person.$startAutoSave(this);
+    list.$startAutoLoad(this);
+  }
+}
+</script>
vue
<script lang="ts" setup>
+import { PersonViewModel, PersonListViewModel } from "@/viewmodels.g";
+
+const person = new PersonViewModel();
+const list = new PersonListViewModel();
+
+person.$useAutoSave();
+list.$useAutoLoad();
+
+// If you need to await an async operation during component creation, 
+// use an IIFE so that the component mount is not delayed.
+(async function created() {
+  await person.$load();
+  await list.$load();
+})();
+</script>

@Prop, @Watch

vue
<script lang="ts">
+import { Vue, Component, Prop, Watch } from "vue-property-decorator";
+
+@Component({})
+export default class MyComponent extends Vue {
+  @Prop({ default: "Student" })
+  label!: string;
+
+  @Prop({ required: true })
+  student!: ApplicationUserViewModel;
+
+  @Watch("label")
+  labelChanged(newVal, oldVal) {
+    console.log(`label changed. new:${newVal}, old:${oldVal}`)
+  }
+}
+</script>
vue
<script lang="ts" setup>
+const props = withDefaults(defineProps<{
+  label?: string,
+  student?: ApplicationUserViewModel
+}>(), { label: 'Student' })
+
+watch(
+  () => props.label,
+  (newVal, oldVal) => {
+    console.log(`label changed. new:${newVal}, old:${oldVal}`);
+  }
+);
+</script>

Reactive data

vue
<script lang="ts">
+import { Vue, Component } from "vue-property-decorator";
+import { PersonViewModel } from "@/viewmodels.g";
+
+@Component({})
+export default class MyComponent extends Vue {
+  public person = new PersonViewModel();
+
+  public checked = false;
+
+  public items = [
+    { name: "Foo", checked: false, },
+    { name: "Bar", checked: true, }
+  ]
+}
+</script>
vue
<script lang="ts" setup>
+import { PersonViewModel } from "@/viewmodels.g";
+
+// Properties on coalesce-generated ViewModels have built in reactivity 
+// and don't need to be wrapped ref/reactive unless you're going to replace 
+// the entire top level object with a different instance.
+const person = new PersonViewModel();
+
+const checked = ref(false);
+
+const items = reactive([
+  { name: "Foo", checked: false, },
+  { name: "Bar", checked: true, }
+])
+</script>

Computed values

vue
<script lang="ts">
+import { Vue, Component } from "vue-property-decorator";
+import { PersonViewModel } from "@/viewmodels.g";
+
+@Component({})
+export default class MyComponent extends Vue {
+  public person = new PersonViewModel()
+
+  get fullName() {
+    return `${person.firstName} ${person.lastName}`
+  }
+}
+</script>
vue
<script lang="ts" setup>
+import { PersonViewModel } from "@/viewmodels.g";
+
+const person = new PersonViewModel();
+
+const fullName = computed(() => `${person.firstName} ${person.lastName}`)
+</script>

$emit, methods

vue
<template>
+  <input
+    :value="value"
+    @input="inputChanged($event.target.value)"
+  />
+</template>
+
+<script lang="ts">
+import { Vue, Component } from "vue-property-decorator";
+
+@Component({})
+export default class MyComponent extends Vue {
+  @Prop()
+  value!: string;
+
+  inputChanged(v: string) {
+    this.$emit('update:input', v)
+  }
+}
+</script>
vue
<template>
+  <input
+    :value="modelValue"
+    @input="inputChanged(($event.target as HTMLInputElement).value)"
+  />
+</template>
+
+<script lang="ts" setup>
+defineProps<{ modelValue: string | null }>();
+
+// This may seem tedious, but it enables full Typescript intellisense!
+const emit = defineEmits<{
+  (e: "update:modelValue", value: string | null): void;
+}>();
+
+function inputChanged(v: string) {
+  emit('update:modelValue', v)
+}
+</script>

Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/topics/audit-logging.html b/topics/audit-logging.html new file mode 100644 index 000000000..de6ca7d41 --- /dev/null +++ b/topics/audit-logging.html @@ -0,0 +1,125 @@ + + + + + + Audit Logging | Coalesce + + + + + + + + + + + + + + +
Skip to content

Audit Logging

Keeping a history of all (or most) of the changes that are made to records in your database can be invaluable, both for non-repudiation (i.e. proving what happened and who did it), and for troubleshooting or debugging.

Coalesce provides a package IntelliTect.Coalesce.AuditLogging that adds an easy way to inject this kind of audit logging into your EF Core DbContext. It also includes an out-of-the-box view c-admin-audit-log-page that enables browsing of this data on the frontend.

Setup

In this setup process, we're going to add an additional Coalesce Nuget package, define a custom entity to hold our audit logs, install the audit logging extension into our DbContext, and add a pre-made interface on the frontend to view our logs.

1. Add the NuGet package

Add a reference to the Nuget package IntelliTect.Coalesce.AuditLogging to your data project:

xml
<ItemGroup>
+  <PackageReference Include="IntelliTect.Coalesce.Vue" Version="$(CoalesceVersion)" />
+  <PackageReference Include="IntelliTect.Coalesce.AuditLogging" Version="$(CoalesceVersion)" />
+</ItemGroup>

2. Define the log entity

Define the entity type that will hold the audit records in your database:

c#
using IntelliTect.Coalesce.AuditLogging;
+
+[Read(Roles = "Administrator")]
+public class AuditLog : DefaultAuditLog
+{
+    public string? UserId { get; set; }
+    public AppUser? User { get; set; }
+
+    // Other custom props as desired
+}

This entity only needs to implement IAuditLog, but a default implementation of this interface DefaultAuditLog is provided for your convenience. DefaultAuditLog contains additional properties ClientIp, Referrer, and Endpoint for recording information about the HTTP request (if available), and also comes pre-configured for security with Create, Edit, and Delete APIs disabled.

You should further augment this type with any additional properties that you would like to track on each change record. A property to track the user who performed the change should be added, since it is not provided by the default implementation so that you can declare it yourself with the correct type for the foreign key and navigation property.

You should also apply security to restrict reading of these records to only the most privileged users with a Read Attribute (as in the example above) and/or a custom Default Data Source.

3. Configure your DbContext

On your DbContext, implement the IAuditLogDbContext<AuditLog> interface using the class you just created as the type parameter. Then register the Coalesce audit logging extension in your DbContext's OnConfiguring method so that saves will be intercepted and audit log entries created.

c#
[Coalesce]
+public class AppDbContext : DbContext, IAuditLogDbContext<AuditLog>
+{
+    public DbSet<AuditLog> AuditLogs { get; set; }
+    public DbSet<AuditLogProperty> AuditLogProperties { get; set; }
+
+    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
+    {
+        optionsBuilder.UseCoalesceAuditLogging<AuditLog>(x => x
+            .WithAugmentation<OperationContext>()
+        );
+    }
+}

You could also perform this setup in your web project when calling .AddDbContext().

The above code also contains a reference to a class OperationContext. This is the service that will allow you to populate additional custom properties on your audit entries. You'll want to define it as follows:

c#
public class OperationContext : DefaultAuditOperationContext<AuditLog>
+{
+    // Inject any additional desired services in the constructor:
+    public OperationContext(IHttpContextAccessor accessor) : base(accessor) { }
+
+    public override void Populate(AuditLog auditEntry, EntityEntry changedEntity)
+    {
+        base.Populate(auditEntry, changedEntity);
+
+        // Adjust as needed to retrieve your UserId from the ClaimsPrincipal.
+        auditEntry.UserId = User.GetUserId();
+    }
+}

When you're inheriting from DefaultAuditLog for your IAuditLog implementation, you'll want to similarly inherit from DefaultAuditOperationContext<> for your operation context. It will take care of populating the HTTP request tracking fields on the AuditLog record. If you want a totally custom implementation, you only need to implement the IAuditOperationContext<TAuditLog> interface.

The operation context class passed to WithAugmentation will be injected from the application service provider if available; otherwise, a new instance will be constructed using dependencies from the application service provider. To make an injected dependency optional, make the constructor parameter nullable with a default value of null, or create alternate constructors.

4. Add the UI

For Vue applications, the c-admin-audit-log-page component provides an out-of-the-box user interface for browsing through audit logs. Simply define the following route in your application's router:

ts
import { CAdminAuditLogPage } from 'coalesce-vue-vuetify3';
+
+{
+  path: '/admin/audit-logs',
+  component: CAdminAuditLogPage,
+  props: { type: 'AuditLog' }
+}

Configuration

Suppression

You can turn audit logging on or off for individual operations by implementing the SuppressAudit property on your DbContext. For example, implement it as an auto-property as follows and then set it to true in application code when desired:

c#
[Coalesce]
+public class AppDbContext : DbContext, IAuditLogDbContext<AuditLog>
+{
+    ...
+    public bool SuppressAudit { get; set; }
+}

Exclusions & Formatting

Coalesce's audit logging is built on top of Entity Framework Plus and can be configured using all of its configuration, including includes/excludes and custom property formatting.

Coalesce will not use EF Plus's AuditManager.DefaultConfiguration global singleton instance. You must use Coalesce's configuration extensions which allow for more targeted configuration per context that does not rely on a global static singleton. For example:

c#
public class AppDbContext : DbContext, IAuditLogDbContext<AuditLog>
+{
+    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
+    {
+        optionsBuilder.UseCoalesceAuditLogging<AuditLog>(x => x
+            .WithAugmentation<OperationContext>()
+            .ConfigureAudit(c => c
+                .Exclude<DataProtectionKey>()
+                .ExcludeProperty<TrackingBase>(x => new { x.CreatedById, x.CreatedOn, x.ModifiedById, x.ModifiedOn })
+                .FormatType<DateTimeOffset>(d => d.ToTimeZone("America/Los_Angeles").ToString())
+                .Format<Image>(x => x.Content, x => $"{Convert.ToHexString(SHA1.HashData(x))}, {x.Length} bytes")
+            )
+        );
+    }
+}

Property Descriptions

The AuditLogProperty children of your IAuditLog implementation have two properties OldValueDescription and NewValueDescription that can be used to hold a description of the old and new values. By default, Coalesce will populate the descriptions of foreign key properties with the List Text of the referenced principal entity. This greatly improves the usability of the audit logs, which would otherwise only show meaningless numbers or GUIDs for foreign keys that changed.

This feature will load principal entities into the DbContext if they are not already loaded, which could inflict subtle differences in application functionality in rare edge cases if your application is making assumptions about navigation properties not being loaded. Typically though, this will not be an issue and will not lead unintentional information disclosure to clients as long as IncludeTrees are used correctly.

This feature may be disabled by calling .WithPropertyDescriptions(PropertyDescriptionMode.None) inside your call to .UseCoalesceAuditLogging(...) in your DbContext configuration. You may also populate these descriptions in your IAuditOperationContext implementation that was provided to .WithAugmentation<T>().

Merging

When using a supported database provider (currently only SQL Server), audit records for changes to the same entity will be merged together when the change is identical in all aspects to the previous audit record for that entity, with the sole exception of the old/new property values.

In other words, if the same user is making repeated changes to the same property on the same entity from the same page, then those changes will merge together into one audit record.

This merging only happens together if the existing audit record is recent; the default cutoff for this is 30 seconds, but can be configured with .WithMergeWindow(TimeSpan.FromSeconds(15)) when calling UseCoalesceAuditLogging. It can also be turned off by setting this value to TimeSpan.Zero. The merging logic respects all custom properties you add to your IAuditLog implementation, requiring their values to match between the existing and new audit records for a merge to occur.

Caveats

Only changes that are tracked by the DbContext's ChangeTracker can be audited. Changes that are made with raw SQL, or changes that are made with bulk update functions like ExecuteUpdate or ExecuteDelete will not be audited using this package.

Audit Stamping

A lightweight alternative or addition to full audit logging is audit stamping - the process of setting fields like CreatedBy or ModifiedOn on each changed entity. This cannot record a history of exact changes, but can at least record the age of an entity and how recently it changed.

Coalesce offers a simple mechanism to register an Entity Framework save interceptor to perform this kind of action (this does NOT require the IntelliTect.Coalesce.AuditLogging package). This mechanism operations on all saves that go through Entity Framework, eliminating the need to perform this manually in individual Behaviors, Services, and Custom Methods:

c#
services.AddDbContext<AppDbContext>(options => options
+    .UseSqlServer(connectionString) // (or other provider)
+    .UseStamping<TrackingBase>((entity, user) => entity.SetTracking(user))
+);

In the above example, TrackingBase is an interface or class that you would write as part of your application that defines the properties and mechanisms for performing the tracking operation. For example:

c#
public abstract class TrackingBase
+{
+    [Read, Display(Order = 1000)]
+    public ApplicationUser CreatedBy { get; set; }
+    
+    [Read, Display(Order = 1001)]
+    public string? CreatedById { get; set; }
+    
+    [Read, Display(Order = 1002)]
+    public DateTimeOffset CreatedOn { get; set; }
+
+
+    [Read, Display(Order = 1003)]
+    public ApplicationUser ModifiedBy { get; set; }
+    
+    [Read, Display(Order = 1004)]
+    public string? ModifiedById { get; set; }
+    
+    [Read, Display(Order = 1005)]
+    public DateTimeOffset ModifiedOn { get; set; }
+
+
+    public void SetTracking(ClaimsPrincipal? user) 
+        => SetTracking(user?.GetApplicationUserId());
+    
+    public void SetTracking(int? userId)
+    {
+        if (this.CreatedById == null)
+        {
+            this.CreatedById = userId;
+            this.CreatedOn = DateTimeOffset.Now;
+        }
+
+        this.ModifiedById = userId;
+        this.ModifiedOn = DateTimeOffset.Now;
+    }
+}

The overload UseStamping<TStampable> will provide the ClaimsPrincipal from the current HTTP request if present, defaulting to null if an operation occurs outside an HTTP request (e.g. a background job). The overloads UseStamping<TStampable, TService> and UseStamping<TStampable, TService1, TService2> can be used to inject services into the operation. If more than two services are needed, you should wrap those dependencies up into an additional services that takes them as dependencies.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/topics/coalesce-json.html b/topics/coalesce-json.html new file mode 100644 index 000000000..90e7b9cb1 --- /dev/null +++ b/topics/coalesce-json.html @@ -0,0 +1,93 @@ + + + + + + Code Generation Configuration | Coalesce + + + + + + + + + + + + + + +
Skip to content

Code Generation Configuration

In Coalesce, all configuration of the code generation is done in a JSON file. This file is typically named coalesce.json and is typically placed in the solution root.

File Resolution

When the code generation is run by invoking dotnet coalesce, Coalesce will try to find a configuration file via the following means:

  1. If an argument is specified on the command line, it will be used as the location of the file. E.g. dotnet coalesce C:/Projects/MyProject/config.json
  2. If no argument is given, Coalesce will try to use a file in the working directory named coalesce.json
  3. If no file is found in the working directory, Coalesce will crawl up the directory tree from the working directory until a file named coalesce.json is found. If such a file is never found, an error will be thrown.

Contents

A full example of a coalesce.json file, along with an explanation of each property, is as follows:

js
{
+    "webProject": {
+        // Required: Path to the csproj of the web project. Path is relative to location of this coalesce.json file.
+        "projectFile": "src/Coalesce.Web/Coalesce.Web.csproj",
+
+        // Optional: Framework to use when evaluating & building dependencies.
+        // Not needed if your project only specifies a single framework - only required for multi-targeting projects.
+        "framework": "netcoreapp2.0",
+
+        // Optional: Build configuration to use when evaluating & building dependencies.
+        // Defaults to "Debug".
+        "configuration": "Debug",
+
+        // Optional: Override the namespace prefix for generated C# code.
+        // Defaults to MSBuild's `$(RootNamespace)` for the project.
+        "rootNamespace": "MyCompany.Coalesce.Web",
+    },
+
+    "dataProject": {
+        // Required: Path to the csproj of the data project. Path is relative to location of this coalesce.json file.
+        "projectFile": "src/Coalesce.Domain/Coalesce.Domain.csproj",
+
+        // Optional: Framework to use when evaluating & building dependencies.
+        // Not needed if your project only specifies a single framework - only required for multi-targeting projects.
+        "framework": "netstandard2.0",
+
+        // Optional: Build configuration to use when evaluating & building dependencies.
+        // Defaults to "Release".
+        "configuration": "Debug",
+    },
+
+    // The name of the root generator to use. Defaults to "Knockout".
+    // Available values are "Vue" and "Knockout".
+    "rootGenerator": "Vue",
+            
+    // If set, specifies a list of whitelisted root type names that will restrict
+    // which types Coalesce will use for code generation. 
+    // Root types are those that must be annotated with [Coalesce].
+    // Useful if want to segment a single data project into multiple web projects, 
+    // or into different areas/directories within a single web project.
+    "rootTypesWhitelist": [
+        "MyDbContext", "MyCustomDto"
+    ],
+
+    "generatorConfig": {
+        // A set of objects keyed by generator name.
+        // Generator names may optionally be qualified by their full namespace.
+        // All generators are listed when running 'dotnet coalesce' with '--verbosity debug'.
+        // For example, "Views" or "IntelliTect.Coalesce.CodeGeneration.Knockout.Generators.Views".
+        "GeneratorName": {
+            // Optional: true if the generator should be disabled.
+            "disabled": true,
+            // Optional: Configures a path relative to the default output path for the generator
+            // where that generator's output should be placed instead.
+            "targetDirectory": "../DifferentFolder"
+        },
+        // Indentation for generated C# is configurable by type (API controllers, DTO classes and regular View controllers)
+        // It defaults to 4 spaces
+        "ApiController": {
+            "indentationSize": 2 
+        },
+        "ClassDto": {
+            "indentationSize": 2 
+        },
+        "ViewController" : {
+            "indentationSize": 2
+        }
+    }
+}

Additional CLI Options

There are a couple of extra options which are only available as CLI parameters to dotnet coalesce. These options do not affect the behavior of the code generation - only the behavior of the CLI itself.

--debug

When this flag is specified when running dotnet coalesce, Coalesce will wait up to 60 seconds for a debugger to be attached to its process before starting code generation.

-v|--verbosity <level>

Set the verbosity of the output. Options are trace, debug, information, warning, error, critical, and none.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/topics/security.html b/topics/security.html new file mode 100644 index 000000000..3e14f35e3 --- /dev/null +++ b/topics/security.html @@ -0,0 +1,315 @@ + + + + + + Security | Coalesce + + + + + + + + + + + + + + +
Skip to content

Security

This page is a comprehensive overview of all the techniques that can be used in a Coalesce application to restrict the capabilities of API endpoints that Coalesce generates.

The following table is a quick reference of scenarios you might encounter and how you might handle them. If you're unfamiliar with these techniques, though, then you are encouraged to read through this page to get a deeper understanding of what's available before selecting a solution.

FeatureRestrictionTechnique

Entity Reads: /get,
/list,
/count

Disable

[Read(DenyAll)]

Roles

[Read("RoleName")]

Prevent auto-include

  • Omit base call in Data Source GetQuery override.
  • [Read(NoAutoInclude = true)] on properties or types.
  • [assembly: CoalesceConfiguration(NoAutoInclude = true)]

Any custom code:

  • Query Predicates
  • Filtered Includes
  • Conditional Includes
  • Sort/search/filter overrides

Custom Default Data Source

Entity Mutations: /save,
/bulkSave,
/delete

Disable

[Create(DenyAll)] [Edit(DenyAll)] [Delete(DenyAll)]

Roles

[Create("Role")] [Edit("Role")] [Delete("Role")]

Restrict target records (edit/delete)

Custom Default Data Source

Static Validation

Validation attributes

Any custom code:

  • Security
  • Validation

Custom Behaviors

Methods and Services

Disable

N/A - explicit opt-in required via [Coalesce]

Roles

[Execute("RoleName")]

Static Validation

Validation attributes

Restrict Targets (only instance methods)

Other

Write custom logic in the method.

Properties
(All input and output for Entity CRUD, Methods, and Services)

Globally Exclude
Roles

Property Security Attributes

Read-only

Init-only (write-once)

init setter

Custom security

Endpoint Security

Coalesce generates API endpoints by traversing your data model's classes, starting from types annotated with [Coalesce]. This usually includes your DbContext class, as well as any Service classes or interfaces.

Classes can be hidden from Coalesce entirely by annotating them with [InternalUse], preventing generation of API endpoints for that class, as well as preventing properties of that type from being exposed.

DbSet<> properties on your DbContext class can also be annotated with [InternalUse], causing that type to be treated by Coalesce like an External Type rather than an Entity, once again preventing generation of API endpoints but without preventing properties of that type from being exposed.

Class Security Attributes

For each of your Entities and Custom DTOs, Coalesce generates a set of CRUD API endpoints (/get, /list, /count, /save, /bulkSave, and /delete).

The default behavior is that all endpoints require an authenticated user (anonymous users are rejected).

These endpoints can be secured by placing any or all of the [Read], [Create], [Edit], and [Delete] attributes on the the class. Each attribute can specify required roles for that action, or open that action to anonymous, unauthenticated users, or disable the endpoint entirely.

This security is applied to the generated controllers. The [Read] attribute on a class does not affect instances of that class when those instances are present as child properties of other types, since in those scenarios the data will be coming from a different endpoint on a different controller.

EndpointsGoverning Attributes

/get, /list, /count

c#
[ReadAttribute]

/save

c#
[CreateAttribute] // Affects saves of new entities
+[EditAttribute]   // Affects saves of existing entities

/delete

c#
[DeleteAttribute]

/bulkSave

c#
// Read permission required for the root entity:
+[ReadAttribute]
+
+// Control of each entity affected by the bulk save:
+[CreateAttribute]
+[EditAttribute]
+[DeleteAttribute]

Here are some examples of applying security attributes to an entity class. If a particular action doesn't need to be restricted, you can omit that attribute, but this example shows usages of all four:

c#
// Allow read access by unauthenticated, anonymous users:
+[Read(SecurityPermissionLevels.AllowAll)]
+// Allow creation of new entities by the Admin and HR roles (params string[] style):
+[Create("Admin", "HR")]
+// Allow editing of existing Employee entities by users with the Admin or HR roles (CSV style):
+[Edit("Admin,HR")]
+// Prohibit deletion of Employee entities
+[Delete(SecurityPermissionLevels.DenyAll)]
+public class Employee
+{
+    public int EmployeeId { get; set; }
+}

Method Security Attributes

To secure the endpoints generated for your Custom Methods and Services, the [Execute] attribute can be used to specify a set of required roles for that endpoint, or to open that endpoint to anonymous users.

The default behavior is that all endpoints require an authenticated user (anonymous users are rejected).

For example:

c#
public class Employee
+{
+    public int EmployeeId { get; set; }
+
+    [Coalesce, Execute("Payroll,HR")]
+    public void GiveRaise(int centsPerHour) {
+        // Only Payroll and HR users can call this method
+    }
+
+    [Coalesce, Execute(SecurityPermissionLevels.AllowAll)]
+    public void SendMessage(string message) {
+        // Anyone (even anonymous, unauthenticated users) can call this method.
+    }
+}

Property/Column Security

Security applied via attributes to properties in Coalesce affects all usages of that property across all Coalesce-generated APIs. This includes usages of that property on types that occur as children of other types, which is a spot where class-level or endpoint-level security generally does not apply. These attributes can be placed on the properties on your Entities and External Types to apply role-based restrictions to that property.

  • ReadAttribute limits the roles that can read values from that property in responses from the server.
  • EditAttribute limits the roles that can write values to that property in requests made to the server.
  • RestrictAttribute registers an implementation of IPropertyRestriction that allows for writing custom code to implement these restrictions.

This security is executed and enforced by the mapping that occurs in the generated DTOs, meaning it affects both entity CRUD APIs as well as Custom Methods. It is also checked by the Standard Data Source to prevent sorting, searching, and filtering by properties that a user is not permitted to read.

Internal Properties

Properties can be hidden from Coalesce entirely, either with the [InternalUse] attribute or non-public C# access modifiers.

The properties in the following example are hidden entirely from all Coalesce functionality and generated APIs:

c#
using IntelliTect.Coalesce.DataAnnotations;
+public class Employee
+{
+  // InternalUseAttribute hides anything from Coalesce.
+  [InternalUse]
+  public string Name { get; set; }
+
+  // Non-public C# access modifiers will hide properties from Coalesce:
+  internal decimal Salary { get; set; }
+
+  // Property's type is [InternalUse], so properties using that type are also internal.
+  public Department Department { get; set; }
+}
+
+[InternalUse]
+public class Department
+{
+  // All properties on an [InternalUse] type are non-exposed,
+  // since the parent type is not exposed.
+  public string Name { get; set; }
+}

Read-Only Properties

A property in Coalesce can be made read-only in any of the following ways:

c#
using IntelliTect.Coalesce.DataAnnotations;
+using System.ComponentModel;
+public class Employee
+{
+  // A property with a [Read] attribute but no [Edit] attribute is read-only:
+  [Read]
+  public string Name { get; set; }
+
+  // Payroll users and HR users can read this property. Nobody can edit it:
+  [Read("Payroll,HR")]
+  public decimal Salary { get; set; }
+
+  // Using System.ComponentModel.ReadOnlyAttribute:
+  [ReadOnly(true)]
+  public DateTime BirthDate { get; set; }
+
+  // Non-public setter:
+  public DateTime StartDate { get; internal set; }
+
+  // No setter:
+  public string EmploymentDuration => (DateTime.Now - StartDate).ToString();
+
+  // Edits denied:
+  [Edit(SecurityPermissionLevels.DenyAll)]
+  public string EmployeeNumber { get; set; }
+}

Role Restrictions

Reading and writing a property in Coalesce can be restricted by roles:

c#
using IntelliTect.Coalesce.DataAnnotations;
+public class Employee
+{
+  // A property with no attributes is readable and writable without restriction
+  public string Name { get; set; }
+
+  // When a [Read] and [Edit] attributes are both present,
+  // the read roles are required for edits in addition to any edit roles.
+  // Property is only readable by Payroll & HR,
+  // and is also only editable by Payroll & HR.
+  [Read("Payroll,HR"), Edit]
+  public DateTime BirthDate { get; set; }
+
+  // Property is readable by Payroll and HR, and editable only by Payroll.
+  [Read("Payroll", "HR"), Edit("Payroll")]
+  public decimal Salary { get; set; }
+
+  // Property is readable by Payroll, and editable only by a user who is both Payroll AND HR.
+  [Read("Payroll"), Edit("HR")]
+  public DateTime StartDate { get; set; }
+
+  // Init-only properties on entities can only be set by the first /save of the entity.
+  public string EmployeeNumber { get; init; }
+}

A few of the examples above point out that when a property is restricted for reading by roles, those roles are also required when editing that property. This is because it usually doesn't make sense for a user to change a value when they have no way of knowing what the original value was. If you have a situation where a property should be editable without knowing the original value, use a custom method on the model to accept and set the new value.

Custom Restrictions

In addition to role-based property restrictions, you can also define property restrictions that can execute custom code for each model instance if your logic require more nuanced decisions than can be made with roles.

c#
using IntelliTect.Coalesce.DataAnnotations;
+public class Employee 
+{
+  public int Id { get; set; }
+
+  [Read]
+  public string UserId { get; set; }
+
+  [Restrict<SalaryRestriction>]
+  public decimal Salary { get; set; }
+}
+
+public class SalaryRestriction(MyUserService userService) : IPropertyRestriction<Employee>
+{
+  public bool UserCanRead(IMappingContext context, string propertyName, Employee model)
+    => context.User.GetUserId() == model.UserId || userService.IsPayroll(context.User);
+
+  public bool UserCanWrite(IMappingContext context, string propertyName, Employee model, object incomingValue)
+    => userService.IsPayroll(context.User);
+
+  public bool UserCanFilter(IMappingContext context, string propertyName)
+    => userService.IsPayroll(context.User);
+}

Restriction classes support dependency injection, so you can inject any supplemental services needed to make a determination.

The UserCanRead method controls whether values of the restricted property will be mapped from model instances to the generated DTO. Similarly, UserCanWrite controls whether the property can be mapped back to the model instance from the generated DTO.

The UserCanFilter method has a default implementation that returns false, but can be implemented if there is an appropriate, instance-agnostic way to determine if a user can sort, search, or filter values of that property.

Multiple different restrictions can be placed on a single property; all of them must succeed for the operation to be permitted. Restrictions also stack on top of role attribute restrictions ([Read] and [Edit]).

Row-level Security

Data Sources

In Coalesce, Data Sources are the mechanism that you can extend to implement row-level security on your Entities and Custom DTOs.

Data Sources are used when fetching results for /get, /list, and /count endpoints, and when fetching the target or result of a /save, /bulkSave, or /delete, and when fetching the invocation target of an Instance Method.

By default, your entities will be fetched using the Standard Data Source, but you can declare a custom default data source for each of your entities to override this default functionality. The default functionality here includes the default loading behavior, a feature where the Standard Data Source automatically includes the immediate relationships of requested entities. This can be suppressed by overriding the GetQuery method on your custom data source and not calling the base method, or by placing [Read(NoAutoInclude = true)] on classes or navigation properties that you do not want automatically included.

For most use cases, all your security rules will be implemented in the GetQuery/GetQueryAsync method. This is the most foundational method of the data source that all other functions in the data source build upon. Any predicates applied to the query of a type's default data source will affect all of the type's generated API endpoints (except for static custom methods).

There are a few different techniques that you can use to apply filtering in a data source, each one working for a specific use case. The example below includes an example of each technique.

Query Predicates

The Query Predicates technique involves applying a .Where() predicate to your query to filter the root entities that are returned by the query using some database-executed logic. This is a form of row-level security and can be used to only include a record based on the values of that record in the database.

Conditional Includes

The Conditional Includes technique involves conditionally appending .Include() calls to your query only when some server-executed criteria is met. Usually this involves checking the roles of a user and only including a navigation property if the user is in the requisite role. This technique cannot be used with database-executed logic and is therefore behaves more like table-level security than row-level security.

Filtered Includes

The Filtered Includes technique involves using EF Core filtered includes to apply database-executed logic to filter the rows of child collection navigation properties.

EF filtered Includes cannot be used to apply database-executed filters to reference navigation properties due to lack of EF support - see the sections below on transform results and global query filters for two possible solutions.

A complex example using all three of the above techniques:

c#
public class Employee
+{
+  public int EmployeeId { get; set; }
+  public bool IsIntern { get; set; }
+  public List<DepartmentMember> DepartmentMembers { get; set; }
+
+  // Override the default data source for Employee with a custom one:
+  [DefaultDataSource]
+  public class DefaultSource : StandardDataSource<Employee, AppDbContext>
+  {
+    public DefaultSource(CrudContext<AppDbContext> context) : base(context) { }
+
+    public override IQueryable<Employee> GetQuery(IDataSourceParameters parameters) {
+      IQueryable<Employee> query = Db.Employees;
+
+      // TECHNIQUE: Conditional Includes - subset child objects using server-executed logic:
+      if (User.IsInRole("HR")) {
+        // HR can see everything. Return early so they are not subjected to the other filters:
+        return query.Include(e => e.DepartmentMembers).ThenInclude(dm => dm.Department);
+      }
+
+      // TECHNIQUE: Query Predicates - subset root objects using database-executed logic:
+      int employeeId = User.GetEmployeeId();
+      query = query.Where(e =>
+          // Anyone can see interns
+          e.IsIntern ||
+          // Otherwise, a user can only see employees in their own departments:
+          e.DepartmentMembers.Any(dm => dm.Department.DepartmentMembers.Any(u => u.EmployeeId == employeeId))
+        );
+
+      // TECHNIQUE: EF Core Filtered Includes - subset collections using database-executed logic.
+      // Include the departments of employees, but only those that the current user is a member of.
+      query = query.Include(e => e.DepartmentMembers
+        .Where(dm => dm.Department.DepartmentMembers.Any(u => u.EmployeeId == employeeId)))
+        .ThenInclude(dm => dm.Department);
+
+      return query;
+    }
+  }
+}
+
+public class Department
+{
+  public int DepartmentId { get; set; }
+  public string Name { get; set; }
+  public List<DepartmentMember> DepartmentMembers { get; set; }
+
+  // Override the default data source for Department with a custom one:
+  [DefaultDataSource]
+  public class DefaultSource : StandardDataSource<Department, AppDbContext>
+  {
+    public DefaultSource(CrudContext<AppDbContext> context) : base(context) { }
+
+    public override IQueryable<Department> GetQuery(IDataSourceParameters parameters) {
+      IQueryable<Department> query = Db.Departments
+        .Include(e => e.DepartmentMembers).ThenInclude(dm => dm.Employee);
+
+      if (!User.IsInRole("HR"))
+      {
+        // Non-HR users can only see their own departments:
+        query = query.Where(d => d.DepartmentMembers.Any(dm => dm.EmployeeId == User.GetEmployeeId()));
+      }
+
+      return query;
+    }
+  }
+}
+
+// Only HR can directly read or modify DepartmentMember records.
+[Read("HR"), Create("HR"), Edit("HR"), Delete("HR")]
+public class DepartmentMember
+{
+  public int Id { get; set; }
+
+  public int DepartmentId { get; set; }
+  public Department Department { get; set; }
+  public int EmployeeId { get; set; }
+  public Employee Employee { get; set; }
+}

Transform Results

There exists a fourth technique in Data Sources for applying filtered includes: the TransformResultsAsync method. Unlike the other techniques above that are performed in the GetQuery method and applied at the beginning of the data source query pipeline, TransformResults is applied at the very end of the process against the materialized results. It also only affects the responses from the generated /get, /list, /save, /bulkSave, and /delete endpoints - it has no bearing on the invocation target of instance methods.

The primary purpose of TransformResults is to conditionally load navigation properties. This was very useful before EF Core introduced native filtered includes for collection navigation properties, and is still useful for applying filtered includes to reference navigation properties since EF does not support this. It can also be used for any kind of filtered includes if native EF filtered includes get translated into poorly-performant SQL, or it can be used to populate external type or other non-database-mapped properties on your entities.

The general technique for using TransformResults involves using EF Core Explicit Loading to attach additional navigation properties to the result set, and then using Coalesce's .IncludedSeparately() method in the data source's GetQuery so that Coalesce can still build the correct Include Tree to shape the serialization of your results.

c#
public class Employee
+{
+  public int EmployeeId { get; set; }
+  public int ManagerId { get; set; }
+  public Employee Manager { get; set; }
+
+  [DefaultDataSource]
+  public class DefaultSource : StandardDataSource<Employee, AppDbContext>
+  {
+    public DefaultSource(CrudContext<AppDbContext> context) : base(context) { }
+
+    public override IQueryable<Employee> GetQuery(IDataSourceParameters parameters)
+      // Use IncludedSeparately to instruct Coalesce that we're going to
+      // manually populate the Manager, and that it should be mapped to the result DTOs
+      // despite not being eagerly loaded with EF's .Include() method.
+      => Db.Employees.IncludedSeparately(e => e.Manager);
+
+    public override async Task TransformResultsAsync(
+      IReadOnlyList<Employee> results,
+      IDataSourceParameters parameters
+    )
+    {
+      foreach (var employee in results)
+      {
+        // Only load the employee's manager if the current logged in user is that manager.
+        if (employee.ManagerId == User.GetEmployeeId() && employee.Manager is null) {
+          await Db.Employees.Where(e => e.EmployeeId == employee.ManagerId).LoadAsync();
+        }
+      }
+    }
+  }
+}

Alternatively, and indeed preferably, you can often formulate a query that does not use iteration and requires only a single database round-trip:

c#
public override async Task TransformResultsAsync(
+  IReadOnlyList<Employee> results,
+  IDataSourceParameters parameters
+)
+{
+  var managerIds = results.Select(e => e.ManagerId).ToList();
+  await Db.Employees
+    .Where(e => managerIds.Contains(e.ManagerId) && e.EmployeeId == User.GetEmployeeId())
+    .LoadAsync();
+}

Behaviors

In Coalesce, Behaviors are the extension point to implement row-level security or other customizations of create/edit/delete operations on your Entities and Custom DTOs. Behaviors are implemented on top of data sources, meaning the client request will be rejected if the requested entity for modification cannot be loaded from the entity's default data source.

By default, each entity will use the Standard Behaviors, but you can declare a custom behaviors class for each of your entities to override this default functionality.

For most use cases, all your security rules will be implemented in the BeforeSave/BeforeSaveAsync and BeforeDelete/BeforeDeleteAsync methods.

For a more complete explanation of everything you can do with behaviors, see the full Behaviors documentation page.

EF Global Query Filters

Since Coalesce's data access layer is built on top of Entity Framework, you can also use Entity Framework's Global Query Filters feature to apply row-level security.

This approach is less flexible than custom Coalesce data sources and has other drawbacks as well, but on the other hand it has more absolute authority, is less susceptible to issues like inadvertently returning data through unfiltered navigation properties, and can sometimes require less work to implement than individual data sources.

Global Query Filters are also the only way to implement database-executed filtered includes of reference navigation properties, as there is no version of .Include() for reference navigation properties that allows a database-executed predicate to be applied. See this open issue on EF Core.

Foreign Key Injection Vulnerabilities

When a user is saving a model with Coalesce, they can provide values for the model's foreign key properties. When this interaction takes place through a user interface, the user is not likely to produce a foreign key referencing an object that the user is not allowed to view.

A malicious user, however, is a different story. Imagine a user who is brute-forcing the /save endpoint on one of your entities, enumerating values of a foreign key. The may be trying to leak data through navigation property values returned by the response from the save, or they may be trying to inject their data into an object graph that they do not otherwise have access to.

If this scenario sounds like a plausible threat vector your application, be sure to perform sufficient validation of incoming foreign keys to ensure that the user is allowed to use a particular foreign key value before saving it to your database.

Also consider making any required foreign keys that should not change for the lifetime of an entity into init-only properties (i.e. use the init accessor in C# instead of the set accessor). While this does not entirely solve the foreign key injection issue, it eliminates the need to validate that a user is not changing the parent of an object if such an operation is not desirable.

Server-side Data Validation

Coalesce, as of version 4, will by default perform server-side validation of incoming data using validation attributes.

Your database will also enforce any constraints (referential integrity, not null, check constraints, etc.), but errors produced by your database will manifest as exceptions, which are not user-friendly.

For any custom validation that cannot be implemented by attributes, you must implement that yourself for saves and deletes or custom methods.

Attribute Validation

Historically, Coalesce did not provide any automatic, attribute-based validation of incoming data. As of Coalesce 4.0, automatic server side validation using ValidationAttribute-derived attributes on your models is enabled by default.

In addition to any validation attributes present on your model properties and method parameters, there are some other rules that work similarly to the default validation in ASP.NET Core:

  • The C# 11 required keyword also acts like a RequiredAttribute
  • If C# nullable reference types are enabled, non-nullable reference types are required required.
  • Non-nullable value types are implicitly optional, with the exception of non-nullable foreign keys, which are required.

To disable this functionality for your entire application, disable the corresponding configuration options on CoalesceOptions. For example, in Startup.cs or Program.cs:

c#
services.AddCoalesce<AppDbContext>(b => b.Configure(o =>
+{
+    // Set either to false to disable:
+    o.ValidateAttributesForSaves = true;
+    o.ValidateAttributesForMethods = true;
+}));

Each option also has a more granular override:

Enabling ValidateAttributesForSaves causes the Standard Behaviors to perform validation of validation attributes during /save or /bulkSave calls, preventing a save when validation fails. This can be overridden per type or even per request by setting the ValidateAttributesForSaves property on a custom Behaviors instance.

Enabling ValidateAttributesForMethods causes the generated controllers for custom methods to perform validation of incoming parameters. Validation attributes may be placed on method parameters, and validation will also be performed against the members of any complex type parameters. This can be overridden per method by setting the ValidateAttributes property on ExecuteAttribute for the method.

Saves and Deletes

Validation of /save, /bulkSave, and /delete actions against Entities and Custom DTOs are performed by the Behaviors for the type. Automatic attribute based validation can be used (saves only), or Behaviors can be overridden to perform validation and other customization of the save and delete process, as in the following example:

c#
public class Employee
+{
+  public int IsCeo { get; set; }
+  public decimal Salary { get; set; }
+
+  [Coalesce]
+  public class Behaviors : StandardBehaviors<Employee, AppDbContext>
+  {
+    public Behaviors(CrudContext<AppDbContext> context) : base(context) { }
+
+    public override ItemResult BeforeSave(SaveKind kind, Employee? oldItem, Employee item)
+    {
+      // `oldItem` is a shallow copy of entity from the database,
+      // and `item` is the tracked entity with incoming user data applied to it.
+      if (item.Salary > 1_000_000m && !oldItem.IsCeo) return "Salary is too high.";
+      return true;
+    }
+
+    public override ItemResult BeforeDelete(Case item)
+    {
+      if (item.IsCeo) return "The CEO cannot be fired.";
+      return true;
+    }
+  }
+}

Custom Methods and Services

For Custom Methods and Services, you can perform your own custom validation and return errors when validation fails. You can also use attribute based validation. Custom methods that need to return errors to the client are recommended to wrap their return type in an ItemResult<T>, allowing errors to be received and handled elegantly by your Coalesce Typescript code.

c#
public class Employee
+{
+  public decimal Salary { get; set; }
+
+  [Coalesce]
+  public ItemResult<decimal> GiveRaise(decimal raiseAmount)
+  {
+    if (raiseAmount > 3.5m) return "Raises must be less than $3.50."
+    Salary += raiseAmount;
+    return Salary;
+  }
+}

Security Overview Page

Coalesce provides batteries-included page that you can view to review the effective security rules in place for all the Coalesce-generated code in your project. Add this page to your application by mapping it as a route, either directly on WebHost in .NET 6+, or in UseEndpoints for 3.1+.

TIP

If you include the security overview in your production app, you should secure it with an authorization policy like in the example below. Alternatively, only map the endpoint in non-production environments.

c#
// .NET 6+ Program.cs:
+app.MapCoalesceSecurityOverview("coalesce-security").RequireAuthorization(
+    new AuthorizeAttribute { Roles = env.IsDevelopment() ? null : "Admin" }
+);
+
+// .NET Core 3.1+ Startup.cs:
+app.UseEndpoints(endpoints =>
+{
+    endpoints.MapCoalesceSecurityOverview("coalesce-security").RequireAuthorization(
+        new AuthorizeAttribute { Roles = env.IsDevelopment() ? null : "Admin" }
+    );
+});

Example of the contents of the security overview page:

Testing Your Security

If your application has complex security requirements and/or sensitive data that needs to be protected, you are encouraged to invest time into creating a set of automated tests to ensure that it is working how you expect.

The most comprehensive way to do this is to build a suite of integration tests using Microsoft's in-memory test server infrastructure. Follow Microsoft's documentation to set up a test project, and then write tests against your API endpoints. You will want to substitute your Entity Framework database provider with an in-memory Sqlite instance, and add a mock authentication handler to simulate authentication (we're mainly focused on testing authorization, not authentication).


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/topics/startup.html b/topics/startup.html new file mode 100644 index 000000000..ae4d194e7 --- /dev/null +++ b/topics/startup.html @@ -0,0 +1,52 @@ + + + + + + Application Configuration | Coalesce + + + + + + + + + + + + + + +
Skip to content

Application Configuration

In order for Coalesce to work in your application, you must register the needed services in your Startup.cs or Program.cs. Doing so is simple:

c#
public void ConfigureServices(IServiceCollection services)
+{
+    services.AddCoalesce<AppDbContext>();
+    ...
+}

This registers all the basic services that Coalesce needs in order to work with your EF DbContext. However, there are many more options available. Here's a more complete invocation of AddCoalesce that takes advantage of many of the options available:

c#
public void ConfigureServices(IServiceCollection services)
+{
+    services.AddCoalesce(builder => builder
+        .AddContext<AppDbContext>()
+        .UseDefaultDataSource(typeof(MyDataSource<,>))
+        .UseDefaultBehaviors(typeof(MyBehaviors<,>))
+        .UseTimeZone(TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"))
+        .Configure(o =>
+        {
+            o.ValidateAttributesForMethods = true; // note: true is the default
+            o.ValidateAttributesForSaves = true; // note: true is the default
+            o.DetailedExceptionMessages = true;
+            o.ExceptionResponseFactory = ctx =>
+            {
+                if (ctx.Exception is FileNotFoundException)
+                {
+                    ctx.HttpContext.Response.StatusCode = 404; // Optional - set a specific response code.
+                    return new IntelliTect.Coalesce.Models.ApiResult(false, "File not found");
+                }
+                return null;
+            };
+        });
+    );
+}

Available builder methods include:

public Builder AddContext<TDbContext>()

Register services needed by Coalesce to use the specified context. This is done automatically when calling the services.AddCoalesce<AppDbContext>(); overload.

public Builder UseDefaultDataSource(Type dataSource)

Overrides the default data source used, replacing the Standard Data Source. See Data Sources for more details.

public Builder UseDefaultBehaviors(Type behaviors)

Overrides the default behaviors used, replacing the Standard Behaviors. See Behaviors for more details.

public Builder UseTimeZone(TimeZoneInfo timeZone)

Specify a static time zone that should be used when Coalesce is performing operations on dates/times that lack timezone information. For example, when a user inputs a search term that contains only a date, Coalesce needs to know what timezone's midnight to use when performing the search.

public Builder UseTimeZone<ITimeZoneResolver>()

Specify a service implementation to use to resolve the current timezone. This should be a scoped service, and will be automatically registered if it is not already. This allows retrieving timezone information on a per-request basis from HTTP headers, Cookies, or any other source.

public Builder Configure(Action<CoalesceOptions> setupAction)

Configure additional options for Coalesce runtime behavior. Current options include options for server-side validation, and options for exception handling. See individual members for details.


Coalesce is a free and open-source framework created by IntelliTect to fill our desire to create better apps, faster. IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.

If you're looking for help with your software project, whether it be a Coalesce application, other technologies, or even just an idea, reach out to us at info@intellitect.com — we'd love to start a conversation! Our clients range from Fortune 100 companies to local small businesses and non-profits.

+ + + + \ No newline at end of file diff --git a/ts-logo-128.svg b/ts-logo-128.svg new file mode 100644 index 000000000..b65a93a8d --- /dev/null +++ b/ts-logo-128.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ts-logo-512.svg b/ts-logo-512.svg new file mode 100644 index 000000000..a46d53d49 --- /dev/null +++ b/ts-logo-512.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/vite-logo.svg b/vite-logo.svg new file mode 100644 index 000000000..de4aeddc1 --- /dev/null +++ b/vite-logo.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/vue-logo.svg b/vue-logo.svg new file mode 100644 index 000000000..d4d5f0bdf --- /dev/null +++ b/vue-logo.svg @@ -0,0 +1,8 @@ + + + + +